Why do Meta Reach values in Adverity differ from Meta Ads Manager?
Last updated: August 5, 2026
Context
When extracting Reach data from Meta via Adverity, you may notice that the Reach values in your datastream do not match what is shown in Meta Ads Manager — even after manually refetching the same historical period. This article explains why this discrepancy occurs and provides best practices for configuring your Meta Reach datastream.
Answer
This behavior is an inherent limitation of how Meta's systems report historical Reach data, and it is not caused by a misconfiguration in Adverity.
Why Reach values differ between Adverity and Meta Ads Manager
Reach is a deduplicated, non-aggregable metric. Because it counts unique users, Meta must deduplicate data across its systems. This leads to a fundamental difference in how the API and the UI handle historical Reach:
Simple counter metrics (such as Impressions, Spend, and Clicks) lock in at the end of each day. These values match exactly between Adverity and Ads Manager.
Meta's API (which Adverity uses) takes a snapshot of the Reach value shortly after a reporting period passes and effectively freezes it. No matter how many times Adverity refetches that historical period, Meta's API returns the same frozen snapshot.
Meta Ads Manager UI sits on a separate reporting system that continues to recalculate and refine historical Reach values for weeks or months after the period ends.
As a result, Reach values may match when first fetched, but will naturally diverge over time as Ads Manager continues to update while the API value remains frozen. This cannot be resolved through any re-fetch strategy within Adverity.
Why a Current Month schedule is still beneficial
During the active (current) month, Meta continues updating Reach as new delivery and deduplication data becomes available. Scheduling your datastream to refetch the Current Month daily helps keep the cumulative month-to-date Reach as close as possible to the value available through the API.
Note that monthly Reach is not the sum of daily Reach values — it must be requested for the same monthly/campaign-level reporting window to preserve Meta's deduplicated monthly value. Fetching only the previous day's data is not sufficient for a monthly Reach setup.
Using a longer rolling window such as "Last 40 days" may refresh some recent historical data, but it will not resolve the limitation once Meta's API has frozen the historical Reach snapshot. For calendar-month reporting, Current Month remains the recommended date range setting.
Recommended datastream configuration for Meta monthly Reach
Schedule: Run daily.
Date range: "Current Month" (for calendar-month reporting) or "Last 30 days" (to account for Meta's attribution window).
Breakdowns and fields: Ensure these match exactly what is selected in Meta Ads Manager when comparing values. Additional breakdowns or fields will change how Reach is aggregated and can cause discrepancies.
How to explain this to clients
The following explanation can be used when communicating this behavior to clients:
Reach is a deduplicated, non-aggregable metric calculated by Meta. Adverity retrieves Reach from Meta's API based on the selected report configuration, but Meta Ads Manager may continue to recalculate historical Reach in the UI after the API value has been snapshotted. Because of this, historical Reach values in Adverity can differ from a fresh Ads Manager UI export, even after a refetch. To compare values accurately, the same account, date range, level, filters, and breakdowns must be used, and Reach should not be summed from daily or more granular rows.
Summary of best practices
Keep a dedicated monthly Reach datastream scheduled daily with "Current Month" as the date range for the running month.
Do not sum daily Reach values to derive monthly Reach.
Use like-for-like report configurations (same account, date range, level, filters, and breakdowns) when comparing against Ads Manager.
Set the expectation that older historical Reach values may not always reconcile exactly with a fresh Ads Manager UI export due to Meta's API/UI reporting behavior.
For additional best practices on extracting Facebook Ads data, refer to the Adverity Facebook Ads Tips documentation.