Wilow
Method

How we estimate ad spend

Two kinds of number appear in the Wilow Ad Library. One is published by Meta. The other is our model. This page explains which is which, how the model works, and how much weight it deserves.

The short version

Reach is a fact. Meta publishes it for ads delivered in the EU, EEA and UK under the Digital Services Act. We display it as reported.

Spend is a model. Meta does not publish spend for ordinary commercial ads anywhere in the world. Every spend figure we show is calculated from reach and an assumed cost. Treat it as a range, not a measurement.

What Meta actually publishes

Meta's Ad Library exposes different fields to different kinds of advertising, and the split is the single most misunderstood thing about this data.

FieldAvailable forIn Wilow
eu_total_reach Any ad delivered in the EU, EEA or UK, including ordinary commercial ads Shown as reported
age_country_gender_reach_breakdown Same, per country and per age and gender band Shown as reported
spend Political and issue ads only Never used
impressions Political and issue ads only Never used

Because spend and impressions are restricted to political and issue advertising, a sample of ordinary commercial ads returns almost no spend data at all. That is expected behaviour, not a gap in coverage. It is also why we never claim a spend figure came from Meta.

The reach fields carry no such restriction. They exist because the Digital Services Act requires Meta to publish audience data for ads delivered into the EU. The trigger is where the ad was delivered, not what the ad was about.

The formula

estimated spend = reach × CPM ÷ 1000

Reach is the number of people Meta reports the ad reached in the country you are viewing. CPM is the cost you assume for reaching a thousand of them.

The CPM we use

In the web tool, you set it. The slider runs from £10 to £50 and starts at £15, and every figure on screen moves with it. We do this deliberately: the assumption belongs to you, not to us.

Where a number has to be produced without you present, such as through our API or MCP server, we return a range built on a £10 to £25 assumption rather than a single number. That range travels with the value, along with its confidence and a link back to this page.

We do not publish a CPM benchmark

The bounds above are illustrative inputs to a calculation, not a claim about what Meta advertising costs in any market or category. We have not measured that, so we do not assert it. If you have your own account data, use your own CPM. It will be better than ours.

How confident you should be

Low. The model has three known weaknesses, and we would rather you knew them than trusted the number.

1. Reach counts people, CPM prices impressions

CPM conventionally means cost per thousand impressions. Reach counts unique people. If an ad showed to the same person four times, impressions were roughly four times reach, and a naive calculation understates real spend by about the same factor.

We handle this by treating the CPM input as the cost per thousand people reached, which folds frequency into the number you choose. If you believe frequency was 3 and the true impression CPM was £8, then your cost per thousand people reached is about £24, which sits inside the range we show. This is a reasonable way to carry the uncertainty, but it is still an assumption doing the work.

2. Coverage is EU, EEA and UK only

Ads that never delivered into those markets have no published reach, so they get no estimate. A brand advertising heavily in the United States can look quiet here. Where we have priced only part of a brand's ads, we say so on screen rather than presenting a partial total as a complete one.

3. One ad is not a budget

These are per-ad and per-creative figures for ads currently live. They are not an advertiser's total spend, they exclude everything already stopped, and they exclude every channel that is not Facebook or Instagram.

What we will not do

Corrections

If you can show that any part of this method is wrong, we want to know and we will change it. The reach layer is auditable against Meta's own Ad Library, and every ad we show links back to its Ad Library entry so you can check ours against theirs.

Back to the Wilow Ad Library  ·  Wilow builds creative analytics for Facebook and Instagram advertisers.