varg-ad-variants

Turns one winning video ad into 20 ad variants that Meta's Andromeda and TikTok treat as different creatives: tag the winner with varg video_analyze, plan two layers (about 7 new concepts that each ch

SKILL.md

GitHub

One winning ad into 20 variants

Since Meta's Andromeda update, ads that look alike are grouped and compete as one ("Entity ID" in agency talk): a new caption, colour or music track is not a new creative. Sellers now test 20–40 creatives a week at about $20/day each and refresh every 2–3 weeks (theoptimizer, segwise). The "suppressed above 60% similarity" thresholds are repeated by agencies but not published by Meta.

1. Tag the winner

video_analyze on the winner (about 5 credits; prompt in varg-ad-library-remix) → hook, angle, format, emotional driver, persona, proof, CTA. You scale the mechanism behind the ad, not the file.

2. Plan two layers (20 in total)

Layer A, ~7 new concepts. Each must pass the three-question check (two "no" answers = the same Entity): Is the message different? Is the visual execution different, not just the text? Is the format different? Moves: same script with a new persona (female → male → couple → parent), same structure with a new script, same concept in a new format (UGC → unboxing → demo → mascot song → problem/solution), same script with new b-roll.

Layer B, ~13 iterations, one variable each. Mostly new hooks (3–5 per concept, ≤3 s), then new CTAs or offers. If two fields change between variants, the plan is wrong (Pixis).

Write the plan as JSON before generating; name every file {angle}_{offer}_{product}_{format}_{hook}_v{n}, e.g. safety_fullprice_gloves_tutorial_povmandoline_v1, with a closed list of 8–10 angles.

3. Make the new parts on varg

  • New openers: a 3–6 s clip per hook (varg-product-hook archetypes, varg-unboxing-video) plus its spoken line on eleven_v4 in the same voice as the winner (1 credit per line).
  • New concepts: the skill that makes the format (ai-ugc-ad-video, varg-mascot-jingle-ad, varg-dropship-reel …).
  • Price the batch first: POST /v2/estimate / estimate_cost.

4. Swap hooks onto the winner

Keep a clean master of the winner without burned captions. Find the cut: the first word of the body in its word timings (Whisper, or hook from varg-dropship-reel's guide-edl.mjs). Then:

node scripts/hook-swap.mjs --body master_clean.mp4 --cut 7.34 --out variants/ \
  clips/mandoline.mp4+lines/pov-mandoline.mp3 \
  clips/knife.mp4+lines/knife-test.mp3

Each hook is a clip, or clip+line.mp3 to lay a new spoken line over it (the hook lasts as long as the line + 0.3 s). Every part is normalised to 1080×1920 / 30 fps / 48 kHz before the join, with a 20 ms fade at the cut (no click), and variants/manifest.json records hook, line, cut and lengths. Then re-caption each variant: transcribe it, captions.mjs, burn with ffmpeg (libass).

5. Export the test plan

ABO, one creative per ad set, broad targeting, $20–50/day per ad set; kill under 1% CTR or at $10–30 spent without a result; judge after 7–14 days and 1,000+ impressions; move winners to CBO/Advantage+; refresh every 2 weeks. On TikTok, post hook variants as separate ads, not as duplicates of one post (duplicates get buried).

Tested

2026-10-28 on the cut-resistant gloves reel (59 s). Two new spoken hooks on eleven_v4 (1 credit each) over the reel's own clips, swapped in with hook-swap.mjs in seconds, then re-captioned:

Both cut cleanly into "They can be purchased for…" with no click or jump. These are Layer B iterations; Layer A concepts need new footage.

Related skills

ad-creative-testing (why an ad won, the test plan), varg-ad-library-remix (new angles from competitors), varg-product-hook and varg-unboxing-video (new openers), varg-dropship-reel (captions.mjs, guide-edl.mjs), ai-ad-compliance-check.