The short answer
AI ad scripts sound like AI when the model writes from instructions instead of from real transcripts. In the openings of 1,752 winning Meta video ads on our board, the median sentence is 9 words, 91% use contractions, and words like 'revolutionary' or 'introducing' appear in under 1%. Feed the model winning transcripts, make it match those numbers, and leave room for the creator to improvise.
What winning scripts sound like, measured
Before writing a script with AI, it helps to know what the target sounds like. We took the transcripts of the 1,752 winning video ads on our board (October 9, 2026, all with $50k+ in estimated spend and 30+ days live) and measured the opening of each, roughly the first 100 words, which is where voice matters most.
9 words
median sentence length
47%
sentences of 8 words or fewer
91%
scripts using contractions
35%
scripts with a question in the opening
And the people in them:
| Feature in the opening | Share of scripts |
|---|---|
| Speaks to "you" / "your" | 84% |
| Uses "I", "my" or "me" | 69% |
| A number in the very first sentence | 27% |
| "Honestly", "literally" or "like," as a filler | about 4% each |
Now the words models reach for when asked to write ad copy without examples:
| Word | Share of winning scripts using it |
|---|---|
| discover | 1.4% |
| innovative / innovation | 1.0% |
| transform | 0.9% |
| introducing | 0.3% |
| revolutionary / revolution | 0.2% |
That gap is the whole problem with AI scripts in one picture. Real winners are short sentences, contractions, "you" and "I". Default model output is long sentences, brand voice and launch words. The workflow below closes the gap.
Step 1: collect three to five transcripts in your format
Don't mix formats. A UGC review, a founder story and a voiceover listicle have different rhythms, and a model given all three will average them into something that matches none.
Pick winners in the format you're about to shoot, ideally live 90+ days. If you use Claude with the Ad Radar MCP connector, this is one prompt:
search_ads with tags vformat "ugc-talking-head", active, sort by
score, limit 15. Then get_ad on the 4 with the most days live and
give me their full transcripts, unedited.
Without the connector, transcribe from the Meta Ad Library yourself. Either way, keep the transcripts verbatim, including the "like" and the half-sentences. That mess is the voice.
Hi there.
- Est. spend
- $1M
- Days live
- 1343
- Format
- Video, 162s
Over three and a half years live, opening on two words. The next line is "So you remember how I promised you guys...", a creator talking to people she assumes already know her. No model writes that opener from a brief. It's the kind of reference transcript you collect in step 1.
Step 2: have the model describe the voice, not copy it
Ask for a voice profile before any writing. This turns vague taste into rules the model can follow.
Here are 4 transcripts of winning ads in the same format.
Describe the shared voice as rules:
- Average sentence length and how often sentences are fragments.
- Who speaks, to whom, and how they refer to the product.
- Reactions and filler words used, with examples.
- How the product claim is phrased (stated, shown, or reacted to).
- What never appears.
Quote examples for every rule. Do not write a script yet.
The quotes keep it honest. If a rule has no quote behind it, delete the rule.
Step 3: build the skeleton in seconds
Plan the beats against time, not words. At a normal speaking pace of about 2.5 words a second, a 45-second script is around 110 words.
Target: 45-second UGC review for [product]. Using the beat order of
the reference transcripts, give me a skeleton:
beat | seconds | job | what is on screen | max words
Hook must land in the first 3 seconds. Product on screen by second 8.
Two rules matter most here. The product should be visible early, and every beat needs something on screen, not only words. For the opening seconds specifically, see the first 3 seconds of a video ad.
Step 4: draft inside hard limits
Now the model writes, with the voice profile and the skeleton both in the prompt.
Write the script for this skeleton in the voice profile above.
Hard limits:
- Median sentence 9 words or fewer. At least 4 fragments.
- Contractions everywhere they'd be spoken.
- Speaker is [persona], talking to "you". Never "we" or "our".
- No: introducing, revolutionary, innovative, discover, transform.
- Product facts allowed: [list]. Anything else: [NEEDS FACT].
- Mark 2 lines as [CREATOR'S OWN WORDS] with a note on what to say.
The last limit is the most useful one. A script that dictates every word gets read like a script. Two open lines let the creator react the way the people in the reference ads do.
Okay, look at the difference.
- Est. spend
- $613K
- Days live
- 118
- Format
- Video, 58s
- Variants
- 6
A lip color try-on where half the lines are reactions: "That's a little crazy." "Tell me the truth." "Oh, wow." Those are the lines to leave as [CREATOR'S OWN WORDS]. Six variants suggest the brand kept cutting new versions around them.
Step 5: run an AI-tell pass
Paste the draft back with a checklist and ask for a line-by-line audit. A second model, or a fresh chat, does this better than the one that wrote it.
Audit this script line by line. Flag:
1. Sentences over 15 words.
2. Lines a real person wouldn't say out loud.
3. Brand voice ("we", "our", "introducing").
4. Lists of three adjectives or benefits.
5. A closing line that summarizes instead of asking for the click.
6. Any claim not in the facts list.
Rewrite only the flagged lines. Keep everything else.
Point 4 catches the most common tell. Models love three of everything ("soft, durable and stylish"). Spoken winners rarely list; they react to one thing at a time.
Step 6: read it out loud, then cut
Read the script aloud with a timer, or have the creator do a table read on a call. Anything you stumble over, cut or rewrite. Then cut a 30-second and a 15-second version from the same script, keeping the hook and the offer word for word, so the editor has variants without a new shoot.
Here's a reference for how loose a high-spend script can be:
Oh my God, he chewedle his brother's whiskers off again.
- Est. spend
- $1.3M
- Days live
- 131
- Format
- Video, 36s
- Variants
- 2
Two people talking about their cats; the product comes up as part of the chat. It reads like overheard conversation, which is the point. Over $1.3M in estimated spend on a script no brief would have written word for word.
A one-page version of the workflow
| Step | Input | Output | Who checks |
|---|---|---|---|
| 1. Collect | Winners in your format | 3 to 5 verbatim transcripts | You |
| 2. Voice profile | Transcripts | Rules with quotes | You, delete unquoted rules |
| 3. Skeleton | Target length, beats | Beat table in seconds | You |
| 4. Draft | Profile, skeleton, facts | Script with open lines | Model, then you |
| 5. AI-tell pass | Draft, checklist | Flagged and fixed lines | Second model |
| 6. Read aloud | Final draft | 60s, 30s, 15s cuts | You or the creator |
The same approach works for the rest of the ad. For openers, see AI hook generator prompts; for briefing the creator who will say the lines, see how to brief UGC creators; and for the structural swipe from one donor ad, see the AI swipe workflow.
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.