GA4 purchase event not firing on Shopify
The symptom: GA4 shows healthy sessions, product views, even begin_checkout โ and then nothing. Zero purchase events, or a fraction of what Shopify's own Orders page shows. Multiple stores discovered this weeks late, because every other number looked normal. Here's why it happens and how to fix each cause.
The big one: Shopify's checkout changes killed script-based tracking
When Shopify deprecated checkout.liquid and the "Additional scripts" box on the order status page, every GA4 setup that relied on scripts in those locations lost its purchase event โ while all pre-checkout events kept working, which is exactly why the breakage is so hard to notice. If your GA4 purchase tracking predates your store's checkout-extensibility migration and you never re-implemented it, this is almost certainly your cause.
Fix: use the official Google & YouTube channel app's GA4 integration (purchase events come from Shopify's pipeline, not your scripts), or re-implement via a Customer Events web pixel with a checkout_completed subscription. Remove the dead legacy scripts either way.
Other causes worth checking
- Duplicate GA4 properties or tags. The channel app plus a theme-embedded gtag plus a tag manager container can produce two or three streams; merchants have reported duplicated properties corrupting their data after app-driven setup. Pick one source of truth and remove the rest.
- Consent mode defaults. With consent mode enforced and your banner defaulting to denied, GA4 can drop conversion events wholesale in consent regions. Verify your consent tool actually updates the GA4 consent state on accept.
- Wrong stream / measurement ID. After a rebuild or theme swap, it's common to find events flowing to an old GA4 property. Confirm the measurement ID in your live storefront source matches the property you're staring at.
- Currency/value parameter errors. Purchases can arrive but be rejected or mis-reported if value/currency parameters are malformed by a customizing app.
How to confirm in 10 minutes
- Open GA4 โ Reports โ Realtime, place a low-value test order, and watch for the
purchaseevent. (Refund it after.) - In GA4 โ Admin โ DebugView, use Google's Tag Assistant on your store to watch events fire live through checkout.
- Run the reconciliation: GA4 purchase count vs. Shopify order count over the same 48 hours. A 10โ30% GA4 undercount is normal life with ad blockers and consent; 70โ100% missing is a broken implementation.
Notice in minutes, not weeks
PixelVitals continuously reconciles what GA4, Meta, and TikTok report against your actual Shopify orders and alerts you the moment purchase events go quiet โ before the bidding algorithms drift and before the wasted spend piles up. Nothing added to your storefront.
Get early access โ $19/mo locked for life