GA4 Not Tracking Shopify Purchases? Troubleshoot Missing Orders
Introduction
You check Shopify — 800 orders.
You check Stripe — payouts match.
You check GA4 — zero revenue.
This isn’t a delay. It’s not a bug. It’s a full breakdown in your tracking setup — and it means you’re flying blind.
When GA4 isn’t capturing purchases, you can’t calculate ROAS, trust performance, or scale ad spend without guessing.
This post breaks down exactly why GA4 stops tracking orders in Shopify — and how to fix it using the new Custom Pixel model.
Why GA4 Stops Tracking Purchases in Shopify
Until recently, most teams tracked purchases with:
- GTM added to checkout.liquid
- The Google & YouTube app
- Manual GA4 scripts in theme files
But since 2023, Shopify changed how purchase tracking works.
Now, all analytics and conversion scripts must run inside a Custom Pixel — Shopify’s sandboxed system for tracking events. It works alongside Customer Events, like “checkout completed,” and replaces the old file-based model.
If your GA4 setup hasn’t been migrated to this model, GA4 will never see the order.
No signal = no revenue = broken attribution.
Quick Definitions (For Non-Technical Founders)
- GA4 (Google Analytics 4): Google’s analytics tool. Tracks behavior and purchase events.
- GTM (Google Tag Manager): A tag manager that controls when and how events are sent to GA4.
- UTMs: Snippets in your URLs that tell GA4 where the visitor came from (e.g., Facebook, Email).
- Custom Pixel: Shopify’s required tracking container for all scripts (GA4, Meta, etc.).
- Customer Events: Shopify triggers (like “checkout completed”) that tell pixels what happened.
4 Reasons GA4 Is Missing Your Orders
1. You Don’t Have a Custom Pixel Installed
If your GA4 setup isn’t running inside a Custom Pixel linked to the “checkout completed” event, GA4 never receives the purchase.
Legacy methods no longer access checkout. They are deprecated.
2. GA4 Isn’t Receiving Complete Data
Even if the pixel fires, GA4 still needs:
- Order ID
- Purchase value
- Currency
If any of those are missing, GA4 might log an event — but it will show zero revenue. That breaks your ROAS (Return on Ad Spend) calculations.
3. UTMs Aren’t Persisting Through Checkout
If someone clicks a Meta ad, adds a product, and buys two days later — GA4 needs to know where they came from.
If your UTMs don’t persist across that session, GA4 will mark the sale as “Direct” instead of “Paid Social.” That means your campaign performance will be underreported.
If this sounds familiar, read: Shopify GA4 Revenue Mismatch – Fix Missing Purchase Data for deeper UTM guidance.
4. Your Team Is Using the Wrong Tools to Test
Most teams use GTM Preview to test if events are firing.
But Shopify’s Custom Pixels are sandboxed — meaning:
- GTM Preview can’t detect events
- Test orders won’t show in debug mode
- You might think tracking works — when it doesn’t
To properly validate, use GA4’s Real-Time report, or log pixel events directly in the pixel output.
What Clean Tracking Actually Looks Like
When your system is working, here’s what happens:
- Shopify emits a checkout completed event
- Your Custom Pixel listens and sends the full order data (ID, value, currency)
- GTM or gtag.js sends that to GA4
- GA4 matches it to the right campaign using UTM parameters
Now your revenue shows up.
Your source data is accurate.
You can finally trust your reports.
If you want to prevent broader setup issues, see 5 Common Shopify GA4 Tracking Mistakes — most setups fail in more than one place.
Final Checklist Before You Launch Paid Campaigns
- Custom Pixel is installed and active
- It listens for “checkout completed”
- Purchase value, currency, and order ID are sent
- UTMs are stored and passed properly
- You’re validating via GA4 Real-Time (not GTM Preview)
Conclusion
If GA4 shows zero — but Shopify shows revenue — you’re not tracking.
You’re guessing.
That breaks attribution. That blocks scaling. That puts every marketing decision at risk.
Book a discovery call — we’ll inspect your setup, fix the pixel, and make sure every purchase shows up exactly where it should.
Your numbers should work as hard as you do. Let’s fix them.