Bad tracking doesn’t announce itself. It just quietly corrupts your numbers until you’re optimizing ad spend on fiction. Run this audit once a quarter — and any time you change your theme, checkout, tag manager, consent banner or ad setup.
Each row has a healthy target and links to the deep-dive fix.
The audit at a glance
| # | Check | Healthy target | Fix guide |
|---|---|---|---|
| 1 | Purchase event fires with value, currency, items | One clean event per order | Purchase event not firing |
| 2 | GA4 vs Shopify order count | Within 5–10% (GA4 slightly lower) | GA4↔Shopify discrepancy |
| 3 | No duplicate purchases | GA4 not ~2× Shopify | Duplicate purchase events |
| 4 | Consent Mode v2 configured | Adjusts collection, doesn’t block all | Consent Mode & conversions |
| 5 | Meta Pixel + CAPI deduplicated | Same event_id, counted once | Pixel + CAPI dedup |
| 6 | Meta Event Match Quality | 8+ on Purchase (6 is the floor) | What’s a good EMQ score |
| 7 | Server-side tracking verified | Events confirmed server-side | Verify server-side tracking |
The one-number gut check
Before anything else: compare GA4 purchases to Shopify orders for a completed week.
- Within ~5–10% (GA4 a little lower): healthy.
- More than ~20% off: a configuration bug — start at checks 1, 4 and 5.
- GA4 ≈ 2× Shopify: duplicate events — go straight to check 3.
Working through the checks
1 · Purchase event. The foundation. It must fire once on the thank-you page with value, currency and a non-empty items array. If purchases are missing entirely, start here.
2 · Reconciliation. GA4 is client-side and always a little lower than Shopify’s server-side truth. A 5–10% gap is normal; a big gap isn’t. Here’s what’s normal and why.
3 · Duplicates. The most common GA4 issue on Shopify — usually native GA4 and a GTM tag both firing. If GA4 is roughly double Shopify, fix the duplication.
4 · Consent Mode. A misconfigured Consent Mode v2 can block events instead of adjusting them, silently dropping EU/UK conversions. It should reduce collection without consent, not zero it out. Does it hurt conversions? · Fix events being blocked.
5 · Pixel + CAPI dedup. Send purchases through both the Meta Pixel and the Conversions API with a shared event_id so Meta counts each sale once — not twice. How deduplication works.
6 · Event Match Quality. Even a firing event is weak if Meta can’t match it. Aim for 6+, ideally 8+, on Purchase. How to raise EMQ.
7 · Server-side. As ad blockers and iOS erode client-side tracking, server-side tagging + CAPI recover the signal. Verify events actually arrive server-side, not just in the browser.
FAQ
How do I audit my Shopify tracking? Run the seven checks above — purchase event, reconciliation, duplicates, consent, Pixel/CAPI dedup, EMQ and server-side — against each healthy target.
Fastest health check? Compare a completed week of GA4 purchases to Shopify orders: within ~5–10% is healthy, ~20%+ is a bug, ~2× is duplicates.
How often should I audit? Quarterly, and after any theme, checkout, tag-manager, consent or ad-setup change.
Want this done for you? The free Tracking-Health Mini-Audit turns these checks into a red/yellow/green score in ~10 minutes.
Sources
- FunnelFreaks — GA4 audit checklist for ecommerce brands
- AuditTags — Duplicate purchase events GA4 Shopify
- GA4Audits — GA4 purchase event parameters
- Google — GA4: verify your implementation