Open Shopify's analytics and Google Analytics 4 for the same week and the numbers rarely agree. Shopify shows more orders, revenue is off by an amount nobody can explain, and the channel that "drove" the sales depends on which tool you ask.
Some of that gap is built in and harmless. Some of it is a setup problem worth fixing before Black Friday (November 27, 2026) and Cyber Monday (November 30). Here's where each difference comes from and what to do about it.
The short version
- Shopify records every order because it processes them. GA4 only knows what a tag or app tells it. For orders and revenue, Shopify is your source of truth.
- GA4 usually shows fewer purchases: orders placed outside your online store, visitors who decline cookies and ad blockers never reach it.
- GA4 showing more purchases or revenue than Shopify is a setup problem, almost always two tags sending the same purchase, or refunds that never reach GA4.
- Sessions and traffic sources are counted differently by design. Compare trends, not totals, and fix the setup in October.
If you haven't connected GA4 yet, start with our guide to Google Analytics 4 updates and how to set it up on Shopify, then come back here.
First, compare the right numbers
Many "GA4 doesn't match Shopify" worries come from comparing two metrics that measure different things. Shopify's Total sales includes tax, shipping, duties and fees, minus discounts and sales reversals. Its Gross sales is product price times quantity, before any of that. GA4's Purchase revenue is whatever value your tag sends with each purchase, minus any refunds GA4 was told about. Line those up before you compare anything:
Two filters make the comparison fair. In Shopify, look at the online store only: the Sales by sales channel report under Analytics → Reports separates it from point of sale and other channels. And use exactly the same dates in both tools, in the same time zone (more on that below).
Why GA4 shows fewer orders than Shopify
Every order is in Shopify. Only some reach GA4:
- The order didn't happen on your website. Point of sale orders, orders you create and mark as paid in the admin, orders from other sales channels and marketplaces, and subscription renewals charged in the background all skip the online store checkout that GA4 watches.
- The visitor declined cookies. In regions where your cookie banner is shown, Shopify only collects non-essential data after consent, and GA4 tags that follow Shopify's Customer Privacy API, like the Google & YouTube app, respect the same choice. With Google's consent mode, GA4 can fill part of the gap with modeled data, but only when there's enough consented traffic to model from.
- A browser blocked the tag. Shopify's own help centre lists browser extensions that block Google Analytics, and visitors without JavaScript or cookies, as standard reasons for a gap.
- Tracking was never updated. Purchase tracking pasted into the old Additional scripts box on the Thank you page doesn't carry over to the new Thank you and Order status pages. Additional scripts became view-only on August 28, 2025, and August 26, 2026 was the upgrade deadline for stores not on Shopify Plus. If GA4 purchases dropped at the end of August, check this first. The fix is an app pixel.
- A payment redirect to another site lost the purchase event on the way back.
How big a gap is "normal" depends on your customers and markets, so measure your own: divide GA4 transactions by Shopify online store orders for a quiet month. If that percentage holds steady, trust GA4's trends. If it suddenly moves, something in your setup changed.
Why GA4 shows more orders or revenue than Shopify
This one isn't normal.
-
Two tags send the same purchase. The Google & YouTube app, an analytics app, Google Tag Manager and an old
gtagsnippet in your theme can all send GA4 events. Any two pointed at the same property double your purchases. GA4 can deduplicate purchases that arrive with the same transaction ID, but Google's own advice is to make sure you don't have duplicate tags at all. -
Refunds never reach GA4. Shopify subtracts refunds, returns and order edits as sales reversals, on the date they're processed. GA4 only subtracts refunds if something sends it a
refundevent. Shopify's Google & YouTube app doesn't, so over a busy returns season GA4 revenue drifts above Shopify's net sales. - You're comparing different totals. A purchase value that includes tax and shipping will always look high next to Shopify's net sales. Compare it with total sales.
Why sessions and traffic don't match
Both tools end a session after 30 minutes of inactivity, but each uses its own cookies, bot detection and edge-case rules. Shopify also changed how it measures sessions between September 21 and 23, 2026: sessions no longer end at midnight UTC, some sessions without a pageview (like a customer going straight to checkout from a cart link) now count, and identified bot sessions are filtered out of session reports by default. Orders and sales aren't affected; session counts and conversion rate can shift.
Why the channels disagree
Shopify's sessions and conversions use last-click attribution: if someone clicks an email on Monday and comes back by typing your address on Friday, the sale is Direct. GA4's traffic reports use last non-direct click, so the same sale goes to the email. GA4's attribution reports can also use a data-driven model, which splits credit across several touchpoints. None is wrong; pick one tool for channel decisions and stick with it.
One attribution problem is fixable, though. When a customer pays through a provider that sends them to another site and back, like PayPal or some card verification pages, GA4 can record the return trip as a new referral, and the sale gets credited to the payment provider instead of your ad or email. Tell GA4 to ignore those domains:
- In GA4, go to Admin → Data streams and click your web stream.
- Click Configure tag settings, then Show all, then List unwanted referrals.
- Add a condition for each payment domain that shows up as a referral in your traffic reports, and click Save.
Clean UTM tags on your campaign links help here too. Our guide to shortening links with tracking covers them.
Time zones and delays
Shopify reports in your store's time zone (Settings → General → Store defaults → Time zone). GA4 reports in the time zone you chose when you created the property. If they differ, a late Black Friday order can land on Saturday in one tool. Match them in October: changing GA4's time zone only affects data from then on, and can leave a flat spot or spike on the day you change it.
GA4 also needs time. Google says data processing can take 24 to 48 hours, and numbers can change during that window. Shopify's sales reports are up to date within about a minute. Compare days that have fully settled.
Set up GA4 so the numbers hold up at BFCM
-
Pick one source of GA4 events. Search your theme code for
gtagandG-, check Google Tag Manager, and make sure only one app sends GA4 events to your property. - Match the time zones in Shopify and GA4.
- Add unwanted referrals for your payment providers.
- Decide how you'll handle refunds. Either send refund events to GA4, or agree that GA4 revenue is gross and Shopify's net sales is the real number.
- Check consent. If you sell to regions that need a cookie banner, use Shopify's banner or a consent app that uses Shopify's Customer Privacy API, so every tag follows the same choice. Our cookie banner guide explains the options.
- Place a test order and watch it arrive once, and only once, in GA4's DebugView.
- Record your October baseline (GA4 transactions as a share of Shopify online store orders) to check against on Black Friday.
This fits into the two-weeks-out stage of our Black Friday Cyber Monday checklist, alongside test orders and the code freeze.
What you can fix, and what you can't
| Cause | Fixable? | How |
|---|---|---|
| Two tags sending purchases | Yes | Keep one source of GA4 events |
| Refunds missing from GA4 | Yes | Send refund events, or treat GA4 revenue as gross |
| Different time zones | Yes | Match them before the sale |
| Payment providers as referrals | Yes | List unwanted referrals in GA4 |
| Old Thank you page scripts | Yes | Replace with an app pixel |
| Ad blockers | Partly | Server-side purchase events are harder to block |
| Declined cookies | Partly | Consent mode lets GA4 model part of the gap |
| POS, admin and other channel orders | No | Compare against online store orders only |
| Different session and attribution rules | No | Compare trends, pick one tool for channel decisions |
Where an analytics app helps
Shopify's free Google & YouTube app sends the standard ecommerce events and is the right starting point, especially if you use it for your Google product feed. Where it stops is refunds: it doesn't send them to GA4, so GA4 revenue stays gross.
We build Pasilobus Google Analytics for exactly those two. Our app sends checkout and purchase events server-side, so they're harder for ad blockers to stop, and on the Pro plan it sends a refund event linked to the original order whenever you refund in Shopify, so GA4 shows net revenue. You can keep Google & YouTube for your product feed and disconnect its Google Analytics connection, so only one of them sends GA4 events. Refunds are sent for orders placed after install, up to 60 days after the order. More on what the app does in our Pasilobus Google Analytics guide.
If something looks wrong
- GA4 purchases are roughly double Shopify's orders. Two tags are sending purchases. In DebugView, each event should appear once; if you see it twice within a second or two, find the second source.
- GA4 purchases fell to near zero in late August 2026. Your purchase tracking probably lived in Thank you page additional scripts. Replace it with an app pixel.
- Shopify sessions changed overnight in late September 2026, but orders didn't. That's Shopify's session measurement update, not your traffic.
Common questions
Why does Shopify show more orders than Google Analytics?
Because Shopify processes every order and GA4 only records the purchases a tag reports. Orders outside your online store, visitors who decline cookies and ad blockers all reduce GA4's count.
Which is more accurate, Shopify analytics or GA4?
For orders and revenue, Shopify. For behavior, such as where visitors come from and where they leave checkout, GA4 gives you more detail.
Does Shopify's cookie banner affect GA4?
Yes. In regions where the banner is shown, visitors who decline aren't tracked the normal way by Shopify or by GA4 tags that respect consent. GA4's consent mode can model part of that data back.
Why did my Shopify conversion rate change in September 2026?
Shopify updated how it measures sessions between September 21 and 23, 2026, including filtering identified bots by default. Your orders and sales weren't affected; the number of sessions they're divided by was.
Get your numbers straight before the rush
If refunds or blocked purchases are what's keeping GA4 out of line with Shopify, install Pasilobus Google Analytics from the Shopify App Store. The free plan covers standard and server-side purchase tracking, so you can test it before November. If you'd rather someone checked your whole setup, from duplicate tags to time zones, talk to us.