Open the Meta Ad Library, filter to active video ads in your category, and read one field: “Started running on.” An ad live for six months is a winner someone is paying to keep alive. Tag the twenty longest-running ads by what their first line sells, count the tags, and you have an angle map. Five brands on a row means saturated; zero means your opening. It takes an hour, and almost nobody does it past typing in a brand name and scrolling.
The one signal most people miss
The Library tells you nothing about spend or results for a commercial ad[1]. It tells you when an ad started and whether it is still running, and that is enough: nobody keeps paying for a losing ad for a year.
When we read haircare on September 11, 2026, Polar Haircare’s gray-coverage shampoo ad started August 14, 2025 and was still live, relaunched on five dates since. A Portuguese-language men’s shampoo ad had run since October 2021. Sorting by date found both in ten minutes. Everything else here is bookkeeping around that one idea.
Duration is the closest thing the Ad Library gives you to a scoreboard.
The filters, in the order that matters
- Country. Set it to where you sell. If you also sell in the EU, run the search there too: the Digital Services Act makes Meta keep every EU ad for at least a year with reach by country[2], far more than the US view gives you.
- Active status: active. You want what is being paid for today. Inactive ads are useful later, for seeing what a competitor tried and dropped.
- Media type. Filter to the format you make. If you produce vertical video, read video.
- Search type. Use a keyword search for a category (“shampoo”, “scalp”) and an exact-phrase search for a brand name. The exact-phrase results count for a brand is the closest public proxy for how many ads it has live.
- Sort. Default order is total impressions, surfacing what is reaching people rather than what launched yesterday. Leave it there for the first pass.
How to build an angle map in an hour
- Pull the longest-running ads. Three to seven keyword searches for your category, and from each, the ads that have been live longest. Twenty to forty ads is plenty for a first map.
- Write five things down per ad. Advertiser, start date, the first line of copy, the format (brand spot, creator, long advertorial), and the length.
- Tag one primary angle. The thing the first line sells. Use a fixed list so your tags are comparable, and resist tagging an ad with three angles; pick the one it opens on.
- Count advertisers, not ads. One brand with six hundred ads on one angle is one entry. You are measuring how many companies compete for a row, which is what sets the auction price of standing on it.
- Mark the rows. Five or more advertisers is saturated. Three or four is busy. One or two is thin. Zero is empty. Where one brand holds most of a row’s volume, mark it owned: a newcomer pays that brand’s price for that brand’s audience.
- Check the brand counts. Exact-phrase search each brand that keeps appearing. The results figure tells you who is running a production machine and who is running two ads.
The tag list we use, in case a fixed list helps you start:
| Problem | the first line names a pain: shedding, frizz, gray |
| Ingredient | an ingredient is the hero: onion, rosemary, blueberry |
| Comparison | against the alternative: “no prescriptions”, “compared to minoxidil” |
| Identity | who it is for: curl type, hair texture |
| Life stage | when it is for: over 50, post-partum, on GLP-1 |
| Social proof | a number does the work: sold out, awards, customer count |
| Speed | how fast: 10 minutes, 2 minutes, 8 minutes |
| Price or offer | the money is the hook: BOGO, free kit, “yes, it’s expensive” |
| Demonstration | the product doing the job on camera |
| Enemy | a villain outside the product: hard water, sulfates, salons |
| Honesty | what it will not do, said first |
What to copy, and what to leave alone
Structure transfers: a hook mechanism, a format, the pacing of the first three seconds, running one script from a dozen creator pages. None of that is owned. Claims do not transfer. A competitor’s “clinically shown” or “compared to minoxidil” is their substantiation problem, and copying it without the evidence is how a brand gets a letter from the FTC[3]. Copy the shape, write your own truth into it.
Leave the saturated row alone too. It is tempting because that is where the proof of demand is, but it is also where five brands with a year’s head start are bidding for the same person. The angle map exists so you see the empty row right next to it.
What the Library cannot tell you
- Duration is a proxy for a winner, not proof of one. A brand can keep a losing ad live by mistake, and a profitable ad can be paused for stock reasons.
- The Library shows no spend, no results and no conversion data for commercial ads. It tells you what ran, not how well it ran.
- Commercial ads outside the EU disappear about thirty days after they stop. This read is a snapshot of September 11, 2026, and the category will look different in a quarter.
- Brand counts are the Library’s results figure for an exact-phrase search on the brand name. They are the closest public proxy for live ad volume, not an audited number.
The worked example: haircare, September 11, 2026
We ran this on haircare and published the whole thing: about 190 ads across seven searches, about 120 tagged, the brand table, the twelve-row angle map, seven longest-running ads with their Library IDs, and the concepts we would build or cut. Three findings:
- Hair loss is the category’s default pitch. Eighteen of the advertisers we read lead with thinning, shedding or regrowth. It is the most crowded row on the map by a distance, and the auction prices reflect it.
- The winners re-cut one ad instead of making twenty new ones. Polar Haircare’s “10-Minute Gray Coverage Shampoo” hook has been live since August 2025 and has at least five separate launch dates. TréLuxe has run the same paragraph of copy across more than ten ads since May 2025.
- Nobody is demonstrating the wash. DTC haircare runs one-to-seven-minute advertorials. Big brands run six-to-thirty-second spots. The twelve-second product-in-hand demonstration slot, the one that shows the lather and the result, is close to empty.
Read the full haircare teardown, then decide whether you would rather do this for your own niche or have us do it for you, free.
Questions people ask
Can I see how much a competitor is spending on an ad?
Not for a commercial ad in the US or Canada. The Library shows spend and impression ranges only for political ads, or all ads in the EU. Outside those, duration is your proxy: nobody pays to keep a losing ad live for a year.
How far back does the Library go?
Commercial ads outside the EU are visible while active and for about thirty days after. Inside the EU, at least a year. Political ads, seven years. Take a snapshot now if you want a record over time; next quarter will not show what already stopped.
Is there an API for this?
There is, but outside the EU it returns only political ads, needs identity verification, and is rate-limited. For commercial research, the web interface works better. Our earlier guide covers the API’s limits.
References
- 1Meta Ad Library Commercial ads outside the EU show no spend or results; duration and active status are public.
- 2Our earlier guide to the Ad Library: access, the API, the DSA changes, and the research built on it
- 3FTC, Trade Regulation Rule on the Use of Consumer Reviews and Testimonials, 16 CFR Part 465
- 4OpenAffect, haircare teardown, read September 11, 2026