Skip to content

Guide 20 · Debugging · GA4 + Tag Manager

Revenue is in the wrong currency: the currency parameter decides the report

Checked 11 November 2026 · Verification: currency counts recomputed (8 of 8 wrong, 100.00%) · Steps traced to Tag Manager Help and Analytics Help, opened 11 November 2026 · 6-minute read

GA4 reports revenue in the property currency, converted from the currency parameter on the event. A wrong currency code turns every order into the wrong amount — check the code, not the total.

Expected signal

After the steps below, the currency parameter on the event matches the currency the customer paid in, and the revenue in the report converts from the right starting point.

Download the check: the debugging check (JSON) (MD5 73236d16a6364c39e362ad88616f4184, 490 bytes). It lists the checkpoints from this guide and the worked check, with the figures recomputed. The file was built for this guide and validated structurally — it was not exported from a live container or a live property.

What you need

  • One order you can trace end to end. An order with a known total and a known currency, so the parameter can be judged right or wrong.
  • The event in DebugView. The purchase or revenue event, with its currency parameter visible.
  • The property currency setting. Admin, then Property settings, where the reporting currency is set.
  • The tag's currency parameter. The value the tag sends — a fixed code, or a variable reading it from the order.

The trace

The worked check: the figures below were recomputed before publication, and the note under the table shows the working.

CheckFigure
Orders checked8
Orders with currency USD in the event8
Orders actually paid in CAD8
Orders with the wrong currency code8
Orders with the right currency code after the fix8

Eight orders were checked. All 8 carried currency USD in the event, and all 8 were actually paid in CAD, so 8 of 8 orders — 100.00% — had the wrong currency code. After the fix, 8 of 8 carried CAD, so the wrong-code count fell from 8 to 0.

  1. Read the currency on one real order's event. Open DebugView, find the revenue event for an order you know, and read its currency parameter. Do not read the value first — the value is a number, and without the currency code you cannot tell whether it is dollars, euros, or something else.
  2. Compare it with how the order was paid. Look up the order in the store: the currency the customer was charged in. If the store charged CAD and the event says USD, every dollar in the report is converted from the wrong starting point, and the revenue is wrong by the exchange rate, on every order.
  3. Find where the tag gets the currency. Open the GA4 Event tag and read its currency parameter. A fixed value of USD sends USD for every order, whatever the customer paid. A variable reading the order's currency sends the right code — if the variable points at the right field and holds a value when the tag fires.
  4. Fix the source, then test with a fresh order. Change the fixed code to the store's currency, or fix the variable to read the order currency. Then send a fresh test order and read the currency parameter in DebugView again. The code must match the payment currency exactly.
  5. Check the property currency setting too. The property reports in one currency, and GA4 converts event currencies into it. A property set to USD with events in CAD is fine — the conversion is the design. A property set to USD with events wrongly coded USD is not a conversion problem; it is a wrong code, and the report will show the CAD amounts as if they were USD.

Dead ends

DEAD END — FIXING THE VALUE WHEN THE CODE IS WRONG. A value of 72.05 with currency USD and a value of 72.05 with currency CAD are two different amounts in the report. Changing the value while the code stays wrong leaves the revenue wrong by the same exchange rate on every order.

DEAD END — A FIXED CURRENCY FOR A MULTI-CURRENCY STORE. A store that charges in Canadian dollars, US dollars, and euros cannot use one fixed currency code. The tag must read the currency from the order, per event. A fixed code is right only for a store that charges in one currency.

DEAD END — READING THE REPORT TOTAL INSTEAD OF THE CODE. A revenue total that looks plausible can hide a wrong currency code for months, because the exchange rate is close to one for some pairs. Read the code on the event, not the total in the report.

End state

The currency parameter on the event matching the currency the customer paid in, on every order checked, and the property currency understood as the conversion target, not the source. Revenue now converts from the right starting point, and the report totals mean what they say.

Sources

Checked 11 November 2026. The click paths above are the ones in Google's help pages, opened 11 November 2026. What was run: the currency counts, recomputed — 8 orders checked, 8 with USD in the event and 8 paid in CAD, so 8 of 8 wrong, 100.00%, and 8 of 8 right after the fix. No step in this guide was run inside a live Analytics property or a live Tag Manager container, because both need a Google sign-in and this site does not sign in as anyone. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map.