← All articles
9 min

What to test next: a closed-loop creative iteration framework

Most creative-analysis tools answer one question: which of the creatives currently in flight are working. That is useful, but it is half the job. The harder question, the one that decides next month's performance, is: given what just ran, what is the next creative we should test, and why.

Iteration is the bottleneck. Performance teams are typically structured to optimise budgets, bids, and audience setup faster than they can produce new creatives, which means creative becomes the limiting factor on account performance. The single most reported gap with the current generation of analysis tooling — across the buyer-side discussion in r/PPC, r/digital_marketing, and the broader performance-marketing community — is that the tools surface what happened but leave the "fix-it factor" entirely to the human.

This guide covers why kill-vs-iterate is the wrong first question, the closed-loop framework that turns each round of learnings into the next brief, the three brief patterns (refresh, variant, angle pivot), the kill-vs-scale decision rules, and how cross-platform learnings on Meta, Google Ads, and TikTok feed back into the loop.

The wrong first question

Most teams open the week with the question: which creatives should we kill. That is the wrong opening question because it answers in the destructive direction — the result is fewer creatives in flight than last week, and a backlog of "produce something new" with no specific brief.

The right opening question is: which creatives just earned the right to spawn variants, and what should those variants change. The killing then happens automatically — a creative that earns no variants is a creative that has nothing to teach, so it gets cut by attrition rather than by spend-threshold rule.

This reframing matters because it shifts the iteration cycle from a budget-pruning loop into a learning-compounding loop. The same data that would have killed a creative under the first frame produces a brief under the second frame.

The four-stage closed loop

Each cycle covers four stages. The cycle length depends on spend velocity — typical small-to-mid accounts run a 7-14 day cycle; larger accounts run 3-7 days.

Stage 1 — Read

Pull performance data per creative across all platforms running it. Score each creative on six dimensions: hook strength (3-second video view rate or first-fold static engagement), CTR, video completion (or static dwell), conversion rate, fatigue signals (frequency creep, CTR decay slope), and creative diversity within the running set.

The output of stage 1 is a per-creative score and a per-creative diagnosis: working / fatiguing / underperforming / not-yet-decisive.

Stage 2 — Cluster

Group creatives that share underlying components: hook style, voice-over treatment, format (UGC / branded / product demo), angle (problem / benefit / social proof), call-to-action, end-card. Two creatives sharing a hook but with different angles cluster together on hook, separately on angle. Each creative typically belongs to 4-6 clusters.

The output of stage 2 is the cluster-level performance map: which hook patterns are working, which angles are working, which formats are working, independent of the specific creatives that happened to instantiate them. This is the closed-loop step that the current generation of creative-analysis tools mostly omits.

Stage 3 — Brief

For each cluster that earned the right to spawn (working creatives or fatiguing-with-strong-opening creatives), produce a brief for the next variant. The brief specifies the dimension to vary and the dimension to hold constant.

The cluster-level output of stage 2 makes this concrete: if "problem-led hook" + "UGC format" is the winning cluster, the brief reads "produce three variants holding problem-led-hook and UGC format constant, varying the specific problem statement (3 distinct customer pain points), and the call-to-action (3 distinct CTAs)." That is a brief a creative team can act on in one cycle.

Stage 4 — Produce + launch

Spec the assets, produce, ship. The produced assets enter the next cycle's stage 1 and the loop closes.

The compounding advantage of this loop is that each round's learnings are encoded into the next round's briefs at the cluster level rather than the individual-asset level. After three or four cycles, a team running this loop has a compact map of what works for their account that any new creative can be evaluated against.

Three brief patterns

Three patterns of brief cover most of what a closed loop produces.

Refresh briefs

For creatives that opened strong, are now fatiguing, but the underlying angle is still right. The refresh changes surface elements — opening frame, voice-over delivery, end-card, music — while keeping the angle, format, and call-to-action constant. Refresh briefs are cheap and the resulting variants inherit the audience targeting the original creative trained.

The refresh is the most underused brief pattern in most accounts. Teams default to "kill, replace with brand-new creative" when "refresh, re-launch, capture another two weeks of audience-share" is usually the higher-ROI move. See early signs of creative fatigue for the diagnostic that flags refresh-eligible creatives.

Variant briefs

For working creatives that the cluster analysis suggests can be amplified by varying a specific dimension. If the data shows "problem-led hook works, but only one problem statement has been tested," a variant brief specifies three additional problem statements within the same hook style. If the data shows "UGC format works but only one talent has been used," a variant brief specifies two additional talents.

Variant briefs are the loop's primary growth mechanism. Each variant is cheap to produce (the brief is highly constrained), low-risk (the cluster is already validated), and contributes new cluster-level data on a finer grain.

Angle pivot briefs

For winning angles that have been milked across multiple variants and formats and are starting to plateau. The pivot brief explicitly changes angle while keeping format and audience constant — a pivot from "problem-led" to "benefit-led" inside the same UGC format and hook style.

Pivot briefs are higher-risk than variant briefs and should be paced — one pivot brief per cycle, not three. The data return on a pivot is also higher: it tests whether the angle assumption is correct, not just the variant assumption.

Kill vs scale: thresholds, not gut

The kill-vs-scale decision flows from the cluster-level data, not the individual-creative data.

A creative gets scaled when:

  • It has run for at least the platform's learning-phase exit threshold (50 conversions on Meta and Google Ads; 7 days on TikTok)
  • Its cluster signature matches a winning cluster pattern in the account
  • Its CPA is at or below the account-level target for 7-14 consecutive days
  • Frequency is below the fatigue threshold (under 3.0 on Meta in a 7-day window)

A creative gets killed when:

  • It has run for the learning-phase exit threshold and CPA is more than 50% above the account target
  • Its cluster signature matches a known-losing cluster pattern (no need to wait the full window)
  • Its hook strength score in the first 48 hours is more than 30% below the account benchmark — the rest of the funnel cannot recover from a broken hook

A creative neither scales nor kills — it goes back into the loop for refresh or variant briefs. Most creatives end up in this third bucket, which is exactly the right outcome: kill-or-scale binary thinking is what produces the "we kill 60% of our creatives within 72 hours" pattern that wastes accumulated audience-learning.

Cross-platform feedback into the loop

Each platform — Meta, Google Ads, TikTok — reads creatives differently because the delivery engines, audience compositions, and consumption contexts differ. A clean closed loop reads cluster signals per platform and reconciles them.

A hook style that wins on TikTok may lose on Meta because TikTok audiences index on first-3-seconds retention while Meta audiences read longer hooks. An angle that wins on Google Ads may not even apply on TikTok because Google Ads creative is mostly response to expressed intent, not interruption.

The cross-platform reconciliation step is: for each cluster, mark which platforms validated it. Briefs then specify "produce variants for the cluster, optimised for the platforms that validated it." A "problem-led + UGC" cluster validated on Meta and TikTok but not Google Ads spawns variants only for Meta and TikTok. This stops the closed loop from producing assets for platforms where the underlying cluster is not earning its keep.

For a deeper read on cross-platform reconciliation, see reading cross-platform ROAS across Meta, Google, and TikTok.

What Omniscia does in this loop

Forge is the brief-generation layer. It reads the cluster-level output of Lens analysis, identifies which clusters earned the right to spawn variants, generates structured briefs that specify what to hold constant and what to vary, and persists the briefs against the originating creatives so the lineage is queryable. Lens scores the produced creatives in stage 1 of the next cycle, the loop closes.

The distinction worth flagging: Forge generates briefs, not assets. The brief is the structured input a human or asset-generation tool turns into an actual creative. Brief-generation has a higher data return than asset-generation because briefs encode cluster-level learnings, and the same brief can produce multiple assets across talent, voice, and visual treatments.

For the upstream piece — scoring a creative before it spends — see how to score a video ad before you spend.

Frequently asked questions

How many creatives should I test per week?

It depends on spend velocity. At under $10K/month, one new creative per week is enough; the data simply does not move fast enough to justify more. At $25K-50K/month, 4-5 new creatives per week. At $50K-100K/month, 6-12 new creatives per week, the majority of which are variants and refreshes from the closed loop rather than wholly new angles. Above $100K/month, 15-25 per week, with one or two angle pivots inside that mix.

When do I kill a creative vs iterate on it?

Kill when the cluster signature matches a known-losing pattern in your account, when CPA is more than 50% above target after the learning-phase threshold, or when first-48-hour hook score is more than 30% below benchmark. Iterate (refresh or variant brief) in every other case. Most creatives belong in the iterate bucket — the kill-or-scale binary loses accumulated audience-learning and starves the closed loop of variants.

How do I write a brief from a creative learning?

Specify what to hold constant and what to vary. A working "problem-led + UGC" cluster produces a brief like: "hold problem-led hook + UGC format constant, vary the problem statement (3 customer pain points), vary the CTA wording (3 versions), produce 3 variants total." The brief should be tight enough that the creative team can act in one cycle and the variants stay inside the validated cluster.

Does the same iteration framework work on TikTok and Google Ads?

Yes, with calibration. The cluster dimensions on Meta and TikTok overlap (hook style, format, angle, talent). On Google Ads, particularly Search and Performance Max, the cluster dimensions shift toward headline patterns, asset combinations, and audience signal alignment. The four-stage loop (read, cluster, brief, produce) applies; the specific cluster taxonomy is platform-shaped.

What is the difference between data-backed briefs and AI-generated assets?

A brief is a structured specification — what to hold constant, what to vary, which platforms it targets, which cluster it instantiates. An asset is the produced creative file. Brief-generation has higher data-return because briefs encode cluster-level patterns; the same brief produces many assets. AI asset-generation tools fill the brief — but a poorly-briefed AI generator produces poorly-targeted assets at high speed, which is faster failure rather than faster learning. The closed loop runs at the brief layer, not the asset layer.