Pay Per Click
18 minute read

How to Fix Facebook Conversion Tracking: A Step-by-Step Troubleshooting Guide

Written by

Grant Cooper

Founder at Cometly

Follow On YouTube

Published on
March 9, 2026

Your Facebook ads dashboard shows 50 conversions. Your Shopify backend shows 73 actual sales. Something's wrong, and you're not imagining it.

When Facebook conversion tracking breaks, you're flying blind. Your pixel might stop firing entirely, send duplicate events, or miss critical conversions—and meanwhile, Facebook's algorithm optimizes toward incomplete data. The result? You're paying more for worse results while your best-performing ads get overlooked.

The frustrating part? Tracking issues rarely announce themselves with flashing warning signs. They creep in silently after a site update, a theme change, or simply because iOS privacy restrictions tightened another notch. One day your data looks solid, the next you're questioning every number in your dashboard.

This guide walks you through a systematic troubleshooting process to diagnose and fix the most common Facebook conversion tracking problems. We'll cover everything from basic pixel issues to advanced server-side solutions, giving you a clear path from "something's broken" to "tracking is accurate again."

Think of this as your emergency repair manual. Whether you're seeing zero conversions, mismatched numbers, or just suspect something's off, you'll learn exactly where to look and what to fix.

Step 1: Diagnose Your Tracking Problem Using Events Manager

Before you start fixing things randomly, you need to understand exactly what's broken. Facebook's Events Manager is your diagnostic command center—it shows you which events are firing, which aren't, and where the problems lie.

Start by opening Events Manager in your Facebook Business account. Navigate to your pixel and look at the overview dashboard. You'll see your pixel status immediately: active (green), inactive (gray), or showing errors (red). If your pixel shows as inactive despite being installed, that's your first clue something's fundamentally wrong with the installation.

Next, click into the Diagnostics tab. This is where Facebook surfaces specific error messages and warnings about your tracking setup. You might see issues like "Pixel not loading," "Event parameter errors," or "Domain verification required." Document every warning you see—these are breadcrumbs leading you to the solution.

Now check which events are actually firing. Look at the Event Activity section and compare what you see against what should be happening. If you're running an e-commerce store, you should see ViewContent events when people browse products, AddToCart when they add items, InitiateCheckout when they start checkout, and Purchase when they complete orders.

Here's where it gets interesting: the absence of data tells you as much as its presence. If you see ViewContent events but no AddToCart events, your pixel might not be installed on your cart page. If you see everything except Purchase events, there's likely an issue with your confirmation page tracking. Understanding these conversion tracking gaps is essential for proper diagnosis.

Pay attention to Event Match Quality scores in the Diagnostics section. These scores (shown as a rating out of 10) indicate how well Facebook can match your events to specific user profiles. Low scores mean Facebook struggles to connect events to users, which degrades ad optimization. If your scores are below 6, you're missing critical customer information parameters.

Check the volume of events too. If you normally see 200 ViewContent events daily but suddenly you're seeing 20, something changed. Look at the timeline graph to identify exactly when the drop happened—this helps you correlate the issue with recent site changes or updates.

Take screenshots and notes. Document your pixel status, list every diagnostic warning, note which events fire and which don't, and record your Event Match Quality scores. This baseline gives you clear before-and-after metrics to confirm your fixes actually work.

Step 2: Verify Your Pixel Installation and Base Code

Now that you know what's broken, let's check if your pixel is actually installed correctly. The most common tracking failures happen right here—the pixel code itself is missing, duplicated, or placed wrong.

Install the Facebook Pixel Helper Chrome extension if you haven't already. This free tool from Facebook shows you exactly which pixels fire on any page you visit. Navigate to your website and click the Pixel Helper icon. You should see your pixel ID appear with a green checkmark if it's working properly.

The base pixel code needs to live in the header section of every page on your site. Not just your homepage—every single page. Open your site's source code (right-click and select "View Page Source") and search for "fbq('init'," to find your pixel. You should see it near the top of the page, before the closing head tag.

Confirm the pixel ID in your code matches the pixel ID shown in Events Manager. This sounds obvious, but it's surprisingly common to find old pixel IDs lingering in your code after account migrations or agency handoffs. If the IDs don't match, you're sending data to the wrong pixel entirely.

Look for duplicate pixels while you're in the source code. Search for "fbq('init'," again and count how many times it appears. If you see your pixel ID multiple times, you're double-tracking everything—which inflates your numbers and confuses Facebook's algorithm. This often happens when someone installs the pixel manually and through a plugin simultaneously. For a deeper dive into these problems, check out our guide on how to fix Facebook pixel tracking issues.

Check different pages across your site, not just the homepage. Test your product pages, cart page, checkout flow, and confirmation page. The Pixel Helper should show your pixel firing on all of them. If it disappears on certain pages, those pages either don't include your header code or have a different template that's missing the pixel.

Watch for code conflicts. If you're using Google Tag Manager, multiple analytics platforms, or certain WordPress plugins, they can interfere with each other. The Pixel Helper will show errors if JavaScript conflicts prevent your pixel from loading. Common culprits include ad blockers (test in incognito mode), script loading order issues, and conflicts with lazy-loading plugins.

Test the pixel fires before other elements load. If your pixel is placed too low in your code, users who bounce quickly might leave before it fires. The pixel should initialize in the header, not buried in the footer or triggered after page load completes.

If you find installation issues, fix them before moving forward. A properly installed base pixel is the foundation—everything else builds on this. No amount of advanced troubleshooting will help if your pixel isn't actually loading on your pages.

Step 3: Fix Event Configuration and Standard Event Setup

Your pixel might be installed, but that doesn't mean your events are configured correctly. This is where many tracking issues hide—events firing at the wrong time, missing parameters, or using custom events when standard events would work better.

Start by mapping out which standard events should fire and when. Facebook provides specific standard events for common actions: ViewContent when someone views a product, AddToCart when they add items, InitiateCheckout when they start checkout, and Purchase when they complete a transaction. Use these standard events instead of custom events whenever possible—Facebook's algorithm is trained to optimize around them.

Check that each event includes the required parameters. A Purchase event needs currency, value, and ideally content_ids to tell Facebook what was purchased. Without these parameters, Facebook sees that a purchase happened but can't connect it to specific products or calculate return on ad spend. Open Events Manager, click on an event, and review the parameters being passed.

Verify events fire at the correct moment. This is a common problem: an AddToCart event that fires on page load instead of when someone actually clicks "Add to Cart," or a Purchase event that triggers when someone views the confirmation page instead of when the transaction completes. Use the Pixel Helper while navigating your site to see exactly when each event fires.

Test your events using Facebook's Test Events tool in Events Manager. This feature shows you events in real-time as they fire, including all parameters and values. Open Test Events, then navigate through your site as a customer would. You should see each event appear in the Test Events feed at the exact moment it should fire.

Here's a common issue to watch for: events firing multiple times for a single action. If someone adds a product to cart and you see three AddToCart events, you've got duplicate tracking. This often happens when the event is triggered by both a page load and a button click, or when multiple tracking methods overlap. Learning best practices for tracking conversions accurately helps prevent these issues.

Look for events firing on the wrong pages entirely. If your Purchase event fires on the cart page instead of the confirmation page, you're tracking cart views as completed purchases. If InitiateCheckout fires when someone views a product, you're inflating your checkout initiation numbers.

Fix parameter formatting issues. Currency should be in three-letter ISO format (USD, EUR, GBP), value should be a number without currency symbols, and content_ids should match the product IDs from your product catalog if you're running dynamic ads. Incorrect formatting can cause events to be rejected or misinterpreted.

If you're using a tag manager like Google Tag Manager, verify your triggers are set up correctly. A trigger that fires on "all pages" when it should fire on "thank you page only" will send events at the wrong times. Review each trigger condition carefully.

After making changes, test everything again with the Test Events tool. Complete a full purchase flow and confirm each event fires once, at the right time, with correct parameters. This is your quality control checkpoint before moving to more advanced issues.

Step 4: Address iOS 14+ and Browser Privacy Limitations

Even with perfect pixel installation, you're fighting against privacy restrictions that limit what Facebook can track. iOS 14.5 and later versions fundamentally changed how conversion tracking works, and ignoring these limitations means accepting significant data gaps.

Apple's App Tracking Transparency framework requires apps to ask permission before tracking users across other apps and websites. Most users decline, which means Facebook loses visibility into conversions that happen after someone clicks an ad in the Facebook app on their iPhone. This isn't a bug you can fix—it's a privacy policy you must work around. Understanding the full scope of iOS tracking limitations for Facebook ads helps you plan accordingly.

Configure Aggregated Event Measurement in Events Manager. This Facebook feature lets you prioritize up to eight conversion events per domain. Facebook uses these prioritized events when it can't track conversions normally due to iOS limitations. Navigate to Events Manager, select your pixel, and click "Aggregated Event Measurement" in the left menu.

Prioritize your events strategically. Put your most valuable conversion event (usually Purchase) as priority 1, then rank the others by business importance. Facebook uses this ranking to determine which conversions to report when it can only track some of them. If you don't set priorities, Facebook chooses randomly—which means your most important conversions might not get tracked.

Verify your domain in Facebook Business Settings. Domain verification is required for event configuration to work properly post-iOS 14. Go to Business Settings, select "Brand Safety," then "Domains." Add your domain and verify ownership using either DNS verification or HTML file upload. Until you verify your domain, your event prioritization won't take effect.

Set up Conversions API to capture events server-side. This is the critical step that bypasses browser limitations entirely. When someone completes a purchase, your server sends the conversion data directly to Facebook—no browser tracking required, no iOS restrictions, no ad blockers interfering. CAPI doesn't just supplement browser tracking; it's become essential for accurate conversion measurement.

Improve your Event Match Quality scores by passing additional customer parameters. Facebook uses parameters like email, phone number, first name, and last name to match conversions to specific users. The more parameters you include, the better Facebook can connect conversions to the people who saw your ads. Hash these parameters before sending them to protect customer privacy while enabling better matching.

Understand that attribution windows shortened after iOS 14. Facebook now uses a maximum 7-day click attribution window instead of 28 days for iOS conversions. This means conversions that happen more than 7 days after someone clicks your ad won't be attributed to that ad. Your actual results might be better than Facebook reports—the data just isn't visible anymore. For specific solutions, review our guide on how to fix iOS 14 tracking issues.

Check your Event Match Quality score regularly. A score above 6 is acceptable, but aim for 8 or higher for optimal performance. Low scores mean Facebook struggles to match your conversions to users, which directly impacts how well your campaigns optimize. If your scores are low, you're likely missing customer information parameters in your events.

Accept that browser-based tracking alone no longer provides complete data. This isn't a temporary issue that will resolve—privacy restrictions are tightening, not loosening. The solution isn't to fix browser tracking perfectly; it's to implement server-side tracking that works regardless of browser limitations.

Step 5: Implement Server-Side Tracking for Reliable Data

Browser-based tracking is fundamentally limited by privacy restrictions, ad blockers, and cookie limitations. Server-side tracking solves these problems by sending conversion data directly from your server to Facebook, bypassing browsers entirely.

The Conversions API (CAPI) is Facebook's server-side tracking solution. Instead of relying on a pixel in someone's browser, your server sends event data directly to Facebook when conversions happen. When someone completes a purchase on your site, your server tells Facebook about it—regardless of whether that person has an ad blocker, declined app tracking, or deleted their cookies. If you're experiencing issues with this setup, our guide on how to fix Facebook Conversion API can help.

Setting up CAPI depends on your platform. Shopify, WooCommerce, and other major e-commerce platforms offer official Facebook integrations that handle CAPI setup with minimal technical work. If you're on one of these platforms, install the official Facebook app or plugin and follow the setup wizard. The integration will automatically send server events for purchases and other key actions.

For custom implementations, you'll need to set up server-side code that sends events to Facebook's Conversions API endpoint. This requires developer work—you're building code that triggers when someone completes a conversion, packages the event data, and sends it to Facebook. Facebook provides detailed API documentation, but expect this to take development time if you're building it from scratch.

Configure event deduplication to prevent double-counting. When you run both browser pixel tracking and server-side tracking, the same conversion can be reported twice—once from the browser and once from your server. Facebook uses an event_id parameter to deduplicate events. Include the same unique event_id in both your browser pixel event and your server event, and Facebook will count it only once.

Here's how deduplication works: when someone completes a purchase, your browser pixel fires a Purchase event with event_id "12345". Your server also sends a Purchase event with event_id "12345". Facebook sees both events, recognizes the matching event_id, and counts it as one conversion instead of two. Without this, you'll inflate your conversion numbers significantly.

Test server events using the Test Events tool in Events Manager. Select "Test Server Events" instead of "Test Browser Events," then trigger a conversion on your site. You should see the event appear in the Test Events feed with a "server" indicator. Check that all required parameters are included and that the event_id matches between browser and server events.

Pass as much customer information as possible in server events. Include email addresses, phone numbers, names, and other identifiers (hashed for privacy). Server events with rich customer data have higher Event Match Quality scores, which means better ad optimization. The more Facebook can connect your conversions to specific users, the better it can find similar high-value customers. Learn more about how to sync conversion data to Facebook Ads effectively.

Consider using an attribution platform like Cometly that handles server-side tracking automatically. These platforms sit between your website and ad platforms, capturing every conversion event and sending it to Facebook via Conversions API. They handle the technical complexity of CAPI setup, event deduplication, and parameter optimization—plus they give you better attribution insights than Facebook's native reporting.

Monitor the ratio of browser events to server events in Events Manager. Ideally, you should see both browser and server events for most conversions, with server events catching conversions that browser tracking missed. If you only see server events, your browser pixel might not be installed. If you only see browser events, your CAPI integration isn't working.

Understand that server-side tracking isn't optional anymore—it's essential for accurate conversion measurement. Browser tracking alone leaves you with incomplete data, which means your campaigns optimize toward a partial picture of reality. Server-side tracking fills those gaps and gives Facebook the complete conversion data it needs.

Step 6: Validate Your Fix and Monitor Ongoing Accuracy

Fixing your tracking is only half the battle. Now you need to confirm the fixes worked and establish ongoing monitoring to catch future issues before they impact your campaigns.

Run test conversions and verify they appear correctly in Events Manager. Complete a purchase on your site (or use test mode if available), then check Events Manager within a few minutes. You should see the Purchase event appear with correct parameters and a high Event Match Quality score. If you're running CAPI, verify you see both browser and server events with matching event_ids.

Compare Facebook-reported conversions against your actual sales data. Pull a report from Facebook Ads Manager showing conversions for the past 7 days. Then pull the same date range from your e-commerce platform or CRM. The numbers won't match perfectly—attribution windows and methodology differ—but they should be reasonably close. If Facebook shows 50 conversions and you have 200 actual sales, something's still broken. Understanding how to fix attribution discrepancies in data helps you interpret these differences.

Create a simple spreadsheet to track this comparison over time. Record Facebook's reported conversions, your actual conversions, and the percentage difference weekly. This trending data helps you spot when tracking accuracy degrades. A sudden shift from 90% match to 60% match signals a new tracking issue that needs investigation.

Set up a regular monitoring cadence. Check Events Manager weekly, not just when you suspect problems. Look at event volume trends, Event Match Quality scores, and diagnostic warnings. Many tracking issues develop gradually—a plugin update that breaks tracking, a theme change that removes pixel code from certain pages, or a gradual decline in Event Match Quality as your implementation gets stale.

Build a troubleshooting checklist for your team. Document the diagnostic steps from this guide so anyone can investigate tracking issues systematically. Include links to Events Manager, instructions for using Pixel Helper, and notes about where pixel code lives in your site. When tracking breaks at 2 AM before a big sale, you want clear documentation anyone can follow.

Establish baseline metrics to measure tracking accuracy. Beyond just conversion counts, track your Event Match Quality scores, the ratio of browser to server events, and event parameter completion rates. These metrics tell you about tracking health before problems become obvious in conversion numbers. Investing in an accurate conversion tracking solution makes this monitoring much easier.

Remember that tracking requires ongoing maintenance. Your site will change, platforms will update, and privacy restrictions will evolve. The tracking setup that works perfectly today might break next month after a WordPress update or a new iOS release. Regular monitoring catches these issues early, before they cost you significant ad spend.

Putting It All Together

Facebook conversion tracking isn't a set-it-and-forget-it system. Between iOS privacy restrictions, browser limitations, and constant platform updates, tracking requires active maintenance and monitoring. But when you approach troubleshooting systematically—diagnose first, fix installation issues, configure events properly, implement server-side tracking, and validate your results—you can restore accurate conversion data and get your campaigns optimizing correctly again.

Here's your quick troubleshooting checklist: Check Events Manager diagnostics for specific errors. Verify pixel installation with Pixel Helper on all pages. Confirm events fire at the right time with correct parameters. Set up Aggregated Event Measurement and verify your domain. Implement Conversions API for server-side tracking. Test everything and compare Facebook data against actual sales. Monitor regularly to catch future issues early.

The most important takeaway? Browser-based tracking alone no longer provides complete conversion data. Server-side tracking through Conversions API isn't an advanced optional feature—it's essential for accurate measurement in today's privacy-focused environment. Whether you implement it through platform integrations, custom development, or attribution platforms, CAPI needs to be part of your tracking infrastructure.

Accurate tracking connects to something bigger: understanding which marketing efforts actually drive revenue. When your conversion tracking works correctly, you're not just seeing numbers in Facebook—you're capturing the complete customer journey across every touchpoint. That complete picture is what separates campaigns that scale profitably from campaigns that waste budget.

Ready to elevate your marketing game with precision and confidence? Discover how Cometly's AI-driven recommendations can transform your ad strategy—Get your free demo today and start capturing every touchpoint to maximize your conversions.