Guide
How to convert Google Ads spend into your store currency, and why a monthly average rate is wrong
Convert each day’s Google Ads spend at that day’s exchange rate, then add the converted days together. One average rate for the whole period moves profit from one day to another, and an average taken over a period still in progress changes a result you have already reported. If a day with ad spend has no usable rate, report the total as not computable rather than guessing.
Last checked · More guides
Convert each day, then add the days up
Convert every day’s spend at that day’s exchange rate, then sum the converted days. Converting the period total at one average rate usually gives a different number when both the rate and your daily spend moved during the period, and the daily method never depends on that luck.
Converted spend = Σ (spend on day d, in the ad account’s currency × the exchange rate for day d) (with the rate expressed as store-currency units per one unit of the ad account’s currency; see the note on quote direction below). Not: total spend × the period’s average rate.
The mismatch is common because the two currencies are set in different places. Google Ads sets an account’s currency permanently when the account is set up, because it determines how you are billed. Shopify reports in your store currency, the currency used in the admin for pricing products and running reports. When the two differ, every ROAS, POAS and profit figure depends on how the spend was converted.
Definition
Daily conversion means multiplying each day’s ad spend by that date’s rate from the ad account’s currency into the store’s and summing the results, so each day’s cost is fixed by its own rate and by no other day’s.
Worked example: the same four days, three different profits
Example — illustrative figures, not market data. An ad account billing in US dollars, a store reporting in euros, and four days of spend. The rates are euros per dollar, and the rates are exaggerated so that the arithmetic is easy to follow.
- Example — Day 1: $400 × 0.90 = €360.00
- Day 2: $400 × 0.91 = €364.00
- Day 3: $600 × 0.93 = €558.00
- Day 4: $1,600 × 0.94 = €1,504.00
- Converted day by day: $3,000 of spend = €2,786.00
Now convert the $3,000 total at the simple average of the four rates: (0.90 + 0.91 + 0.93 + 0.94) ÷ 4 = 0.92, which gives €2,760.00 — €26.00 less than the spend actually cost. Day by day, the average charges Day 1 €8 too much and Day 2 €4 too much, and charges Day 3 €6 too little and Day 4 €32 too little. The heaviest day of spend fell on the highest rate, so the average makes it look cheaper than it was. So the period total is €26 too low, and the error falls unevenly across the days, which shows the moment you compare one week with the next.
The result can also change after the fact. Suppose these are the first four days of a month and you reported them on day five at the month-to-date average of 0.92. If the rest of the month runs higher and the full-month average comes out at 0.95 (example), restating the same four days at the monthly rate gives $3,000 × 0.95 = €2,850.00 — €90 more than you first reported, with no new click or order. The day-by-day figure of €2,786.00 depends only on those four days’ own rates, so later movements in the market cannot reach it.
Add €6,000 of revenue and €3,000 of cost of goods on those days (example), and the three choices report:
Daily rates (correct)
Example: spend €2,786.00. ROAS 2.15×, POAS 1.08×, profit after goods and ad spend €214.
Month-to-date average rate
Example: spend €2,760.00. ROAS 2.17×, POAS 1.09×, profit after goods and ad spend €240.
Full-month average rate
Example: spend €2,850.00. ROAS 2.11×, POAS 1.05×, profit after goods and ad spend €150.
Identical activity, and profit anywhere from €150 to €240 depending on the rate you picked. The thinner your margin, the larger the share of profit the choice of rate can move.
A spend-weighted average is not a shortcut
Dividing the converted total by the original total — €2,786.00 ÷ $3,000 ≈ 0.9287 — gives an average rate that does reproduce the right answer. But you can only calculate it after converting every day, so it is the daily method with an extra step, not a replacement for it.
When a day has no usable rate, report the period as not computable
If a day with ad spend has no usable exchange rate, the honest answer for any period containing that day is ‘not computable’, with the missing date and currency pair named. A period total is a sum of days, and one unknown day makes the sum unknown.
Each tempting fix produces a number that looks real and that nobody can audit later. A rate of 1.0 counts one currency as another; interpolating between neighbouring days invents a rate no source published; today’s rate brings back the after-the-fact problem above; and zero spend for the day flatters every ROAS in the period.
Step 1: List the days that had spend
Only days with ad activity need a rate for spend.
Step 2: Look up each date’s rate
Use the same source for every day, and record the date of the rate you used beside the converted amount.
Step 3: Stop at the first gap
If any day has no usable rate, mark the period’s spend, ROAS, POAS and profit as not computable and name the missing date and currency pair.
Step 4: Fill the gap and recompute
Once the rate exists, convert that day, and any later days that carry its rate forward, and the period completes. Days with their own rates do not change.
Where daily rates come from, and what to do at weekends
Use one published daily reference series, apply it by date, and carry the last published rate forward over weekends and holidays instead of inventing one. Using a single source consistently matters more than which reputable source you choose.
Central-bank reference rates are one free option. The European Central Bank, for example, usually updates its euro reference rates at around 16:00 CET every working day except TARGET closing days, for a published list of currencies quoted against the euro, and publishes them for information purposes only. Two things follow: a rate for today may not exist yet when you run a morning report, and a Saturday never has a rate of its own. Check that both of your currencies are on the list before you rely on it.
Check the direction of the quote, too. ECB rates are units of the other currency per one euro, so a dollar amount becomes euros by dividing by the dollar rate, not by multiplying.
For a weekend or public holiday, use the most recent rate published before that date — Friday’s rate for Saturday and Sunday. Apply it when you read the rates rather than storing copied weekend rows, so your table only holds rates a source actually published. Set a limit on how old a carried rate may be — a week, for example — and treat anything older as missing, so a feed that has stopped updating blanks a figure instead of quietly feeding it.
What Opteno does
Opteno reads Google Ads spend per product offer in the ad account’s own currency, converts each day at that day’s exchange rate and then sums, so once a day’s rate is published, later market movements cannot change that day’s profit. The converted spend feeds ROAS, POAS and profit on one row per product, over rolling 7, 14, 30 and 60-day windows, with variant, country and market breakdowns.
- A day with ad activity and no usable rate makes the affected totals not computable, with the reason attached. Opteno does not print a zero and does not estimate.
Questions merchants ask
Can I change my Google Ads account to my store’s currency?
Not on an existing account. Google Ads sets an account’s currency permanently when the account is set up, because it determines how you are billed. If the two currencies differ, plan on converting spend in every report.
Is a monthly average exchange rate ever good enough?
It is only reliable when the rate or your daily spend stayed flat all period, and a sale, a budget change or a currency move breaks that. An average taken over a month still in progress also changes days you have already reported. For anything you compare or act on, convert daily.
Which exchange rate should I use for ad spend?
One published daily reference series, applied by date and used consistently; central-bank reference rates are one free option if both currencies are covered. If you pay Google from a bank account in another currency, the amount debited may reflect your bank’s or card issuer’s own conversion rate and timing — a cash-flow figure, not a per-day rate for profit reporting.
What should a report show when a day’s rate is missing?
‘Not computable’ for every total that includes that day, with the missing date and currency pair named. Substituting 1.0, interpolating or printing zero spend each produce a number that looks real and cannot be audited.
See which products are losing you money
Connect Shopify and Google Ads in under five minutes. From $14.99 a month, cancel whenever you want, and no change to your store or your campaigns without your approval.