Facebook Ad Creative Testing: 15 Ads From One Filming Session
5 hooks, 1 body, 3 calls to action, filmed in one sitting. 15 files, and the part nobody tells you: 15 files is one concept. What that buys you, what it doesn't, and where the second concept comes from.
The person on camera at a clinic can give you maybe an hour a month. An ad account needs new creative every week. That doesn't divide, unless you film parts instead of ads.
This guide shows you how: 5 openings, 1 middle and 3 endings filmed back to back. Any opening fits the middle, and the middle fits any ending, so that's 15 ads from one sitting. Then how many to launch, when to kill, how to read, and when to stop. One catch: 15 files is one concept. Same person, service and offer. The second concept comes from the next service, person or angle.
It's for clinic owners and their ad people. One session a month is enough to ship new ads every week.
What you have by the end
Not concepts. Things that exist on your machine when you close the tab.
- 9 named parts from one session
- A body that works after all 5 hooks
- 15 ads, each checked for a real duration
- A launch count your budget can fund, with windows written down
- A rotation plan and a date for the next concept
Will Meta see 15 ads as 15 ads?
If they all use the same body and face, what stops the algorithm deciding they're one ad and only running one?
Nothing is guaranteed, and the people who study this disagree.
- Experts split. The most rigorous operator on the topic says a different hook probably registers as a different creative. A buyer who manages many ad accounts says near-identical ads can be collapsed so only one enters the auction, sometimes, not always.
- Cosmetic changes are the known risk. A color, a word, a music bed are least likely to count.
- Nobody can publish a threshold. The internal metric people cite has no public documentation.
- The fix is free: a Meta A/B test with creative as the variable splits the audience so nobody sees both versions. Check which metric it judges on before trusting the result.
So re-shoot each hook with a visible change. And remember: this format buys 15 versions of one idea, not a portfolio. An account carried by one concept is one fatigue away from a bad month.
Write parts, film parts, then place them properly
1. Write the set as parts
One video covers one pillar service. The main prompt below writes it.
5 hooks of 3 to 5 seconds, 5 shapes (more on each in how to write hooks for Reels): buried truth (most people have no idea how this works), before you do this, contrarian (I turned someone away last week), identity call out (if you're the one who lost the weight and the skin stayed), first timer.
1 body under 160 words, first person, one honest admission, one concrete mechanism, never restating a hook.
3 CTAs: book with the location named, a 90-second free resource, and a one-word comment trigger only if its comment-to-DM automation exists. A CTA pointing at something unbuilt is a blocked script.
No borrowed phrases over 5 words, no brochure voice, no claim without a number or mechanism, no invented patient story, nothing the clinic can't legally say.
2. Write the bridge, the hardest line in the set
The hook lands, the body starts, and the viewer leaves in the gap. The fault is the join.
With 1 body and 5 hooks you have 5 bridges to get right at once. The rule: the body's first line continues a promise, never answers a question. If the body answers hook 3's question, it's a non sequitur behind the other 4.
Read every hook into the body's first sentence out loud. Any join that makes you pause gets rewritten, and it's almost always the body. Introduce the service as late as you can. The longer the viewer stays in the problem, the better the close works.
3. The filming sheet
Eye level, 9:16, teleprompter so she reads into the lens, scrubs or clinic casual, and a proper mic: bad audio kills more ads than bad light. List every take in order (hooks 1 to 5, body, CTAs 1 to 3) and say the part name before each.
Same outfit, chair and light, so any part cuts to any other. But change something the camera sees between hook takes: move the frame, stand, start on an object. A title card over one clip is where the platform most likely runs only one.
Tell the doctor it's 30 minutes per service. Statics are the cheaper volume lever, but her face is the one thing a static can't fake. If she can't film at all, read AI UGC ads for clinics before you generate a presenter.
4. Cut the parts, not the ads
Trim each take to its clean start and end, named by part. Re-encode once here so every part shares codec, size, frame rate and audio format, because ffmpeg's concat demuxer expects matching streams when you skip re-encoding, and otherwise fails silently. Master and caption the body once. Every combination inherits it.
Then assemble 15 files. The name matters: id, format, hook, person, offer, date. Ad name equals file name, passed through to tracking, because you'll read the winner in your CRM, not Ads Manager.
Check every finished file. Every video pipeline failure is silent: an inaudible export, a double caption, a 3-second concat.
# 1. trim a take to a part (repeat per take; identical settings every time)
ffmpeg -ss 00:00:02.0 -to 00:00:06.5 -i session.mov \
-vf "scale=1080:1920" -r 30 \
-c:v libx264 -crf 18 -c:a aac -ar 48000 -ac 2 hook1.mp4
# 2. all fifteen, named by their parts, no re-encode
for h in 1 2 3 4 5; do for c in 1 2 3; do
printf "file 'hook$h.mp4'\nfile 'body.mp4'\nfile 'cta$c.mp4'\n" > list.txt
ffmpeg -y -f concat -safe 0 -i list.txt -c copy \
"$(printf '%02d' $(( (h-1)*3 + c )))-video-h$h-c$c-drname-offer-0907.mp4"
done; done
# 3. never trust the exit code. check every output has a real duration
for f in *-video-*.mp4; do
printf '%s ' "$f"; ffprobe -v error -show_entries format=duration -of csv=p=0 "$f"
done5. Launch as many as the budget can fund
An ad set needs about 50 optimization events in a week to exit learning (the platform's testing phase), per ad set, not per ad, per Meta's learning limited help page. Every ad in it shares that pool, so a small budget funds only a few ads per ad set. So "launch 3 with one variable" is right for a clinic because of budget arithmetic, not testing purity.
Check yours: daily budget x 7 / target cost per lead = weekly events. For example, $50 a day at a $40 target is about 9, well under the floor. If your budget sits there, read results with that in mind.
Don't agonize over which ads. Experienced buyers can't pick the winner from 5 good ones either. Pick for a spread of hook shapes.
6. One concept per ad set, and never add to a winner
Targeting sits at the ad set level, so a mixed ad set teaches you nothing.
New creatives go in a new ad set, never a performing one. Meta lists adding a new ad as a significant edit that sends the ad set back into learning. Under target? Add away. Winning? Leave it and open a new ad set tagged as the same concept.
7. Kill fast, confirm slowly
The kill window is fast and extreme. A few days, and only for an ad far above your target cost per acquisition (for example, twice target) with nothing to show. That's a loss cutoff, not a verdict.
The judging window is slow. 7 days minimum, the same week Meta's learning phase counts in. A consult is a considered purchase, so 14 is closer to honest.
Under both sits the real gate: enough conversions, or enough spend against your target cost per acquisition, to mean something. A small account with a few leads a week takes far longer to read than a big one. Write your windows and thresholds down before launch.
8. Read the hook, then the next 12 seconds
Hook rate = 3-second plays / impressions, the same as thumbstop rate. It isn't click-through rate, and mixing them up is the most common error here.
Hold rate = 15-second plays / 3-second plays. A ratio of a ratio, which is why published ranges contradict each other. Never use a range without its denominator.
Weak hook rate is the first frame. Good hook rate with weak hold rate is the bridge.
Beat your own trailing average first, published ranges second. Then read cost per lead by CTA on your CRM count, not the platform's. For the rest of the account, run a Meta ads audit.
9. Rotate hooks onto the winner, and know when to stop
Don't turn a winner off. Rotate, ranked honestly.
Real changes first: a re-shot hook, a new first frame or opening line, a second person on the same hook, a B-roll opener.
Cosmetic last: caption color, crop, music. These may not register, and a pile of them fills an account with the same ad.
For edited versions via a video multiplier, read the model's parameters, set the aspect ratio explicitly (some default to landscape), and estimate cost first.
Stop when cold-audience frequency climbs while reach stays flat. A single-location clinic advertises to one metro, so every concept hits a ceiling. Then film a new service, persona or offer, in this order: education, transparency, high-intent service, differentiator, hero offer.
Starter prompts
Paste these as written. They are short on purpose, because the long ones drift.
You are writing a talking head ad set for my clinic that films in one session and cuts into fifteen ads. Service: [service]. Offer and page: [price shape, city, destination]. On camera: [name, role]. Free resource: [name it, or say none]. Comment automation: [live / not built]. Daily budget: [$X]. Target cost per lead: [$Y]. Here are [N] sentences my patients wrote in their own words: [paste]. Write: 1) five hooks of 3 to 5 seconds, each a different shape (buried truth, before you do this, contrarian, identity call out, first timer), labelled by shape 2) one body under 160 words, first person, to one person, with one honest admission and one concrete mechanism, that pairs with every hook and repeats none of them 3) three CTAs: direct with the location named, indirect for the free resource (skip if none), comment trigger with one word (skip if the automation is not live) Then run the bridge check: read each hook straight into the body's first line and tell me which joins break. The body must continue a promise, never answer a specific hook's question. Rewrite the body's opening if any join fails. Then the filming sheet: eye level, 9:16, teleprompter, microphone, same outfit and chair, every take listed in order with its part name, and the instruction to change something the camera sees between hook takes. Then the fifteen combinations with file names as id-video-hook-person-offer-date, and tell me how many of them my daily budget can fund through learning in one ad set. Rules: no phrase over five words borrowed from anywhere, no brochure voice, zero em dashes, no claim without a number, a mechanism, or an honest scope, nothing my clinic cannot say, no cure or guarantee language, no drug brand names, no invented patient stories. If you need a story, write it as a template marked swap in a real one before filming.
I want to know whether what I am about to make is a new concept or a variation. Here is what I have running: [describe the live ads: person, angle, offer]. Here is what I am planning: [describe it]. Answer two questions. One: did the persona, the angle, or the offer change? If none changed, it is a variation. It belongs alongside the winner's siblings and it is worth minutes, not a filming session. Two: does what the viewer sees in the first second change? A re-shot hook passes. A new text overlay on the same clip does not. If it is a variation, tell me where it goes. If it is a new concept, tell me it needs its own ad set and what else in my account it is competing with for budget.
Results for the live ads: [paste ad name, spend, impressions, 3-second plays, 15-second plays, link clicks, leads on my CRM]. Compute hook rate as 3-second plays over impressions and hold rate as 15-second plays over 3-second plays. State those denominators in your answer so I can check them. Compare each ad to my own trailing average first. Only after that, tell me how it sits against general bands, and name the source of any band you cite. Then: which ads are past my kill threshold of [for example, twice my target cost per acquisition] with nothing to show, and should be killed now. Which ads have not yet reached my minimum of [N conversions, or spend of N times my target cost per acquisition], and therefore should not be judged yet at all. Diagnose the survivors: weak hook rate is the first frame, good hook rate with weak hold rate is the bridge, good hold rate with weak leads is the offer or the CTA. Name the best hook plus body plus CTA and what to rotate first.
This combination won: [paste]. Write the rotation list, ranked, not flat. Top tier, real changes: five new hooks in shapes I have not used, a different first frame, a different opening line, a second person filming the same hook, a B roll opener. Write the five new hooks out in full; they get re-shot, not faked in post. Bottom tier, label it cosmetic and tell me it may register as nothing: caption style, crop, music. Then the stopping rule: tell me what to watch that means permuting this concept has stopped paying, and what the next concept should be given my pillar service order (education, transparency, high-intent service, differentiator, hero offer). Zero em dashes.
The settings in the real tools
The set and filming sheet come out of any chat. The cut and launch happen in real tools.
Recording
9:16 at the phone's highest resolution, a lavalier or directional mic, teleprompter loaded. Check a mid-clip frame before captioning, since footage sometimes arrives pre-captioned.
The cut
Master the body's audio once to minus 14 LUFS (a loudness level, and the one Spotify normalizes to) with peaks under minus 1, and never fully denoise: scrubbed room tone sounds synthetic. Render titles with an alpha channel (a mov, not an mp4) so they don't show as a black box. Titles: 2 lines of 2 to 4 words, capitals, mid-frame, held about 3.5 seconds.
Ads Manager
One ad per combination, not dynamic creative, so you know which parts won. utm_content set to the ad name. Standard Enhancements off. Set the real conversion event as the goal. 3 ads per ad set for the hook test, then the same for the CTA test. Refresh on a schedule you set before launch, and sooner if frequency climbs while reach stays flat.
If this happens, do this
Every one of these has happened to me or to someone I set this up for.
| Failure | Fix |
|---|---|
| 15 files launched as if they were 15 concepts | They're one concept. A second concept is a new person, angle or offer |
| Hook lands, viewer leaves 2 seconds later | The bridge. The body's first line must continue a promise, not answer one hook's question |
| 15 launched at once on $50 a day | About 50 events a week per ad set, shared by every ad in it. Launch only what the budget can fund |
| New creatives dropped into the working ad set | New ad set, same concept tag. Adding resets learning on a winner |
| Killed a good ad on day 3 | An early kill is only for an ad far above target. Judge at 7 days, 14 for a consult |
| Reported "hook click rate" | Not a metric. Hook rate is 3-second plays over impressions. Click rate is separate |
| Batch shipped silent, or 12 seconds long | Probe every output's duration. Pipeline failures are silent |
The tools I use for this
| Tool | What it is for here | |
|---|---|---|
| Claude | Writes the set, runs the bridge check, and drives the cut. | Open |
| Short-Form Cut skill | The free skill from my library that turns raw talking head footage into captioned, titled vertical parts with human gates. | Get it |
| ffmpeg | The whole cut. Trim to parts, concatenate combinations, probe every output. | Open |
| Submagic | Captions on the body, once. | Get it |
| Meta Ads Manager | One ad per combination, named by parts, and the creative testing tool when you need separate delivery forced. | Docs |
| GoHighLevel | The comment keyword and the free resource live here, and cost per lead by CTA is read here. | Get it |
One session a month, ads every week
- Week 1: write and film. Set checked, 5 bridges read aloud, one sitting.
- Week 2: cut and launch what you can fund. Durations checked, 2 to 5 ads live, windows written down.
- Week 3: read. Hook and hold rate with denominators, cost per lead by CTA, kill only past your written threshold.
- Week 4 on: rotate, then a second concept. New hooks in a new ad set, next session booked when 2 hooks are spent. A schedule you keep beats a perfect one you abandon.
The free skill
It writes one pillar service as 5 hooks, 1 body under 160 words and 3 CTAs, checks the writing and compliance, then builds the filming sheet, the 15 file names, how many to launch at your budget, the read order, and when to stop permuting.
---
name: fifteen-ads-one-session
description: Writes one pillar service as a set of 5 hooks, 1 body under 160 words and 3 CTAs that films in one sitting and cuts into 15 ads. Runs the writing and compliance checks, then builds the filming sheet, the 15 combination file names, how many to launch at the user's budget, the read order, and after a winner the ranked rotation list and the stopping rule. Trigger on "fifteen ads from one session", "five five three", "script my filming session", "cut this into ads", "what do I permute next".
---
# Fifteen Ads From One Filming Session
You're writing talking head ads for a clinic, med spa, IV bar or aesthetics practice as parts that film in one sitting. 5 hooks x 1 body x 3 CTAs is 15 ads. Nothing is filmed twice and nothing is said twice. Tell the user up front: 15 files is one concept, not 15.
Never invent a fact, price, patient or result. A patient story is a template marked "swap in a real story before filming".
## Step 1: Intake (ask only what's missing)
Service, offer and page, city, the person on camera and their role, the free resource (must exist), whether the comment automation is live, daily budget, target cost per lead, compliance limits, and patient sentences from the inbox, reviews or intake forms if available.
## Step 2: The set
**5 hooks**, 3 to 5 seconds, 5 different shapes, labeled:
- Buried truth: most people have no idea how this works.
- Before you do this: give me sixty seconds first.
- Contrarian: I turned someone away last week. I'm not going to promise you [hype].
- Identity call out: if you're [specific person in a specific state], this is for you.
- First timer: if this is your first, here's exactly where I'd start you.
**1 body under 160 words.** First person, spoken to one person. One honest admission (not for everyone, results vary, there's downtime). One concrete mechanism. One concrete moment. No menu dumps. It never restates a hook, because it has to follow any of the 5. If it sounds like a brochure, restart.
**The bridge.** Read each hook into the body's first line. The first line must continue a promise, never answer one hook's question. Rewrite the body's opening if any join breaks.
**3 CTAs**, filmed separately:
- Direct: book the consult, location named.
- Indirect: the free resource, "takes ninety seconds". Skip if none exists.
- Comment trigger: one word, mapped to a real automation. Skip if not live.
## Step 3: The checks (every line, 2 failures means a rewrite)
No phrase over 5 words borrowed from any reel, ad or tagline. No brochure voice ("we offer", "state of the art", "conveniently located"). The "it's not X, it's Y" line at most once per script. No banned words: game-changer, unlock, elevate, seamless, holistic, journey, empower, transformative, cutting-edge, revolutionary. Zero em dashes. No claim without a number, a mechanism or an honest scope. If a hook works for any business in any city, it fails. A body that repeats a hook fails. A fake resource or keyword is blocked. Compliance: no cure, treat, guarantee or prevent-illness language, no drug brand names, nothing the clinic can't say.
## Step 4: The filming sheet
Eye level camera, 9:16, teleprompter app, read into the lens, warm and direct, scrubs or clinic casual, proper microphone. Same outfit, chair and light, one sitting. List every take in order with its part name: hooks 1 to 5, body (in chunks if needed), CTAs 1 to 3. Say the part name before each take. Change something the camera sees between hook takes (frame, angle, standing, a starting object) so the hooks read as different ads, not title cards over one clip. For a multi service batch: videos x 5 hooks, plus 1 body and 3 CTAs each.
## Step 5: The combinations
List all 15: hook, body, CTA, and a file name in the form `id-video-h[n]-c[n]-person-offer-MMDD`. Ad name equals file name. utm_content equals ad name. On-screen title for each hook: 2 lines, 2 to 4 words, capitals, holding back the payoff instead of labeling the topic.
## Step 6: Launch and read
- How many: an ad set needs roughly 50 optimization events a week to exit learning, shared by every ad in it. Compute daily budget x 7 / target cost per lead. Roughly $50 a day funds 2 or 3 ads, $200 a day 4 or 5, above that 5 or 6. Pick by spread of hook shapes.
- One concept per ad set. New creatives go into a new ad set, never a performing one.
- Kill window: around 72 hours, only for ads at roughly twice target cost per acquisition with nothing to show.
- Judging window: 7 days minimum, 14 for a consult, and not before 5 to 10 conversions or 5 to 10x target cost per acquisition in spend.
- Read: hook rate (3-second plays / impressions), then hold rate (15-second plays / 3-second plays), always stating denominators, compared to the account's own trailing average first. Then cost per lead by CTA on the CRM count, never the platform's.
- Across services: education first, transparency second, high intent third, differentiator fourth, hero offer last. Never one video carrying the account.
## Step 7: Rotation (after a winner)
Don't write a new concept yet, and don't turn the winner off. Rotate, ranked:
- Real changes first: re-shot hooks in new shapes, a different first frame or opening line, a second presenter on the same hook, a B roll opener.
- Cosmetic last, labeled cosmetic: caption style, crop, music. They may register as nothing.
Refresh every 8 to 12 days. Book the next session when 2 hooks are spent. Stop permuting when cold frequency climbs while reach stays flat, and write the next service's set.
## Cut notes (for the human or a connected pipeline)
Trim each take to its part and re-encode once so every part shares codec, size and audio. Master the body's audio once (target minus 14 LUFS, peaks under minus 1, never fully denoised). Captions once on the body. Titles rendered with alpha so they composite. Check a mid clip frame before captioning to avoid double captions. Probe every output's duration and look at the contact sheet before calling a batch done. Failures in a video pipeline are silent.
Want the script set written, the session run and the fifteen cut with you?
Inside the AI CEO Lab the Demand Engine module walks the five five three set on your own offer, the filming sheet, and the cut, with the launch ladder and the kill rule built in.