Audits
How to audit a broken purchase event
20 July 20269 min readKriov
'Purchases stopped tracking' is a symptom, not a diagnosis. The failure could sit in the theme, the checkout, the data layer, the container, the consent platform or the destination. Auditing means tracing the event along its entire path and finding where it stops — or doubles.
Step 1 — Reproduce reliably
Place a real low-value test order on a staging environment, or a refunded production order if necessary. Never diagnose purchase tracking from synthetic click simulations alone; checkout flows diverge sharply between test and live payment methods.
Step 2 — Inspect the data layer
// In the browser console on the order confirmation page:
window.dataLayer.filter(e => e.event === 'purchase')
// What to check:
// - Does exactly ONE purchase object exist?
// - Is transaction_id present and equal to the real order ID?
// - Does value match the order total (incl/excl decisions)?
// - Do item arrays contain real SKUs?Zero entries means the site itself never pushed the event — the problem is upstream of GTM entirely. Two entries with different values means the confirmation page fires twice under different conditions.
Step 3 — Watch GTM fire
Enable GTM preview mode and reload the confirmation page. Check whether the purchase trigger matched, whether the tag fired, and whether the network request actually left the browser. Each stage failing points to a different cause: trigger misconfiguration, blocked requests, or consent state suppressing dispatch.
Step 4 — Verify destination receipt
- GA4 DebugView shows the purchase with parameters and item array.
- Google Ads shows the conversion in the recent conversions diagnostic view.
- Meta Events Manager shows the event with a valid event_id.
- For server paths, the server container preview shows the client request and each outbound tag's response codes.
Step 5 — Reconcile the numbers
Finally, compare your test transactions against what each platform recorded. One order should produce one event per destination. Anything else gets documented with its exact cause before anything is 'fixed' — otherwise you risk patching symptoms while the root cause survives the next release.