ROILadder
One question, answered

GA4 Says One Number and Shopify Says Another. Which Is Right?

Both, usually. They are counting different things with different rules, so they were never going to match, and the gap between them is not a defect. What matters is knowing what each one is good for, and recognizing the few kinds of gap that do mean something is broken.

This question usually arrives after a month-end meeting. Somebody pulled revenue from Shopify, somebody else pulled it from Google Analytics, the two numbers were different by a margin too large to shrug at, and now nobody trusts either. The instinct is to find the wrong one and fix it. The better move is to understand why they differ, because most of the difference is by design.

They are counting different things

Shopify is a system of record. An order exists in Shopify because a customer paid for it. It knows every order, including the ones placed by phone, imported from a marketplace, edited afterwards, or refunded. It does not know, and does not try to know, how the customer got there.

GA4 is an observation tool. It knows about an order because a small script in the customer's browser reported it at the moment of purchase. Anything that stops that script from running, or from being believed, removes the order from GA4's count while leaving it perfectly intact in Shopify. In exchange, GA4 knows things Shopify never will: which search brought the visitor, which pages they read, how many visits it took, and where the ones who did not buy gave up.

Once that is clear, the question "which one is right" stops being useful. Shopify is right about money. GA4 is right, or at least informative, about behavior. The seven reasons below explain the size of the gap between them.

Seven ordinary reasons the numbers diverge

1. Consent banners and ad blockers. A visitor who declines cookies, or whose browser blocks tracking scripts, still buys. Shopify records the sale; GA4 never hears about it. This alone accounts for a steady share of the gap, and the share varies by audience, device, and region.

2. Session and attribution rules. GA4 groups activity into sessions with its own timeouts and assigns credit for a purchase according to its own attribution model. Shopify, where it attributes at all, uses different rules. A customer who clicked an ad on Monday and bought from an email on Thursday is one order in Shopify and can be credited differently in every tool that saw part of the journey.

3. Time zones and reporting days. If the Shopify store is set to Eastern time and the GA4 property to Pacific, or to the account's default, the same order can land on different calendar days in the two reports. Month-end comparisons are especially sensitive to this. It is a settings check, and it is worth doing first because it is free.

4. Refunds, cancellations, and edits. Shopify's revenue reports subtract refunds and reflect order edits. GA4 recorded the purchase at the moment it happened and, unless someone has set up refund events, never learned that the money went back. Over a month with normal returns, GA4 revenue drifts above the true figure for that reason alone, while other reasons push it below.

5. Test orders, draft orders, and offline sales. An order created by staff in the Shopify admin, a draft order paid by invoice, a point-of-sale transaction, or a test order placed during setup all exist in Shopify and never touched the website's tracking. If the business does much of this, the gap grows and it is entirely legitimate.

6. Checkout tracking gaps. The purchase event has to fire on the order confirmation page, with the right value and currency, and it has to fire once. It is common to find it firing twice (a double count), firing with tax or shipping included when Shopify's report excludes them, or not firing at all after a theme change or a checkout update. This is the one reason on the list that is a fault rather than a feature, and it is where a gap that suddenly changes usually comes from.

7. Different definitions of the same word. "Revenue" in one report includes shipping and tax; in the other it is net of both. "Conversion rate" in Shopify is orders divided by sessions by Shopify's definition of a session; in GA4 it is purchases divided by GA4 sessions, and the two session counts are themselves different. Before comparing any two numbers, read the definition under each one. A surprising number of arguments end there.

Which to trust for which decision

Money questions go to Shopify. How much did the business sell, what is the average order, what is the refund rate, what goes to the accountant. Shopify is the ledger, and no analytics tool should ever be used to overrule it.

Behavior questions go to GA4. Where do visitors come from, which pages do they read before buying, at what step do they abandon, how does mobile compare with desktop, which campaign brought people who went on to buy. GA4 is imperfect at all of these, because it only sees the visitors it is allowed to see, but it is the only tool that sees them at all. Its numbers are best read as proportions and trends rather than as totals: a channel that produces 30 percent of tracked purchases probably produces close to 30 percent of real ones, even if GA4's total is short.

Ad platform numbers go to neither. Google Ads and Meta each count the conversions they can claim by their own rules, and they do not know about each other, so added together they routinely exceed the orders the store took. Use them to compare campaigns within a platform and to feed the platform's own optimization, not to count sales.

Shopify is the ledger, and no analytics tool should ever be used to overrule it.

The gaps that do mean something is wrong

A steady gap, with Shopify somewhat higher than GA4, is the normal state. Three patterns are not.

GA4 reports more orders or more revenue than Shopify. Since GA4 can only ever see a subset of real orders, a higher number almost always means a purchase event firing twice, or firing on page reloads of the confirmation page. Check the event.

The gap changes sharply between one month and the next without a change in the business. Something in the tracking broke or was duplicated, most often after a theme edit, an app install, a checkout change, or a consent banner update. Find the date the gap moved and ask what was changed that week.

The gap is enormous, say more than a third, and the store does not do much offline or manual selling. That usually means the purchase event is missing on a whole class of orders, for example every order paid through one payment method or every order from one device type. It is worth an hour with someone who can read the event stream.

A reconciliation you can do once a quarter

Pick a full calendar month at least two weeks in the past, so refunds have settled. Confirm both tools are set to the same time zone. From Shopify, take total orders and net sales for online-store orders only, excluding point of sale, drafts, and manual orders. From GA4, take purchases and purchase revenue for the same dates. Write down the two pairs and the percentage difference. Do the same three months later. If the percentage is roughly stable, the tracking is healthy and the gap is the ordinary kind. If it moved, you have a date range to investigate and a reason to look.

Item six of the free 12-point audit is the version of this check for ad platforms, and it is the one I would run first if the ad accounts are also in the meeting. If nobody in the business can say which report is used for which decision, that is the first thing to fix, and it costs nothing.

Questions

Asked Along With This One

How big a gap between GA4 and Shopify is normal?

For orders and revenue, GA4 commonly reports somewhat fewer than Shopify because of consent banners, ad blockers, and purchases completed after tracking dropped. In my experience a gap of roughly 10 to 20 percent with Shopify higher is ordinary; it is a working range, not a published benchmark. A gap that swings month to month, or where GA4 is higher, is worth investigating.

Which one should I report to my accountant or my bank?

Shopify, always. It is the record of what was sold and paid. GA4 is a behavior tool, not a ledger, and its revenue figure is an estimate of what it managed to observe.

Should I just use Shopify's own marketing reports and turn GA4 off?

Keep both. Shopify tells you what sold. GA4 tells you what happened before the sale and after it: where visitors came from, which pages they read, where they left. Shopify's channel attribution is thinner and uses its own rules, so it is a second opinion, not a replacement.

My ad platform shows more conversions than either of them. Why?

Because Google Ads and Meta each count conversions they can claim by their own rules, including view-through and long click windows, and they do not know about each other. Add them together and you will exceed the orders you took. Use the platforms to compare campaigns against each other, not to count sales.

Two reports, three opinions, no decision?

Free 45-minute call. Bring last month's Shopify and GA4 numbers and I will tell you whether the gap is the ordinary kind or the kind worth fixing.

Book the free consultation

The short version. Shopify counts orders that were actually placed and paid; Google Analytics 4 counts orders it managed to observe in a browser, after consent banners, ad blockers, and its own session rules have taken their share. So Shopify is the record of what sold and GA4 is the record of how people behaved on the way to buying. They diverge for seven ordinary reasons: consent and ad blockers, session and attribution rules, time zones, refunds and cancellations, test and draft orders, checkout tracking gaps, and different definitions of the same word. A steady gap with Shopify a little higher is normal. A gap that swings, or where GA4 is higher, is a tracking problem. Use Shopify for money questions and GA4 for behavior questions, and reconcile them once a quarter.

Call 678-MORE-BIZFree Consultation