Migrate Shopify checkout tracking to Web Pixels and server-side events
Quickly replace checkout.liquid scripts with app-based Web Pixels and a server-side forwarding plan to preserve conversion tracking, reduce duplication, and reg...
Quickly replace checkout.liquid scripts with app-based Web Pixels and a server-side forwarding plan to preserve conversion tracking, reduce duplication, and regain lost ad conversions after Shopify’s checkout extensibility changes.
What changed and why it matters
Shopify replaced checkout.liquid and “additional scripts” with an app-based Checkout Extensibility model and began disabling legacy script injections on Plus Thank‑You/Order Status pages during the 2024–2025 migration windows [1].
This shift forces merchants to move tracking from injected JS to either official app pixels (Customer Events / Web Pixels) or server-side flows, otherwise checkout and purchase events injected by scripts can stop firing or be sandboxed away from the order status page [1][2].
Quick migration checklist (for store owners, marketers, and devs)
- Inventory current checkout scripts: list apps, theme checkout.liquid snippets, and “Additional scripts” used for pixels or conversions [6][7].
- Enable/validate app pixels: open Admin → Settings → Customer events and confirm active app pixels, or install an app that uses the Web Pixels API [2].
- Plan server-side forwarding: choose an sGTM/CAPI approach (commercial app or custom server) to improve reliability and handle attribution [9][10][11].
- Remove legacy scripts only after testing: avoid duplication by disabling browser pixels once server forwarding and event dedupe are validated [7][8][12].
- Test and monitor: use Shopify order data and ad platform dashboards, and compare event_id/order_id parity across systems [4][12].
How to implement app pixels (Customer Events / Web Pixels)
Shopify recommends moving pixel logic into apps that register Web Pixels and subscribe to standard checkout and order events (checkout_started, checkout_completed) rather than injecting JS into checkout pages; these app pixels can deliver events server-side for better reliability [2][3].
Practical steps:
- Check active pixels: Admin → Settings → Customer events and remove orphaned or duplicate entries [2].
- Install or build an app pixel: use an app that lists Web Pixels support or develop a custom app that subscribes to Shopify standard events [3].
- Prefer apps that offer server-delivered events (“server pixels”) to reduce reliance on browser execution and ad‑blocking [2][9].
Server-side forwarding & deduplication patterns (technical overview)
Server-side forwarding improves delivery and attribution but requires careful deduplication so platforms don’t count the same conversion twice. Capture a stable event_id on the client, forward it with order_id to your server or sGTM container, and let the server post events to ad APIs while suppressing duplicate browser events [9][10].
Common vendor patterns include:
Implementation options
- Use a commercial sGTM/CAPI app (PixelFly, TagFly) for faster setup and first‑party domains [10][11].
- Build a lightweight app that implements Web Pixels + a server endpoint to forward events to your ad stack using event_id/order_id parity [3][9].
Testing and validation
After migration, validate payload schemas and field names — developers have reported payload changes (for example, subtotal fields) when checkout pages moved to the new Thank‑You design, so test with real orders and compare Shopify events to your ad platforms [12].
Testing checklist:
- Verify Customer Events appear in Admin and that app pixels are enabled [2].
- Confirm server posts include order_id and match Shopify order records.
- Compare transaction_id/event_id between Shopify, GA4, Meta, and ad platforms; fix prefix or field mismatches if present [4][12].
- Monitor analytics after switching: the new Shopify Analytics became default in 2025, so reconcile reporting and investigate discrepancies with ad platforms or GA4 [4].
Recommended next steps
- Audit all checkout scripts and identify mapping to app pixels or server flows [6][7].li>
- Prioritize installing an app that supports Web Pixels and server-side delivery, or schedule engineering time to build a custom app [2][3][10].
- Implement server-side forwarding with deduplication (event_id parity) and test with real transactions [9][12].
- Document the new flow and schedule periodic checks against Shopify Analytics, ad platforms, and market-specific APIs if you use Markets APIs for regional routing [5].
Evidence-backed takeaway
Action now: stop relying on checkout.liquid or additional scripts for conversion pixels, move to Web Pixels (Customer Events) and adopt server-side forwarding with event_id dedupe to protect conversion tracking and restore ad-attributed conversions.
Notes: Practical migration guides and agency checklists from migration specialists can accelerate the work, and community reports highlight common payload changes to watch while you test [6][7][8][12].