agentleFS
vargHQvargHQ/skills/ad-creative-testing/SKILL.md

ad-creative-testing

Skill23 starsChanged 8 months agoMITView on GitHub

Turn one winning ad into a creative testing plan for TikTok and Meta. Decodes why an ad won (hook, argument, buyer, format), plans concepts that Meta's Andromeda and TikTok treat as genuinely different (buyer × angle × format × first frame, not caption swaps), sets how many creatives to launch, the budget per test and when to judge, writes file and ad names that make results readable, reads hook rate, hold rate, CTR and CPA to find which part failed, and says when to kill, iterate or scale. Use when someone asks how many ads to test, how to make ad variants, why their variants all perform the same, whether an ad is fatigued, when to kill an ad, or how to scale a winner. NOT for producing the videos (use ecommerce-video-ads, ecommerce-video-edit or product-video-hooks) or for media-buying account setup.

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run an angle in at least 3 executions (demo, founder or talking head, raw UGC) before calling it dead.

    line 64
  2. Distinctive:

    When to judge: not in the first 48 hours.

    line 70
  3. Distinctive:

    Keep a hook bank (every tested hook with its hook rate) and a concept log (persona, angle, format, result).

    line 98

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Turn one winning ad into a creative testing plan

Winners are rare. In Motion's 2026 benchmark (578,750 Meta creatives, $1.29B spend), only 5–8% of ads became winners (spend ≥10× the account median and ≥$500). One agency's 1,780 AI creatives produced 8 that crossed $100K in spend (self-reported). The plan exists to find the rare winner cheaply, then milk it.

1. The rule that changed: similar ads count as one

Meta groups ads that look or feel alike as variations of one creative and says iteration "should not replace true creative diversification" (Meta). Agencies report that the same opening or the same look ranks as the same ad, and that 30 face and setting swaps of one winner made CPA triple. TikTok asks for 3–5 very different creatives per ad group and at least 12 new videos a month on Smart+ and GMV Max.

So a variant is a new concept: a different buyer, angle, format or first frame. A new caption, colour or voice on the same video is not a variant.

2. Decode before you multiply

For the current winner (or the competitor ad that has run 30+ days), write down:

PartQuestionExample
HookPain callout, result shown, or visual interrupt?Result shown: a clean oven at 0:00
ArgumentWhy buy: speed, price, proof, transformation, comparison?Speed: "60 seconds"
BuyerWho actually bought (not the targeting)?Renters, 25–35
FormatUnboxing, demo, yapper, us vs them…?Hands-on demo

3. The test map: change one thing, read one thing

TestKeepChangeIf it wins
New hookArgument, format, bodyFirst 3 s (new frame, line, text)The opener was the weak spot: make 5 more
New formatArgumentDemo → before/after → founder → podcastPush the message into every format
New face / settingScriptCreator, room (AI swaps OK here)You extended the winner's life
New argumentProduct"Recommended by…", "30 days later…"Start a new decode
New buyerProduct, formatPersona, age, room, problemNew audience pocket

4. How many, how much, how long

No winner yet (explore):

  • 8–15 concepts per batch across 3+ angles, every awareness stage live (offer, objections/reviews, us vs them, problem → fix, big win). At least 2 statics (Notes app, review card, us vs them) per batch: the cheapest angle test.
  • Draft cheap (stills + voice, a fast video model), produce fully only what passes review.
  • TikTok: 3–5 creatives per ad group, new creatives into the existing ad group. Meta: one ad set with many ads is normal under Andromeda (Advantage+ Sales allows 50); Meta's Creative Testing tool takes 2–5 ads at ≤20% of budget for 7 days.
  • Run an angle in at least 3 executions (demo, founder or talking head, raw UGC) before calling it dead.

A winner exists (exploit): all-in on that angle. 3–5 new openers on its body, then 10 new executions of the concept + angle + persona. Operators report one of five new openers "will almost always outspend the others 30 to 1".

Cadence: about 2 concepts a week with 2 spoken-hook and 2 visual-hook versions each for brands under $100K/month (Savannah Sanchez); 15–21 high-intent ads a week at large scale (operator reports).

When to judge: not in the first 48 hours. Give each creative about 1–3× target CPA in spend (or ~5–10 conversions) before deciding. TikTok GMV Max: keep each ROI setting at least 3 full days.

5. Read the funnel to find the broken part

SymptomBroken partFix
Low hook rate (3 s views ÷ impressions; Meta average 25.44% in H1 2026)The first frame didn't earn the stopNew visual hook (product-video-hooks)
High hook rate, low hold (watched to 25%/50%)Story tension lost after the hookTighter body, product earlier, cut dead air
High hold, low CTRNo commercial reason to clickClearer offer, CTA said and shown
High CTR, low conversionThe landing page broke the promiseFix the page, not the ad (one brand cut CAC from $140 to under $80 with the same ads by raising CVR 1% → 3%)
Views but no sales (organic)Wrong audience or no buying intentJudge by orders per 1,000 views; comments like "where do I buy?" are the signal

Operator bands (not platform numbers): hook rate under 25% weak, 30–40% OK, 40%+ strong; hold under 15% weak, 35%+ strong; CTR under 1% weak, 3%+ strong. Always check CPA or ROAS before killing on hook rate alone.

6. Kill, keep, scale

  • Kill: spent 1–3× target CPA with CPA well above target, and the funnel row above has no cheap fix.
  • Fatigue: two signals at once — CPM up 20% week over week, CTR down 15–20%, frequency over ~3, CPA up with nothing else changed. Fix: new hook on the body first, then a new face, then a new angle. Keep ~10 approved backups to rotate.
  • Check the cause first: a budget change or a new audience can look like fatigue. Last season's winners can work again (one Black Friday ad "printed again" a year later).
  • Leave the highest-volume ad on even when its CPA looks high: it probably does more than the dashboard credits it with.

7. Names that make results readable

{date}_{product}_{persona}_{angle}_{format}_{hook-id}_{creator}_{len}s_{cta}_v{N}
2026-10-27_serum_busy-mom_problem-fix_ugc-car_H07-confession_ava_28s_shopnow_v1

Keep a hook bank (every tested hook with its hook rate) and a concept log (persona, angle, format, result). Tag every ad by angle (PAIN / PROOF / CONTRAST / AUTHORITY…) so spend can be read per angle.

Output

Deliver a table: concept, buyer, angle, format, first frame, hook line, skill that makes it, draft cost (from estimate_cost), budget, judge-after (CPA × N), file name. Then hand each row to the production skill.

Related

ecommerce-video-ads · product-video-hooks · ecommerce-video-edit (one MP4 per hook) · make-video-ad-variants-for-testing on varg how to

Sources: Motion 2026 benchmarks, TikTok creative best practices, TikTok GMV Max, Jon Loomer on Creative Testing, Savannah Sanchez, Billo hook rates, operator posts on X (see ecommerce-video-ads/references/sources.md).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.