Solving Facebook Data Discrepancies

Why don’t my Facebook conversions match my website conversions?

If you’re tracking Facebook Ads conversion data in both Facebook and in Google Analytics, you may notice a discrepancy between the two numbers. It’s common for metrics not to match up exactly one-to-one across measurement platforms, but if there’s a large discrepancy, it’s worth looking into. One inaccuracy anywhere along the flow of information from your website to Facebook can result in the two data sets looking pretty different, so all points of data collection, from the website to the pixel, to the ad conversion, need to be evaluated.

How does Facebook track conversions?

To track conversions in Facebook Ads, you must have Facebook pixel tracking set up. Learn how to set up your base Facebook pixel code. Pixel tracking requires that the actions your users are taking on your site be passed to Facebook. Facebook’s pixel data has required parameters that, if passed incorrectly, could make the data inaccurate. Additionally, the way Facebook attributes its conversions to ads differs from how most organizations and website analytics tools default to handling marketing attribution, which can also result in a discrepancy.


Since attribution can be the most obvious source of a discrepancy, and is a fairly easy fix, let’s start there. 

Facebook attributes their conversions to the day the action on their ad happened. A Facebook ad that a user interacted with two days ago that resulted in a website conversion today would show up in Facebook as a conversion from two days ago, not today, like it would in Google Analytics. This guide from Facebook Business helps explain that. Here’s an excerpt from that:

An excerpt from Facebook’s Business Help Center explaining a click on their ad on February 4th that resulted in a purchase on your website on February 8th would be attributed to February 4th in the Results column

In addition to conversions being attributed on the day the action was taken on Facebook rather than the website, another “gotcha” factor about Facebook’s attribution is that its default attribution is 28-day click attribution and 1-day view attribution. This view attribution window means anyone who was shown an ad (no clicks!) and then completed a conversion on the site within 24 hours of seeing that ad would be attributed to Facebook within Facebook Ads. You can check for this setting within the Facebook Ads Account Settings.

Attribution settings inside Facebook’s Ad Account Settings. The attribution window is set to 28 days click with a note indicating Facebook’s default attribution is 28-day click and 1-day view

We’d recommend removing the view attribution, as is pictured above, if you want your conversion data to be more 1:1 between Google Analytics and Facebook. To see how view-through attribution has affected the way Facebook has claimed previous conversions, you can customize the columns in your Ads Manager to set a comparison window.

Columns setting in Facebook Ads Manager with the Customize Columns option highlighted
The Customize Columns setting window in Facebook Ads Manager with the “Comparing Windows” link highlighted and selected to show the ability to click to choose different windows to compare

With the custom columns in place, you will then see the total conversions for the event and then separate columns for those with a view attribution and those with a click attribution. 

Customized column headings in Facebook Ads Manager show all Purchases, Purchases attributed only to views, and Purchases attributed only to clicks

Unfortunately, without a click, there is just no way to attribute a view/impression of a third-party ad to a conversion in a website analytics tool like Google Analytics. Additionally, even if the action taken on the ad was a click, you may not see it as “direct revenue” or a goal conversion in Google Analytics reports, because Google Analytics’ default reporting attributes conversions only to the last click in a user’s journey. You can review conversion paths that include Facebook ads as a touchpoint by going to the Conversions > Multi-Channel Funnels > Assisted Conversions reporting in Google Analytics and setting the primary dimension to “Source/Medium.”

The Assisted Conversions report in Google Analytics with the Primary Dimension set as “Source/Medium”

Is my Facebook pixel data correct?

If the attribution settings weren’t a clear “winner” in what is causing a discrepancy in your conversion data, we still have a few more places to check inside of Facebook’s Business Manager before we move on to debugging the conversion tracking on the website.

Facebook conversion data can be found within the Ads Manager in Facebook Business, but within the Events Manager, you can see what tracking information Facebook has received from your Facebook pixel. You can also create and edit Custom Conversions based on that data.

The Facebook Events Manager navigation

Pixel Data Sources

Within Events Manager > Data Sources, you can see what Standard Events are being sent from your website to Facebook. In order to send this information, you have to set up your pixel tracking for each Standard Event on the appropriate event trigger on your website, such as an add to cart or a simple pageview. You can add a

fbq(‘track’, ‘{{event name here}}’) 

call into your website code for different standard website events and conversions, such as AddToCart and ViewContent. See a list of all of Facebook’s Standard Events and the parameters that can be included with them.

A new feature of Facebook’s Events Manager is the Event Setup Tool, where you can tag Standard Events on your website directly from Facebook without using code. While this seems useful for marketing team members that may not be able to customize scripts in a tag management tool or on the website, we at UpBuild have not tested this to know how accurate it may be in capturing this data, and cannot recommend using it without the guidance of an experienced social media ad tracking expert. Learn more about the Event Setup Tool

Once you have events data being sent from your website to Facebook, you will be able to access that data within the Data Sources section of Events Manager. Within that section, you can see how many instances of each event happened within a given date range, review what parameters are being sent on the events, and export individual event data for that date range. The latter will help you compare the data against those same actions as they were reported within your website’s analytics platform, such as Google Analytics. 

The Pixel Overview dashboard in Facebook Events Manager > Data Sources

Custom Conversions

The parameters on your Facebook Events, as well as the URL a given event occurred on, are important in helping you to set up Custom Conversions, which is another option within the Events Manager.  Custom Conversions allow you to set up event or URL rules to specify a conversion. For instance, you could split your Purchase events into purchases of certain product categories and/or of certain values (as pictured below), rather than having them all tracked as the same overall “Purchase” event. However, if set up incorrectly, Custom Conversions could be another reason why your data in Facebook Ads may not match your website analytics data. Check ther AND/OR statements of your rules and that the parameters you are using in these Custom Conversions are sending as expected in your Pixel Data Source.

A Custom Conversion example on a Purchase event. The Custom Conversion criteria includes a URL rule for URLs containing “mens” AND an Event Parameters rule for “value” greater than 50

Website Analytics

Since the Event Setup Tool in Facebook is so new, you are likely sending events to Facebook using code on your website. We at UpBuild tend to set this up in Google Tag Manager but also have seen it hard-coded into the website’s source code as well. With hard-coded tracking, you may need to work with a developer to fix problems in the event calls. However, you can debug those calls by using the Network tab of your browser’s developer tools to see the calls being sent to Facebook, as pictured below.

The Network tab of the Chrome Developer Tools with a filter of “facebook” applied. A “ViewContent” call is open to show the server Headers, which includes the event parameters sent, including content_ids, content_name, and more

If you are using a tag management tool like Google Tag Manager, you can go into Preview mode and take the expected action on the site to verify what tags are being fired and what variables were passed with them. In Google Tag Manager (pictured below), you can select the Variables tab at the top to see what variables are being sent

Google Tag Manager preview window showing a “transaction” event with a Purchase – Facebook Conversion tag fired on it

When reviewing those calls, it is important to check that the parameters are sending the correct data type. For instance, one of Facebook’s required parameters for retargeting is content_ids. Those must be sent as an array, rather than a string. Here is the list of event parameter object properties from Facebook again to double check.

While I hope that you don’t find yourself with a data discrepancy that requires checking all of these factors, hopefully, this guide gave you a better understanding of the data found in Facebook Ads Manager, Facebook Events Manager, and how it may or may not coincide with your website analytics. Keep in mind that with factors like JavaScript not properly firing or the use of ad blockers, your conversions will probably never completely match one-to-one across tracking systems. The margin of error should be close enough that you can trust the data collection, and verifying the steps in this guide can help build that trust. Otherwise, if you’ve exhausted all of these efforts, we’d be happy to help you find a better tracking solution!

Written by

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *