The Ad Creative Testing Strategy That Beats Andromeda.
One cold campaign. Three stacked ad sets. Twenty-five to thirty fully unique creatives. Let Meta pick the 1β3 winners β then iterate with a duplicate-and-replace loop until you've raised your spend ceiling far past what testing-to-poverty operators ever reach.
Why Andromeda Changed Everything.
Meta Andromeda is the AI distribution layer behind every ad account that quietly invalidated the last decade of testing best practices. If you're still testing the 2023 way, you're getting cooked.
Nov 2024 β Jul 2025
Isolated tests NovβDec 2024 β handful of accounts Apr 2025 β ~half of accounts by Jul 2025. By May 2026 it's on virtually every account. Yours is already in.
The shift everyone keeps missing:
- Targeting is now controlled by messaging, not by carving audiences at the ad-set level.
- Account simplification still matters β overlap is the enemy of efficient distribution.
- Not every ad deserves reach. Forcing distribution to every creative inflates cost-per-result.
"You're going to feel like it's wasted effort when you go launch 25 to 30 ads and 1 to 3 of them get all the reach. That means 27 to 29 with little to no reach. That's not a bug. That's the design."
The Campaign Skeleton.
The whole structure fits on a napkin. Two campaign types, three ad sets in the one that actually matters.
Cold Campaign (ABO, not CBO)
βββ Broad ad set
βββ Interest Stack
β βββ ALL interests + behaviors + demos in ONE ad set
βββ Lookalike Stack
βββ 1% LAL of customers, leads, show-ups, qualified bookings β stacked
Same 25β30 unique ads in every ad set
Same 5 headlines + 5 body copies pooled across all ads
βββββββββββββββββββββββββββββββββββββββββββββ
(Optional) Warm-Audience Campaign β tiny budget, only if sizable
ABO (ad-set budget optimization) lets you control distribution between the three ad sets. CBO (campaign-level) hands the steering wheel to Meta entirely and gives you no way to push spend toward the ad set that's producing better leads. In a post-Andromeda world where Meta already controls ad-level distribution, you keep the ad-set lever for yourself.
Everything relevant β interests, behaviors, demographic traits, life events. Do not separate them into multiple ad sets. Targeting is broad by design now; Meta will pick the converters from inside the stack based on the messaging in your creatives.
Create 1% lookalike audiences from:
- Highest-value customers
- All customers
- Leads who showed up to calls / webinars
- Qualified leads who booked a call
Stack all of those into ONE ad set. Same logic as Interest Stack β don't separate by source.
Only when the warm audience is large enough that meaningful spend will move it. Otherwise it's a vanity campaign that consumes attention. At sub-million-a-month scale, most operators should skip it entirely.
The 25β30 Unique Creatives Rule.
The single most-violated rule in the playbook. Twenty-five to thirty completely unique creatives β not twenty-five hook variations on the same body.
Unique through-and-through = each creative has its own hook, its own body, its own CTA, its own reason to convert. Hook variations = same body, swapped opener. Andromeda penalises the second. You must do the first.
25β30 distinct creative concepts
Each one is a different reason the buyer should convert β different angle, persona, problem, transformation, or proof. Filmed end-to-end as its own ad.
5 broad headlines, reused across all ads
Write them general enough to fit every concept. Same five headlines on all 25β30 ads. No bespoke copywriting per ad β that's exhausting and unnecessary.
5 broad body copies, reused across all ads
Same logic. Five pieces. Universal applicability. Pool them across the ad set.
Mirror the full pack into all three ad sets
Broad, Interest Stack, Lookalike Stack β identical ads, identical headlines, identical body copies. Targeting is controlled by messaging, not by ad-set differentiation.
Settings That Must Be OFF.
Meta will try to "help" you with AI variations, auto-translations, music suggestions, and site links. Almost all of it makes Andromeda worse, not better. Turn it off.
| Setting | State | Why |
|---|---|---|
| Site links | OFF | Adds distraction; fragments distribution against your primary CTA. |
| AI Advantage creative variations | OFF | Frankenstein versions of your ad that confuse Andromeda's signals. |
| Auto-translation | OFF | Off-brand copy that breaks your positioning. |
| Auto-music | OFF | Generic tracks that flatten the creative. |
| Highlight positive comments | ON | The one AI feature worth keeping β surfaces real social proof. |
2026 Ads Manager has been quietly making some of these mandatory. If you can't switch one off, accept it β but never opt-in to features you can disable.
Launch & Let Meta Pick.
This is where most operators lose. Launch the pack at your test budget. Then do nothing. Let Meta concentrate spend on 1β3 ads. The 27β29 quiet ads are inventory, not failures.
"Every ad deserves reach, so I'll put one ad in each ad set and duplicate." This was the 2023 move. It now produces artificially inflated cost-per-result and a balooning level of audience overlap. The trillion-dollar company knows which creative should distribute. Let it choose.
Inventory. Bench warmers. Ammunition. When ad fatigue hits or you duplicate to find new winners, those filmed-but-unused creatives are how you avoid going back to film mode and losing momentum.
Qualify With Sales Data β Not CPL.
Cost-per-lead on the Ads Manager dashboard is a liar. The real test happens downstream β call quality, webinar show-up rate, close rate, refund rate.
Real winners
Good CPL + good leads. Sales team likes them. Webinars fill. Buyers stick. Scale.
Fake winners
Good CPL + trash leads. Cheap to acquire, but no-shows, refunds, ghost callers. Kill. The messaging is mis-attracting.
"You go listen to the calls or you see who shows up to your webinars and the sales team is saying these people suck. Even though they technically won β you call those losers."
The Scaling Loop β Find The Ceiling.
Once you have a real winner, the goal isn't to scale forever β it's to find the ceiling, lock the budget there, and promote that ad set to "foundational."
Stop optimising for test-time CPL. Optimise for raising the ceiling β how much profitable spend the account can absorb. Each successful duplicate-and-replace loop should bump that number up.
The Duplicate & Replace Loop.
Once the foundational ad set is locked, the iteration engine kicks in. There are two branches: real winners and fake winners.
- Duplicate the foundational ad set (same targeting, same 30 ads).
- Remove the 1β3 winners from the duplicate.
- Keep all 27β29 that never got reach.
- Add 1β3 fresh ads from your inventory.
- Reset the duplicate's budget to your test budget.
- Run alongside the foundational. Wait for new winners. Loop.
- Kill the original ad set entirely β that messaging is mis-attracting.
- Duplicate it first to preserve the 27β29 quiet ads.
- Remove the fake winners from the duplicate. Stay away from that messaging style.
- Add 1β3 fresh ads from your inventory.
- Reset to test budget, hunt for legitimate winners.
You don't need a new campaign for each duplicate ad set. Keep them under the same cold campaign. Campaign-level fragmentation is what you're avoiding.
Always Be Filming β Inventory Is Your Edge.
The whole system collapses if you can't keep up with creative production. Most operators take far longer than they think they do β and that delay is where momentum dies.
24β48 hours
Standard turnaround time per ad batch: script β film β edit β live. Anything slower and you're losing time during every ad-fatigue swap and every duplicate-and-replace loop.
- Maintain a backlog of 5β10 unlaunched ads at all times.
- Fixed weekly shoot day + fixed weekly edit day. Make it a rhythm, not an event.
- Build it into team OKRs. The film-and-edit pipeline is the rate limiter on revenue growth.
- When ad fatigue hits a foundational ad set, you should be able to swap in 1β3 fresh ads the same day.
"The speed in which some of you guys take to just film new ads and then edit those ads is unfucking believably intolerable to me. You take forever. Even 24 to 48 hours is too slow if you don't have ads on the side."
Truffle Nation Playbook.
How to plug this directly into the TN Meta accounts β offline programs, online programs, and the ad-generator pipeline.
Offline programs Β· βΉ1.5LββΉ3.65L
One cold campaign (ABO). Three ad sets: Broad / Interest Stack (baking + pastry + cooking + entrepreneurship + career-change + women 25β45) / Lookalike Stack (1% LAL of offline paid students, βΉ99 attendees, webinar attendees, lead-magnet downloaders).
Online programs Β· βΉ25K
Same skeleton, smaller test budget (βΉ3KββΉ5K/day/ad set). Creatives can be scrappier β UGC, talking-head, screen-record demos.
25β30 unique creatives
Anchor to the 7 approved intro-roadmap concepts. Each creative gets its own through-line. Never use the FSSAI loophole hook. Never claim Le Cordon Bleu. Chef Kirty only.
Sales-feedback loop
Tag every booked call with the creative ID it came from. After enough volume, build a creative_id β show-up rate β close rate report. Use it to find fake winners.
Cross-check every creative against the project memory: intro-roadmap positioning (not specific outcomes), no Le Cordon Bleu, Chef Kirty only (no "Chef Manisha", Karan is founder not chef), no FSSAI hook, βΉ99 masterclass has a 6-week upsell (don't claim "no upsell").
src/campaign/engine/campaign-prompts.jsβ updategenerateCopyForAngleto demand 25β30 fully unique ad scripts per angle, not hook variations.src/campaign/pages/AdCreativePipeline.jsxβ surface inventory state:inventory/live_test/live_winner/live_fake_winner/killed.src/campaign/engine/campaign-store.jsβ add ad-creative-level status fields.src/campaign/pages/CampaignDashboard.jsxβ add a "ceiling tracker" so each ad set logs its measured spend ceiling.
Fixed weekly day for filming new TN ads. Goal: maintain a 5β10 unlaunched ad backlog at all times. The bottleneck isn't ideas β it's bandwidth. Edit in batches of 3β5 creatives at a time so the launch cadence keeps up with the duplicate-and-replace loop.
Action Checklist.
The minimum viable rollout. Tick each item as you ship it β your progress is saved locally so you can pick this up across sessions.
- βAudit current Meta account β kill any campaigns running the "one ad per ad set" structure.
- βBuild one cold campaign with ABO (not CBO).
- βCreate three ad sets: Broad / Interest Stack / Lookalike Stack.
- βBrief and script 25β30 fully unique creative concepts.
- βFilm all 25β30 creatives end-to-end (no hook-only variations).
- βWrite 5 broad headlines + 5 broad body copies. Apply to all ads.
- βTurn OFF site links, AI Advantage variations, auto-translate, auto-music. Keep only "highlight positive comments" ON.
- βLaunch all three ad sets with the same 30 ads + same headlines/bodies.
- βBuild the sales-feedback loop: tag every lead with the creative ID it came from.
- βAfter enough volume, identify 1β3 winners by reach + cost-per-result.
- βCross-check winners with sales-team feedback. Classify real vs fake winners.
- βScale real winners until you hit the ceiling. Drop spend back to that ceiling.
- βPromote the ad set to "Foundational" status. Lock budget.
- βDuplicate foundational ad set. Remove winners. Keep 27β29 quiet ads. Add 1β3 fresh. Reset budget. Repeat.
- βEstablish a weekly shoot day. Maintain 5β10 unlaunched ads in inventory at all times.
- βTrack the spend ceiling per foundational ad set. Treat raising it as the real KPI.