Loading...

Conversion Rate Optimization Metrics & Measurement

GA4 and Shopify Analytics Will Never Match: Here Is Why

GA4 and Shopify analytics will never match: know why, pick one source of truth, and stop re-litigating the gap every Monday.
← All 100 tips  ·  Tip 72 of 100  ·  29 days to Cyber Monday

GA4 and Shopify analytics will never agree, and the sooner your team accepts this as physics rather than a bug, the sooner Monday mornings stop being a jurisdictional dispute. The two systems count different things, with different rules, from different vantage points. Expecting them to match is expecting a doorman and a cashier to report the same number, when one counts people walking in and the other counts receipts.

Yet the re-litigation ritual persists everywhere: GA4 says conversion fell, Shopify says it rose, an hour dies in a meeting, and the conclusion is always the same, “the data is broken.” It is not broken. It is two honest witnesses standing in different places.

Why the numbers can never match

Same store, same day, both counting honestly.

312
GA4 sessions
Sees behavior, sources, and journeys, minus everyone it is not allowed to see
Ad blockers eat tracking scripts
Consent banners drop untagged visitors
Different session and timezone rules
Different attribution windows
89
Shopify orders
Sees every order, because the order happens on its side of the counter

The gap is structural. It will be a different size next month, and that is fine.

The truce: one job per witness

The fix is not reconciliation, it is jurisdiction. Shopify is the source of truth for money and conversion: orders, revenue, AOV, the baseline metrics this whole series runs on. It sees every order by definition, because the checkout is the till. Blocked scripts and declined cookies cannot hide a purchase from the platform that processed it. Your Shopify analytics numbers are the scoreboard.

GA4 is the source of truth for behavior and acquisition: which channels send traffic that acts interested, what paths people take, where journeys stall. Its absolute numbers are undercounts, and that is fine, because you use it for comparisons within itself: channel A vs channel B, this landing page vs that one, measured by the same slightly-blind witness on both sides of every comparison.

Write the treaty down, one line in the same doc as your test log: “Revenue and CVR come from Shopify. Channel and behavior questions go to GA4. The gap between them is expected and not news.” Then enforce the corollary: nobody quotes a GA4 revenue number in a decision, and nobody asks Shopify where the visitor came from three touches ago. When the gap suddenly balloons, that is worth a look, a broken tag or a consent-banner change will do it. Otherwise, the gap is weather. You already know from tip 62 what we do about weather.

← All 100 tips  ·  Tomorrow, tip 73: the merchandising you set in September is already stale, and Q4 makes it staler by the week.