The short answer
AI ad analysis only works on tagged ads: a model can't compare 2,000 scripts until each one has the same labels. Ad Radar tags every ad on ten dimensions, from hook pattern to landing page type. The lesson from tagging 2,443 winning Meta ads: keep each dimension to one question, define values by what the ad does, and expect overlap (36% of ads carry two narrative angles). Below is the structure, a tagging prompt and a validation routine for your own.
Why tagging comes before analysis
Ask a model "what's working in my niche?" and paste 300 ads, and you'll get an essay. Ask the same model to tag each ad first, then count, and you get a table you can act on: which hooks, angles and formats show up among ads that kept getting budget.
That's the whole idea behind AI ad analysis. The model does the reading once, consistently, and turns each ad into a row. Everything after that is counting.
Here is what one row looks like on the Ad Radar board.
If you cover your grays and have helmet hair like this, and you're in between 40 and 60, this is not aging, and it's fixable.
- Est. spend
- $316K
- Days live
- 125
- Format
- Video, 124s
One of 371 ads on the board with all ten dimensions filled. The full tag set is in the table below.
| Dimension | The question it answers | This ad |
|---|---|---|
| Hook pattern | What does the first line say, formally? | Specific-Number Opener |
| Hook mechanism | Why does it grab attention? | Problem-to-Solution Bridge |
| Narrative angle | How does it build the case? | Systematic Breakdown, Expert Based |
| Reader awareness | What does the opener assume the viewer knows? | Solution-Aware |
| Proof level | How much evidence backs the main claim? | Unproven, Medium |
| Production format | How was it made? | Founder / Expert |
| Video type | What kind of video is it? | Voiceover Listicle |
| Landing page type | Where does the click go? | Dedicated landing page |
| Niche | What market or problem? | Hair |
| CTA type | What does it ask for? | Buy |
Ten questions, each answerable on its own. That separation is the most important design choice in the whole system.
Design rule 1: one question per dimension
The most common mistake in homemade taxonomies is mixing questions. A "hook type" list with values like "question", "UGC", "fear" and "founder" blends the wording of the opener, the production method and the psychology into one field. You can't count anything cleanly.
We split the opener into two dimensions for this reason. Hook pattern is the form of the first line: a question, a number, a story, a warning. Hook mechanism is the psychology: curiosity, fear of loss, expert explanation, a personal story. The same question can work through very different mechanisms. More on that split in hook pattern vs hook mechanism.
The definitions matter as much as the names. Two that came out of tagging thousands of ads:
- Awareness: judge by what the opening of the ad assumes, not by where it leads. An ad that ends on a product pitch can still be written for an unaware viewer.
- Production format: the technique, not the content. A founder reading a script and a founder in an interview are both "Founder / Expert".
Design rule 2: expect overlap, decide how to handle it
Real ads don't fit one box. On our board, the share of tagged ads carrying more than one value:
| Dimension | Ads with 2+ values |
|---|---|
| Narrative angle | 36% |
| Niche | 34% |
| Proof level | 30% |
| Hook pattern | under 1% |
| Hook mechanism | under 1% |
The pattern is useful. The opener is a single moment and almost always gets one label. The angle and the proof run through the whole ad and often mix. So we allow up to two niches (main one first) and accept two angles, but force a single hook pattern. Decide this per dimension before you tag anything, or your counts won't add up.
Design rule 3: let the data prune your values
Start with more values than you need and cut the ones nobody uses. On our board the hook pattern dimension has 13 values, but seven of them cover nearly all ads:
| Hook pattern | Ads | Share reaching top tier |
|---|---|---|
| Problem/Benefit Opener | 714 | 9.1% |
| First-Person Story | 438 | 10.0% |
| Specific-Number Opener | 411 | 12.9% |
| Question Opener | 366 | 7.1% |
| Offer-First Opener | 255 | 8.2% |
| Warning/Shock Opener | 156 | 10.3% |
| Authority Opens the Lesson | 44 | 11.4% |
| Six other patterns combined | 15 | too few to read |
(About 10% of the board reaches the top tier: top 10% by winner score, live 21+ days.)
Values with a handful of ads, such as Before/After Reveal with 4, can't support any conclusion. Keep them if they describe something real and you expect more, merge them if not. Never report a rate on a value with fewer than about 20 ads.
Coverage is worth tracking too. Hook pattern and mechanism are tagged on 98% of the board, awareness on 88%, angle on 75%. Production format and video type are tagged on only 610 and 564 ads, so we treat any finding from those two as directional.
Where AI tagging needs tie-break rules
Borderline ads are where taggers, human or AI, disagree. One example from the board:
Make this one 15-second adjustment near your breaker panel tonight and watch what happens.
- Est. spend
- $535K
- Days live
- 86
- Format
- Video, 114s
Filed as a Question Opener: "watch what happens" works as an implied question. A human could as easily file it as Specific-Number ("15-second"). Neither is wrong, so the definition needs a tie-break.
Write tie-break rules into the prompt, in priority order. For example: "If the opener contains a number that carries the promise, tag Specific-Number, even if it ends on a question." The rule matters less than having one, because consistency is what makes the counts comparable.
A tagging prompt you can use
This works in Claude or any capable model. Paste your taxonomy with definitions, then the ads.
You tag Meta ads. Use ONLY the values listed for each dimension.
TAXONOMY
hook_pattern (one value): [values with one-line definitions]
hook_mechanism (one value): [...]
angle (max two, main first): [...]
awareness (one value, judged by what the OPENER assumes): [...]
evidence (max two): [...]
...
TIE-BREAKS
1. A number that carries the promise beats a question.
2. ...
EXAMPLES
[2-3 ads with correct tags and one line of reasoning each]
For each ad below, return JSON:
{"id": "...", "hook_pattern": "...", "hook_mechanism": "...",
"angle": ["..."], "awareness": "...", "evidence": ["..."],
"confidence": "high|low", "reason": "one sentence"}
Mark confidence "low" when two values fit. Never invent a value.
The confidence and reason fields are what make review fast. You read the low-confidence rows, not all of them.
If you use Claude with the Ad Radar MCP server, skip writing the taxonomy: list_taxonomy returns the board's dimensions, a description of each and the valid values, so your ads end up in the same system as 2,443 winners and you can compare your mix with winning_patterns directly. Prompt 24 in Claude prompts for Facebook ads does exactly that.
Validate before you trust the counts
Tagging at scale is cheap, which makes it easy to skip checking. A short routine:
- Double-run 50 ads. Tag the same 50 twice in fresh sessions. Where the runs disagree, the definitions are ambiguous.
- Human sample. Have one person tag 30 of them blind and compare. Disagreements that repeat point to a missing tie-break.
- Fix definitions, not tags. If a dimension disagrees on more than about one ad in five, rewrite its definitions and tie-breaks, then re-run. Hand-correcting tags hides the problem.
- Freeze a version. Once it's stable, name it (v1) and don't change values mid-analysis. Changing the taxonomy halfway makes old and new counts incomparable.
- Recheck quarterly. New formats appear. Add values deliberately, with definitions.
What to do with the tags
Tags pay off when they meet performance. Three uses that work:
- Your own account. Tag every ad you've run and join with spend and CPA. You'll see which angles you over-test and which you never tried. Our creative diversity matrix is built on this.
- Competitors. Tag their long-running ads with the same taxonomy and compare their mix with yours.
- Briefs. Every brief field becomes a tag value, so a winning ad's tags become the starting brief. See how to write a creative brief with AI.
Figures marked as estimated spend come from Ad Radar's model of engagement on public Meta Ad Library ads. They are estimates, labeled as such, and are best used to rank ads against each other.