Table of Contents
- 1 What Is Checkout Extensibility?
- 2 Why the Old Tracking Approach Broke
- 3 The Replacement: Shopify Customer Events
- 4 Server-Side Tracking: The Complementary Layer
- 5 What About the Additional Scripts Section?
- 6 How to Audit Whether Your Checkout Tracking Is Working
- 7 Migrating Your Tracking to Customer Events: What It Involves
- 8 Wrapping Up: Checkout Extensibility Is the New Standard — Your Tracking Needs to Match
If you've been running a Shopify store for a while and recently noticed that your checkout-related events have gone quiet in GA4 — or that your conversion tracking apps have stopped reporting accurately — Checkout Extensibility is almost certainly the reason.
Shopify's shift to Checkout Extensibility is one of the most significant architectural changes the platform has made in years. It rewrites the rules for how the checkout page can be customised, what code can run inside it, and — critically — how tracking works during the checkout flow. For most store owners and marketing teams, this change happened quietly in the background while the consequences showed up as unexplained gaps in conversion data.
This guide explains what Checkout Extensibility is, why it broke the tracking approach that many Shopify stores were relying on, what the correct replacement approach is, and the concrete steps needed to restore accurate checkout and purchase tracking.
Has your Shopify checkout tracking stopped working since the Extensibility migration? Incisive Ranking can audit your setup and rebuild it using the correct Customer Events approach.
Get a Free Checkout Tracking AuditWhat Is Checkout Extensibility?
Checkout Extensibility is Shopify's framework for allowing merchants to customise the checkout experience. Before it existed, the primary way to customise Shopify's checkout was through checkout.liquid — a Liquid template file that gave merchants direct access to the checkout page's HTML. If you wanted to add a tracking script, a trust badge, a custom field, or a upsell widget to checkout, you added it to checkout.liquid.
Checkout Extensibility replaces this approach with a structured extension system. Instead of editing raw HTML, merchants and app developers use officially sanctioned extension points — predefined locations in the checkout UI where content can be injected using Shopify's own component framework. The checkout itself becomes a controlled, sandboxed environment rather than a template you can freely edit.
checkout.liquid for non-Plus merchants in 2024. Shopify Plus merchants had a later deadline but are now also required to migrate. Once migrated, arbitrary JavaScript — including your GTM container script and custom tracking tags — cannot run inside the checkout pages.Why the Old Tracking Approach Broke
Before Checkout Extensibility, many Shopify stores tracked checkout events in one of two ways:
- Adding GTM or custom tracking scripts directly to
checkout.liquidso they loaded on every checkout page - Using the Additional Scripts section in Shopify's checkout settings to inject tracking code on the thank-you page
Both of these approaches relied on the ability to inject arbitrary JavaScript into Shopify's checkout pages. Checkout Extensibility removes that ability. The checkout is now a sandboxed React-based environment where Shopify controls what runs. External scripts that used to load via checkout.liquid or Additional Scripts simply no longer execute.
The result for stores that haven't migrated their tracking approach: checkout step events (begin_checkout, add_payment_info, add_shipping_info) stop firing, and in some configurations purchase events become unreliable or disappear entirely from GA4 and ad platform reports.
The Replacement: Shopify Customer Events
Shopify's official replacement for checkout tracking is the Customer Events system, accessible through Shopify Admin → Settings → Customer Events.
Customer Events is a sandboxed JavaScript environment that Shopify specifically provides for tracking purposes. It runs inside the checkout, has access to checkout event data (what items are in the cart, what step the user is on, order details), and can emit events to analytics platforms — but it operates within Shopify's security model rather than as arbitrary injected code.
How Customer Events Work
You create a Customer Event pixel — a block of JavaScript code — and register it in the Customer Events settings. Shopify makes a set of standardised events available inside this environment that fire at key moments in the checkout flow:
checkout_started— when the user enters the checkoutcheckout_address_info_submitted— when shipping address is enteredcheckout_shipping_info_submitted— when a shipping method is selectedcheckout_contact_info_submitted— when contact details are enteredpayment_info_submitted— when payment details are addedcheckout_completed— when the order is placed successfullypage_viewed— on each checkout page view
Inside your Customer Event pixel, you subscribe to these events and write the code to send them to GA4, Google Ads, Meta, or wherever else you're tracking.
What Customer Events Can and Cannot Do
Customer Events runs in a web worker — a separate JavaScript context from the main page thread. This is a security design by Shopify. It means Customer Events code can make network requests (to send data to GA4, Meta, etc.) but cannot access or modify the DOM, cannot read cookies set on the main page, and cannot use most browser APIs that your storefront JavaScript relies on.
Server-Side Tracking: The Complementary Layer
Customer Events handles the checkout tracking well for most standard events, but the most critical event — the confirmed purchase — has an important complementary approach: Shopify webhooks.
When an order is placed, Shopify sends a webhook notification from its own servers to any endpoint you've configured. This fires regardless of what happens in the user's browser — no ad blocker, no iOS privacy feature, no session loss from a PayPal redirect can prevent a webhook from firing. It's the most reliable signal for confirmed purchases that exists in the Shopify ecosystem.
The recommended architecture for purchase tracking post-Checkout Extensibility is:
- Customer Events pixel fires a
checkout_completedevent on the client side — this captures browser context like UTMs, session data, and is quick - A server-side webhook fires to your server or GTM server container, confirming the order from the backend with complete order data
- Your server forwards the purchase event to GA4 (via Measurement Protocol), Google Ads (Enhanced Conversions), and Meta (Conversions API) with proper deduplication
This two-path approach ensures you're not dependent on either the browser or the webhook alone — and with a shared event_id, the platforms deduplicate automatically so you don't double-count.
Setting up Customer Events alongside server-side webhooks requires careful implementation. Our team specialises in exactly this setup for Shopify stores.
Talk to Our TeamWhat About the Additional Scripts Section?
Shopify has replaced the Additional Scripts section in checkout settings with a more structured Order Status page configuration. Scripts that previously ran on the thank-you page via Additional Scripts need to be migrated to either Customer Events or a dedicated Order Status page extension.
If you were using Additional Scripts to fire GA4 purchase events or Google Ads conversion tags on the thank-you page, those scripts are no longer executing for stores that have completed the Checkout Extensibility migration. This is a silent failure — Shopify doesn't send you an error, the checkout works fine for customers, and conversion tracking just quietly stops.
| Old Approach | Status | New Approach |
|---|---|---|
| GTM in checkout.liquid | Deprecated / Broken | Customer Events pixel |
| Custom JS in checkout.liquid | Deprecated / Broken | Customer Events pixel or checkout extensions |
| Additional Scripts (thank-you page) | Replaced | Order Status page extension or Customer Events checkout_completed |
| Tracking apps using checkout.liquid injection | Likely broken | Verify app has Customer Events support; update or replace |
| Shopify webhooks (purchase confirmation) | Still works — unchanged | Continue using; recommended as complementary layer |
How to Audit Whether Your Checkout Tracking Is Working
Before rebuilding anything, verify what's actually broken. Here's a practical diagnostic process:
- Place a test order using Shopify's test payment gateway
- Check GA4's Realtime report and DebugView for purchase and checkout events
- Check Meta Events Manager Test Events tool for purchase events from the browser
- Check your GA4 Monetisation report 24–48 hours later to confirm the purchase appears
- In GTM's Preview mode, check whether any tags are firing during the checkout flow — they likely aren't if you haven't migrated
- Go to Shopify Admin → Settings → Customer Events and check whether any pixels are configured there
If you find no Customer Events pixels configured and your checkout/purchase events have gaps, you've confirmed the problem. The next step is building the replacement implementation.
Migrating Your Tracking to Customer Events: What It Involves
The migration involves writing a JavaScript pixel that uses Shopify's Customer Events API, registering it in your Shopify admin, and testing it against all your checkout flows. The complexity depends on how many platforms you're tracking and what data you need to pass with each event.
A basic implementation — GA4 page views and checkout events, one conversion tag — can be built and tested in a few hours by a developer familiar with the Customer Events API. A full multi-platform setup covering GA4, Google Ads, Meta, and TikTok with proper hashed data for Enhanced Conversions and CAPI matching takes longer, and should include deduplication logic if you're also running server-side tracking in parallel.
For Shopify Plus merchants who previously had heavily customised checkouts built in checkout.liquid, the migration is more involved — both because the tracking needs to be rebuilt and because any other checkout customisations need to be ported to the Checkout Extensibility extension framework simultaneously.
Wrapping Up: Checkout Extensibility Is the New Standard — Your Tracking Needs to Match
Checkout Extensibility isn't optional and it isn't going away. For stores that completed the migration without updating their tracking, there's an active gap in conversion data that's affecting every decision made from those reports — campaign optimisation, ROAS calculations, attribution of revenue to traffic sources.
The good news is that the Customer Events API, combined with server-side webhook tracking, gives you a more robust and reliable foundation than the old checkout.liquid approach. It's more structured, harder to break accidentally, and designed specifically for the privacy-constrained tracking environment that 2025 requires.
At Incisive Ranking, migrating Shopify checkout tracking to the Customer Events framework is something we do regularly. If your conversion data stopped making sense after a Shopify update, this is where we'd start.
Is your Shopify checkout tracking broken after the Extensibility migration? Get a free audit and a clear rebuild plan from Incisive Ranking.
Get My Free Checkout Audit View Our Services
