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.

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!