← Back to blog
Blog

Why isn't my Meta pixel tracking purchases on Shopify?

15 August 20263 min readAdzento

If your ROAS has quietly dropped and you can't work out why, the first place to look isn't your creative or your targeting — it's your pixel. Specifically: is it actually firing on the Purchase event, every time, for every browser?

A lot of Shopify stores assume their pixel is fine because they set it up once, years ago, and never touched it again. But pixels break silently. A theme update, an app install, or a cookie consent change can quietly stop your Purchase event from firing without any error message telling you.

The 30-40% you can't see

Here's the part most people miss: even a "working" pixel is blind to a large chunk of your traffic by default. iOS 14.5+ users, anyone with an ad blocker, and anyone in a privacy-focused browser (Safari, Firefox with strict tracking protection) simply won't be tracked by a browser-only pixel. For most Shopify stores, that's somewhere between 30% and 40% of actual purchases going unreported.

That matters because Meta's algorithm optimises based on what it can see. If it's only seeing 60-70% of your real conversions, it's optimising your campaigns for a distorted picture of who's actually buying — which means worse targeting, higher CPMs, and a lower reported ROAS than what you're actually getting.

How to check it yourself

  1. Open Events Manager in Meta Business Suite and go to your pixel's overview.
  2. Look at the Purchase event volume over the last 7 days and compare it to your actual Shopify order count for the same period. If the pixel number is meaningfully lower, you have a tracking gap.
  3. Check Event Match Quality (EMQ) on the Purchase event. Anything below 6.0/10 means Meta is struggling to match events to real profiles — usually because you're missing email, phone, or address parameters.
  4. Install the Meta Pixel Helper browser extension, go through a real checkout on your own store, and confirm the Purchase event fires with the correct value and currency.

The fix: server-side tracking

Browser pixels alone can't solve the iOS/ad-blocker gap — the data simply never reaches the browser in the first place. The fix is Meta's Conversions API (CAPI), which sends events directly from Shopify's servers to Meta, bypassing the browser entirely.

Shopify makes this reasonably straightforward:

  • If you're on Shopify Plus or using Shopify's native Meta & Instagram channel, server-side tracking can often be enabled with a toggle in the app settings.
  • If you're running a custom pixel setup, you'll need to wire up CAPI manually or through an app like Elevar, or via Meta's own Conversions API Gateway.
  • Either way, make sure your browser pixel and server-side events are deduplicated using a shared event_id — otherwise you'll double-count purchases, which is arguably worse than under-counting them.

What good looks like

Once server-side tracking is live and deduplicated correctly, you should see:

  • Purchase event volume in Events Manager matching (or exceeding) your actual Shopify order count.
  • Event Match Quality above 7.0/10.
  • No "duplicate pixel" or "multiple pixels firing" warnings in Events Manager diagnostics.

If you're not sure where your account currently stands on any of this, that's exactly what Adzento's free audit checks — pixel firing, event match quality, and duplicate detection, along with the campaign structure and performance issues sitting on top of it. It takes about five minutes and tells you specifically what to fix, in plain English.

Not sure where your account stands on this?

Run a free Adzento audit and get a plain-English report on your pixel, campaign structure, and performance in under 5 minutes.

Run your free audit

We value your privacy

We use essential cookies to run this site. With your consent, we'd also like to set a Meta advertising cookie to measure and improve our ads. See our Privacy Policy for details.