A Shopify conversion tracking audit is a structured pass that confirms your key ecommerce events — view_item, add_to_cart, begin_checkout and purchase — each fire once, with the right data (product IDs, price, currency, quantity), across GA4, Meta and Google Ads. The output isn’t a vague “tracking looks fine.” It’s a per-event, per-platform verdict backed by a real test order and reconciled against Shopify’s own orders, which are the source of truth. Do this and you stop guessing whether your numbers are trustworthy — you know. This guide gives you the events to check, a checklist framework, how to test each one, and what “correct” actually looks like.
Why audit tracking at all
You make real decisions on these numbers: which campaigns to scale, which products to push, whether a landing page “works.” If the purchase event double-fires, your ROAS looks twice as good as reality and you overspend. If add_to_cart is missing, your funnel looks broken where it isn’t. And tracking breaks silently — no error, no alert, just a number that drifts. A theme update moves a snippet, an app injects a second pixel, a checkout migration changes the thank-you page, and suddenly weeks of optimization are built on bad data. An audit is how you catch that before it costs you.
The events to verify (and what each should contain)
GA4’s recommended ecommerce events map cleanly onto the shopper’s journey. Verify these four at minimum, each carrying the right payload:
- view_item — fires on a product page. Should carry the item ID, name, price and currency.
- add_to_cart — fires when an item is added. Should carry item ID, price, currency and quantity.
- begin_checkout — fires when checkout starts. Should carry the cart items and total value.
- purchase — fires once on order completion. Should carry a unique transaction_id, revenue value, currency and the line items.
The single most important field is value + currency on purchase, and a transaction_id that lets you deduplicate. Meta uses the parallel events ViewContent, AddToCart, InitiateCheckout and Purchase; Google Ads fires a conversion (usually on the purchase). Same journey, different labels — your audit checks all three surfaces for the same moments.
The audit framework: event × platform
Work down the grid. For each cell, confirm the event fires, fires once, and carries correct values.
| Event (GA4) | Meta / Ads equivalent | What to check | Where / how to test |
|---|---|---|---|
| view_item | ViewContent | Fires on PDP; correct item ID, price, currency | GA4 DebugView / Realtime; Meta Events Manager → Test Events; Meta Pixel Helper |
| add_to_cart | AddToCart | Fires on add; item ID, price, currency, quantity | GA4 DebugView; Meta Test Events; browser network tab |
| begin_checkout | InitiateCheckout | Fires when checkout starts; cart value + items | GA4 DebugView; Meta Test Events (watch checkout domain) |
| purchase | Purchase / Ads conversion | Fires once; transaction_id, value, currency, line items | GA4 DebugView + Realtime; Meta Events Manager; Google Ads → Conversions → tag diagnostics; a real test order |
| Source-specific | Ads conversion action; Meta custom conversions | Attribution/value matches; no duplicate conversion actions | Google Ads tag diagnostics; Meta Events Manager overview |
How to test each surface:
- GA4 — open DebugView (enable debug mode via the GA Debugger extension or
debug_mode), then walk the funnel yourself and watch each event appear with its parameters. Realtime confirms it in aggregate. - Meta — Events Manager → Test Events shows events streaming in live as you browse; the Meta Pixel Helper browser extension flags each fire and any duplicates on the page.
- Google Ads — Tools → Conversions shows each conversion action’s status and recent activity; “tag diagnostics” / “unverified” states flag a tag that isn’t reporting.
- The test order — the only way to truly verify purchase. Place a real low-value order (or use Shopify’s test-payment / Bogus Gateway), complete checkout, and confirm the purchase event lands once in every platform with the right revenue.
Our Shopify checkout testing checklist covers placing a safe test order end to end if you haven’t done one before.
What “correct” looks like
For every event, three things must hold:
- It fires — once. Not zero (missing), not twice (duplicated). Duplicate purchase events are the most damaging and most common failure; if your numbers look inflated, start with duplicate purchase events.
- The value is right. Purchase revenue matches the order total, currency is correct, item IDs line up with your catalog. A purchase with value
0or the wrong currency corrupts ROAS silently. - It matches Shopify. Shopify’s admin orders are the source of truth. Your event counts should reconcile against them within a sane, stable margin.
Reconciliation against Shopify orders
Pick a date range and compare purchase events against Shopify admin orders for the same window. Expect GA4 and Meta to report somewhat fewer than Shopify — consent banners, ad blockers and client-side loss mean a perfect match is neither achievable nor the goal. What matters is the shape of the gap:
- Platform shows fewer than Shopify, small and stable — normal loss. Fine.
- Platform shows fewer, large or growing — under-counting; likely consent, a broken event, or a checkout-domain issue. See GA4 missing Shopify purchases.
- Platform shows more than Shopify — duplication or test traffic. This is always a bug.
If revenue reconciles in one tool but not another, the problem is in that tool’s tag, not your store. When GA4 and Shopify disagree specifically on revenue totals, revenue not matching GA4 walks the reconciliation math.
When to audit
Run the full audit at these moments — this is when tracking breaks:
- After a theme change or theme update — snippets and pixels live in the theme.
- After installing or removing an app — apps inject their own tags and can duplicate events.
- After a migration — a new checkout or replatform almost always shifts the purchase event. See tracking broke after migration.
- After any tracking or pixel change — new GA4 property, new Meta pixel, GTM edits.
- Periodically — a quarterly health check catches slow drift no one deployed on purpose.
Common mistakes
- Checking only purchase. If add_to_cart or begin_checkout is broken, your funnel diagnosis is wrong even when revenue looks fine.
- Trusting real-time without a payload check. An event can fire with an empty or wrong value; verify parameters, not just that “something fired.”
- Two pixels on the page. A theme pixel and an app pixel = every event doubled.
- Auditing in a consent-blocked session without realizing it. If you declined the cookie banner, events won’t fire — that’s expected behavior, not a bug.
- Forcing GA4 to match Shopify exactly. Chasing parity wastes days; aim for a small, stable, explained gap.
- Never re-auditing. A store that was clean six months ago has had three app installs since.
Get it verified for you
A tracking audit is fiddly, easy to half-do, and the cost of getting it wrong is real budget spent on fake numbers. If you’d rather have it done properly — every event, every platform, with a test order and a reconciliation — our Shopify development team runs this as a fixed, done-for-you conversion tracking audit. You get a per-event verdict and a fix list, not a “looks fine.”
Not sure your Shopify tracking is trustworthy? Send us your store URL — we’ll audit every key conversion event across GA4, Meta and Ads, confirm what’s firing correctly, and tell you what to fix. Get a free profit audit.