There is a number every ad-spy tool wants to show you, and it is a lie.
Open most competitive-intelligence products, type in a brand, and you'll see a confident dashboard: ROAS 4.2x, CTR 1.8%, CPC $0.94. The numbers are crisp. They have decimal points. They feel like data. They are invented.
Here is the uncomfortable foundation of this entire category: you cannot see a competitor's true ROAS, CTR, CPC, CPM, click count, conversion count, or revenue. Not because the tools are too cheap to pull it, but because the data does not exist anywhere outside that brand's own ad account. Meta does not publish it. The Ad Library API does not return it. There is no back door. Any tool that displays a competitor's exact ROAS did not measure it — it generated it.
So the honest question isn't "which tool has the best metrics?" It's "what can you actually verify?" And once you ask that, one signal stands above every other: days running.
What Meta Ad Library actually gives you
Before defending the proxy, let's be exact about the raw material. The Meta Ad Library API is generous in some ways and silent in others.
| Field | Exposed? | Notes |
|---|---|---|
| Ad creative (image/video/copy) | Yes | The full creative as served |
| Run start date | Yes | When the ad first went live |
| Active / stopped | Yes | ad_delivery_stop_time = null means still live |
| Spend | Range only | e.g. "$10K–$15K" — wide, lifetime, never exact |
| Impressions | Range only | Same wide-band treatment |
| CTR, CPC, CPM | Never | Does not exist in the API |
| Clicks, conversions | Never | Does not exist in the API |
| Revenue, ROAS | Never | Lives only inside the advertiser's account |
Notice what's solid versus what's smoke. Creative and run dates are facts — observable, timestamped, falsifiable. Spend and impressions are honest-but-blurry ranges. Everything in the performance tier — the stuff that actually tells you if an ad works — is simply absent.
That absence is the whole game. The tools that hallucinate ROAS are filling a vacuum with a guess and pricing the guess as insight.
Why days running is a real performance proxy
Here's the reasoning, step by step, because the argument only earns trust if you can follow the whole chain:
- Ad budgets are scarce and actively managed. Every dollar a brand spends on a live ad is a dollar not spent on a different ad. Media buyers cut underperformers constantly — it's the core loop of the job.
- Brands run their own A/B tests against their own ground truth. They do see real CTR, CPC, and ROAS for every creative. We don't — but they do, and they act on it ruthlessly.
- Losing ads get killed fast. A creative that doesn't convert gets paused in days. Nobody keeps paying to serve an ad that loses money.
- Therefore, an ad that's still live after 100+ days has survived the brand's own scrutiny. It beat the alternatives in tests we can't see, against metrics we can't measure, judged by the one party who can — and it kept its budget.
That's revealed preference. We don't need to know the ROAS. The brand knew it, the brand acted on it, and the result — a still-running ad — is the receipt. Longevity is the advertiser telling on themselves.
This is why days running beats a fabricated metric on every axis that matters:
- It's derived, not invented. AdWhispr computes it from daily snapshots we take of each tracked brand. Meta's API returns no history, so the only way to know an ad has been live 137 days is to have watched it every day. The history is the product.
- It's auditable. Every days-running figure traces to a snapshot delta with dates attached. You can ask where it came from and get an answer that isn't "the model felt confident."
- It can't be more precise than reality. A made-up "ROAS 4.2x" pretends to a precision that doesn't exist. "Live 137 days, still active" claims exactly what it can prove and not one decimal more.
Derivation vs. fabrication
The distinction is the entire methodology, so it's worth making it concrete.
| Fabricated metric | Derived signal | |
|---|---|---|
| Example | "Competitor ROAS: 4.2x" | "Ad live 137 days, still active" |
| Source | Model guess / synthetic formula | Daily snapshot deltas |
| Auditable? | No — can't cite inputs | Yes — dates and counts attached |
| Fails how? | Silently, confidently wrong | Visibly — you see the run dates |
| Honest about limits? | No | Yes |
A fabricated ROAS fails silently. It's wrong in a way you can't detect, which is the most dangerous kind of wrong, because you'll make a media-buying decision on it and never know the input was fiction. A derived signal fails loudly — if a number looks off, you can trace it to its snapshots and catch it.
Days running isn't the only thing AdWhispr derives this way. The same "cite your inputs" rule governs every signal we surface:
- Engagement-verified reach — Meta's impression range narrowed by Apify-scraped likes, comments, and shares on the actual creative.
- Creative-iteration rate — new creatives per month, computed from first-seen dates across the tracked window.
- Cross-source spend triangulation — Meta's wide spend range tightened using engagement, days-running, and creative count together.
Every one of these LEADS our competitive briefs — the derived-intelligence panel comes before any qualitative take, because the auditable numbers should anchor the narrative, not the other way around.
The honest limits (because pretending there are none is the same disease)
If we stopped here, we'd be doing a softer version of what we just criticized. So here's where days running is not a magic number:
- Longevity is not proof of profit in every single case. A brand can run a brand-awareness or always-on ad that isn't ROAS-optimized at all. A big company can occasionally tolerate a mediocre evergreen ad. The proxy is strong in aggregate, not infallible per-ad.
- New winners take time to surface. A creative launched last week might be the brand's best-ever performer — it just hasn't accumulated days yet. Days running is biased toward proven winners and blind to emerging ones. That's why creative-iteration rate sits next to it.
- You read the distribution, not a single number. A brand with thirty ads all under 14 days old is in a testing sprint. A brand with five ads all past 200 days has found its winners and is milking them. The shape of the run-time distribution tells the strategic story — one ad's day count is just a data point.
That last one matters most. The mistake is to treat days running like the fabricators treat ROAS — as a single magic scalar. It isn't. It's a distribution you interpret. Read across a brand's whole portfolio and the run-time histogram reveals their playbook: are they testing, scaling, or coasting?
The bottom line
You can have a confident lie or a humble fact. The ad-spy category mostly sells the confident lie because invented precision demos well. AdWhispr sells the humble fact, because the humble fact is the only thing that survives contact with reality — and the only thing you can actually build a media-buying decision on.
We don't fabricate metrics. We derive them, we cite their inputs, and we tell you where they're weak. Days running is the cleanest example: a verifiable, revealed-preference proxy that beats every invented ROAS score, precisely because it never claims to be more than it is.
Want to read the distribution yourself? Ask AdWhispr in chat, or connect the MCP server (npx adwhispr-mcp-server config) and query a brand's run-time history directly. Free tier covers 5 messages a month; Pro is $29 and Agency $149. More methodology posts live on the blog.
We'd rather show you a fact we can prove than a number we made up — that's the whole pitch.