On 26 August 2026 Shopify auto-upgraded the Thank you and Order status pages on every non-Plus store that hadn't done it manually. Per Shopify's docs, code pasted into Additional Scripts on those pages is removed by the upgrade, not migrated. If a store's Google Ads, Meta or Snapchat purchase tag lived there, it stopped firing while the ad accounts kept spending.
If you inherit a Shopify store, here's the migration I'd do, in order.
1. Read what was actually in Additional Scripts
Shopify admin β Settings β Checkout β Additional scripts. It's been read-only since August 2025, but you can still read it. Copy the contents out and search for:
gtag( fbq( googletagmanager snaptr( ttq. <script src=
Every hit is a conversion tag that needs a new home. That list matters more than any generic migration table, because it's what this store was really running.
2. Prefer the official channel apps where they exist
The Google & YouTube and Facebook & Instagram sales channels send purchase events without depending on the old page, so they survived the upgrade. If a hand-pasted tag duplicated what a channel app already sends, don't rebuild it. Delete it. Two sources for one purchase is how double counting starts.
3. Rebuild the rest as a Custom Pixel
Settings β Customer events β Add custom pixel. Custom Pixels run in a sandbox and subscribe to standard events. The purchase one is checkout_completed:
analytics.subscribe('checkout_completed', (event) => {
const checkout = event.data.checkout;
const orderId = checkout.order?.id; // use as transaction / event id
const value = checkout.totalPrice?.amount;
const currency = checkout.currencyCode;
// Load the vendor script inside the sandbox, then send the event with
// the same order ID your server-side integration uses for deduplication.
console.log('purchase', { orderId, value, currency });
});
Two things to get right here:
- Pass the order ID through. If you also send purchases server side (Conversions API, Enhanced Conversions, Snap CAPI), the platforms deduplicate on a shared ID. Generate it nowhere: reuse the order's.
- Don't trust the preview. The pixel sandbox is not the live checkout.
4. Test the path that breaks
checkout_completed isn't guaranteed to fire on the thank-you page. With post-purchase upsells enabled it can fire on the first upsell page instead. Practitioners also report events firing before customer data is populated, which shows up as poor match quality. I haven't reproduced either on a store I control, so treat them as things to test, not facts. If the store runs upsells, test that path first.
5. Verify with a real order and a before/after
Place a real order on a phone. Confirm the event arrived in each platform, not just that it fired in DevTools. Then compare daily purchase counts in Google Ads and Meta for the weeks before and after 26 August against Shopify orders. That comparison is your proof that something broke and that you fixed it.
The real lesson
The only tracking that was never at risk was server-side, because it doesn't depend on a page the platform controls. Browser tags will keep getting broken by changes underneath you. Pair them with a server-side feed and a shared ID.
I wrote a longer version for store owners, with a table of what survived the upgrade and what didn't: Shopify's Additional Scripts deadline and your purchase tracking.
I'm Kamran Arshad. I run Google Ads, Meta Ads and SEO with conversion tracking behind every campaign at Marketing Kamran.












