Ready to chat?

07515 543111
Tracking Guides

Meta Pixel Not Tracking Purchases on Shopify?

Shopify says "Connected". Events Manager says nothing. Your ads manager says your campaigns aren't converting, but the orders keep coming in. Something in the middle is lying, and it's usually one of five things.

Last updated July 2026

The Symptoms

If you've landed here, you're probably seeing one of these:

  • Shopify says the pixel is connected, Events Manager shows no recent activity. The Facebook & Instagram sales channel shows a green tick, but when you open Meta Events Manager the event graph has flatlined, or shows nothing at all.
  • Page views are coming through fine, purchases aren't. Events Manager shows a healthy stream of PageView and ViewContent events, but the Purchase event is missing or a fraction of what your Shopify orders report says it should be.
  • Events fire on some devices but not others. You test on your desktop and everything works. A colleague tests on their iPhone and nothing shows up. You start doubting your own sanity.
  • Meta reports far fewer purchases than Shopify does. Shopify says 100 orders this week, Meta's attributed a handful, and your cost per purchase looks so bad you're tempted to turn the ads off.

The good news: every one of these has a boring, findable cause. The bad news: Shopify's green "Connected" badge tells you almost nothing. It means an integration exists. It doesn't mean events are actually arriving at Meta, and it definitely doesn't mean they're arriving once each with the right data attached.

The Usual Causes

1. Two Pixel Installs, or None That Actually Works

This is the one I find most often. At some point someone installed the Facebook & Instagram app (which sets up the pixel for you), and at some other point someone pasted the pixel code into the theme manually, or added it through a custom pixel, or installed a third-party tracking app that adds its own copy. Now you've got two installs. Sometimes both fire and every purchase counts twice. Sometimes they trip over each other and neither fires properly.

The reverse happens too: someone removed the old theme code during a redesign, assumed the app "had it covered", and the app integration had quietly broken months earlier. Result: no pixel at all, and nobody noticed because the badge still said Connected.

The fix is dull but non-negotiable: pick one integration, remove every other trace of the pixel, and verify. One source of truth. Meta can deduplicate events when it's set up deliberately, but two accidental installs firing the same purchase without matching event IDs just means double counting.

2. Your Tracking Is Running in a Sandbox

If your pixel was added as a Shopify custom pixel, it doesn't run on your actual page. Shopify runs custom pixels inside a sandbox, an isolated container that can't see everything the page can see. That's deliberate, and mostly sensible, but it breaks assumptions that normal pixel code relies on: access to cookies, URL parameters, the parent page itself. Tracking code that works perfectly on a normal website can half-work or silently fail inside it.

I've written up the whole mess separately, because it causes far more than just Meta problems: what Shopify's custom pixel sandbox actually breaks.

3. Checkout Changed Underneath You

Shopify has been migrating everyone from the old checkout (checkout.liquid) to Checkout Extensibility, and any tracking script that lived in the old checkout or on the "additional scripts" order status box stopped running when your store moved. If your purchases stopped tracking on a specific date, and around that date your checkout was migrated, that's almost certainly your answer.

PageView events keep flowing because the rest of the site didn't change, which is exactly why this one fools people. The storefront looks fine; it's specifically the checkout and purchase events that fell off. More on that here: how Checkout Extensibility breaks tracking.

4. Ad Blockers and iOS

Even a perfectly installed browser pixel doesn't see everything. Ad blockers block it outright, Safari's tracking prevention limits what it can store and how long its cookies survive, and Apple's wider privacy clampdown has steadily shrunk what a browser pixel can see on iPhones. How much you lose depends entirely on your audience, but for a typical UK store a browser-only pixel commonly misses somewhere in the region of 15-30% of purchases, sometimes more if your customers skew mobile and iPhone.

The important distinction: this cause doesn't make tracking stop, it makes it undercount. If Events Manager shows literally nothing, your problem is one of the other causes on this list. If it shows purchases but consistently fewer than Shopify, this is likely part of it, and the answer is sending events from your server as well as the browser (more on that below).

5. Consent Is Blocking It

If you've got a cookie consent banner, and you should have, your pixel is supposed to wait for consent before firing. Set up properly, that means you lose the visitors who decline, which is the price of doing it right. Set up wrongly, the pixel waits for a consent signal that never comes, and fires for nobody. Shopify's Customer Privacy settings, your consent app, and your pixel all have to agree with each other, and often they don't. I've covered the Google side of this in why consent mode made conversions drop, and the same logic applies to Meta.

The short version: "Connected" in Shopify is not evidence. The only evidence that matters is watching a real test purchase arrive in Meta's Test Events tool, once, with the right value attached, and then comparing a week of Events Manager purchases against a week of Shopify orders.

How to Diagnose It

You can get a long way in half an hour with three checks, in this order:

First, the Test Events tool. In Events Manager, open your pixel and go to Test Events. Enter your store's URL, then browse the store in that window: view a product, add to cart, and ideally place a real test order (you can refund it). You're watching for three things: does each event appear at all, does the purchase appear once (two Purchase rows for one order means a double install), and does it carry sensible data, right value, right currency.

Second, the Meta Pixel Helper. It's a free Chrome extension that shows which pixels are present on any page and what they're firing. Browse your own store with it open. If it shows two different pixel IDs, or the same ID loaded twice, you've found your double install. One caveat: because custom pixels run in that sandbox, the Pixel Helper can mislead you on Shopify, so treat it as a clue, not a verdict.

Third, compare the totals. Pick last week. Count purchases in Events Manager, count orders in Shopify. Identical is suspicious (nothing tracks at 100%), a modest gap is normal, a big gap or double is a problem. This is the check that tells you whether you're dealing with undercounting or double counting, and those have completely different fixes.

How to Fix It Properly

Whatever the cause turns out to be, the destination is the same:

  • One integration. For most stores, that's the official Facebook & Instagram app and nothing else. Remove manual pixel snippets from the theme, remove duplicate custom pixels, remove old tracking apps you forgot about. Every extra copy is a future double count.
  • Add the Conversions API. The browser pixel alone will always undercount, because ad blockers and iOS are not going away. The Conversions API sends purchase events from the server as well, which blockers can't touch. Set up correctly, the two work together and each purchase still counts once. Getting that deduplication right, and getting Meta to actually match the events to people, is its own topic: Meta CAPI and Event Match Quality, explained.
  • Sort consent out deliberately. Decide how consent should behave, configure Shopify's Customer Privacy settings and your banner to match, and test both the accept and decline paths. "It fires for everyone regardless" is not a fix, it's a different problem.
  • Then verify again. Test Events for the immediate check, a week-on-week comparison against Shopify orders for the ongoing one. Tracking isn't fixed when the code is deployed; it's fixed when the numbers agree.

None of this is glamorous. But your Meta campaigns are optimised by an algorithm that only knows what your pixel tells it. Feed it half the purchases and it learns from half the picture, and you pay for that in every auction. Fixing the measurement is usually the cheapest performance improvement available.

Questions People Ask

The ones that come up every time a Meta pixel goes quiet. If yours isn't here, just ask.

"Connected" only means the integration between Shopify and Meta exists, not that events are flowing. A broken app integration, a consent setup blocking everything, or a sandboxed custom pixel that silently fails will all sit behind a green Connected badge. Use Meta's Test Events tool to see what's actually arriving.

Because page views fire on the storefront and purchases fire at checkout, and Shopify's checkout is a different environment. The most common cause right now is the Checkout Extensibility migration killing old checkout tracking scripts. Custom pixel sandbox issues and consent settings that only affect checkout do it too.

Pick one, never both. For most stores the official app is the right answer: it handles the pixel and the Conversions API together and keeps deduplication consistent. The manual route only makes sense if you have a specific reason and someone who knows what they're doing. Two installs at once means double-counted purchases.

Open Test Events in Meta Events Manager, browse your store in the test window, and place a real order you can refund afterwards. Watch for the Purchase event arriving once with the right value and currency. Then back it up by comparing a full week of Events Manager purchases against Shopify's order count.

It varies with your audience, but for a typical UK store a browser-only pixel commonly misses somewhere around 15-30% of purchases to ad blockers, Safari's tracking prevention and Apple's wider privacy restrictions. Mobile-heavy, iPhone-heavy audiences lose more. That's the gap the Conversions API exists to close.

It fixes undercounting from blockers and iOS, because server events can't be blocked in the browser. It won't fix a double install, a broken integration or a consent misconfiguration, and set up badly it can introduce double counting of its own. Fix the underlying install first, then add the Conversions API on top.

Numbers Still Not Adding Up?

I do this for a living: go through your pixel, your events and your Shopify orders, find out exactly where the purchases are going missing, and give you a written fix list. Have a look at the tracking health check, or just get in touch.

More Tracking Guides

Meta is rarely the only thing that's off. See Meta CAPI and Event Match Quality, the Shopify custom pixel sandbox, why GA4 doesn't match Shopify and why consent mode made conversions drop. If you'd rather someone found the problem for you, that's the tracking health check. And if it's the ads themselves you want help with, I also run Facebook and Instagram ads.