Skip to main content
CRO

GA4 vs Shopify Analytics: Why Your Purchase Numbers Don't Match (and How to Fix It)

Why GA4 and Shopify show different purchase numbers, which gaps are normal, which point to broken tracking, and how to audit and fix your setup step by step.

October 30, 2026 16 min read Talha Butt.
Share

GA4 vs Shopify Analytics: Why Your Purchase Numbers Don't Match (and How to Fix It)

Quick answer: GA4 and Shopify Analytics will never match exactly. Shopify records an order when it is placed in your store. GA4 depends on tracking in the shopper’s browser, which consent choices, ad blockers and checkout set-ups can interrupt, and it only counts what your tags send. GA4 showing somewhat fewer purchases than Shopify is normal. GA4 showing more purchases than Shopify, or a gap that suddenly changes, usually points to a tracking fault. Trust Shopify for orders and revenue, and check GA4 against it every week.

Every Shopify owner eventually opens Google Analytics, sees a different number of purchases from Shopify, and wonders which one to believe.

Usually the answer is: Shopify for orders and revenue, GA4 for behaviour and channels. But sometimes the gap is a sign that tracking is badly broken, and every marketing decision made from GA4 is based on fiction. A real example further down shows how far off GA4 can get.

This guide explains why the two tools differ, how to tell a normal gap from a broken setup, and how to audit and fix Shopify GA4 tracking step by step. It is the main guide to the question “why do my GA4 and Shopify purchases not match?”. For the related problem of ad-platform numbers disagreeing with Shopify, see Attribution Is Broken. Here Is What We Actually Trust.

Which number should you trust?

For orders and revenue, trust Shopify. Shopify records the order on its own platform when it is placed. It does not depend on the shopper’s browser, cookies or consent choices.

For behaviour and marketing channels, use GA4, carefully. GA4 tells you where visitors came from, what they did and which pages they viewed. Shopify Analytics covers some of this too, but GA4 is more flexible for channel and funnel analysis.

QuestionUse
How many orders did we get?Shopify
How much revenue did we make?Shopify
Which channel drove the most sales?GA4 (with care), plus Shopify’s marketing reports
Where do shoppers drop off in the funnel?GA4, plus session recordings
Which landing pages convert best?GA4
Is our tracking accurate?Compare GA4 purchases with Shopify orders weekly

Why GA4 and Shopify never match exactly

These are normal, expected reasons for GA4 to show different numbers from Shopify.

If you use a cookie banner with Google consent mode, shoppers who decline analytics cookies are not fully tracked. Google says GA4 can use modelling to fill some of the gaps, but modelling needs the right set-up: Google’s tags have to load before the consent banner so they can send cookieless signals, and a tag must reach a minimum amount of data before modelling applies. If your banner blocks Google’s tags until the shopper accepts, you will not get modelled data for those who decline. Modelling fills gaps; it does not close them all.

2. Ad blockers and browser privacy features

Shopify’s own help centre says customers can use browser extensions to block Google Analytics from tracking their sessions and purchases, and that Google can only count visitors who have JavaScript and cookies switched on. Those shoppers’ orders appear in Shopify but not in GA4.

3. Orders that never go through your online store

Shopify’s order reports can include point-of-sale, draft and manual orders, other sales channels and subscription renewals. GA4 only sees purchases from tracked web sessions.

4. Express and external checkouts

Some payment flows, such as express wallets or checkouts that send the shopper away and back, can interrupt tracking, depending on your set-up.

5. Timezone and date differences

If your GA4 property and Shopify store use different timezones, orders near midnight land on different days. Shopify’s help centre lists differing reporting time zones as a cause of discrepancies. Set both to the same timezone.

6. Refunds, cancellations and test orders

Shopify reports can show sales net of refunds. GA4 records the purchase when it happens and does not remove a refunded order unless you send a refund event. Test orders may appear in one tool and not the other.

7. Revenue, tax and shipping

GA4 revenue depends on what your tag sends. Google’s Ecommerce purchases report, for example, shows item revenue excluding tax and shipping, while Shopify reports separate gross sales, discounts, returns, tax and shipping.

8. Session counting rules (conversion rate and sessions only)

This one affects sessions and conversion rate, not order counts. Shopify changed how Analytics counts sessions in a rollout from 21 to 23 September 2026: sessions now run on continued activity (ending after 30 minutes of inactivity) rather than ending at midnight UTC, some sessions with no page view are now counted, and identified bot sessions are filtered out of session-based reports by default. Shopify says orders, sales and customer counts are not affected, and advises treating data from after the update as a new baseline for session-based metrics. GA4 uses its own session rules, so Shopify and GA4 session counts and conversion rates can differ, and the Shopify change can move that gap even when nothing is wrong with your tracking. For more on this, see what a good Shopify conversion rate looks like.

What’s a normal gap, and what isn’t?

There is no official “correct” gap between GA4 and Shopify, and neither Google nor Shopify publishes one. As a rough rule of thumb, not a measured benchmark, this is how to read what you see:

What you seeWhat it usually means
GA4 shows somewhat fewer purchases than Shopify web orders, and the gap is steadyUsually normal: consent, ad blockers and tracking limits
GA4 shows a much lower number, or the gap is wideWorth investigating: consent set-up, checkout tracking, missing events
GA4 shows more purchases than ShopifyCheck first for a tracking fault (duplicate events, wrong trigger), then for test orders and refunds
The gap suddenly changesSomething changed: a theme update, app, consent banner, checkout upgrade or tracking edit

The trend matters more than the exact percentage. A stable gap means your data is consistently imperfect, which is still usable. A shifting gap means you cannot trust week-to-week comparisons.

Case study: 181 purchases in GA4, about 20 real orders

The store: Lhasa Remedy, a US wellness brand on Shopify. The full write-up is on the Lhasa Remedy case study page.

The problem: the audit found that Google Analytics 4 showed 181 purchases against about 20 actual orders, a 9x gap. The cause was a Google Tag Manager add-to-cart trigger that fired on page views (the URL contained /cart) instead of on button clicks. The Google Tag Manager container was rebuilt from scratch.

What the audit found once the data could be trusted:

  • 29 of 62 sessions with add-to-cart intent (47%) hit a sold-out product.
  • Mobile was 69% of traffic, but average mobile scroll depth was 25.42%, against 40.97% on desktop.

The result: within 14 days of the fixes going live (the rebuilt tracking and the sold-out inventory fix among them), the store’s conversion rate rose from 0.9% to 2.4%, an increase of 167% (Shopify Analytics, all channels; 29 January to 28 February 2026 against 26 May to 10 June 2026).

How to read this: one store, measured over two periods of different lengths (30 and 16 days). Treat it as one example, not a benchmark or a promise of the same result.

The 7 most common causes of broken Shopify GA4 tracking

1. Duplicate tracking set-ups

GA4 is installed in more than one place, for example through Shopify’s Google & YouTube app and again through Google Tag Manager or a snippet in theme.liquid. Shopify’s help centre warns that adding Google Analytics through Google Tag Manager on top of Shopify’s built-in integration can result in duplicate tracking, and that leftover code in your theme, Additional scripts, apps or Customer events can track the same event more than once.

Sign: GA4 shows close to double the events, or each purchase appears twice in DebugView.

2. Wrong triggers

Events firing on the wrong action, such as add-to-cart on page view (the Lhasa Remedy problem above), or purchase on any page whose URL contains a word like “thank”.

Sign: add-to-cart or purchase counts far higher than makes sense.

3. Missing purchase events after checkout changes

Shopify has been moving stores to its newer Thank you and Order status pages. Its help centre says the Additional scripts section in checkout settings has been view-only since 28 August 2025, that upgrading replaces the existing pages and their customisations, and that anything in Additional scripts used for tracking has to be replaced, for example with app pixels or custom pixels under Customer events. Shopify’s upgrade guide gives 26 August 2026 as an upgrade deadline for these pages. That date has now passed, so check your admin to see whether your store has been upgraded and whether your purchase tracking came across.

Sign: GA4 purchases drop sharply after an upgrade, while Shopify orders do not.

4. Third-party apps sending their own events

Upsell, subscription or post-purchase apps can send their own purchase events, or create orders that are tracked differently.

Sign: gaps that only affect certain products or order types.

5. Purchase events firing more than once

A reloaded or revisited order page can send the purchase event again in some set-ups. Google says GA4 deduplicates purchase events that share a transaction ID, which helps, but it does not protect you when the ID is missing or different on each send.

Sign: the same transaction ID appearing against more than one purchase event.

A consent banner that blocks Google’s tags entirely until consent, or one that never passes consent updates, can remove a large share of your data.

Sign: a sudden drop in all GA4 data after installing a cookie banner.

7. Internal and test traffic

Your own team browsing and placing test orders, agency testing, or bots can inflate sessions and sometimes purchases.

Sign: spikes on days you were testing.

How to audit your Shopify GA4 tracking, step by step

You can do the basics in about an hour.

Step 1: Compare the totals for one week

In Shopify, note the number of online store orders for the last full week (exclude POS, draft and manual orders). In GA4, count purchase events for the same week and timezone, for example in an Explore report. Google’s Ecommerce purchases report is item-based (items purchased and item revenue), so it suits product analysis better than an order count. Write down both numbers and the percentage gap.

Step 2: Find out how GA4 is installed

Check every place it can live:

  1. Sales channels > Google & YouTube in Shopify admin: is a GA4 property connected?
  2. Online Store > Themes > Edit code > theme.liquid: is there a gtag.js or Google Tag Manager snippet?
  3. Settings > Customer events: are there app pixels or custom pixels sending GA4 events?
  4. Settings > Checkout: is there anything in Additional scripts? (It is view-only now, but it shows what used to run.)
  5. Your Google Tag Manager container, if you use one.

Menu names change, so check your own admin if a path looks different. Shopify also suggests opening your browser’s developer tools and looking for multiple requests to the same analytics endpoint during a single page load or event. If GA4 is installed in more than one place, you have probably found your duplicate.

Step 3: Check transaction IDs

In GA4 Explore, build a table with transaction ID as the dimension and the purchase event count as the metric. Any ID with a count above 1 means that purchase was sent more than once. Google says GA4 deduplicates purchase events that share a transaction ID, so some duplicates can be hidden in standard reports; fix the source anyway. Also look for purchases with an empty transaction ID: Google warns that GA4 deduplicates all purchase events with an empty ID, which can badly undercount. Match a few IDs to Shopify order numbers.

Step 4: Place a test purchase with DebugView on

Turn on debug mode (Google’s Tag Assistant preview does this for your own device), then open Admin > Data display > DebugView in GA4 and place a test order. Check that:

  • view_item, add_to_cart, begin_checkout and purchase each fire once, at the right moment
  • The purchase event includes transaction_id, value, currency (your store’s currency code, for example AUD or USD) and items
  • No events fire on the wrong pages

Step 5: Check triggers in Google Tag Manager

If you use Google Tag Manager, check every ecommerce tag’s trigger. Add-to-cart should fire on the add-to-cart action, not on a page view. Purchase should fire only from the checkout-completed event.

Test with consent declined and accepted. Make sure your banner works with Google consent mode and does not block GA4 for everyone.

Step 7: Check timezone and currency

Compare the reporting timezone and currency in your GA4 property settings with your Shopify store settings. They should match.

Step 8: Re-check weekly for a month

After fixing, compare totals weekly. You want a small, stable gap.

How to set up GA4 on Shopify properly

For most stores, the most reliable approach is the simplest one:

  1. Use one method only. Either Shopify’s Google & YouTube app, or a custom set-up through Google Tag Manager and Shopify Customer events. Not both.
  2. The simplest route is the Google & YouTube app. Shopify’s help centre says to create a GA4 property and a web data stream first, copy the Tag ID, then follow Google’s “Shopify: Set up your Google tag” article. Google’s own ecommerce help says that when Shopify is connected to Google Analytics, Shopify collects add_to_cart, begin_checkout and purchase for you.
  3. For advanced needs (custom events, multiple tools), Shopify has a tutorial for running Google Tag Manager as a custom pixel: it subscribes to Shopify’s customer events and pushes them to the data layer, where your tags use them (for example checkout_completed maps to GA4’s purchase). Set it up carefully so events are not duplicated.
  4. Remove old tracking code from theme.liquid and any old checkout scripts.
  5. Set up consent mode properly if you use a cookie banner. Shopify’s tutorial notes that its example consent settings might not match what your region’s privacy rules require.
  6. Exclude internal traffic in GA4.
  7. Check that purchase is a key event (GA4’s term for a conversion). Google marks purchase as a key event by default, but confirm it in your property.
  8. Document it. Write down what is installed where, so the next app install or developer does not break it.

How to compare the numbers fairly

When comparing GA4 and Shopify, compare like with like:

CheckWhy
Same date range and timezoneAvoids midnight-boundary differences
Online store orders onlyGA4 does not see POS, draft or manual orders
Gross order count, not net of refundsGA4 counts the purchase when it happens
Revenue with the same tax and shipping treatmentGA4 value depends on how your set-up sends it
Exclude test ordersThey may appear in one tool and not the other

Even done perfectly, you will still see a gap from consent and ad blockers. That is normal.

Why this matters for CRO and SEO

Broken tracking does not just make reports untidy. It leads to wrong decisions:

  • Conversion rate optimisation depends on knowing your real conversion rate by page, device and channel. If purchases are inflated, you cannot see your real problems. See Shopify conversion rate: what is good, and why benchmarks mislead for how to build a baseline you can defend.
  • SEO reporting should tie organic traffic to revenue. If GA4 attributes purchases wrongly, you cannot tell whether SEO is working.
  • Ad spend gets allocated to channels that look profitable on paper and are not.

That is why the first phase of our 6-phase forensic CRO audit, quantitative data analysis, includes a tracking check. Optimising conversion on data you cannot trust means optimising a guess.

Key takeaways

  • Trust Shopify for orders and revenue. Use GA4 for behaviour and channels, after checking it is accurate.
  • GA4 normally shows fewer purchases than Shopify, because of consent choices, ad blockers and orders outside the online store.
  • A steady, modest gap is common. GA4 showing more purchases than Shopify, or a sudden change in the gap, usually means something is broken.
  • Common causes are duplicate installs, wrong triggers, checkout tracking lost in an upgrade, app events and consent misconfiguration.
  • Shopify changed how Analytics counts sessions on 21 to 23 September 2026. Orders are unaffected, but session counts and conversion rate can differ from GA4 as a result.
  • Audit by comparing weekly totals, finding every place GA4 is installed, checking transaction IDs and testing a purchase in DebugView.

FAQs

Why does GA4 show fewer purchases than Shopify?

GA4 relies on tracking in the shopper’s browser, which consent choices, ad blockers and some checkout flows can block. Shopify records every order on its own platform. GA4 also does not see POS, draft or manual orders. A consistent, modest gap is common and usually not a problem.

Why does GA4 show more purchases than Shopify?

This usually points to a tracking fault. Common causes are GA4 installed twice, such as through the Google & YouTube app and Google Tag Manager, events firing on the wrong trigger, or purchase events sent again when an order page reloads. Check transaction IDs in GA4 for duplicates. Also rule out test orders and revenue differences first.

Which is more accurate, Shopify Analytics or Google Analytics?

For orders and revenue, Shopify is more accurate, because it records each order directly. GA4 is better for analysing behaviour, channels and funnels, but its numbers are always partial. Use Shopify as the source of truth and check GA4 against it.

How do I set up GA4 on Shopify?

The simplest method is Shopify’s Google & YouTube app, following Shopify’s and Google’s set-up guides. Advanced set-ups use Google Tag Manager as a custom pixel under Customer events. Use only one method so events are not duplicated, and test with GA4 DebugView.

Why did my GA4 purchases drop after upgrading Shopify’s checkout pages?

Shopify says upgrading the Thank you and Order status pages replaces the old pages and their customisations, so tracking placed in Additional scripts has to be replaced, for example with an app pixel or custom pixel under Customer events. Reconnect GA4 through the Google & YouTube app or a custom pixel and test a purchase in DebugView.

Why do Shopify and GA4 show different conversion rates or session counts?

The tools count sessions by their own rules, and Shopify changed its session counting on 21 to 23 September 2026. Compare orders, not just sessions, and treat Shopify’s figures from after the update as a new baseline.

How often should I check my tracking?

Compare GA4 purchases with Shopify online store orders weekly, and after every theme update, app install, checkout change or consent banner change. A sudden change in the gap is the earliest warning that something broke.

Can you trust your numbers?

If your GA4 and Shopify numbers do not line up, every decision you make from them is a guess. A tracking check is one of the cheapest things you can do in ecommerce, and one of the most useful.

Our Shopify CRO service starts with a 6-phase forensic CRO audit, which includes a tracking check. Fixes are then built in your store from day 15, and you approve each change first. Or book a free 30-minute diagnostic and we will talk through your numbers and where to look first.

About the author

Talha Butt is the founder of Prism3, a founder-led Shopify SEO, GEO and CRO agency for DTC brands in Australia and the US. Talha has four years of growth marketing experience across different industries and now focuses on DTC brands.

Free 30-min diagnostic

Seen enough?
Book a free diagnostic.

We'll identify exactly what's breaking your conversion rate and what to fix first. No pitch. No email gate. 30 minutes.

More from Prism3