META AND GA4

Multi-currency Shopify store: purchase value in the wrong currency

Your store sells in several currencies, and the purchase value in Meta or GA4 does not match your Shopify sales. The number may be in another currency, or converted at a different rate.

Why it happens

Several currencies are in play. With Shopify Markets a buyer can pay in their own currency, the presentment currency. Your store has a base currency, the one Shopify reports in. Your Meta ad account has its currency, and your GA4 property has a reporting currency. A purchase event carries a value and a currency code. If the code says one thing and the value is in another currency, the platform converts a number that was never in that currency.

The sender picks the currency. A browser pixel often reads what the shopper saw, so it sends the presentment currency. A server connection may send the store currency. When both report, one platform can hold events in two currencies for the same order. Meta then shows the purchase value in your ad account currency, and GA4 in your reporting currency, each converted by its own rate.

Rates and dates differ. Shopify converts at the rate it applied when the buyer paid. Platforms convert at their own rates, and not necessarily on the same day. Even with correct codes, a total across several currencies will not match your Shopify total to the cent. A gap that grows with the share of foreign orders points at conversion. A gap in one market only points at the currency code sent for it.

Check it yourself

  1. 1Note your store's base currency and the currencies you sell in. In Shopify admin > Settings > Markets (the Markets screen, where each market shows its currency), list them.
  2. 2In Shopify admin > Orders, filter by Sales channel, keep the online store, and open one recent order per currency. Note the total in the buyer's currency and in your store currency.
  3. 3In Shopify admin > Analytics > Reports, open a sales report for the last 7 full days and read total sales in your store currency.
  4. 4In Meta Events Manager > Data sources > your pixel > Test events, make a test purchase in a foreign currency. Open the Purchase event and read the currency and value parameters it received.
  5. 5In Meta Events Manager > Data sources > your pixel > Overview, read the Purchase count and, where the event details show it, the value received, for the same days. Compare it with Shopify's total in the currency of your ad account.
  6. 6In GA4 > Admin > Property details, read the reporting currency. In GA4 > Explore, make a Free form exploration with the dimension Transaction ID and the metric purchase revenue, and compare a foreign-currency order with its Shopify amount.
  7. 7If a market shows values that look like the local price with the wrong code, find which tool sends the purchase for that market: the Facebook and Instagram sales channel, the Google and YouTube sales channel, a theme snippet or an app.

For what each platform needs with a purchase, see how a paid order reaches Meta, GA4 and Google Ads.

Run the free diagnosis

FAQ

Which currency should Meta and GA4 use?

Each purchase event should carry the currency its value is in. Both platforms can convert to your account or property currency. The mistake to avoid is a value in one currency labeled with another.

Why does GA4 revenue not match Shopify total sales to the cent?

Different conversion rates, different dates for the rate, and the way the value is defined. GA4 revenue can leave out tax or shipping depending on what is sent. Compare order by order in Explore before you look at totals.

Does Shopify Markets change my tracking?

It changes the currency the shopper sees, and which prices tax includes. Tracking tools that read the displayed price will report that price. Check one order per market.

Do refunds follow the same currency?

A refund event also needs a currency with its value. If the purchase was sent in one currency and the refund in another, the reports will not net out.

Related

Problem

Meta warns your Purchase event is missing value, currency or content IDs

Events Manager Diagnostics says your Shopify store's Purchase events are missing value, currency or content_ids. What each one breaks and how to find the sender.

Problem

Post-purchase upsell orders missing in Meta or GA4

Shoppers accept a post-purchase upsell in Shopify, but Meta or GA4 shows only the first order value. Why upsells go missing and how to check your numbers.

Problem

Meta's purchase value does not match your Shopify order total

Meta Ads Manager shows a different purchase value than your Shopify orders. How tax, shipping, discounts and refunds change the number, and how to check what Meta received.

Problem

Test orders showing up in Meta or GA4

Test purchases from Shopify checkout testing can end up as real sales in Meta or GA4. Why they get through and how to find and exclude them.

All tracking problems · All guides