Short answer: Shopify locked the Additional Scripts field on August 28, 2025, so inline Meta Pixel, Google Analytics, and Google Tag Manager snippets stopped running at checkout. Conversions still happen, but they log without customer data, so Meta and GA4 record them as unattributed and your reported ROAS falls. The fix is to move tracking to the official channel apps and Web Pixels, then delete the old snippet.
What actually broke
The Additional Scripts field used to sit in your checkout settings. It was a plain text box where you (or an app) pasted JavaScript that ran on the checkout and thank-you pages: a Meta Pixel, a Google Analytics tag, a Google Tag Manager container, a conversion tag. When Shopify moved to checkout extensibility, that field was locked and its contents stopped executing.
The result is not a visible error. Your store still takes orders. But the pixel that used to fire on the purchase no longer sends the purchase data, so the ad platform cannot tie the sale to the click that drove it. That gap is why so many merchants saw reported performance drop while real sales held steady.
Move Google Analytics to the Google & YouTube app
Connect the official Google & YouTube channel app. It runs GA4 through Shopify's supported integration, which fires on the new checkout with purchase data intact. Once it is connected and confirmed, remove any inline gtag or analytics snippet from your theme and the Additional Scripts field.
Move Meta tracking to the Facebook & Instagram app
The official Facebook & Instagram app uses the Conversions API plus a Web Pixel, which keeps sending conversion data server-side even when browser tracking is limited. Connect it, confirm purchase events arrive in Meta Events Manager with customer data, then delete the inline pixel snippet.
Rebuild custom tags as a Custom Pixel
For anything the channel apps do not cover, such as a bespoke conversion tag or a TikTok pixel, create a Custom Pixel under Settings, then Customer events. This is Shopify's supported way to run custom tracking on the extensibility-based checkout. Rebuild each tag there rather than trying to force it back into Additional Scripts.
Verify, then remove the old code
Before you delete anything, confirm the new path works: place a test order and check that a purchase event with customer data lands in Meta Events Manager and GA4. Only then remove the old inline snippets, so you never have a gap with no tracking at all.
Scan your storefront for legacy tracking, free
The free Checkout Deadline Checker reads your storefront for inline Meta Pixel, Google Analytics, and Tag Manager code, tells you what has already moved to a Web Pixel, and gives you the admin steps for the rest. No signup, nothing stored.
Check my checkout free →Where this fits in the bigger migration
Tracking is one piece of the checkout extensibility change. The same migration also retired Shopify Scripts, which powered discounts and bundles, and is removing the legacy checkout page itself. For every date and what breaks at each one, see the checkout extensibility deadline guide.
Once tracking is stable again, the on-site conversion tools that do not depend on checkout tracking are worth a look. PopBoost handles social proof and urgency, and EZBundle runs bundle offers as a Shopify Function so your average order value work is on the supported path too.
Frequently asked questions
Will fixing this recover my lost attribution? Going forward, yes. New conversions will attribute correctly once tracking runs through the supported path. It will not retroactively fix the gap while the old snippet was dead, so the sooner you move, the less data you lose.
Do I still need Google Tag Manager? You can, but not for checkout events through Additional Scripts. Move purchase and conversion tags to a Custom Pixel or the channel apps; use GTM only for things that belong in the page body.
Is server-side tracking required now? Not required, but the Conversions API path that the Meta app uses is more resilient than browser-only tracking, so it is worth turning on.