Methodology
The math behind our ad spend estimates
Every number this extension shows is an estimate, derived from one public figure using one published assumption. Here is the whole calculation, including where it breaks.
Updated August 2026
Most tools in this space present a spend figure and leave you to guess where it came from. We would rather show the working. If you disagree with an assumption below, you can adjust our number yourself — and you will know exactly which part you are adjusting.
The one number Meta actually publishes
Meta does not disclose what a commercial advertiser spends. Under the EU's Digital Services Act it is obliged to disclose something else: for every ad delivered to people in the European Union, it publishes total EU reach — how many distinct people that ad reached — along with a per-country breakdown and the targeting the advertiser selected.
That figure sits behind the "EU transparency" link on each ad card. It is public, it is free, and you can read it by hand without any extension at all. Everything we show is built on it.
The formula
Advertising is bought per thousand impressions, so converting reach into money needs one rate. We use a flat €6 CPM:
estimated spend = (EU reach ÷ 1,000) × 6
An ad reaching 250,000 people in the EU estimates at €1,500.
That is the entire calculation. There is no second model, no machine learning, no proprietary adjustment. The same rate is applied to every ad, every advertiser and every market.
What we are assuming, and why
That €6 is a reasonable CPM
Real Meta CPMs move with country, audience, season and campaign objective. A retargeting campaign in Germany in December and a broad awareness campaign in Poland in June do not cost the same. €6 sits within the range most EU commercial advertising falls into. It will be too high for some ads and too low for others.
That reach can stand in for impressions
CPM prices impressions; Meta publishes reach, which counts people. Most people see an ad more than once, so impressions exceed reach — meaning our figure understates spend on campaigns with high frequency. We do not apply a frequency multiplier, because we would be guessing at it and the guess would compound.
That EU delivery is representative
Only EU reach is published. A brand running globally is being measured on its European slice alone, so its true worldwide spend is higher — often far higher. For an advertiser that runs mostly outside Europe, our number is a fraction of reality.
What this cannot tell you
Ads that never ran in the EU. No published reach, no estimate. A US-only advertiser is largely invisible, and that is a limit of the data, not of the tool.
Ads that have stopped. Commercial creative leaves the library when it stops running. You are always looking at what is live now.
Anything off Meta. Google, TikTok, retail media and offline spend are not in this data and never will be.
The real figure. Worth repeating plainly: there is no way for anyone outside the advertiser to know what an ad actually cost. Any product claiming exact competitor ad spend is selling confidence, not data.
Why an estimate is still worth having
Because the decisions this data supports are comparative, not absolute. Which of these forty creatives is the brand actually backing? Are we competing with a €5,000 test or a €500,000 push? Is this campaign ramping or winding down? A consistent model answers all three, and a consistent model that is wrong by the same margin everywhere answers them just as well as an exact one would.
Where the estimate fails you is any question that needs the true number in isolation. We would rather say that here than let you find out later.
Tracking: history, verdicts and alerts
When you track an advertiser we take a snapshot every day, or every two to three days for a brand that has gone quiet. Each snapshot adds up the estimated spend of the brand's live ads, and the change from one snapshot to the next is that period's estimated spend. Meta keeps no history, so the trendline starts the day you press Track.
The verdict compares the average estimated daily spend of the last 7 days with the 7 days before, and needs 14 days of history first:
- Scaling — the last week is at least 1.3× the week before.
- Pulling back — the last week is 0.7× or less.
- Steady — anything in between.
- Testing — more than 40% of live ads launched in the last 14 days. This overrides the spend comparison, because churning creative is a different story.
- Went dark — no live ads at all.
Alerts fire when a tracked brand launches new ads, when estimated daily spend rises by half or more, when it falls by half or more, and when the brand stops running ads. They inherit every limit above: they are built from the same estimate.
Frequently asked questions
Is this the advertiser's real ad spend?
No. Nobody outside the advertiser and Meta knows the real figure. What we publish is a model built on one public number — EU reach — and one assumption about what a thousand impressions costs. Treat it as a well-founded estimate, not an invoice.
Why use a flat CPM instead of a per-country one?
Because a flat rate is honest about its own error bars. A per-country model looks more precise but hides the same guesswork behind more decimal places, and the country mix of an ad changes over its lifetime. A single published rate means every ad is scored the same way, which is what makes two ads comparable.
Why is the estimate missing on some ads?
The reach figure only exists for ads delivered to people in the European Union. An ad that never ran in the EU has no published reach, so there is nothing to convert. We show no badge rather than invent a number.
Does the estimate cover the ad's whole lifetime?
Yes. Reach is cumulative from the day the ad started running, so the estimate is lifetime-to-date, not daily or monthly. An ad that has run for a year will show a much larger figure than one that launched last week, even if the newer one has a bigger daily budget.
How accurate is it in practice?
Good enough to rank a brand's ads against each other and to size a budget by order of magnitude. Not good enough to quote in a contract. If a competitor shows €400,000 and you show €40,000, that gap is real. If they show €41,000 and you show €39,000, treat them as the same.
