Web/Guru

Shopify's August 26 Thank You Page Upgrade Broke Your Tracking? Here's How to Fix It

Since August 26, 2026, Additional scripts and script tags no longer run on Shopify Thank you pages. Check your tracking in 5 minutes and fix it properly.

Published
Updated
October 5, 2026
Read time
9 min read
Written by
Webguru
Shopify's August 26 Thank You Page Upgrade Broke Your Tracking? Here's How to Fix It
/On this page01 / 10

On August 26, 2026, Shopify switched off the last way non-Plus stores could run their own scripts on the Thank you and Order status pages. If your store still relied on code pasted into Additional scripts, or on an app that injected a script tag, that code stopped running. Stores that hadn't upgraded their Thank you and Order status pages by the deadline were upgraded automatically.

For most merchants the first sign is quiet: purchases keep coming in, but Google Ads, Meta, affiliate or analytics dashboards start reporting fewer conversions. This guide explains what changed, how to check your store in about five minutes, and how to rebuild tracking the way Shopify now supports.

What changed, and when

  • Shopify Plus stores: checkout.liquid, Additional scripts and script tags on the Thank you and Order status pages were sunset on August 28, 2025.
  • All other plans (Basic, Grow, Advanced): script tags on those pages were sunset on August 26, 2026, which was also the deadline to upgrade the Thank you and Order status pages. Stores that weren't upgraded by then were upgraded automatically.
  • Apps: since February 1, 2025, apps haven't been able to create new script tags on the Thank you or Order status pages.
  • The rest of the storefront is next: script tags stop running on every storefront page on March 1, 2027. If an app still loads code that way, see our theme app extensions guide. We list all these dates on our Shopify deprecation tracker.

Anything that depended on running your own JavaScript on the order confirmation page is affected. That usually means purchase pixels, affiliate or influencer tracking, post-purchase surveys, and custom messages or widgets.

Check your store in five minutes

  1. In your Shopify admin, go to Settings > Customer events and note which app pixels and custom pixels are connected.
  2. Open the pixel in Settings > Customer events and click Test to launch the Shopify Pixel Helper. It shows which events reach Shopify's pixel sandbox and flags errors.
  3. Place a test order. Use your payment provider's test mode, or a 100% discount code on a low-price product, and complete checkout with the Pixel Helper open.
  4. On the Thank you page, confirm that a checkout_completed event fires and that each ad or analytics tool you use receives it.
  5. Compare conversions in Google Ads, Meta Events Manager and your affiliate platform for the two weeks before and after August 26 against your Shopify order count. A sudden drop that your sales don't show is the tell-tale sign.

Want a quick first pass? Our free Shopify tracking checker lists the Customer Events pixels, theme tags and script tags on any store in a few seconds.

What replaces what

  • Tracking code in Additional scripts or theme files → an app pixel from the platform's official Shopify app, or a custom pixel under Settings > Customer events.
  • Google Tag Manager pasted into Additional scripts → a custom pixel that loads your GTM container and pushes Shopify's standard events into the dataLayer.
  • Apps that relied on script tags → the app's app block or app pixel. Check whether the app has released an updated version.
  • Surveys, upsells or custom content on the Thank you page → app blocks built as checkout UI extensions, placed with the checkout and accounts editor.
  • Custom checkout.liquid logic (Plus) → checkout UI extensions, and Shopify Functions for discount, delivery and payment rules.

Fix 1: use official channel apps where they exist

For Google Analytics 4, Google Ads, Meta, TikTok and similar platforms, start with the platform's own Shopify app, such as Google & YouTube or Facebook & Instagram. These install app pixels that the platform maintains, so you aren't hand-maintaining event code.

Before you switch, remove the old pixel code from theme files and Additional scripts. Shopify's own guidance is to remove or modify existing pixels first, so the same purchase isn't counted twice.

Fix 2: a custom pixel for everything else

Custom pixels live under Settings > Customer events > Add custom pixel. They run in a sandbox and subscribe to Shopify's standard events such as page_viewed, product_added_to_cart, checkout_started and checkout_completed.

checkout_completed fires once per checkout, usually on the Thank you page. If you use post-purchase upsells, it fires on the first upsell page instead. Here is the pattern for sending a purchase to a third-party endpoint:

js
analytics.subscribe("checkout_completed", (event) => {
  const checkout = event.data?.checkout;
  if (!checkout) return;
  const payload = {
    orderId: checkout.order?.id,
    value: checkout.totalPrice?.amount,
    currency: checkout.currencyCode,
    items: (checkout.lineItems || []).map((item) => ({
      id: item.variant?.id,
      name: item.title,
      quantity: item.quantity,
      price: item.variant?.price?.amount,
    })),
  };
  // Replace with your vendor's documented tracking call:
  fetch("https://tracking.example.com/purchase", {
    method: "POST",
    body: JSON.stringify(payload),
    keepalive: true,
  });
});

Custom pixels can't contain HTML, so a vendor snippet that ships as <script src="..."> has to be rewritten as JavaScript that creates the script element. By default a new custom pixel requires the customer's Marketing and Analytics consent, so check the pixel's privacy settings match your consent setup.

Google Tag Manager inside a custom pixel

If you run GTM, Shopify documents loading the container from a custom pixel and pushing events into the dataLayer. The purchase part looks like this:

js
analytics.subscribe("checkout_completed", (event) => {
  window.dataLayer.push({
    event: "checkout_completed",
    orderId: event.data?.checkout?.order?.id,
    currency: event.data?.checkout?.currencyCode,
    value: event.data?.checkout?.totalPrice?.amount,
  });
});

In GTM, the trigger's Event name must match the event value (checkout_completed), and you read orderId, currency and value with dataLayer variables. Two things catch people out:

  • Tags that GTM loads still run inside Shopify's sandbox, with the same limits as any other pixel.
  • Google Tag Assistant's Troubleshoot tag feature doesn't detect tags inside a custom pixel. Test with the Shopify Pixel Helper and your ad platform's own test tools instead.

Fix 3: content on the Thank you page

Pixels can send data, but they can't add anything to the page. For post-purchase surveys, upsell offers, delivery notes or custom messages, use app blocks: checkout UI extensions that you place in the checkout and accounts editor.

UI extensions on the Thank you and Order status pages are available on every plan. Extensions on the Information, Shipping and Payment steps of checkout are still limited to Shopify Plus (what each plan can customize). If no App Store app does what you need, a developer can build a custom extension.

Common mistakes

  • Double counting: leaving old code in theme.liquid while also installing the app pixel.
  • Consent mismatch: a custom pixel that needs Marketing consent never fires for visitors who only accepted Analytics.
  • Testing with the wrong tool: GTM's troubleshooting view doesn't see custom pixels. Use the Shopify Pixel Helper.
  • Assuming the automatic upgrade kept your widgets: the upgrade replaced the page. Anything that was injected by script has to be rebuilt as an app block.

"Customer events" greyed out or a pixel won't save

If Settings > Customer events is missing or read-only, or a custom pixel saves but never fires, the cause is usually a permission, a pixel status or a consent setting, not your code. Check these first.

SymptomLikely causeFix
A staff member or agency collaborator can't open Customer eventsTheir role doesn't include the View customer events permissionThe store owner adds it to the role under Store settings permissions
You can see pixels but can't add or edit a custom pixelThe role has view access but not Manage and add custom pixelsAdd that permission as well
An app pixel's settings can't be changedManaging app pixels needs Manage and install apps and channels, and the app developer sets each app pixel's permissions and privacy settingsGrant the permission, or change settings in the app itself
Shopify asks for a different name when you saveAnother custom pixel already uses that nameGive the pixel a unique name
The pixel is saved but tracks nothingSaving doesn't connect it, so it sits under Disconnected pixelsClick Connect and confirm. Status should show Connected
The Pixel Helper shows "Pixel is awaiting consent"Your consent rules haven't been met in this browser sessionAccept tracking in the cookie banner, or click Give consent to continue test
Consent is given, but the pixel still doesn't fireA third-party cookie banner isn't syncing consent to Shopify through the Customer Privacy APIAsk the banner vendor to confirm the sync
Pixels and consent fail on the new Order status pageYour store uses a custom domain, but the customer account domain isn't a subdomain of itUse a subdomain such as account.example.com
An app pixel went quietIts data access is Optimized, and Shopify can pause marketing pixels it sees as oversharingCheck the pixel's activity log. Switch to Always on if the app still needs the data
You can't edit the pixel, or the Pixel Helper won't startThe Pixel Helper tests one pixel at a time, blocks edits while it runs, and doesn't work on headless stores or stores in private modeSave, close the Pixel Helper tab, then reopen it with the pixel's Test button

Sandbox limits that break old tracking code

Code copied from theme.liquid or Additional scripts often fails silently inside a pixel:

  • No access to the page. Custom pixels run in an iframe (Shopify's "lax" sandbox) that can't reach the top frame. Selectors on the store's HTML, form scraping for emails or phone numbers, and outbound-link, scroll or heatmap tracking don't work.
  • The URL is the sandbox's. Read the page URL from the event: event.context.document.location.href.
  • No visible UI. Pixels can't render buttons, forms, banners or modals. Use app blocks instead.
  • App pixels are stricter. They run in a web worker (the "strict" sandbox) with no window.document. Only a few globals such as fetch, console and timers are guaranteed, and requests must support CORS.
  • DOM events have gaps. clicked, form_submitted and the input_* events work on the storefront, checkout and Thank you page, but not on the Order status page or customer account pages. On customer account pages, pixels track only page_viewed, and only after you connect a custom subdomain. Those pages exist only on the new customer accounts, not on legacy accounts.
  • For anything else, publish a custom event. Call Shopify.analytics.publish('my_store:event_name', data) from your theme, or analytics.publish from a checkout UI extension, and subscribe to that name in your pixel. You can't publish standard events, and prefixing your own names avoids collisions.

Need it fixed?

We rebuild Thank you page tracking and content for Shopify stores as a fixed-price job. That covers app pixels, custom pixels, GTM, and app blocks for surveys and upsells, and we test it with a real order. Send us your store URL and a list of the tools you track with, and we'll reply with a fixed quote.

Sources

/Tags#Shopify#Checkout#Tracking

Written by

Webguru

Shopify Development Team

Webguru.pk is a Shopify development team in Lahore, Pakistan, building stores, custom apps and integrations for brands worldwide.

/Share

Need a hand with this?

We design, build and fix this kind of work for Shopify, SaaS and AI products.

/faqs

Thank You Page Upgrade: Frequently Asked Questions

For Shopify Plus stores, checkout.liquid, Additional scripts and script tags on the Thank you and Order status pages were sunset on August 28, 2025. For Basic, Grow and Advanced stores, script tags were sunset on August 26, 2026, which was also the deadline to upgrade those pages. Stores that weren't upgraded by then were upgraded automatically.

If your purchase tracking was pasted into Additional scripts or added by an app through a script tag, it no longer runs on the Thank you page. Reconnect it with the platform's official Shopify app pixel, or with a custom pixel that subscribes to the checkout_completed event.

In your Shopify admin under Settings > Customer events. Install app pixels from official channel apps such as Google & YouTube or Facebook & Instagram, or add a custom pixel for tools that don't have an app. Remove old code from theme files first so purchases aren't counted twice.

Yes. Load your GTM container from a custom pixel and push Shopify's standard events, such as checkout_completed, into the dataLayer. Tags that GTM loads still run inside Shopify's sandbox, and Google Tag Assistant's Troubleshoot tag feature doesn't detect them, so test with the Shopify Pixel Helper.

No. App blocks built as checkout UI extensions work on the Thank you and Order status pages on every plan. Only extensions on the Information, Shipping and Payment steps of checkout require Shopify Plus.

Their staff or collaborator role is probably missing the View customer events permission. Adding or editing custom pixels needs a separate permission, Manage and add custom pixels. The store owner can add both to the role under the Store settings permissions.

Custom pixels run in a sandboxed iframe that can't access the store page, so code that reads the page's HTML, scrapes forms or tracks scrolling and outbound clicks won't work. Subscribe to Shopify's standard events instead, or publish custom events from your theme with Shopify.analytics.publish().

Conversions dropped after August 26?

We rebuild Thank you page tracking with app pixels, custom pixels and GTM, and test it with a real order before handing it back.

or write to+44 7882 755642