If you track a Shopify store, you have probably seen the message that Additional Scripts and checkout.liquid are gone. Checkout tracking now runs through Customer Events, Shopify's pixel system. That raises a common question: should you use Customer Events, Google Tag Manager, or both? This guide explains how they fit together and the setup I use on client stores.
What are Shopify Customer Events?
Customer Events is the section in Shopify admin → Settings → Customer events where tracking pixels run. Shopify publishes standard events such as page_viewed, product_viewed, product_added_to_cart, checkout_started and checkout_completed, and pixels subscribe to them.
There are two kinds of pixels:
- App pixels come from apps like the Google & YouTube channel or the Facebook & Instagram channel. Shopify loads them in a strict sandbox that runs in a web worker.
- Custom pixels are code you paste in yourself. Shopify loads them in a lax sandbox, an iframe that can run scripts but cannot access the main page.
The key point: on the checkout and thank-you pages, your theme code and normal GTM container do not run. Only Customer Events pixels do.
Where Google Tag Manager fits
GTM still works on Shopify, but in two different places:
- Storefront (theme). GTM installed in the theme runs on home, collection, product and cart pages, like on any website.
- Checkout (custom pixel). To track checkout steps and purchases with GTM, you load a GTM container inside a custom pixel and push Shopify's events into its data layer.
Because the custom pixel is sandboxed, a few things behave differently:
- The pixel cannot read the main page, so all data must come from Shopify's event payload.
- Normal GTM Preview does not connect inside the sandbox, so checkout testing uses the browser console, the pixel's own debug output or the server container's Preview.
- Field names must match exactly. If the pixel sends
transactionIdbut your GTM variable readstransaction_id, the tag silently sends nothing.
Native apps vs custom setup
| Native channel apps | Custom pixel + GTM | |
|---|---|---|
| Setup time | Minutes | A few hours |
| Control over events and parameters | Low | Full |
| Extra destinations (TikTok, Pinterest, etc.) | One app per platform | One container for all |
| Deduplication with server events | Handled inside each app | You control the event IDs |
| Server-side GTM | Not used | Easy to add |
| Best for | New stores, small budgets | Stores spending seriously on ads |
The most common problem I find in audits is both running at once: the native Facebook app sends Purchase, and a custom pixel or server tool sends it again. Run your store through the free Tracking Checker and check Customer Events to see everything that is active. Keep in mind the checker only sees the page source, so app pixels inside Customer Events must be checked in Shopify admin.
The setup I recommend
For stores running Google Ads or Meta ads, this setup gives reliable data:
- GTM on the storefront for page views, product views and add-to-cart, with a clean data layer.
- One custom pixel that listens to Shopify checkout events and forwards them to GTM with the same field names.
- A server-side GTM container (for example on Stape) that receives the events and sends them to GA4, Google Ads and Meta Conversions API with deduplication. See Shopify server-side tracking.
- Native channel apps kept only for catalogue sync, with their own tracking turned off, so purchases are not counted twice.
- A test purchase and a 7-day comparison of GA4, Google Ads and Meta against real Shopify orders.
You can see real Shopify tracking projects, such as Oxygen Concentrator Depot in the USA and Modalclo in Bangladesh, in my case studies.
Quick checklist
- No tracking code left in old Additional Scripts or the theme's checkout files
- Only one source sends each purchase to each platform
- Purchase events include value, currency, items and order ID
- Browser and server events share an event ID
- Consent is respected before marketing pixels fire
If you are comparing tools for this, read Stape vs Elevar vs Analyzify, or see my Shopify conversion tracking service.