Troubleshooting: data mismatch in Facebook Ads Manager and Coupler.io
If you see that metrics values returned by Coupler.io are not equal to what you see in Facebook Ads Manager UI, it may be due to importer misconfiguration or specifics of Facebook API. Please review possible reason and steps you may take to ensure you getting proper data.
1. Attribution window settings
When setting up the Facebook Ads importer, go to Advanced settings and make sure you've selected the same Action attribution window settings in Coupler.io as you have in your Facebook Ads manager to ensure your data match.
If nothing selected in Coupler.io advanced settings - 7 days click attribution window is used by default.
2. Time aggregation level
Check that the selected Split data by period in your Coupler.io importer is the same as in Facebook UI - Daily, Weekly, Monthly, or Totals.
3. Entity aggregation level
You may receive different numbers in case you compare Ad report from Coupler.io with Campaign report in Facebook Ads manager.
Coupler.io returns insights for the lowest entity for which you selected fields in Metrics and Dimensions field:
- you selected Campaign name -> report for Campaign level will be returned
- you selected Campaign name and Ad set name -> report for Ad set level will be returned
4. Data breakdowns
Ensure that in the Metrics and Dimensions field you have the same breakdowns as in your Facebook Ads manager.
For example, in Coupler.io data might be selected to be broken down by 'Publisher platform' (Facebook, Instagram), but in Facebook Ads, breakdown by platform might not be selected. You need either to select platform the breakdown in your Ads Manager or to remove the 'Publisher platform' dimension from the wizard setup in Coupler.io.
Coupler.io supports the following breakdowns that may affect your resulting numbers:
- Age
- Gender
- Country
- Region
- Device platform
- DMA
- Hourly stats aggregated by advertiser time zone
- Hourly stats aggregated by audience time zone
- Impression device
- Product id
- Publisher platform
- Frequency value
5. Advanced filters
Coupler.io allows you to specify additional filters to narrow down your results, you can read how to use filters in article: How to use advanced filters in Facebook Ads?
Short domain knowledge for Facebook Ads:
Ad units may be
DELETED
orARCHIVED
. The stats of deleted or archived objects appear when you query their parents. This means if you queryimpressions
at the ad set level, results includeimpressions
from all ads in the set it, regardless of whether the the ads are in a deleted or archived state.
However, if you use ANY filtering, status filtering will be applied by default to return only
ACTIVE
objects. As a result, the total stats of the parent node may be greater than the stats of its children.
For example, you want to filter results by specific campaign name, so you used filter:
[{"field":"campaign.name","operator":"CONTAIN","value":"NAME"}]
With this filter data for deleted and archived entities will be not returned, so you may receive different numbers. To include data for deleted and arhcived entities - add filter by ad set or campaign status:
[{"field":"campaign.name","operator":"CONTAIN","value":"NAME"},{'field':'adset.effective_status','operator':'IN','value':['ACTIVE','PAUSED','DELETED','ARCHIVED']}]
OR
[{"field":"campaign.name","operator":"CONTAIN","value":"NAME"}, {'field': 'campaign.effective_status','operator': 'IN','value': ['ACTIVE', 'PAUSED', 'DELETED', 'PENDING_REVIEW', 'DISAPPROVED', 'PREAPPROVED', 'PENDING_BILLING_INFO', 'CAMPAIGN_PAUSED', 'ARCHIVED','ADSET_PAUSED']}]