Duplicate Purchase events are the most common audit finding we report — and they silently inflate your reported ROAS by 30–50%.
Cause 1: Theme + plugin conflict
Most common on Shopify — your theme.liquid includes a pixel block, AND a third-party app (Pixel Perfect, Trackify) installs its own. Two pixels fire on the thank-you page. Fix: remove one source, route everything through GTM.
Cause 2: Server-side + client-side without deduplication
You enabled CAPI but didn't set up matching event_id between browser and server events. Meta treats them as two separate Purchases. Fix: ensure both calls send the same event_id.
Cause 3: Thank-you page refresh
User refreshes the order confirmation page. Pixel fires again. Fix: write transaction_id to localStorage on first fire, suppress subsequent fires for same ID.
Cause 4: Multi-step checkout
Some checkouts route through multiple "thank you" pages (e.g. payment success → order confirmation → final receipt). Pixel fires on more than one. Fix: identify the canonical conversion page and fire only there.
Cause 5: GTM tag fired on wrong trigger
Tag triggers on "All Pages" instead of a specific Purchase event. Every pageview fires Purchase. Fix: tighten trigger to only the dataLayer push event.
How to diagnose your setup
Open Meta Events Manager → Test Events. Make a real test purchase. If you see Purchase fired more than once, you have one of these issues. Or get a free audit and we'll find it for you.