Settl.

Tracking / Troubleshooting

Facebook pixel not tracking purchases? Check these in order

When your Facebook pixel is not tracking purchases, the cause is usually one of a handful of things. Work through this checklist from the quickest checks to the structural fixes. Most stores find the problem in the first three steps.

Rule out setup errors first

Wrong pixel id, duplicate pixels and blocked scripts are quick to spot.

Compare like with like

Ads Manager and your store count differently. Line them up before you panic.

Then fix the structural gap

Send purchases from your orders with the Conversions API.

1. Is the Purchase event firing at all?

Open Meta Events Manager, pick your pixel and use Test Events. Place a real test order and watch whether a Purchase event comes in. You can also use the Meta Pixel Helper browser extension on your thank-you page.

No event at all points to an installation problem: the pixel isn't on the order confirmation page, the wrong pixel id is used, or a script error stops it. On Shopify, check Settings, then Customer events, and the Facebook & Instagram app. On WooCommerce, check your plugins and theme.

Shopify only: three settings that quietly stop purchases

Most Shopify threads about missing purchases end at one of these. They're quick to check before you dig deeper.

  • Data sharing level in the Facebook & Instagram app. Go to Sales channels, Facebook & Instagram, Settings, Data sharing settings. Shopify's help center (checked October 2026) lists Standard (browser pixel only), Enhanced and Maximum (pixel plus the Conversions API). On Standard, every purchase depends on the browser.
  • A custom pixel that isn't connected. If you added the Meta code yourself under Settings, Customer events, the Status column must say Connected. Saved but disconnected pixels don't run. The code also needs your real pixel id, not the placeholder from a template, and has to subscribe to the checkout_completed event.
  • Customer privacy settings. A custom pixel with permission set to Required only runs after the buyer gives consent. If you use a third-party cookie banner, it has to pass that consent to Shopify; Shopify notes that otherwise the pixel might not fire even after the buyer accepts.

2. Is it firing twice, or from the wrong pixel?

Stores that have been through a few apps often have the pixel loaded two or three times. That can show up as doubled purchases, or as purchases landing on an old pixel that isn't connected to your ad account. Make a list of every place your pixel id appears and keep one browser source.

3. Are you comparing the same thing?

Ads Manager isn't meant to match your store's order count. It only counts purchases it can link to an ad within your attribution window (by default, 7 days after a click or 1 day after a view), and it reports them on the day of the ad interaction, not always the day of the order. Time zones of the ad account and the store can differ too.

Before you decide the pixel is broken, compare a full week, the same time zone and only orders that plausibly came from Meta.

4. Is consent stopping it?

If your cookie banner blocks marketing cookies until the buyer accepts, the pixel won't fire for buyers who decline or ignore it. That's correct behaviour, not a bug, but it explains part of the gap. Check how many visitors accept, and that accepting really does switch the pixel on.

5. Does the buyer reach the thank-you page?

A browser pixel can only report a purchase if the confirmation page loads in the same browser. Buyers who pay through a redirect (PayPal, bank apps, iDEAL) and don't return, who close the tab right after paying, or who started in Instagram's in-app browser and finished in Safari, are often lost here. Ad blockers and Safari's cookie limits add to it.

No setting fixes this side of the problem. The pixel lives in the browser, and the browser isn't always there.

6. Send purchases from your orders as well

The structural fix is the Meta Conversions API: send each paid order from a server, built from your store's order data, with the same event id as the browser pixel so Meta counts it once. Include the saved ad click (fbc), the browser id (fbp) and hashed email and phone, so Meta can link the sale to the right person and ad.

Settl does this for you on Shopify and WooCommerce, and for TikTok, Google, Snapchat, Pinterest, X, Microsoft Ads and Reddit at the same time. The click is saved when the visitor lands and kept for 90 days, so a buyer who comes back next week still counts for the ad that brought them.

7. Check deduplication and match quality

Once server events are running, go back to Events Manager and open the Purchase event. You should see both browser and server listed as sources, and Meta should report that the events are being deduplicated. If purchases suddenly double, the event ids from the two sources don't match, or a second tool is sending server events too.

On the same screen, Meta shows Event Match Quality for the Purchase event. It reflects how much customer information comes with each event. Hashed email, phone, the click id and the browser id all raise it. A low score usually means the server events are arriving without enough of those details, so Meta can't link the sale to an ad even though it received it.

Check this again a week later. Match quality settles once enough purchases have come in, and it's the clearest sign that your Facebook pixel and server events are now working together.

The opposite problem: Meta shows purchases your store doesn't have

Sometimes it goes the other way, and Ads Manager reports sales that never happened in your store. That's almost always a counting problem, not extra sales.

  • The same pixel id is installed on another store, a landing page builder or an old funnel, and its purchases land in your ad account.
  • Test orders, cancelled orders or refunds were reported when they were placed. Meta doesn't remove a purchase because the order was cancelled later.
  • Custom code sends Purchase again when the buyer reloads or revisits the order status page, without a fixed event id per order.
  • Two tools send server events for the same order with different event ids, so Meta can't merge them.

How to set it up with Settl

  1. 1Run a test order

    Watch for the Purchase event in Meta Events Manager, under Test Events.

  2. 2Remove duplicate pixels

    Keep one browser source for your pixel id across theme, apps and plugins.

  3. 3Compare a full week

    Same time zone, same attribution window, only Meta-driven orders.

  4. 4Add server-side purchases

    Connect Settl so every paid order also reaches Meta through the Conversions API.

Pricing

Monthly, cancel any time. No contract, no fee per order from Settl.

99,9% Tracking

Keep Shopify's checkout. Every paid order sent server-side to Meta, TikTok, Google, Snapchat and Pinterest.

7,99 $first month, then 44,99 $/month

Start with 99,9% Tracking

Pro

Your own checkout plus 99,9% Tracking and ROAS per ad, in one plan.

10,99 $first month, then 54,99 $/month

Start with Pro

Questions

Why does Ads Manager show fewer purchases than my store?+

Some buyers didn't come from Meta, some were outside the attribution window, and some purchases never reached Meta because the browser pixel was blocked or didn't load. The Conversions API addresses that last group.

My pixel shows add to cart but no purchases. Why?+

That usually means the pixel isn't loading on the order confirmation page, or buyers aren't reaching it, for example after a payment redirect. Check with a test order first.

Will the Conversions API double my purchases?+

Not if the server event and the browser event share the same event id. Meta then keeps one. Settl sets this for every event.

Can any tool track 100% of purchases?+

No. Buyers who decline tracking, never clicked an ad or can't be matched by Meta won't be attributed. Server-side tracking makes sure every paid order is delivered; Meta decides what it can match.

How long does it take to fix with Settl?+

Setup takes a few minutes. You'll see purchases arriving server-side from the next paid order.

Facebook shows purchases but Shopify shows none. Why?+

Usually the pixel id is also used on another site or store, or purchases were sent twice or for test orders. Check every place your pixel id is installed and look at the event source URLs in Events Manager.

Related

All guides and comparisons →

Every sale back to your ads.

Get started
Facebook pixel not tracking purchases? A checklist · Settl