The short answer

An AI hook generator is only as good as the examples you give it. Left alone, language models tend to fall back on the most common openers (questions and problem statements), which on our board of 2,443 winning Meta ads reach the top tier at 7.1% and 9.1%. Feed it real winners, set a pattern quota and score the output against the data, and the hooks get usable.

Why most AI hooks are weak

Ask a model for "10 hooks for a dog supplement ad" with no examples and you tend to get lines like "Is your dog always itchy?", "Tired of watching your dog scratch?", "Your dog deserves better." They read fine. They are also the patterns that underperform on our board.

We tag the opener of every ad on the Ad Radar board. On October 9, 2026, across 2,443 live Meta ads with $50k+ in estimated spend:

Hook patternAdsReach top tier
Specific-Number Opener41112.9%
Warning/Shock Opener15610.3%
First-Person Story43810.0%
Problem/Benefit Opener7149.1%
Question Opener3667.1%

"Top tier" is the top 10% of the board by winner score, among ads live 21 days or more (about 10% of all ads). A model with no examples writes something close to the average of what it has read, and the average opener is a question or a problem statement: the two weakest rows in this table.

The fix is not a cleverer instruction. It's better input: real openers that won, a quota that forces variety, and a scoring pass built on data.

The rules your prompts should encode

These come from our analysis of the board's openers. Each one becomes a constraint in the prompts below.

RuleEvidence on the board
Include specific numbersNumber openers reach the top tier 12.9%, the best common pattern
Prefer list counts over time spansList counts 17.8%, time spans 8.8%
Avoid opening on "you" or "if you"3.9% of these video openers reach the top tier
Yes/no questions only, with a vivid detailSpecific yes/no questions 27.8% (18 ads); "why" questions 0 of 15
Put any credential in the first sentence33% when stated in sentence one (15 ads), 8.9% when absent
Warnings target habits, not the viewer's bodyWarnings opening on the viewer's symptom: 0 of 12 in the top tier
Keep text hooks to 4 to 9 wordsImage headlines of 10+ words: 6.8% vs about 14.5%

The full analysis behind the first two rules is in number hooks.

Step 1: collect real openers

The prompts need 10 to 20 winning openers from your niche or an adjacent one. Each should include the line itself, the estimated spend and the days live, so the model can weigh them. Here are two of the kind of input that works well:

Constant ContactMeta ad · winning
Here's how to grow your audience with zero marketing skills.
Est. spend
$3.5M
Days live
83
Format
Video, 32s
Variants
3
  • Offer-First Opener
  • Solution-Aware
  • Systematic Breakdown

A method promise plus an objection removed ("zero marketing skills"). A good few-shot example because the structure transfers to almost any tool or service.

Mason GenieMeta ad · winning
Nobody told me my mason jars could do this outside of canning season.
Est. spend
$945K
Days live
217
Format
Video, 100s
  • Unaware
  • Product Demo
  • Accidental Discovery

A discovery framed as a complaint. Gives the model an example of a first-person opener that isn't "I tried X and..."

You can collect these by hand from the Meta Ad Library, or let Claude do it through the Ad Radar MCP server. With the connector installed, a prompt like this works:

Use the Ad Radar tools.
1. Call list_taxonomy to get the valid niche and hook_pattern slugs.
2. Call search_ads for active winners in the [niche slug] niche, video only,
   at least 60 days live. Get 20 results.
3. For each result, give me: brand, the first sentence of the transcript
   (verbatim), hook pattern, estimated spend, days live.
4. Then call winning_patterns and tell me which hook patterns and mechanisms
   are above average on the board right now.
Do not paraphrase the openers. If a transcript is missing, use the headline
and say so.

Setup in Claude Code is one line: claude mcp add --transport http ad-radar https://app.ad-radar.dev/api/mcp. In Claude Desktop and claude.ai, the connector signs in with OAuth, so there is no token to copy. More on the setup in Claude MCP for ad research.

Step 2: generate with a pattern quota

You write opening lines for Meta video ads.

PRODUCT FACTS (use only these):
[facts, numbers, proof you can show]

CLAIMS YOU MUST NOT MAKE:
[e.g. cures, treats, guaranteed results]

REAL WINNING OPENERS (style reference, do not copy):
[paste the 10-20 openers from step 1 with spend and days live]

Write 24 opening lines, exactly 4 of each:
- specific number (prefer a list count or a price comparison)
- first-person story starting mid-conflict
- warning about a habit or a product category (never the viewer's body)
- contrarian: name a belief the buyer holds and contradict it
- authority: credential in the first sentence (only if a real one is in the facts)
- yes/no question with a detail only an owner would recognize

Rules:
- 4 to 16 words each.
- Do not start any line with "You", "Your" or "If you".
- Every number must come from the product facts. If you need one you
  don't have, write [NEEDS FACT].
- No line may match the structure of more than one reference opener.
Output a table: pattern | opener | which fact it uses.

The quota is the part that matters most. Without it, nothing stops the model from drifting back to questions and problem statements.

Step 3: score the drafts against the data

Score each opener below from 0 to 10 using these rules, then sort.
+3 contains a specific number tied to a concrete noun
+2 states a credential in the first sentence
+2 contradicts a specific belief or habit
+2 is 4 to 12 words
-3 starts with "You", "Your" or "If you"
-3 is a "why" question or a question everyone answers yes to
-3 implies the viewer has a medical condition
-2 uses "myth", "scam", "truth" or "secret" without a specific belief
-2 is longer than 16 words
For each opener show the score and the one change that would raise it most.

OPENERS:
[paste]

The deductions matter as much as the points. "The truth about dog food" sounds contrarian, but on our board openers that lean on words like "myth", "scam" or "truth" reach the top tier only 5.3% of the time.

Step 4: rewrite the middle of the list

Take the openers that scored 4 to 6. For each, write two rewrites:
A) the same idea as a specific-number opener
B) the same idea as a first-person story starting mid-conflict
Keep every fact from the product facts. Mark any new claim [NEEDS FACT].

The top scorers go straight to production. The bottom ones go in the bin. The middle is where rewriting pays.

Step 5: learn from one competitor

When one brand in your niche keeps winning, study its hook mix rather than one ad:

Use the Ad Radar tools. Find [brand] with search_ads, then call
advertiser_hooks with its advertiserId. Tell me:
- which hook patterns and mechanisms it uses most
- which of its openers have run longest
- one pattern it never uses that the board data says works
Then write 6 openers for my product in the pattern it ignores.

To adapt one specific winning ad end to end, get_swipe_prompt returns a ready-made prompt for that ad: the full donor script annotated by block, with your product filled in. That is a bigger job than a hook.

What to check before anything ships

  • Every number is real. Models invent statistics confidently. Search the draft for digits and check each one against your facts.
  • No claim you can't support. Especially health, money and results. Compliance is the advertiser's job, not the model's.
  • No copied line. A reference opener is a structure to learn from. Running a competitor's exact line is a bad look and a weak test.
  • One body, many openers. Test the five best hooks on the same script so the results tell you about the hook.

For the openers themselves, the hooks pillar lists 60 real ones by pattern, and the hook formulas give you sentence shapes to put in the quota. The MCP connector is on the Ad Radar plans page.

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.

Questions

Can AI write good ad hooks?

Yes, when it writes from real examples and clear constraints. Without them, language models drift to generic openers like "Struggling with...?" and "Tired of...?", which match the weakest patterns on our board. With 10 to 20 real winning openers in the prompt and a quota per pattern, the drafts are close to usable.

What is the best AI hook generator?

A general model like Claude with good inputs beats most single-purpose hook generators, because you control the examples. The inputs that matter: winning openers from your niche, your product facts, the claims you can't make, and a target mix of hook patterns.

How do I give Claude real ad examples?

Paste them, or connect Ad Radar's MCP server so Claude can call search_ads and get_ad itself. In Claude Code the setup is one command: claude mcp add --transport http ad-radar https://app.ad-radar.dev/api/mcp. In Claude Desktop and claude.ai it is a one-click connector with OAuth sign-in.

How many hooks should I generate per ad?

Generate 20 to 30, keep the best 5 after scoring, and test them on the same ad body. Winning brands work this way: 29% of the ads on our board run with two or more variants.

Keep reading

See the ads that are already winning.

Membership is $49 every 4 weeks at the launch price. Cancel anytime.