The short answer
With an ad research MCP server connected, a full competitor pass in Claude takes six tool calls: list the tags, search the niche, open the top ads, read one brand's hook pattern, check what beats the baseline, and generate a swipe prompt. In this walkthrough we run it on the 52 winning oral care ads on our board and end with a script structure ready for a new product.
The setup in one command
This walkthrough is one real research session in Claude, start to finish. The task: we are briefing ads for a new toothpaste tablet brand and want to know what is working in oral care on Meta right now.
Connect the Ad Radar MCP server first. In Claude Code:
claude mcp add --transport http ad-radar https://app.ad-radar.dev/api/mcp
In Claude Desktop or claude.ai, add it as a connector and sign in with OAuth. Claude now has six tools. We will use all of them, in the order a strategist would.
| Step | Tool | Question it answers |
|---|---|---|
| 1 | list_taxonomy | What tags can I filter by? |
| 2 | search_ads | What's running in my niche? |
| 3 | get_ad | What does the best one actually say? |
| 4 | advertiser_hooks | What is one competitor's repeatable playbook? |
| 5 | winning_patterns | Which choices beat the baseline across the board? |
| 6 | get_swipe_prompt | How do I adapt one ad to my product? |
If MCP itself is new to you, read MCP for marketers first. It takes five minutes.
Step 1: learn the vocabulary
Tag filters only work with exact values, so we start by asking Claude to load them.
Call list_taxonomy and tell me the valid values for niche, hook_pattern,
angle and awareness. Keep it to one line per dimension.
The board tags every ad on ten dimensions: hook pattern, hook mechanism, narrative angle, reader awareness, proof level, production format, video type, landing page type, niche and CTA type. The one we need here is the niche value oral. Skipping this step is the most common reason a search comes back empty: Claude guesses oral-care or dental, and the filter matches nothing.
Step 2: search the niche
Use search_ads with niche "oral", active ads only, sorted by score,
limit 25. Return a table: brand, opening line, format and length,
estimated spend, days live, variants, hook pattern.
Here is what the niche looks like on our October 9, 2026 snapshot:
52
winning oral care ads
20
brands running them
$256K
median estimated spend
99 days
median time live
Two things jump out of the table Claude returns. First, the niche mixes human and pet dental care: PetLab Co. has several dog dental ads in the top 15. We tell Claude to drop pet brands for this brief. Second, 92% of the niche is video, against 81% across the whole board.
The top of the human list, by estimated spend:
| Brand | Opening line | Format | Est. spend | Days |
|---|---|---|---|---|
| Pop On | Pop on Veneers is the best and easiest way to get the smile you deserve. | Video, 60s | $5.44M | 866 |
| Pop On | $2,300 for that. | Video, 57s | $4.90M | 233 |
| ResetSmile | Trust me, you're gonna want to hear this. | Video, 91s | $3.35M | 158 |
| CareCredit | We used the Care Credit credit card to get my teeth cleaned, and it feels great. | Video, 6s | $1.19M | 88 |
| LIVFRESH | This new toothpaste gel formula makes plaque literally fall off your teeth. | Video, 76s | $688K | 78 |
Follow-up prompt worth using every time: "Which of these have 2+ variants and 90+ days live?" Those are the ads a brand has kept feeding. In oral care, 33 of the 52 ads have passed 90 days and 11 run two or more variants.
Step 3: open the ad that matters
The biggest numbers belong to Pop On, but its products (snap-on veneers) are far from a toothpaste tablet. The closest product match with real scale is LIVFRESH, so we open its top ad.
Call get_ad on the LIVFRESH ad that opens "This new toothpaste gel
formula...". Give me the full transcript, then split it into beats:
hook, problem, mechanism, proof, offer, CTA. Quote each beat.
This new toothpaste gel formula makes plaque literally fall off your teeth.
- Est. spend
- $688K
- Days live
- 78
- Format
- Video, 76s
- Variants
- 2
The second line explains why regular toothpaste falls short, before the product is named. That is a mechanism script, and it is the structure we want for a new formula.
The transcript is 13 lines, and the beat map Claude builds from it is lopsided in an instructive way:
| Beat | Lines | What it does |
|---|---|---|
| Hook | 1 | The promise in physical terms |
| Problem | 2 to 3 | What regular toothpaste supposedly can't do |
| Mechanism | 4 | Who made it and the named technology |
| Proof stack | 5 to 9 | Studies, dentist recommendations, "not normal toothpaste" |
| Urgency and contrast | 10 to 12 | "Going viral", "outdated toothpaste from the '50s" |
| CTA | 13 | "Click down below to read more about it for free" |
Two findings for the brief. The proof stack is the longest block, longer than the product explanation. And the CTA asks for a read, not a purchase, which fits an unaware viewer and the dedicated landing page behind every LIVFRESH ad. The efficacy claims themselves are the advertiser's to substantiate; we take the order of the argument, nothing else.
Step 4: read the competitor's playbook, not one ad
A single ad can be luck. A brand's pattern across ten ads is a decision. That is what advertiser_hooks returns.
Get LIVFRESH's advertiserId from the last search, then call
advertiser_hooks. Summarize: dominant hook pattern, hook mechanism,
angle and awareness level, with counts.
The answer is unusually clean. advertiser_hooks reports the hooks and angles; we asked Claude to add awareness and landing type from the search rows:
| Dimension | LIVFRESH (10 ads) |
|---|---|
| Hook pattern | Specific-Number Opener (10 of 10) |
| Hook mechanism | Science / Mechanism Proof (10 of 10) |
| Awareness | Unaware (10 of 10) |
| Angle | Systematic Breakdown (8), Root Cause (5) |
| Landing | Dedicated landing page (10 of 10) |
Their headlines rotate between two lines: "The first real innovation in toothpaste since 1914." and "Your dentist will notice the difference in 4 weeks." The openers change, the argument doesn't. When Claude shows you a brand this consistent, the lesson is the argument, and you should brief your own version of it rather than a copy of any one ad.
Compare a brand that wins with a different engine:
Trust me, you're gonna want to hear this.
- Est. spend
- $3.3M
- Days live
- 158
- Format
- Video, 91s
- Variants
- 7
A top-tier ad with seven variants. The opener is a generic attention line; the work happens in the next sentence, which names the product type and explains it. Proof that a weak-looking hook can carry a strong second line.
Step 5: check the pattern against the whole board
Niche data is thin: 52 ads, of which only 2 sit in the top tier. Before betting a brief on it, we check which tag values beat the baseline across all 2,443 ads.
Call winning_patterns for video. Show the top values by lift with
their ad counts, and flag any value with fewer than 20 ads as a
small sample.
Across the board, about 10% of ads reach the top tier (top 10% by winner score, live 21+ days). The values relevant to our brief:
| Tag | Ads on board | Share reaching top tier |
|---|---|---|
| Science / Mechanism Proof | 158 | 9.5% |
| Systematic Breakdown (angle) | 468 | 12.2% |
| Strong proof | 104 | 16.3% |
| Specific-Number Opener | 411 | 12.9% |
| Unaware | 825 | 8.6% |
This is where Claude saves you from a bad brief. The mechanism hook LIVFRESH uses sits at the board average, and unaware openers are slightly below. What lifts results is the proof level and the systematic breakdown structure. So the brief keeps LIVFRESH's step-by-step argument but asks for stronger, showable proof, like a disclosing tablet test on camera, rather than more science talk.
Step 6: turn it into a swipe
Call get_swipe_prompt on the LIVFRESH ad, kind "swipe", lang "en",
product: "Toothpaste tablets, chew then brush, fluoride-free,
zero plastic tube, 60-day jar $24, subscription available".
Then follow the prompt it returns.
get_swipe_prompt returns a ready prompt: the donor script annotated by copy block (pain, promise, proof, constraints, curiosity) and instructions to work in three passes. Following it, Claude hands back:
- A structure map of the donor, beat by beat.
- A full first draft for the tablets, at roughly the donor's length.
- A comparison with the original, showing where the draft keeps the structure and where it changes the content.
Use the comparison as a checklist. Rewrite any line that sits too close to the donor's wording, replace every borrowed claim with one you can prove for your own product, and add the on-camera proof beat from Step 5. Then it goes into the brief. For the brief fields, use our creative brief template; for the full method behind swiping structure, see the AI swipe workflow.
What to check by hand
Claude did the reading. You still sign off on five things:
- Open three ads yourself. Confirm the opening lines Claude quoted match the transcript.
- Watch the sample size. 52 ads and 2 top-tier ads is a small niche. Lean on board-wide patterns for the decision, niche ads for the examples.
- Separate structure from claims. Borrow the order of the argument. Never borrow a claim you can't back for your own product.
- Say "estimated". Every spend figure in the brief is a model estimate from public engagement data.
- Note what's missing. The board covers Meta ads with $50k+ in estimated spend. Early tests by small brands won't be there.
Reusable prompt for your niche
Save this and swap the niche and product.
Research brief for [product] in niche "[niche slug]".
1. list_taxonomy: confirm the niche slug.
2. search_ads: niche, active, sort by score, limit 30. Table with brand,
opener, format, est. spend, days, variants. Drop brands outside
[scope].
3. get_ad on the 3 closest product matches. Beat map for each.
4. advertiser_hooks for the brand with the most ads in the list.
5. winning_patterns (video). Compare the niche's dominant tags with
board-wide top-tier rates. Flag samples under 20 ads.
6. Recommend one angle, one hook pattern and one proof type, citing
the ads that support each. Then get_swipe_prompt on the best donor.
Label all spend as estimated. Never invent an ad.
More single-purpose prompts are in Claude prompts for Facebook ads, and the niche itself is covered in depth in oral care ads.
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.