Meta Ads Library

How to Find a Competitor's Facebook Ad Spend

Meta never publishes what a brand spends on its ads. It does publish how many people each ad reached in the EU and the UK, and that number, with a CPM you choose, is the closest honest estimate of spend you will get.

KO

Kole Ogundipe

·

You cannot see what a competitor spends on Facebook or Instagram ads. Meta publishes spend for political and issue ads only. For every other ad it publishes something more useful than most guides admit: for any ad delivered in the EU or the UK, the number of people that ad reached, split by country, age and gender. This guide shows you where that number lives, how to read it for any brand right now, and how to turn it into a spend estimate you can defend in a meeting.

Can you see how much a competitor spends on Facebook ads?

No, not for a commercial advertiser. Meta's Ad Library publishes spend and impressions only for ads about social issues, elections or politics. For every other ad it publishes the creative, the start date, the platforms it ran on and, for ads delivered in the EU or the UK, how many people the ad reached. Spend for a brand is always an estimate built on top of that reach.

That is why almost every guide on this subject teaches you to infer spend from signals: count the creative variants, weigh how long each has run, assume a cost per variant, multiply by an industry CPM. Those methods are not useless, and this page covers where they still help. But they all start from the premise that Meta gives you nothing to count. For any brand that advertises in Europe or the UK, that premise is wrong. Meta gives you a delivered audience figure per ad, published by Meta, updated as the ad keeps running.

The rest of this page is built on that figure. First, what Meta publishes and why. Then a live look at any brand's reach. Then the arithmetic that turns reach into a spend estimate, with the assumptions visible rather than hidden. Then a worked example on a real ad, and finally what to do when a competitor runs no ads in Europe at all.

What does Meta publish instead of spend?

For every ad in the Ad Library, Meta publishes the creative, the start date, whether it is still active, and the platforms it ran on. For ads delivered in the EU or the UK it adds a transparency panel: the total number of people the ad reached, a per-country breakdown, and an age and gender breakdown of who actually saw it. Spend and impressions appear only on political and issue ads.

What Meta publishesWhich adsWhat it tells you
Creative, copy, landing URLEvery adWhat the brand is saying and where it sends people
Start date, active status, platformsEvery adHow long the ad has been running, and whether it survived
Delivered reach (the API field is eu_total_reach)Ads delivered in the EU or the UKHow many people saw the ad, published by Meta
Reach by country, age and genderAds delivered in the EU or the UKWhere the ad actually landed and on whom
Targeting summary (locations, age range, gender)Ads delivered in the EU or the UKWho the advertiser asked Meta to show it to
Spend range and impressions rangePolitical and issue ads onlyExact money, but only for a category most brands never use

The reason this data exists is the EU's Digital Services Act, which requires very large platforms to keep a public repository of every ad they show in the EU, including who it reached. Meta's own field documentation for the Ad Library API describes the reach field as available only for ads delivered to the EU, and the age, country and gender breakdown as available for ads delivered to the UK and EU. Meta reports the UK alongside the EU in the same panel, which is why a UK-market ad carries the same figures.

You can see all of this without any tool. Open Meta's Ad Library, search a brand, click into any ad and scroll to the transparency section. It lists the ad's reach, then splits it by country and by age and gender. What Meta's own interface does not do is put those figures side by side across a brand's ads, rank them, or update the comparison daily. That is the part you get below.

Two boundaries to hold onto. The figure counts people, not impressions; one person who saw the ad nine times counts once. And a brand that delivers no ads in the EU or the UK has no transparency panel at all. A US-only advertiser shows a creative and a start date, and nothing else.

See a brand's delivered reach right now

The tool below is Wilow's free Meta Ads Library. Type any advertiser and it pulls that brand's live ads from Meta's Ad Library, groups them by how long they have run, and reads the UK slice of the delivered reach for each ad. The reach badge on a card is Meta's published figure for people reached in the UK. Daily reach is that figure divided by the days the ad has been running, which is what the rankings sort by.

A few things to know while you read it. The reach shown is one country's delivered slice, not the EU and UK total, so it understates a brand that runs across several markets. An ad with no badge is an ad Meta has not measured for the UK, which usually means it was not delivered there. And the number is a running total: an ad that launched yesterday will carry a small figure today and a much larger one next week, which is why daily reach, not total reach, is the fair way to compare a new ad against an old one.

How do you turn reach into a spend estimate?

Multiply the people reached by a CPM and divide by a thousand. Reach is Meta's number. The CPM is yours, and the estimate is only as honest as the CPM you put in. On Wilow the CPM sits on a slider from £10 to £50, defaulting to £15, and the estimate updates as you move it.

The arithmetic is deliberately simple. Estimated spend equals reach times CPM, divided by 1,000. An ad that reached 200,000 people, at a £15 CPM, models to £3,000. At £10 it is £2,000; at £25 it is £5,000. The point of the slider is not to find the one true number. It is to make the assumption visible and yours. You know your own CPMs in your own market better than any benchmark table does, and Wilow's note on how the spend estimate works publishes no CPM benchmark at all, on purpose.

Three things make this more defensible than the usual inference guides, and three things limit it. It is more defensible because the only input that is not yours comes from Meta; because you can hand a colleague the reach figure and the CPM you chose and they can reproduce the estimate; and because it moves. Check the same ad in a week and the reach has grown, so the estimate has grown with it, which is the closest you will get to watching a competitor's budget flow.

It is limited in three ways that every page quoting a spend figure should say out loud. Reach counts people while a CPM prices impressions, so unless you also assume a frequency the formula is a floor, not a midpoint. The coverage is EU and UK delivery only, so it says nothing about a brand's US budget. And one ad's reach is not a budget: to size a campaign you sum the ads that belong to it, and to size a brand you sum across everything it is running in that market.

Some guides multiply reach by an assumed frequency before applying the CPM. That produces a higher and more realistic figure, and it adds a second guess on top of the first. If you do it, write both assumptions down next to the number. A spend estimate is a small model, and a model whose inputs are written down can be argued with. One that arrives as a bare figure cannot.

A worked example: one Gymshark ad, four days, 161,486 people

Take one ad from Gymshark's UK page, pulled from Meta's Ad Library on 6 July 2026. The ad started on 2 July, so it had been running for four days. Meta's transparency panel put its delivered reach at 167,332 people, of whom 161,486 were in the UK. Every figure in this section is Meta's, except the spend, which is modelled from them.

FigureValueSource
AdMeta Ad Library ID 965503739855722Meta
Started2 July 2026, still active on 6 JulyMeta
People reached, all EU and UK167,332Meta transparency panel
People reached, UK161,486Meta country breakdown
Daily reach, UK40,372 per day (161,486 ÷ 4)Calculated
Targeting summaryMen, 18 to 35, United KingdomMeta
Delivered audience79,229 men 18 to 24; 76,993 men 25 to 34; 5,253 men 35 to 44Meta age and gender breakdown
Estimated spend at £15 CPM£2,422 (161,486 × 15 ÷ 1,000)Modelled
Estimated spend at £10 and £25£1,615 and £4,037Modelled

The ad's copy, quoted as it appears in Meta's Ad Library:

Strong starts with showing up 💥

Read the table from the bottom up and you get the whole method in one ad. The spend line is a range, £1,615 to £4,037 over four days, because the CPM is an assumption and a range is the honest shape of an assumption. The daily reach line is what makes this ad comparable with an ad that launched a month earlier. The audience lines are where Meta tells you something you could not have guessed: the brand targeted men aged 18 to 35, and Meta delivered almost the whole audience inside that range, with a small spill into 35 to 44. That spill is the ad's delivery, not its targeting, and it is the sort of detail that only shows up because the breakdown is published rather than estimated.

To size the campaign rather than the ad, repeat this for every Gymshark ad that shares the same product and launch window and add the spend lines together. You can see all of Gymshark's live ads, with their reach, on the Gymshark ad library page. To size the brand's UK Meta budget for the month, sum the ads that were live during the month, and remember the floor: the estimate assumes every person saw the ad once.

How do you estimate spend for a brand with no EU or UK reach?

You fall back to inference, and you treat the result as a ranking rather than a figure. When a competitor delivers no ads in the EU or the UK, Meta publishes no reach for them, and the transparency panel is empty. Everything you can then say about their spend is built from signals that correlate with budget without measuring it.

The signals worth counting are the ones Meta publishes for every ad regardless of market. How many ads the brand has live, because a brand paying for 80 active ads is buying more media than a brand paying for six, though not proportionally. How long each has run, because an ad that has survived 90 days is an ad the brand has decided to keep paying for. How many new ads launch per week, because launch velocity is the clearest public sign that a brand is testing with real money behind it. And the landing pages the ads point to, because a brand advertising four product lines is funding four budgets.

What the inference methods get wrong is that the assumptions stack. A method that counts variants, multiplies by a production cost, then multiplies by a media multiplier has three guesses in it, and the error in each compounds. Impressions-times-CPM only works when you have impressions, and for a commercial ad Meta's API publishes impressions for political and issue ads only. Some guides report that Meta has begun showing impression buckets or yearly spend bands on some advertiser profiles in the EU; if you see one, use it as a floor and note where you saw it, because a band is an anchor, not a per-ad number. And launch velocity proves that a brand is testing, not what it is spending: a lean team can ship thirty low-cost variants a week on a modest budget.

Where inference still earns its place is ordering. If you need to know which of five competitors is the heaviest Meta advertiser, ad count, run length and launch velocity will rank them correctly far more often than not. If you need to know whether a competitor has changed behaviour this month, a jump in active ads or a sudden burst of new creative tells you before any spend model would. Just do not let a ranking turn into a figure on a slide. The moment a number appears, someone will treat it as measured.

How do you track a competitor's spend over time?

Check the same ads again and watch the reach move. Because Meta's reach figure is a running total, the difference between two readings is the number of new people the ad reached in between, and that delta, times your CPM, is the spend you can attribute to that window. Daily reach does the same job in one step for an ad you are seeing for the first time.

In practice this is a weekly habit. Open the brand, note which ads sit in the recent lane (launched in the last 30 days) and which sit in the proven lane (live for 90 days or more). An ad that moves from recent to proven with its daily reach still rising is the one the brand is scaling; an ad that drops out of the recent lane without ever gaining reach was a test that failed. A brand whose proven lane is thick and whose recent lane is thin is defending winners; the reverse is a brand hunting for one.

When you want the same view by market rather than for the UK alone, the in-app Competitor Tracking pages carry a Reach and Audience view for each competitor you follow. You pick the country, any EU market or the UK, and it shows the delivered reach for that market, the modelled spend under a CPM slider, and the age and gender chart where Meta measured one. An ad with no qualifying reach shows no spend estimate at all, so the view never builds a number on nothing.

Which tools show competitor Facebook ad spend?

None of them show it. Every tool in this category either surfaces the reach Meta publishes, models spend from that reach, or models spend from a panel of tracked users. The useful question to ask of any tool is which inputs are Meta's and which are the tool's assumptions.

  • Meta's Ad Library. Free, complete and authoritative, with the transparency panel on every EU or UK ad. It shows one ad at a time and does not rank, sum or track, so it is the place to verify, not the place to browse.
  • Wilow's free Meta Ads Library, embedded above and at trywilow.com/meta-ads-library. It reads the UK slice of Meta's reach for a brand's live ads, ranks by daily reach, and models spend from a CPM you set. It shows one country at a time and publishes no CPM benchmark.
  • Browser extensions such as BrandSearch and Adnova add the EU reach figures into Meta's own Ad Library interface and can total them across a page's ads. Wilow has no browser extension, so if you spend your day inside Meta's Ad Library, an extension is a genuine convenience Wilow does not offer.
  • Cross-channel spend estimators like Semrush's advertising research, Sensor Tower's Pathmatics and Nielsen Ad Intel model spend from panels of tracked users and cover markets where Meta publishes nothing, including the US. Their figures are estimates from a sample rather than counts from Meta, and they are the only option for a US-only competitor. Wilow does not do this.

On accuracy, the honest position for every tool on this list, Wilow included, is the same. Reach is measured by Meta and published. Spend is modelled. A tool that shows you a spend figure without showing you the reach and the CPM behind it is asking you to trust a model you cannot inspect.

Frequently asked questions

Does the Meta Ad Library show ad spend?

Only for ads about social issues, elections or politics, where it shows a spend range and an impressions range. For commercial ads it shows no spend. For commercial ads delivered in the EU or the UK it shows the number of people reached, with a country, age and gender breakdown.

Why does Meta publish spend for political ads but not for brands?

Political ad disclosure is a Meta policy that predates the EU rules and applies worldwide. Reach disclosure for every ad comes from the EU's Digital Services Act, which requires an ad repository with audience information but does not require spend. Meta publishes what each rule requires and no more.

Is reach the same as impressions?

No. Reach counts people; impressions count views. One person who saw an ad five times is one reach and five impressions. Because CPMs price impressions, spend modelled from reach without a frequency assumption is a floor.

What CPM should I use to estimate a competitor's spend?

Your own, from the same country and a similar audience. You bid in the same auction as your competitor, so your account's CPM for that market is the best benchmark you will find. If you have no delivery there, use a range rather than a point, and say which range you used.

Can I see a competitor's ad spend by country?

You can see reach by country for ads delivered in the EU or the UK, because Meta's breakdown is per country, and you can model spend for each country from it. Wilow's free tool shows the UK; the in-app Reach and Audience view lets you pick any EU country or the UK.

Can I see who a competitor's ads reached, by age and gender?

Yes, for ads delivered in the EU or the UK. Meta publishes the delivered reach by age band and gender, which is the audience the ad actually landed on, alongside the targeting summary the advertiser chose. The two often differ, and the difference is worth reading.

Does this work for Instagram ads?

Yes. Meta's Ad Library covers Facebook, Instagram, Messenger and the Audience Network, and the transparency panel applies to an ad wherever Meta delivered it. The platforms list on each ad tells you which surfaces it ran on.

Has Meta started showing spend bands for commercial advertisers?

Meta's API documentation, as of 3 September 2026, lists spend and impressions as available for political and issue ads only. Some guides report yearly spend bands or impression buckets appearing on certain EU advertiser profiles. If you find one, treat it as a floor for the whole advertiser, not as a per-ad figure, and keep the per-ad reach as your working number.

This page is part of the Wilow Meta Ads Library, where you can search any brand's live ads and see their reach for free. For the product side, where you follow chosen competitors across markets with the CPM slider and the audience charts, see Competitor Tracking.