Checkout Extensibility Upgrade AMA: Custom Web Pixels with Domaine

Topic summary

Domaine’s Director of Engineering, Connor Munro, hosted an AMA (July 22-26) on Shopify’s custom web pixels for checkout extensibility upgrades. The discussion covered technical implementation challenges and solutions:

Key Technical Issues Addressed:

  • Missing checkout_completed events for some clients, with reports of 30% missing orders in stores running multiple pixels
  • Pixel firing delays (3-7 seconds) causing tracking gaps when users quickly navigate away
  • Custom pixels run in sandboxed iframes, preventing DOM manipulation and external script loading
  • Order count endpoint (init.data.customer.OrdersCount) incorrectly returning zero
  • Sandbox URL parameters polluting analytics tracking
  • Google Tag Manager preview mode incompatibility with Shopify’s sandbox environment

Important Clarifications:

  • Web pixels are for tracking only, not DOM manipulation—UI extensions needed for functionality changes
  • App pixels (web workers, off main-thread) offer better performance than custom pixels (iframes, main-thread)
  • Pixels don’t fire on new customer account order status pages (support in development)
  • checkout_completed fires only once regardless of page reloads
  • Product data accessible via data.checkout.lineItems
  • Customer order count available through init object
  • Shopify developing runtime error reporting for custom pixels
  • Google migrating native app to web pixels with consent mode v2 support by end of August

Migration Guidance:

  • checkout.liquid deprecated by August 13th deadline
  • Recommended: implement pixels through Customer Events area for security and privacy compliance
  • Can revert to checkout.liquid anytime before deadline
  • Custom pixels can access cookies and local storage on top-level frame

Several participants reported ongoing debugging challenges without proper preview tools.

Summarized with AI on November 7. AI used: claude-sonnet-4-5-20250929.

AMA CLOSED

Thank you to all who participated in this AMA for Checkout Extensibility! No new questions will be accepted moving forward.

The Domaine team will continue to respond to questions already asked as they are able, but some questions might not be answered. If your question goes unanswered you’re welcome to post on our Shopify Plus board or our one of our other discussion boards.

Make sure you check out our Checkout Extensibility Upgrade board which has many FAQs and docs to help your business with the August 13th upgrade deadline.

1 Like

Yes - I think that could be our next steps. We parallel ran GA4 and UA for 18 months - to serve a 12 month YoY comparison - so had lots of time to compare the metrics. I’ll look at doing the same here - setup a new GTM container as you say - then implement a separate GA4 account to see how attribution and conversion are aligning with the current liquid implementation. If the GA4 cookies dropped are siloed to the domain of the iFrame - there should be no polution to the liquid version. I’ll look to pull through hostname, referer & document location - and explicitly set these on the GA4 tags - any other bits we need?

Hi Connor,

Thank you so much for your reply!

We’ve already tried to report this issue to Shopify support, but they only suggested to hire a Shopify expert to set it up. It is good to know that there will be a new endpoint that should fix this problem, so I guess we’ll just need to wait till it will be rolled out.

Thanks again for all your help!

Hey @Sasank , Kenza from the Customer Accounts team at Shopify. Would love to better understand your use case behind firing off Pixels in the Order Status Page, would you be able to share more context?

To clarify, the new Order Status Page cannot be on the same domain as Checkout, this isn’t something we’re going to support moving forward. This is regardless of whether Classic or New customer accounts is selected in the settings.

We do plan to add support for Pixels in the Order Status Page within New customer accounts, but we’re looking to get more context on the use cases here first.