Quick Answer
When Facebook ads stop tracking conversions, the cause is usually one of three things: the pixel or events aren't firing correctly, the sale happens in a way Meta can't see (iOS opt-outs, ad blockers, cross-domain checkouts), or it happens outside your attribution window. Work through the fixes below in order, because the early ones are quick and catch the most common faults.
The longer-term fix is to send conversions from your server or an independent first-party tracker, so Meta gets the sales its pixel misses.
First, Confirm How Big the Gap Is

Before changing anything, compare Ads Manager with the place your sales actually land, such as Shopify, Stripe, your funnel builder or your CRM. Use the same date range and only count orders that came from paid social if you can.
| What you see | Most likely cause | Start with |
|---|---|---|
| Zero conversions in Ads Manager, sales in your store | Pixel or purchase event not firing | Fixes 1 and 2 |
| Conversions roughly doubled | Duplicate pixel or events | Fix 3 |
| Some sales missing, worse on mobile | iOS opt-outs, ad blockers, no server-side data | Fixes 6 and 8 |
| Missing on one funnel or checkout only | Redirects or a checkout on another domain | Fix 7 |
| Sales appear late or get credited to other ads | Attribution window or settings | Fix 5 |
A small gap is normal. Meta can't see every sale, and it attributes using its own rules. A large or sudden gap points to something you can fix.
Fix 1: Check That the Pixel Fires on Every Page
Open your landing page, checkout and thank-you page with Meta's Pixel Helper browser extension, or use the Test Events tool in Events Manager. You should see your pixel load on each page and a PageView event fire.
If the pixel doesn't load on the thank-you page, Meta never sees the purchase. This happens often when a funnel builder uses a separate template for the order confirmation page, or when a theme update quietly removed the code.
Fix 2: Make Sure the Right Events Are Configured
A pixel that only fires PageView can't report sales. Check that your purchase or lead page fires the matching standard event, such as Purchase or Lead, and that Purchase includes a value and currency.
Then check that your campaigns optimize for that same event. If your ad set optimizes for Purchase but your thank-you page fires a custom event called "order_complete", Ads Manager will show nothing in the Results column.
Fix 3: Remove Duplicate Pixels and Events
Over-reporting is a tracking problem too. If a plugin, your theme and Google Tag Manager all install the pixel, each purchase may fire two or three times. Pixel Helper will show the same event repeating.
Keep one installation method and remove the others. If you also send server-side events, they need a shared event ID so Meta can deduplicate them (more on that in Fix 6).
Fix 4: Verify Your Domain

Verify the domain your conversions happen on inside Meta Business Settings. Meta uses domain verification to confirm you control the site sending events, and it's a prerequisite for configuring web events properly.
If your checkout lives on a different domain from your landing page, verify both where you can, and read Fix 7 before moving on.
Fix 5: Check Your Attribution Settings
Meta's default attribution setting for most conversion campaigns is 7-day click or 1-day view. A buyer who clicks your ad and purchases ten days later won't be credited to that ad in Ads Manager, even though your ad started the sale.
That's not a bug. It's a reporting rule. If your product has a longer buying cycle, expect Ads Manager to under-credit it, and use an independent tracker with a longer lookback to see the full journey.
Fix 6: Add the Conversions API
The Conversions API (CAPI) sends events from a server instead of the visitor's browser. Because it doesn't depend on a browser script, it isn't stopped by ad blockers or browser privacy settings in the same way the pixel is.
Most platforms make this easier than it sounds. Shopify, WooCommerce and many funnel builders offer built-in CAPI connections, and Meta offers a gateway option. Our Conversions API guide covers the main setup paths.
Deduplicate Pixel and Server Events
If the pixel and CAPI both send the same purchase, give both copies the same event name and event ID. Meta then counts it once. Without that, you'll swap under-reporting for over-reporting.
Improve Event Match Quality
Meta matches server events to people using details like hashed email, phone number, IP address and click ID. Events Manager shows a match quality score for each event. Sending more of these customer details, with consent, helps Meta attribute more conversions to the right ads.
Fix 7: Watch for Redirects and Cross-Domain Checkouts
When an ad click lands on a URL that redirects, or the buyer moves from your site to a checkout on another domain, click information can get lost along the way. The fbclid parameter that Meta adds to ad URLs may be stripped, and the pixel on the checkout domain may not know which ad the visitor came from.
Check your ad URLs land directly on the final page, without redirects that drop parameters. If your checkout is on a separate platform, make sure the pixel or a server integration fires there too, and test a purchase from an ad click all the way through.
Fix 8: Accept What iOS and Ad Blockers Hide

Since Apple's App Tracking Transparency prompt arrived with iOS 14.5, people who tap "Ask App Not to Track" limit what the Facebook app can track about them outside the app. Safari's tracking prevention and ad blockers also block or shorten third-party tracking in the browser.
You can't switch those protections off, and you shouldn't try. What you can do is rely less on browser-side tracking. Server-side events and first-party tracking on your own domain recover a meaningful share of what the pixel loses. Our iOS tracking guide explains what changed and why.
Fix 9: Add an Independent First-Party Tracker
Even with every fix above, Ads Manager is still Meta reporting on its own ads, using its own windows and its own matching. An independent tracker gives you a second, neutral record of which ad, link or email produced each sale.
This is where ClickMagick fits naturally. Its TrueTracking runs on your own domain using first-party cookies without redirects, follows buyers across devices, and sends conversions back to Meta in real time. ClickMagick also says it can send custom conversions through the Conversions API for advertisers affected by Meta's Health and Wellness restrictions.
Want a second opinion on what your Facebook ads really sell? Put ClickMagick on your funnel for 14 days and compare.
Try ClickMagick FreeSee how it works in our ClickMagick Facebook ads guide, or read the full ClickMagick review first.
Other Common Causes Worth Checking
If the nine fixes above don't explain the gap, these less obvious causes catch a lot of advertisers out.
Instant Forms and On-Facebook Leads
Leads collected through Meta's Instant Forms never touch your website, so your pixel can't see them. Meta counts them inside the platform, but your thank-you page events won't fire. If you then qualify or close those leads in a CRM, you'll need to send those outcomes back as offline or CRM events to see which ads produced real customers.
Cookie Consent Banners
If your site uses a consent banner, the pixel may only load after a visitor accepts marketing cookies. Visitors who decline or ignore the banner won't be tracked by the browser pixel. That's the correct behaviour under many privacy laws, so plan for it rather than working around it. Server-side events sent with consent, and first-party tracking that respects your consent settings, narrow the gap.
Phone, Chat and In-Person Sales
Coaches, agencies and high-ticket sellers often close deals on a call. The ad gets the click, but the sale happens days later on the phone, with no pixel anywhere near it. Meta's offline events and tools like ClickMagick's offline conversion tracking let you record those sales and credit the original ad. Our offline conversion tracking guide walks through the options.
Platform-Specific Gotchas
| Platform | Common issue | What to check |
|---|---|---|
| Shopify | Pixel installed twice (app plus manual code) | Use one connection method and confirm Purchase fires once |
| WooCommerce / WordPress | Caching or optimization plugins delaying or stripping scripts | Exclude checkout and thank-you pages from script optimization |
| ClickFunnels / GoHighLevel | Thank-you or upsell pages missing tracking code | Add tracking at the funnel level, not just one page |
| Third-party checkouts | Checkout on another domain without your pixel | Add the pixel or a server integration on the checkout itself |
Our funnel tracking guide covers ClickFunnels and GoHighLevel in more depth, and ClickMagick for Shopify covers store setups.
How to Read the Numbers After You Fix Things
Once tracking is repaired, you'll usually have three sets of numbers: your store or CRM, Ads Manager and an independent tracker. They won't match exactly, and that's fine as long as you know what each one is for.
- Your store or CRM is the truth about revenue. Orders either happened or they didn't.
- Your independent tracker tells you which ad, email or link each of those orders came from, using one consistent set of rules across every channel.
- Ads Manager is what Meta's algorithm optimizes on. Keeping its data as complete as possible helps delivery, even when you make budget decisions elsewhere.
When you decide whether to scale or cut an ad, use the tracker tied to real sales. When you want Meta to find more buyers, feed it the best conversion data you can. Our attribution guide explains why different tools credit the same sale differently.
Test the Whole Funnel End to End

After any fix, run a real test. It takes ten minutes and saves days of guessing.
- Open Test Events in Events ManagerCopy the test code if you're checking server events.
- Click through from a real ad linkUse an ad preview link so the click carries ad parameters.
- Complete the conversionOpt in or buy, using a discount or test-mode payment where your checkout allows it.
- Confirm each event appears onceCheck PageView, any checkout events and the Purchase or Lead event, with value and currency.
- Check your independent trackerMake sure the same conversion shows up there, credited to the right source.
When the Problem Isn't Tracking at All
Sometimes the tracking is fine and the ads simply aren't converting. If your test purchase records correctly everywhere and your store shows no extra sales either, the problem is upstream: the offer, landing page, audience or creative.
That's a different job from fixing tracking, but accurate data makes it much easier. Once you trust your numbers, you can see which ads, audiences and pages to cut. Our ROAS guide and calculator helps you judge whether a campaign is worth keeping.
Frequently Asked Questions
Why does Facebook show fewer purchases than my store?
Usually a mix of three things: browser-side tracking blocked by iOS settings and ad blockers, purchases that fall outside Meta's attribution window, and setup problems such as missing or duplicated events. Fixing setup and adding server-side data closes much of the gap, though Meta will never see every sale.
Does the Conversions API fix everything?
No. The Conversions API recovers events that the browser pixel misses, but Meta still applies its own attribution rules and windows, and it still can't match every event to a user. That's why many advertisers also run an independent tracker to see the full picture.
How long until conversions show in Ads Manager?
Test events appear in Events Manager within minutes. Attributed conversions in Ads Manager can take longer to settle, so judge a fix after a few days of normal traffic rather than straight away.
Can the wrong attribution setting make conversions disappear?
Yes. If a buyer clicks your ad and purchases after your attribution window closes, Meta won't credit that ad. Check the attribution setting on each ad set before assuming tracking is broken.
Should I trust Facebook's numbers or my own tracker?
Use your store or CRM as the source of truth for revenue, an independent tracker to see which ads drove it, and Ads Manager for in-platform optimization. When they disagree, the tracker tied to real sales is the one to base budget decisions on.