Don't have one? Create one ↗
Shopify setups — Customer Events & a GTM custom pixel

Lesson 1 of 8

Why Shopify Is Different

On a normal site you paste the GTM snippet into the page and you are done — the container can read the DOM, watch clicks, and see every dataLayer push. Shopify's checkout does not work that way. The old checkout.liquid approach is deprecated, and modern stores run Checkout Extensibility, where the checkout and Thank you pages are owned by Shopify and isolated from your theme.

To collect data there, Shopify gives you Customer Events (the Web Pixels API). Your tracking runs in a sandbox — a separate, locked-down context that cannot touch the storefront DOM or the page's real window. Instead of reading the page, your code subscribes to a fixed set of events Shopify emits and forwards them wherever you like.

Normal site

  • GTM snippet lives on the page
  • Container reads the DOM and dataLayer
  • Preview / Tag Assistant connects directly
  • You watch tags fire on the page

Shopify checkout

  • Checkout is sandboxed (Checkout Extensibility)
  • No access to the page DOM or window
  • You subscribe to Customer Events instead
  • Tag Assistant can't see into the sandbox

So "put GTM on Shopify" is really two jobs: GTM on the storefront the normal way, and a separate custom pixel for the sandboxed checkout. This course is about the second job — the one that trips people up.

Key takeaway

Shopify's checkout runs in a sandbox you can't reach with the ordinary GTM snippet. The supported route is Customer Events: subscribe to the events Shopify emits and forward them yourself.