All articles
Competitor Intelligence7 min read

How to estimate competitor ad spend without making the number up

What Auction Insights, the Meta Ad Library, and activity patterns let you say about competitor ad spend, where every exact figure comes from, and how to report a range you can defend.

The question usually arrives from someone who signs invoices: "What is competitor X spending on ads right now?" You have three options. Say "nobody outside their ad account knows", which is true and lands badly. Pull a number from a spend-estimation tool and present it as fact, which is how made-up figures end up in board decks. Or build an estimate from data the platforms publish, with a range and a confidence label attached.

I have been asked this question on accounts spending €150k a month, and I have watched the second option go wrong: a tool's guess gets quoted in a strategy meeting, someone anchors a budget to it, and six months later the plan is calibrated against a fiction. This post is the third option, end to end.

The takeaways

  • Exact competitor budgets are published nowhere. Google's Auction Insights and Meta's Ad Library give you bounded signals on shared keywords and EU reach; every precise euro figure you see elsewhere came out of a model you cannot audit.
  • Longevity is the strongest spend signal you can verify. An ad still active after 30+ days has earned its budget through a month of its owner's own kill decisions, which tells you where the money keeps flowing.
  • Report a range with a stated basis and confidence level. "Between X and Y, based on these three signals, confidence: low" survives scrutiny. A single number does not survive the first follow-up question.

Can you find out exactly what a competitor spends on ads?

No. Neither Meta, nor Google, nor TikTok publishes a commercial advertiser's budget, and no third party has access to it. What the platforms do publish, mostly under transparency rules, is enough to bound an estimate: presence data on Google, ad inventories and EU reach figures on Meta and TikTok, and actual spend ranges for one narrow category, political and issue ads.

That distinction matters because the market is full of tools selling "competitor ad spend" as a clean dollar figure. Those figures are model outputs, built on panel data and traffic assumptions, and the tools rarely publish their error bars. When a stakeholder asks for the number, the professional answer is a bounded range plus the signals it rests on. Everything below is about building that range from data you can name.

What does Google Auction Insights tell you about competitor spend?

Auction Insights, inside any Google Ads campaign, shows which advertisers entered the same auctions you did, and how the two of you compared. Per Google's own documentation it reports impression share, overlap rate, outranking share, position-above rate, and top-of-page rates. None of these is a euro figure. Together they bound a competitor's presence on the keywords you share.

Read it like this. If a competitor's impression share on your core keywords sits at 70% while yours is 40%, they are either bidding harder, budgeted higher, or both, on exactly the inventory you care about. Watch the numbers over weeks: a rising impression share plus a rising overlap rate means escalating investment in your space. A sudden drop often means a budget cut or a strategy shift before you see it anywhere else.

The limit is built in: Auction Insights only covers auctions you entered. A competitor's spend on keywords you do not bid on is invisible. You are bounding their presence in your shared market, which for most decisions is the part that matters.

What does the Meta Ad Library reveal about a competitor's budget?

For commercial ads, no spend at all. What the Meta Ad Library does show is the full active inventory: every ad, its start date, its formats and placements, and, for ads delivered to the EU, reach data that Meta provides under the Digital Services Act. Those EU reach figures are the closest thing to a free volume signal in the whole stack: real delivery numbers, by country, age, and gender.

The one place Meta publishes actual money is political and issue advertising, where the Ad Library shows spend in ranges per ad and totals per page. Useful if your competitor is a party or an advocacy group, irrelevant for most commercial buyers, and worth knowing so you can explain why your SaaS competitor's spend is not in there.

For everyone else, the budget signal is behavioral. Count active ads. Note how often new creatives appear and old ones die. An advertiser running 200 active ads with weekly refreshes across four placements is funding a serious testing operation; you can infer a floor on their spend from the production cadence alone, even without a single euro figure.

How accurate are third-party ad spend estimators?

In my experience, off by multiples. I have compared estimator outputs against accounts whose real spend I knew from the inside, and the estimates missed by 2x to 5x, in both directions, with no indication of which direction. The tools build their figures from panel browsing data, scraped ad frequencies, and CPM assumptions, and each layer adds error the interface never shows you.

That does not make them worthless. As a relative signal ("this competitor appears to spend more than that one", "their activity roughly doubled since March") they can be directionally fine, because the errors partially cancel when you compare like with like. As an absolute figure to put in a deck, they are a liability: the number looks precise, carries no confidence interval, and will be quoted long after everyone forgets it was a guess.

My rule: never quote an estimator's number without the word "estimate" and a stated range around it. If the tool will not tell you its error bars, assume they are wide.

How do you present a spend estimate without making it up?

Report three things: a range, the basis, and a confidence label. A defensible deliverable looks like this: "Competitor X runs 140 to 180 active Meta ads with a weekly refresh cadence and EU reach of N per the Ad Library; their Auction Insights impression share on our core keywords rose from 45% to 60% this quarter. Combined, this is consistent with a monthly budget in the low-to-mid six figures. Confidence: low to medium."

Every clause in that paragraph is checkable. The reach figure has a source. The impression share has a source. The euro range is openly an inference, labelled with its confidence. When someone challenges it, you walk them through the signals instead of defending a black-box number. I have given exactly this kind of answer to a CMO, and "here is what we can know and how sure we are" built more trust than any precise figure would have.

One more habit: update the estimate on a schedule. Presence data moves, and an estimate with a date on it stays honest; an estimate without one quietly becomes a fact.

Why activity patterns beat a euro figure

Here is the uncomfortable part: even if you somehow knew the exact budget, it would rarely change your decisions. €80k or €120k a month, your move is the same. What changes decisions is what the money keeps buying: which angles a competitor refreshes, which ads they let run past 30 days, which placements they expand into. A creative still alive after a month has survived roughly thirty of its owner's own kill checks, made with the spend data you will never see. That survival pattern is the budget information that matters, and it is public.

This is the lens I built into Adscalr's competitor intelligence: it pulls the Meta, TikTok, and Google ad libraries into one dataset, refreshed daily, flags 30+ day survivors as winners, and tracks reach demographics for Meta winners, so the activity patterns above stop being an afternoon of manual counting. The full workflow is on the pillar page.

And spend is only one of three competitor questions. If you want to decode WHAT they run, start with ad library competitor research; for WHERE the open positioning lanes are, see market gap analysis. This post covered how much, and the honest edge of knowing it.

This is the thinking behind Adscalr.

See the product