Available for projects & agency overflow · Quick reply, from the person who does the work

Meta pixel and Conversions API on Shopify

On Shopify, the "Meta & Instagram" sales channel often handles pixel and Conversions API together, with no code to add to the theme. But since Shopify’s checkout changes, the payment page can no longer receive hard-coded scripts: anything not covered by an official channel has to go through Custom Pixels instead.

Describe my issue Send a message

What I see most often

  • A Meta pixel added years ago directly in theme.liquid that no longer fires on the checkout page
  • A drop in Purchase events reported to Meta with no apparent change on the shop’s side
  • Confusion between the "Meta & Instagram" sales channel and a pixel set up manually for the same account
  • Uncertainty about what Shopify automatically migrated to custom pixels since 2025
  • Hesitation between letting the native channel handle everything or going back to manual configuration

What I check and configure

  1. Prioritising the official Meta & Instagram channel

    I favour installing via the Meta & Instagram sales channel, available from the Shopify admin, over a hard-coded pixel: it generally covers both the browser pixel and the Conversions API.

  2. Checking what the channel actually sends

    In Meta Events Manager, I check that key events (ViewContent, AddToCart, Purchase) appear with two sources, a sign the Conversions API is active alongside the pixel.

  3. State of legacy pixels after migration

    I check whether an old pixel not set up via an official channel was automatically migrated to a Custom Pixel since early 2025, and confirm it still sends the expected events after that migration.

  4. Covering the checkout step

    Since the checkout changes, I specifically check that the purchase event fires on the confirmation page, via the official channel or, failing that, a Custom Pixel set up in Settings > Customer events.

  5. Checking for duplicates

    I check the same tool isn’t being tracked twice: once via the official channel, once via a manually added Custom Pixel for the same source.

A constraint specific to Shopify: the checkout no longer takes hard-coded scripts

Since the switch to the new checkout system ("checkout extensibility"), Shopify has removed the ability to add custom scripts directly to the payment and confirmation pages, the old "Additional scripts" mechanism in checkout.liquid. Shopify communicated a deadline of 28 August 2025 for legacy customisations to stop rendering on thank-you and order status pages.

Since that change, Shopify recommends Custom Pixels, available in Settings > Customer events, which run in a sandboxed environment separate from the theme. Another thing to check: since early 2025, old pixels not configured via official app channels were removed from the Preferences page and automatically migrated to custom pixels, with a risk of losing measurement that Shopify itself flagged while the migration is verified.

The practical consequence: on Shopify, setting up a Meta pixel is no longer a matter of a single code location. Both the theme and the checkout step need covering, via the official channel or custom pixels.

Related pages

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

outil
api
sens
frequence (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

Is the Meta & Instagram channel enough on its own?
In most cases, yes: it generally covers pixel and Conversions API together. I still check in Meta Events Manager that both sources appear for key events.
What are Custom Pixels?
A Shopify feature, available in Settings > Customer events, that sends tracking data (to Meta, Google Analytics or another tool) from a sandboxed environment separate from the theme code, including on the checkout pages.
Why doesn’t my pixel in theme.liquid work on the checkout page anymore?
Since Shopify’s checkout changes, the payment page can no longer receive a custom script hard-coded in the theme. You need to go through the official channel or a Custom Pixel to keep measuring that step.
How do I know if my pixel was automatically migrated by Shopify?
I check in Settings > Customer events whether a custom pixel bears the name of the relevant tool, and confirm in Meta Events Manager that the expected events are still coming through.