← guides 6 min read
ecommerce shopify ga4 data discrepancy

why shopify and ga4 numbers don't match (and how to fix it)

5 May 2026

TL;DR Shopify and GA4 will never match exactly — they measure different things differently. A 5-15% variance is normal. The fix isn’t making them agree; it’s knowing which source to trust for which decision. Need help reconciling your data?

The Problem Every Ecommerce Brand Faces

You check Shopify: $47,200 in revenue yesterday. You check GA4: $41,800 in purchases. That’s an 11% gap.

Is something broken? Is GA4 missing transactions? Is Shopify double-counting?

Probably neither. This discrepancy is normal, expected, and explainable. But if you don’t understand why it happens, you’ll make bad decisions — like thinking a campaign isn’t working when the tracking is just incomplete.

The 7 Reasons Your Numbers Don’t Match

1. Attribution Window Differences

Shopify counts a sale when the payment is processed. GA4 counts it when the purchase event fires in the browser — which might be a different day if the customer completed checkout just before midnight, or if the confirmation page loaded slowly.

Impact: 1-3% variance, especially around midnight.

2. Ad Blockers and Tracking Prevention

GA4 relies on JavaScript executing in the browser. Ad blockers, Safari’s ITP, Firefox’s ETP, and privacy extensions all block or limit Google Analytics.

Estimated blocking rates in 2026: 25-35% of traffic never fires GA4 events.

Impact: 15-30% of transactions invisible to GA4.

3. Bot Filtering

GA4 automatically filters known bots from reporting. Shopify does not filter orders placed by bots (card testing attacks, scraper bots that trigger checkouts).

Impact: Shopify may show higher order counts than GA4.

4. Payment Method Redirects

When customers pay via PayPal, Klarna, or other external payment methods, they leave your site and return. The redirect can break the GA4 session, causing:

  • Duplicate purchase events (customer hits confirmation page twice)
  • Missing purchase events (session expires during redirect)

Impact: 5-10% variance for brands with high external payment usage.

5. Currency and Tax Handling

Shopify can report in different currencies depending on your settings. GA4’s purchase event value depends on what you pass in the dataLayer. If one includes tax and the other doesn’t, or if currency conversion differs, numbers diverge.

Impact: Varies — can be 5-20% if misconfigured.

6. Refunds and Cancellations

Shopify shows refunds as negative adjustments to revenue. GA4 only shows refunds if you’ve implemented the refund event — which most brands haven’t.

Impact: GA4 shows higher revenue than Shopify over time if refunds aren’t tracked.

7. Cross-Domain and Subdomain Issues

If your checkout is on a different domain or subdomain (common with headless setups), cross-domain tracking configuration errors cause GA4 to lose the session mid-checkout.

Impact: Can cause 20-50% transaction loss in GA4 if misconfigured.

The Reconciliation Framework

Here’s how to figure out what’s causing your specific gap:

CheckHow to TestExpected Outcome
Date alignmentCompare same 7-day window, not single daysReduces day-boundary issues
Transaction countCompare order IDs in both systemsShows exact missing transactions
Ad blocker impactCompare server-side vs client-side eventsQuantifies blocking rate
Payment redirectsFilter by payment method in ShopifyIdentifies redirect-related gaps
Currency/taxVerify dataLayer values match Shopify settingsShould be identical
RefundsCheck if refund event is implementedGA4 should decrease on refund

Step 1: Quantify the Gap

Pull a 30-day comparison. Export transaction IDs from both Shopify and GA4. Match them. The unmatched transactions tell you exactly where data is being lost.

Step 2: Categorise the Cause

Group missing transactions by:

  • Payment method (redirect issue)
  • Device/browser (ad blocker issue)
  • Time of day (timezone issue)
  • Traffic source (cross-domain issue)

Step 3: Fix What’s Fixable

Some solutions:

CauseFixDifficulty
Ad blockersServer-side GTMMedium
Payment redirectsBackup purchase event via webhookMedium
Cross-domainFix linker configurationEasy
Currency mismatchCorrect dataLayer valuesEasy
RefundsImplement refund eventEasy

Step 4: Accept the Irreducible Gap

Even with perfect implementation, expect a 5-10% gap. Ad blockers alone guarantee this. The goal isn’t zero variance — it’s consistent, understood variance.

💡 This is what we do. We audit ecommerce tracking setups, identify exactly where data is being lost, and fix it. Then we build dashboards in Looker Studio that show reconciled numbers from both sources. Book a 20-minute discovery call — no pitch, just scoping.

Which Source of Truth for Which Decision

This is the key insight: use different sources for different purposes.

DecisionSource of TruthWhy
Actual revenue / P&LShopifyIt’s the payment processor
Channel attributionGA4 (with caveats)Best available multi-touch view
Campaign optimisationAd platform dataMost granular signal for optimisation
Conversion rateShopify orders / GA4 sessionsBlended metric
Customer behaviourGA4Session and event data
Financial reportingShopify + accounting systemLegally accurate

Never try to make a single source answer all questions. That’s how you end up with a dashboard that’s wrong for everything.

The Server-Side Solution

The biggest single improvement you can make: implement server-side tracking via Google Tag Manager server-side container.

This means:

  • Purchase events fire from your server, not the browser
  • Ad blockers can’t prevent tracking
  • Payment redirects don’t break sessions
  • You control exactly what data is sent

Server-side GTM reduces the Shopify/GA4 gap from 15-30% to 3-8% for most brands. It’s the highest-ROI tracking investment you can make in 2026.

The setup takes 1-2 weeks and requires a cloud hosting environment (typically Google Cloud Run). Ongoing cost is $30-100/month depending on traffic volume.

When to Worry

A consistent 5-15% gap where GA4 is lower than Shopify is normal.

Investigate immediately if:

  • The gap suddenly widens (something broke)
  • GA4 shows higher revenue than Shopify (duplicate events)
  • Specific channels show >30% variance (tracking issue on those landing pages)
  • The gap is inconsistent day-to-day (session timeout or redirect issue)

Know someone drowning in spreadsheets? Share this guide with them.

If this sounds like more work than you want to take on, that’s what we do at Chartica. Book a 20-minute discovery call — we’ll scope it out, no pitch.

know someone who needs this? linkedin

keep reading.

want this done for you?

20 min call. no pitch.

book a call →