F-1Purchases fire twice — GTM tag and native integration in parallel
Symptom
Reported purchases run consistently higher than the order platform, and the gap grows on days with more traffic.
Diagnosis
GTM Preview and DebugView show two purchase events per checkout: one from the GTM container's GA4 event tag, one from the platform's built-in GA4 integration that nobody remembered was still switched on. A BigQuery count of purchase events per transaction_id confirms it — the same order IDs appear twice. GA4's transaction_id deduplication is best-effort, and it does not reliably reconcile hits arriving from two independent sources.
Impact — in this example
In this composite example: 1,000 real orders produce roughly 1,800 reported purchases once the second pipeline and confirmation-page reloads stack up — revenue reads nearly double, and every ROAS decision made on it inherits the error.
The fix
Run exactly one pipeline. Disable the platform's native GA4 integration or the GTM tag — never both — and add a transaction_id guard so confirmation-page reloads can't re-fire the event. Then re-verify per-transaction counts in BigQuery.
Full write-up: GA4 duplicate transactions inflating revenue