Why GA4 and your store’s sales numbers don’t match
“Why doesn’t GA4 match Shopify?” is one of the most common tracking questions there is. A small gap is normal and expected; a big one means something is broken. Here is what causes the mismatch, how close the two should really be, and how to close the gap.
They will never match exactly, and that’s fine
GA4 and your store (Shopify, WooCommerce, Stripe) count different things in different ways: GA4 depends on a tag firing in the browser, consent being granted, and JavaScript running, while your store records every order at the source. A difference of a few percent is completely normal. The question is whether the gap is small and stable, or large and growing.
When GA4 is LOWER than your store
This is the common direction, and it means conversions are being lost before GA4 sees them:
- Consent blocking: buyers who didn’t accept cookies never fire the purchase event.
- The purchase tag doesn’t fire on the new checkout, or fires too late.
- Ad-blockers and iOS stopping the browser event.
- Cross-domain breakage: the session is lost between the store and a separate checkout domain.
See why your numbers don’t match
We’ll scan your live tracking and show exactly where the gap is coming from. Free, 10 seconds.
Check my tracking freeWhen GA4 is HIGHER than your store
Less common, and almost always duplication:
- The purchase fires twice: native tracking plus an app plus a hand-added tag.
- No transaction_id, so GA4 can’t deduplicate the same order.
- Thank-you page reloads re-firing the event.
How close should they be?
A well-built setup lands GA4 within roughly a few percent of your store’s own revenue, and stays there month to month. If you’re seeing 15, 20 or 30 percent out, or the gap keeps widening, that’s a fault worth fixing, because every budget and ROAS decision you make is running on those numbers.
How to fix the gap
Send one clean, deduplicated purchase event with a unique transaction_id and full item data, from the right place; wire consent so it measures what it legitimately can; set cross-domain and referral exclusions; and add server-side tracking to recover the iOS and ad-blocked buyers. Do that and the two numbers converge and stay converged.
Get GA4 and your store reconciled
We find the cause of the mismatch and fix it so GA4 and your real sales line up. The audit comes off any build.
See how it works & pricingDatahound are analytics and ad-tracking specialists. We fix broken GA4, Google Ads, Meta and server-side tracking. See pricing · All guides · Back to datahound.agency
GA4 vs store sales: common questions
How close should GA4 and Shopify be?
A well-built setup lands GA4 within a few percent of Shopify’s own revenue and stays there. A gap of 15 to 30 percent, or one that keeps widening, indicates a tracking fault worth fixing.
Why is GA4 lower than my actual sales?
Usually conversions are lost before GA4 sees them: consent blocking the purchase tag, the tag not firing on the checkout, ad-blockers and iOS, or a broken cross-domain hand-off to a separate checkout.
Why is GA4 higher than my actual sales?
Almost always duplication: the purchase event firing more than once, or a missing transaction_id so GA4 can’t tell two reports of the same order apart. A thank-you page reload re-firing the event is another common cause.