How to find competitor winning ads
How to tell which competitor ads are winning from the ad library's one honest signal, runtime, and the three things it can't show you.
How to tell which competitor ads are winning from the ad library's one honest signal, runtime, and the three things it can't show you.
You sorted a competitor's ads oldest-first in the Meta Ad Library, found one that has been live for 94 days, and now you're briefing your designer to build your own version. Before you spend a euro on that: you know the ad is old. You don't know whether it made anyone money.
That gap is the whole problem with finding winning ads in a public library. The library will happily show you what a competitor keeps running. It will never show you what worked.
Short answer: A competitor ad that keeps running for 30+ days has survived that advertiser's own kill decisions, which makes it a durable pattern worth studying. It does not prove the ad is profitable. The ad library hides spend, ROAS, and why the ad wins, so treat a long runtime as a strong hypothesis you still have to test yourself.
The takeaways
No. A 90-day ad has survived three months of its advertiser's kill decisions, and that is real information, but survival and profit are two different claims. The advertiser is satisfied enough to keep paying. You cannot see what "satisfied" means for their books.
A performance shop kills anything below its ROAS floor within a week, so for them a 90-day ad is close to proof. A funded brand runs the same creative for a year as an always-on awareness buy it never scrutinizes. Same 90 days on the timeline, completely different meaning. Runtime is the strongest free signal you get, and I still treat 30 days as my cutoff for calling an ad durable. It only ever answers whether the ad survived. Whether it printed money stays invisible.
The argument the market keeps rewarding. Once you have a shortlist of ads that cleared your 30-day filter, decode each one into a row: who it addresses, the problem it names, the promise it makes, the proof it offers, the call to action. After twenty rows the repetitions start talking.
You will see the same three objections handled again and again, the same proof types, the same hook mechanics. Those repetitions are the market's current playbook, and they are fair game because they are a pattern, not a single stolen creative. This is why a decode sheet beats a screenshot folder: a screenshot invites you to rebuild the artwork, a sheet hands you the reasoning you can answer in your own voice. If you want the full find-and-map version of this, I wrote up the three-library research workflow separately.
Three things, all of them the ones you most want. Spend: you cannot tell a €200-a-day test from a €20,000-a-day scale, so you can't size the bet behind any ad. ROAS: there is no conversion or revenue data anywhere in the library, which is why you are always inferring a winner, with nothing on record that states one. And attribution: even a profitable ad won't tell you whether the audience, the creative, or the offer is doing the work.
That last blind spot is the expensive one. Copy a winner's creative onto your weaker offer and you inherit none of its performance. What is publicly inferable about a competitor's budget, and what is guesswork, is its own rabbit hole; I mapped what competitor spend you can and can't estimate if you want the honest version.
On Meta, partly. Under the Digital Services Act, Meta's Ad Library shows EU reach for each ad broken down by age, gender, and country. So a durable ad plus its reach table gives you a rough read on who the ad is landing with, which is more than TikTok or Google hand you.
Two honest limits. Reach counts who saw the ad rather than who converted, so a skew toward women aged 35 to 44 shows delivery and says nothing about who bought. And this breakdown is Meta-only and EU-only. Treat it as a directional hint about a durable ad's audience, worth a column in your sheet, never a precise persona.
The move is always the same: take the pattern the durable ads share, build your version on your own offer and proof, and let your own numbers settle the question the library never could. Longevity found you a hypothesis. Only your test tells you if it holds.
Keeping that read current by hand is an afternoon per competitor, and the libraries reshuffle constantly. That maintenance is why I built the loop into Adscalr: it pulls the Meta, TikTok, and Google ad libraries into one dataset refreshed daily (nothing here is real-time), flags any ad still running past 30 days as a durable winner, decodes each static into structured fields, and pulls Meta winner reach by gender, age, and country where the DSA exposes it. The 30-day logic in this post, running on autopilot.
This is the thinking behind Adscalr.
See the product →