Meta Pixel Not Tracking Conversions? 10-Step Fix (Pixel + CAPI)

By ·

Quick answer: If your Meta Pixel fires but Ads Manager shows missing conversions, work through these: measure the gap against your CRM, confirm the Pixel ID, make sure the right event fires on the confirmation page, check value and currency parameters, fix load order and script conflicts, add the Conversions API as a server-side backup, deduplicate with a shared event_id, and improve match quality with hashed customer data.

Meta's algorithm optimises on the conversions it can see. When the Pixel misses events, delivery gets worse and your cost per result climbs, even if the ads are fine. Allow about an hour.

In this guide: Match your symptom | 10 steps | Why the Pixel alone is not enough | FAQ

Match your symptom first

SymptomMost likely causeGo to
Only PageView appears, no Purchase or LeadEvent on the wrong page or not installedSteps 2 and 3
Event appears but with no valueMissing or badly formatted parametersStep 4
Event fires sometimes or in the wrong orderLoad order, script conflictStep 5
Meta shows far fewer conversions than your CRMBlockers and browser limits, no server eventsSteps 1, 7 and 9
Meta shows more conversions than your CRMDuplicate events, over-attributionSteps 8 and 10

The 10-step fix

Step 1: Measure the gap

Pull Meta conversions and your backend or CRM numbers for the same date range. Calculate the match rate, then break the difference down by device, browser, region and traffic source. This shows whether the loss is everywhere (a setup problem) or concentrated, for example on iPhones or Safari (a browser-limit problem). Expect some variance from failed payments, refunds and timing. Perfect parity is rare.

Step 2: Confirm the Pixel and Pixel ID

  1. Install the Meta Pixel Helper Chrome extension.
  2. Open your site and check that the Pixel loads with the correct Pixel ID, the same one attached to your ad account.
  3. Check there is only one Pixel firing per page unless you have a reason for more.

A wrong ID, or a Pixel pasted from another account, is a common cause of "nothing shows".

Step 3: Check the conversion event and the page

The base Pixel only reports PageView. You also need a conversion event, such as Purchase or Lead, firing on the right page. Keep the Purchase event only on the confirmation page. Campaigns can perform badly simply because the Pixel was firing the wrong event, so make sure the event you optimise for is the real business outcome and not an easier micro-event.

Step 4: Check event parameters

For purchases, include value, currency and content_ids in the correct format (a number for value, a three-letter code such as USD for currency). Then open Events Manager > Test Events, trigger a conversion and confirm the event arrives with the expected parameters.

Step 5: Fix load order and script conflicts

  • Load event code after the base Pixel, not before it and not after the page unloads.
  • Open browser DevTools > Console and look for JavaScript errors or conflicts with plugins and other tags.
  • Manage firing from one place, such as Google Tag Manager, instead of mixing GTM, a plugin and hard-coded snippets.

Step 6: Verify your domain and review event settings

In Meta Business Settings, verify your domain (look under Brand Safety > Domains). Then review your event configuration in Events Manager. Older guides mention a limit of eight prioritised events per domain for iOS opted-out users under Aggregated Event Measurement, with Purchase or Lead ranked first. Meta changes these rules, so check Events Manager for the current settings rather than relying on an old guide.

Step 7: Add the Conversions API

The Pixel runs in the visitor's browser, so ad blockers, Safari and iOS privacy settings can stop it. The Conversions API (CAPI) sends events from your server, so browser-side blockers cannot interfere. Run it alongside the Pixel, not instead of it.

  • Shopify, WooCommerce and similar: use the platform's Meta integration. Generate an access token in Events Manager and enter it in the integration settings.
  • Custom site: use Meta's SDKs or send HTTP requests from your backend after the conversion is confirmed.
  • Tag Manager setups: a server-side GTM container is another route if you already use one.

Step 8: Deduplicate with event_id

If the Pixel and CAPI both send the same purchase, Meta can count it twice, which inflates numbers and misleads optimisation. Send an identical event_id with the browser event and the server event for each conversion. The ID must be unique per conversion but identical across both methods. Check in Events Manager that events from both sources are shown as received once.

Step 9: Improve match quality

Better customer data helps Meta match events to people. With server events, send customer parameters such as hashed email and phone number (normalise first: trim spaces and use lowercase). Then check Events Manager and look at the Connection Method column. Events marked Server only were probably missed by the Pixel, which shows CAPI is recovering lost data.

Step 10: Cross-check and keep monitoring

  1. Add consistent UTM parameters to your ad URLs and check the same campaigns in GA4. Meta can over-attribute, so a second source keeps you honest.
  2. Repeat the Step 1 comparison every week or two to catch sudden drops.
  3. Re-test after every theme, plugin, checkout or tag change, because releases are the most common cause of silent breaks.

Why the Pixel alone is not enough

Meta PixelConversions API
Runs inVisitor's browserYour server
Affected by ad blockers and browser limitsYesNo
Real-time browser actionsStrongDepends on setup
Needs event_id for deduplicationYesYes
Best usePrimary browser signalBackup that recovers missed events

Running both gives Meta a fuller picture than either alone, which supports better attribution and delivery. For the Google side of the same problem, see Google Ads conversion tracking not working.

Frequently asked questions

Why does my Meta Pixel fire but Ads Manager shows no conversions?

The Pixel may be firing only PageView, firing the conversion event on the wrong page, missing required parameters, or being blocked in the browser. Check each in Events Manager under Test Events and add the Conversions API as a backup.

Do I need the Conversions API if I already have the Meta Pixel?

It is strongly recommended. The Pixel runs in the browser and can be blocked by ad blockers and privacy settings. The Conversions API sends events from your server, so running both reduces gaps.

How do I stop Meta counting the same conversion twice?

Send an identical event_id with both the Pixel event and the Conversions API event for each conversion. The ID must be unique per conversion but match across both methods so Meta can deduplicate.

Why does Meta report fewer conversions than my CRM?

Browser limits, ad blockers, iOS privacy settings and timing differences all cause gaps, and perfect parity is rare. Compare the same date range, break the gap down by device and source, and track the match rate over time.

How can I test if my Meta Pixel events work?

Use the Meta Pixel Helper Chrome extension to confirm the Pixel ID and event, then open Events Manager, go to Test Events, trigger a conversion and check that it appears with the expected value and currency.

Final thoughts

Fix the browser Pixel first (right ID, right event, right parameters), then add the Conversions API as a server-side backup, deduplicate with event_id, and finish by comparing Meta with your own data. Once the signal is clean, creative and audience testing give you real answers.

Running Meta ads for leads or e-commerce? Tell me which setup you use in the comments and I will cover it step by step.

GA
Gaurav Arora, Digital Media Lead. 10+ years running paid media and tracking for brands in the USA, UK and Canada.