You log into Facebook Ads Manager, check your campaign results, and something feels off. Conversions are missing, numbers look suspiciously low, or the data just does not match what your CRM is telling you. If your Facebook conversion tracking is not working, you are not alone.
This is one of the most common and frustrating issues digital marketers face, especially after iOS privacy updates, browser restrictions, and evolving ad platform policies have made pixel-based tracking less reliable than ever. Many marketers now regularly see gaps between what Facebook reports and what their backend systems actually record.
The problem goes beyond annoying discrepancies. When your conversion data is inaccurate, Facebook's algorithm cannot optimize your campaigns properly. That means wasted ad spend, poor audience targeting, and scaling decisions based on flawed information. You might be pausing campaigns that are actually working, or pouring budget into ones that are not.
This guide walks you through a clear, step-by-step process to diagnose and fix Facebook conversion tracking issues. Whether your pixel is not firing at all, events are misconfigured, or you are seeing major gaps between reported and actual conversions, you will find the specific fix you need here.
By the end, you will have a fully functional tracking setup and a strategy to keep your data accurate going forward. Let's get into it.
Before diving into advanced fixes, start with the basics. The most common reason Facebook conversion tracking is not working is a pixel that was never properly installed or has quietly broken after a site update.
The fastest way to check this is with the Meta Pixel Helper, a free Chrome extension provided by Meta. Install it, visit your website, and click the extension icon. It will tell you instantly whether a pixel is detected on the page, which events are firing, and whether any errors exist.
What a healthy pixel looks like: The extension shows your Pixel ID in green, confirms the PageView event fired successfully, and lists any additional events triggered on that page. No warnings, no red indicators.
What broken looks like: You might see "No Facebook Pixel Found," a red error badge, a pixel ID that does not match your current account, or duplicate pixel fires. Each of these points to a different root cause.
Here are the most common installation errors to check for:
Duplicate pixels: If your pixel fires twice on every page, Facebook double-counts events. This often happens when the pixel is hardcoded into the site theme AND added through a tag manager simultaneously. Remove one instance and stick with a single implementation method.
Pixel placed in the wrong section: The base pixel code must go in the <head> section of every page, not the body or footer. Placing it in the wrong location can cause it to fire late or inconsistently, especially on slower connections.
Tag manager misconfigurations: If you are using Google Tag Manager, confirm the Facebook Pixel tag is set to fire on "All Pages" and that the trigger is not accidentally restricted to a specific URL pattern. Also verify the container is published and the GTM snippet is actually on your site.
If you spot any of these issues, the quickest fix is to reinstall the base pixel code directly in the <head> section of your site. For a deeper dive into why tracking pixels are not firing correctly, check our dedicated troubleshooting guide. After reinstalling, open an incognito browser window, visit a few key pages, and use the Meta Pixel Helper to confirm clean fires with no errors. That confirmation is your green light to move to the next step.
A pixel that fires on page load is just the foundation. The real work is making sure your conversion events are configured correctly and actually registering the actions that matter to your business.
Navigate to Meta Events Manager and select your pixel. You will see a list of all events that have been received, along with their status: active, inactive, or flagged with errors. This view gives you a snapshot of your tracking health.
Look for these specific issues:
Inactive events: If an event like "Purchase" or "Lead" shows as inactive, it means no data has been received recently. This could mean the event code is missing, the page it fires on is broken, or users simply are not reaching that step. If you are wondering why your ad conversions are not showing, inactive events are one of the first things to investigate.
Duplicated or mislabeled events: Check that your standard events (Purchase, Lead, AddToCart, ViewContent, etc.) match the actual actions on your site. A common mistake is firing a "Purchase" event on a thank-you page that also gets triggered by non-purchase actions, or using a custom event name where a standard event would serve better. Standard events get better optimization from Facebook's algorithm.
Outdated custom conversions: If you have custom conversions set up based on specific URLs or URL parameters, check whether those pages still exist. A site redesign or funnel change can silently break custom conversion rules that reference old URL patterns.
The most powerful tool in this step is the Test Events feature inside Events Manager. Click "Test Events," enter your website URL, and open it in the provided browser session. As you navigate your site and complete actions, you will see events populate in real time on the right side of the screen. This confirms whether your events are firing and whether they are being received by Meta correctly.
Pay close attention to the event parameters that come through. For a Purchase event, you want to see value, currency, and order ID included. Missing parameters limit Facebook's ability to optimize for revenue rather than just conversion volume. If parameters are absent, revisit your event code and ensure you are passing the correct data objects when the event fires.
After Apple's App Tracking Transparency framework launched, Meta introduced two requirements that many advertisers skipped: domain verification and Aggregated Event Measurement. Skipping either one is a major reason why conversion tracking not working on Facebook persists even when the pixel appears to be firing.
Why domain verification matters: Meta requires advertisers to verify ownership of the domain where conversions occur. Without verification, your conversion events may not be attributed properly, and you lose the ability to configure Aggregated Event Measurement. Unverified domains can result in events being blocked or deprioritized for iOS users who have opted out of tracking. Understanding the full impact of tracking conversions after the iOS update is essential for getting this step right.
To verify your domain, go to Business Settings in Meta Business Manager, navigate to Brand Safety, then Domains. Add your domain and choose a verification method. The two most common options are:
1. DNS TXT record: Add a TXT record to your domain's DNS settings through your domain registrar or hosting provider. This is the most reliable method and does not require any changes to your website.
2. Meta tag method: Add a specific HTML meta tag to the <head> section of your homepage. This works well if you have easy access to your site's code but requires the tag to stay in place permanently.
Once verified, you need to configure Aggregated Event Measurement. This system allows Meta to model conversions for iOS users who have opted out of tracking, but it requires you to prioritize up to 8 conversion events per domain and rank them by importance.
Navigate to Events Manager, click on your pixel, and find the Aggregated Event Measurement section. Add your most important events first. The ranking matters: if a user triggers multiple events in a session, Meta only reports the highest-priority one. Put your bottom-funnel events (Purchase, Lead) at the top of the list and upper-funnel events (ViewContent, AddToCart) lower down.
A common troubleshooting scenario: if you recently added new events but they are not showing up in reporting for iOS users, check whether they have been added to your Aggregated Event Measurement list. Events that are not on the list simply will not be tracked for opted-out users. Also check that your domain verification has not lapsed, which can happen if a DNS record was accidentally removed during a hosting migration.
Here is the hard truth about pixel-only tracking in the current environment: it is not enough. Ad blockers, browser-level cookie restrictions (particularly in Safari and Firefox), and iOS opt-outs all prevent the pixel from firing reliably for a meaningful portion of your audience. If you are relying solely on the browser-side pixel, you are working with incomplete data by default.
Meta's Conversions API (often called CAPI) solves this by sending event data directly from your server to Meta's servers, completely bypassing the browser. There are no cookies to block, no browser restrictions to worry about, and no dependency on the user's device settings. To understand the full advantages, read about server-side conversion tracking benefits and why this approach has become essential for modern advertisers.
Here is how to approach implementation based on your setup:
Direct integration: If you have a development team, you can implement CAPI directly by making server-side API calls to Meta's Graph API whenever a conversion occurs. This gives you the most control and flexibility, but requires technical resources to build and maintain.
Partner integrations: Meta has native integrations with major platforms including Shopify, WooCommerce, and several CMS and e-commerce tools. If your site runs on one of these platforms, enabling CAPI is often as simple as toggling a setting in your Meta integration panel. For Shopify stores specifically, our guide on Shopify conversion tracking setup walks through the process in detail.
Gateway setup: Tools like Meta's Conversions API Gateway allow you to deploy a server-side layer without deep custom development. This is a good middle-ground option for teams that want server-side tracking but do not have the resources for a full custom integration.
The critical detail when running both the pixel and CAPI simultaneously is deduplication. Without it, the same conversion gets reported twice: once by the browser pixel and once by the server. Meta handles deduplication automatically, but only if you pass a matching event_id parameter from both sources.
When the pixel fires a Purchase event, generate a unique event_id (typically an order ID or a randomly generated string) and include it in the pixel event data. When your server sends the same event via CAPI, include the identical event_id. Meta matches these and counts the conversion only once. Skipping this step leads to inflated conversion numbers, which throws off your optimization and reporting just as much as undercounting does.
After implementing CAPI, return to Events Manager and check the event match quality score for your server events. A higher score means Meta can better match your events to user profiles, which directly improves the value of that data for targeting and optimization.
Even with a perfectly installed pixel and CAPI running, you will likely notice that Facebook's reported conversions do not exactly match your CRM or payment processor records. This is normal, but understanding why it happens is essential for making smart decisions with your data.
There are a few core reasons for these discrepancies:
Attribution window differences: Facebook attributes conversions based on click and view windows. The default setting credits a conversion to an ad if the user clicked within a certain number of days or viewed the ad within a shorter window. Your CRM, on the other hand, may attribute the sale to the last touchpoint, the first touchpoint, or the channel where the final conversion happened. These different models will almost always produce different numbers for the same set of conversions. For a deeper look at this problem, see our article on why conversion tracking numbers are wrong.
Cross-device and cross-browser gaps: A user might see your Facebook ad on their phone but convert later on their desktop through a different browser. The pixel may not connect these two sessions, especially post-iOS changes, leading to missed attribution on Facebook's side. Solving this requires a strategy for tracking conversions across devices.
View-through attribution: Facebook may count a conversion as attributed to your ad if the user saw it but never clicked. If your CRM only counts click-based sources, this creates a gap in the opposite direction, where Facebook reports more than your CRM.
To manually reconcile these numbers, export your Facebook conversion data for a specific date range and export the corresponding records from your CRM for the same period. Match them by date and look at the overall trend rather than expecting a perfect one-to-one match. Large, consistent gaps point to a structural tracking issue. Small, variable gaps are often just attribution model differences.
This is where a platform like Cometly makes a significant difference. Cometly connects your ad platforms, CRM, and website to track the entire customer journey in real time, giving you a single source of truth for attribution. Instead of manually exporting and comparing spreadsheets, you can see how Facebook ad spend connects to actual revenue across every touchpoint, with attribution models you can compare side by side. That clarity makes it far easier to spot real tracking problems versus expected attribution differences.
Fixing your tracking is only half the battle. The other half is making sure Facebook's algorithm receives accurate data so it can optimize your campaigns effectively going forward.
Here is the feedback loop problem: when Facebook receives incomplete or inaccurate conversion data, it trains its delivery algorithm on the wrong signals. It starts optimizing toward users who look like the conversions it can see, which may not represent your actual best customers. Over time, this degrades campaign performance in ways that are hard to trace back to the root cause. This is one of the key reasons underreporting conversions in Facebook Ads is so damaging beyond just inaccurate reports.
Sending enriched, server-side conversion data back to Meta breaks this cycle. When the algorithm receives complete, accurate signals including the actual revenue value, customer details, and verified conversion status, it can identify and target higher-quality audiences. The result is better ad delivery, more efficient spend, and improved return on ad spend over time.
Cometly's Conversion Sync feature is built specifically for this purpose. It takes the accurate, CRM-verified conversion data that Cometly captures across your full customer journey and feeds it back to Facebook's algorithm. Rather than relying on whatever the pixel managed to capture, you are sending Meta the ground truth about which users actually converted and what they were worth.
This approach addresses one of the most underappreciated aspects of conversion tracking: it is not just about reporting accuracy. It is about feeding the right inputs into a machine learning system that controls how your budget gets allocated. Better data in means better optimization out. When you close the loop between your actual results and what Facebook's algorithm learns, you create a compounding advantage that improves with every campaign cycle.
Conversion tracking is not a set-it-and-forget-it system. Website updates, funnel changes, new campaign launches, and platform policy changes can all break tracking silently. The marketers who stay ahead of these issues are the ones who build regular monitoring into their workflow.
Here is a practical weekly tracking audit checklist to follow:
Check Events Manager for errors: Open Meta Events Manager and look for any events showing as inactive, flagged, or receiving significantly fewer fires than the previous week. A sudden drop in event volume is almost always a signal that something broke.
Compare pixel fires to CAPI events: In Events Manager, you can see the breakdown of events received via browser pixel versus server-side CAPI. If the pixel numbers drop sharply but CAPI holds steady, you likely have a pixel installation issue. If both drop together, the problem is upstream, possibly a broken page or funnel step.
Review conversion counts against CRM records: Once a week, do a quick sanity check between Facebook's reported conversions and your CRM for the same period. You are not looking for a perfect match, just for trends that feel out of range. If you are also running ads on other networks, consider a unified approach to tracking conversions across multiple ad platforms to simplify this process.
Beyond manual checks, set up automated alerts in Events Manager. Meta allows you to configure notifications for event drops or pixel errors, so you get an email when something goes wrong rather than discovering it days later during a campaign review.
Re-test your full tracking setup any time you make a significant change to your website, update your checkout or lead form flow, launch a new campaign type, or migrate to a new CMS or e-commerce platform. These are the moments when tracking most commonly breaks.
Cometly's analytics dashboard adds another layer of ongoing visibility by providing real-time attribution data across all your marketing channels in one place. When you can see your full attribution picture continuously, discrepancies surface quickly rather than quietly compounding over weeks of a running campaign.
Here is a quick-reference summary of everything covered in this guide. Work through each step in order to systematically diagnose and resolve your conversion tracking issues.
1. Verify pixel installation: Use Meta Pixel Helper to confirm the pixel is present, firing correctly, and free of duplicates or placement errors.
2. Audit conversion events: Review Events Manager for inactive, duplicated, or mislabeled events. Use the Test Events tool to confirm real-time event receipt.
3. Verify your domain and configure AEM: Complete domain verification in Business Settings and prioritize your top 8 conversion events in Aggregated Event Measurement.
4. Implement the Conversions API: Add server-side tracking via direct integration, a platform partner, or a gateway. Set up event_id deduplication to prevent double-counting.
5. Reconcile Facebook data with your CRM: Compare exported data to understand attribution gaps versus real tracking failures. Use a platform like Cometly to get a unified view of the customer journey.
6. Sync accurate conversions back to Facebook: Use CRM-verified conversion data to feed Facebook's algorithm better signals and improve campaign optimization over time.
7. Build ongoing monitoring habits: Run a weekly audit, set up automated alerts, and re-test tracking after every significant site or campaign change.
Accurate conversion tracking is not a one-time fix. It is an ongoing practice that requires regular attention as your site evolves, platforms change, and privacy regulations continue to shape what browser-side tracking can capture. The marketers who treat tracking as a continuous discipline consistently have better data, better-performing campaigns, and more confidence in their scaling decisions.
The direction is clear: pixel-only tracking is no longer sufficient. A server-side, multi-touch attribution approach gives you the accuracy and completeness that modern advertising requires. When your tracking setup captures every touchpoint and feeds that data back to the platforms optimizing your spend, everything downstream improves.
Ready to get accurate, real-time attribution that keeps Facebook's algorithm fed with the right data? Get your free demo of Cometly and see how it connects your ad platforms, CRM, and website into a single source of truth for every conversion that matters.