If your Meta pixel stopped recording Shopify sales, work through it in order: confirm the pixel is installed and firing, check that the Purchase event actually triggers after checkout, rule out ad blockers and iOS opt-outs with a server-side check, and verify events in Events Manager. Most cases are either a missing Purchase event or a browser-only setup quietly losing data, and both are fixable.
First, separate 'not tracking' from 'under-tracking'
These are two different problems with two different fixes. 'Not tracking' means the pixel records no purchases at all, which points to a broken or missing event. 'Under-tracking' means it records some but fewer than your real orders, which points to data loss from ad blockers, iOS privacy and cookie limits.
Before you change anything, decide which one you have. Compare the Purchase count in Meta Events Manager against real orders in your Shopify dashboard for the same window. Zero versus many is a broken event. Fewer versus many is signal loss. The steps below diagnose both.
Run the diagnostic, in order
Work top to bottom and stop at the first step that fails, that is almost always your problem:
- Confirm the pixel is installed via Shopify's Facebook & Instagram by Meta channel, and that the base code loads on your store.
- Place a real test purchase and watch Events Manager Test Events for a Purchase event in real time.
- If Purchase never fires, the event mapping is broken, common with custom themes or a non-standard checkout.
- If it fires in Test Events but under-reports on live traffic, you are losing events to ad blockers and iOS, so add server-side CAPI.
- Check for duplicate or conflicting pixels, two pixels firing at once corrupt the data as badly as none.
The usual culprits in African stores
Some breakages are specific to how African customers actually buy. Orders that close over WhatsApp or through Mobile Money never touch the standard Shopify checkout, so the pixel has nothing to fire on. Payment gateways like Paystack and Flutterwave redirect the buyer off-site to pay, and if they do not land back on the thank-you page, the Purchase event is skipped.
So a pixel that looks broken is often working fine, it just never sees the moment the sale completes. That is a measurement design problem, not a code typo, and it is why browser-only tracking keeps failing in these markets.
Fix it for good with server-side
You can patch the immediate event, but a browser-only pixel will always leak in a market full of ad blockers, redirects and off-platform orders. The durable fix is to rebuild tracking server-side with first-party Meta CAPI, fire the Purchase from a reliable server signal, and reconcile every event against real orders.
That is the Foundation Sprint we run for every brand, and it is the difference between fixing the pixel this week and it silently breaking again next month.
Confirm it is actually fixed
Do not trust that it works because events reappeared. Reconcile the Purchase events Meta received against the real orders in your Shopify dashboard for the same period, and check that event match quality is healthy and that browser and server events are deduplicated rather than doubled.
When the two counts agree and the match quality is solid, your ad account is finally learning from real sales again.
