To test ad creative so it teaches you something, write each ad down as a bet before it runs. Say which buyer reason it speaks to, what result counts as a win, and when you will stop. Test big differences first.
Read the result once, at the line you set, and keep every answer in one log.
Monday. The ad meeting. Someone shares last week's winners, someone says the best ad is getting tired, and someone gets asked for five new ads by Thursday.
The new ads ship. Nobody wrote down what each one was meant to prove. So next Monday starts from zero again.
That is a treadmill. Lots of running. No distance.
This guide is about how to test ad creative so the running adds up. Most guides mean one thing by that: split two ads and keep the winner. We mean a system that keeps what every test taught you.
A creative testing engine is a system that turns every ad into a written bet, judges it on a line set before launch, and files the answer where the next round can find it. It is one of the systems a marketing engineer builds.
The term is older than most people think. Gary Lilien and Arvind Rangaswamy used marketing engineering for deciding with data, models and judgment. Our marketing engineer also builds the machine behind those decisions, and this engine is one part of it.
Making ads in bulk is a different job, covered in Fifty Ads a Week. Here we cover what happens once the ads exist.
The treadmill makes ads; the engine keeps what each ad taught
| Treadmill | Engine |
|---|---|
| Ads ship with no written goal | Each ad has a written bet first |
| Read the dashboard every day | Read once, at a line set before launch |
| The ad someone liked gets more time | The result decides, ties keep the old ad |
| Winners are forgotten in a month | Winners go into the brief, then get re-tested |
| Next month starts from zero | Next month starts from the ledger |
Our method
Most of your creative tests will lose. Plan for that on day one.
The best evidence comes from the companies that test the most. In Trustworthy Online Controlled Experiments, Ron Kohavi, Diane Tang and Ya Xu report that only about one in three ideas tested at Microsoft improved the metric it was built to move. At Bing and Google, some measures saw only 10 to 20 percent succeed.
Those are software teams, not ad accounts. Our reading: an ad account is no better at guessing. If seven of your ten new ads lose, nothing is broken.
So what is broken? Losing without writing it down.
A loss with a note is research. A loss without one is just spend.
Budget for the losers before you start. If one ad in three wins, a round of six ads should give you about two.
Fewer than that for months? Look at how you choose ideas, not how you make ads.
Even the best testers win only a minority of their tests
| Where | Share of tested ideas that won |
|---|---|
| Microsoft | About 1 in 3 improved the metric it targeted |
| Slack (pricing and upgrade tests) | About 30 percent |
| Bing and Google (some measures) | About 10 to 20 percent |
Kohavi, Tang and Xu, Trustworthy Online Controlled Experiments (software tests, not ads; the ad transfer is our reading)
Before any ad goes live, give it one row in a log nobody edits: the buyer reason it speaks to, its angle, hook and format, a hypothesis that could turn out false, one success metric, a finish line and a stop line. Test buyer reasons first and hooks last. Read each test once, at its finish line.
Before ranking, pull small results toward the account average. Ties keep the old ad, and a winner counts only after a re-run. Write one line about what the angle taught you, put winning angles into the brief, and re-test them each quarter against a fresh challenger.
Every ad starts as one row in a log, written before the ad is made. Never after.
Why before? After launch, everybody becomes a genius. Whatever won, someone saw it coming.
The Angle Ledger is our name for that log: one row per ad, rows added and never edited. Each row says which buyer reason the ad speaks to, the angle and hook, the bet, and the lines that end the test.
The format is not new. Hacking Growth by Sean Ellis and Morgan Brown asks every test idea for a short name, who it targets, what changes, why it should work, and a cause-and-effect hypothesis with an expected lift. A vague wish like "make the form easier" does not qualify.
A hypothesis is a sentence that could turn out false. "Restaurant owners who fear a tax notice will book more calls than owners who want weekends back" is one. "Ad 14 will do well" is a wish, not a bet.
The authors of Lean Analytics add the rule that keeps it honest: decide what you will do with each result before the data comes in. They also ask for a second line, the number that says a test is not safe to keep running.
Here is ours. We stop any ad whose cost per result runs above three times the account average once it has spent half its finish line. The figure lists every column, so you can copy them into a sheet today.

The Angle Ledger: one row per ad, written before launch
| Column | What goes in it | Example |
|---|---|---|
| Ad ID and date | A new ad gets a new row; old rows never change | Ad 07, launched on a Monday |
| Buyer reason | Why the buyer wants it, in their words | Fear of a tax notice |
| Angle and hook | The argument, and the first line that carries it | Late filing costs more than us |
| Format | Image, video, carousel, text on image | Image |
| Hypothesis | A sentence that could turn out false | Tax-fear owners book more calls than weekend owners |
| Success metric | One result, read in the right column | Booked calls |
| Finish line | Spend at which you read the test | $400 |
| Stop line | The number that ends it early | Cost per call over 3 x average after $200 |
| Verdict | Scale, stop, or rematch with one change | Rematch |
| Learned line | One line about the angle, not the ad | Tax fear ties weekends; test a new hook |
Our template, built from the test summary in Hacking Growth and the experiment record in Kohavi, Tang and Xu, Trustworthy Online Controlled Experiments
A filled-in ledger: every row written before launch, every row ends with a learned line

Example page built for this article with a made-up business. Every number is the article's example: $40 average, $1,200 round, A $90 / 6, B $1,000 / 32, C $110 / 2; pulled values (90+400)/16 = $31, (1,000+400)/42 = $33, (110+400)/12 = $43; stop line 3 x $40 = $120 after half of the $400 finish line.
Which ads should you test first? The biggest differences.
Ad platforms reward this. Meta says its system groups ads that look and feel alike and treats them as variations of one creative. Ten small tweaks of one idea may count as one idea.
So picture a tree. The buyer's reasons to want the offer sit at the top. Under each reason sit angles, the argument you make, and under each angle sit hooks, the first line or first second of the ad.
Where do the reasons come from? From buyers, not a brainstorm. Use the words your customer truth system pulls from calls, reviews and support tickets.
Small accounts have one more reason to start at the top. Hacking Growth works an example.
Start at a 3 percent sign-up rate and try to spot a 5 percent lift. You need about 72,300 visitors per version to read it. That is 72 days of waiting on one button.
Small accounts cannot afford small questions.
For example, picture a bookkeeping firm for restaurants. Its buyer reasons might be weekends back, fear of a tax notice, and knowing the real food cost. Round one runs three ads, one per reason, all in the same format.
Test from the top of the tree down: reasons first, hooks last
Our method
Meta's own words: ads that look alike are treated as one creative

Screenshot of Meta for Business, Demystifying Creative Diversification (linked in Sources), taken 2026-10-18. Pin texts are Anar's reading.
A small lift on a small base takes months to read
Hacking Growth (Ellis and Brown), worked example by Andy Johns
A finish line is the spend or result count at which you read the test. Write it in the row before launch. Do not read the test until it is crossed.
Why so strict? Peeking.
Peeking means checking over and over and stopping at the first good moment. It makes false winners 5 to 10 times more likely, by the experiment research above.
Pick one success metric per test, too. With no real difference, one metric gives a false alarm about 5 percent of the time. Track ten and the chance that at least one looks significant by luck climbs to about 40 percent.
Our success metric is the result the ad set was built to get, read in the right column. Picking the wrong column is its own trap, with its own guide: read 'Results', not 'Leads'.
Know the noise floor as well. A 2012 industry study of half a million impressions, reported in Lean Analytics, found that blank ads with no content drew about 0.08 percent click-through.
An ad that clicks near that line is not winning. It is getting clicks from curious and clumsy thumbs.
Track ten metrics and a false alarm becomes likely
Chance that at least one metric looks significant when nothing changed, at the 5 percent level
Kohavi, Tang and Xu, Trustworthy Online Controlled Experiments (5 and 10 metrics); 3 metrics computed by us with the same formula, 1 - 0.95^k
Watch only the stop line until the finish line is crossed
Our method
A winning ad is real when it passes three checks. It is not too good to be true, it beat the old ad by more than a tie, and it wins again.
Start with Twyman's law: a number that looks surprising is usually wrong. A sudden 400 percent lift is more often a tracking error than a genius ad.
Ties go to the old ad. An unclear result is not a quiet win for the new one. And a 95 percent confidence level still lets about 1 winner in 20 be a fluke; at 99 percent it is about 1 in 100.
Small numbers lie in both directions. In How to Measure Anything in Cybersecurity Risk, Douglas Hubbard and Richard Seiersen compare a small group to a batter with only a handful of at-bats: a lucky streak can look like talent. Their fix, empirical Bayes, pulls small results toward the long-run average.
Our simple version: before you rank ads, add 10 pretend results at the account's average cost to each one. Big ads barely move. Tiny ones move a lot, which is the point of regression toward the mean.
In the example table, ad A looks twice as good as ad B. After the pull, the gap is $31 against $33. Too close to call, so B stays and A gets a fair rematch.
Then re-run every winner. Bing's relevance team, as Kohavi and his co-authors describe it, credits a win only after a separate test of that one change confirms it.
How to learn nothing from a hundred ads, in four easy steps. Step one: launch them all at once, with no notes. Step two: check the dashboard every hour, like it owes you money.
Step three: crown whatever leads on Tuesday. Step four: change the winner's headline mid-test, because why the hell not.
Congratulations. You now own a hundred expensive opinions.
Example: after the pull to average, the 'twice as good' ad is a near tie
Account average $40 per booked call. Add 10 results at $40 ($400) to each ad before ranking.
| Ad | Spend | Booked calls | Raw cost per call | After the pull |
|---|---|---|---|---|
| A | $90 | 6 | $15 | $31 |
| B | $1,000 | 32 | $31 | $33 |
| C | $110 | 2 | $55 | $43 |
Made-up example. After the pull = (spend + $400) / (calls + 10)
Big and clear wins get scaled, then re-run; everything else keeps the old ad
Our adaptation of the launch grid in Kohavi, Tang and Xu, Trustworthy Online Controlled Experiments
A win you never repeat is a souvenir.
Michael Gerber's The E-Myth Revisited gives small businesses a three-part loop: innovation, quantification and orchestration. Change one thing from the customer's side and count the result against what you did before. Then remove the choice, so the winner is done every single time.
In ad terms, orchestration means the winning angle goes into the brief. Every new hook for that buyer starts from it. The ledger's learned line is where it lives, next to the company memory files your AI tools read.
Then the loop starts over, because winners decay. Tricks fade fastest. The experiment research finds that a ploy's lift shrinks once people recognize it, a cousin of the novelty effect.
So we re-test every winning angle each quarter against a fresh challenger. No winner gets tenure.
Your ledger also sets honest odds. Laplace's rule of succession estimates your chance of a win next time as (1 + wins) / (2 + tests).
Twenty logged tests with three winners gives 4 / 22, about 18 percent. So a round of ten new ads should bring about two winners.
Someone promising eight? Ask to see their ledger.
A winner becomes the rule, then gets tested again
Our loop, built on innovation, quantification and orchestration in The E-Myth Revisited (Gerber)
Example: 3 wins in 20 logged tests means about 2 winners per 10 new ads
Made-up ledger, Laplace's rule of succession
AI cuts the cost of making ads. It does not cut the cost of being wrong.
The marketing engineering textbook draws the line well. Automate a decision when a wrong call is cheap, and keep human judgment when a wrong call is expensive.
In a creative engine, a weak hook is cheap. A false claim, a made-up customer or a buyer reason nobody holds is expensive.
Lean Analytics puts it in five words: humans do inspiration; machines do validation. Its example is a content tool that was left alone to learn which images drew clicks.
It cheapened the brand that used it. The fix was people choosing what the machine could test.
Three rules keep our engine honest. First, a live ad is never edited: a change is a new ad and a new row. Second, platform features that rewrite or swap your media stay off, unless one is the thing being tested.
Third, no invented customers. The FTC's rule on fake reviews and testimonials covers testimonials from people who do not exist, AI-made fakes included. An AI presenter may explain your product; it may not claim the product worked for them.
Give any agent in the engine a written brief, as in how to write a job spec for an AI agent. Current Meta settings are in the box below; every other default is in hidden Meta ads settings.
AI drafts the cheap calls; a person owns the expensive ones
| Job | Who | Why |
|---|---|---|
| Draft hooks under a winning angle | AI | A weak hook is cheap and gets tested anyway |
| Fill ledger rows and flag finish lines | AI | Clerical, and easy to check |
| Choose the buyer reasons | Person | They come from real customer words |
| Approve every claim and face | Person | A false claim or fake customer is expensive |
| Give the verdict | Person, from the rules | The rules were set before launch |
Our split, built on the automate-when-cheap rule in Principles of Marketing Engineering and Analytics
It works on a small budget if you run fewer ads at once and keep the same ledger.
Ad platforms need a steady flow of results before delivery settles; the current numbers are in the box above. A small budget spread across forty live ads gives none of them enough.
That is forty rookies getting two minutes each. You learn nothing about any of them.
So run one round at a time: three to five ads, each from a different buyer reason, with one finish line. For example, a $1,200 round with three ads gives each a $400 finish line, about ten results at a $40 average.
Twelve weeks of that leaves a dozen dated answers about your buyers. A hundred ads with no notes leave none.
Match the number of live ads to the budget. Keep the ledger the same at every size.
Send the week's learned lines to the people who set budgets. The growth cockpit memo is built for that, and One Variable at a Time covers the single-change rematch.
Example: a small budget runs one round at a time, three ads per round
$1,200 a round, three buyer reasons, $40 average cost per booked call
| Round | Ads live | Finish line per ad | What it answers |
|---|---|---|---|
| 1 | 3, one per buyer reason | $400 | Which reason pulls hardest |
| 2 | 3 hooks on the winning reason | $400 | Which first line carries it |
| 3 | Winner vs a fresh challenger | $600 | Is the win real |
Made-up example. Finish line = round budget / ads
The prompt below sets up the whole engine. Paste it into your preferred AI and answer six questions. It writes your first ledger rows, finish lines and stop lines, and shows its math.
It never invents a customer or a number. Missing one? It asks.
This week: first, write three buyer reasons from real customer words. Second, run the prompt and launch one round. Third, read it once, at the finish line, and write the learned line.
Back to that Monday meeting. Same people, same coffee. But now someone opens the ledger first.
Want the engine built and run on your account? That is what our marketing engineering engagements do; the ad account and the ledger stay yours.
A treadmill keeps you in one place. A ledger turns the same effort into a staircase.
Paste into your preferred AI. It asks six questions, then writes your ledger rows, finish lines, stop lines and expected winners.
Act as a careful creative-testing planner for my ads. Use only these rules and my answers. Never invent a number, a customer or a quote; if something is missing, ask me. If you can browse, first check my ad platform's current help pages on creative tests and automatic creative changes, and tell me if anything differs from the rules below.
Ask one at a time, with the example, and wait:
1. The offer and its price. (Example: monthly bookkeeping for restaurants, $600 a month)
2. Three to five reasons buyers give for wanting it, in their words, and where each came from. (Example: 'I want my Sundays back', said on 4 sales calls)
3. The one result the ads are judged on. (Example: booked calls)
4. My average cost per result over the last 90 days. (Example: $40)
5. What I can spend on one test round. (Example: $1,200)
6. How many past tests I logged, and how many clearly won. (Example: 20 and 3)
Rules:
- One ad per buyer reason in each round, same format. Test reasons before angles, angles before hooks.
- Each ad gets a ledger row: ID, reason, angle, hook, format, hypothesis ('[change] will [result] by [amount]'), success metric, finish line, stop line, verdict, learned line.
- Finish line per ad = round budget / number of ads.
- Stop line: cost per result above 3 x my average once an ad has spent half its finish line, unless I give a different one.
- Read once, at the finish line. Before ranking, add 10 results at my average cost to each ad. A tie keeps the current ad.
- A winner counts only after a re-run against a fresh challenger.
- Expected winners this round = (1 + past wins) / (2 + past tests) x ads in the round.
- No made-up customers or claims. No automatic creative changes unless that is the test. Never edit a live ad; a change is a new ad and a new row.
Show your math, then use exactly this format:
LEDGER ROWS:
FINISH LINE PER AD:
STOP LINE:
EXPECTED WINNERS:
WHAT A WIN WOULD TEACH US:
NEXT THREE ACTIONS:Bring one offer and your last 90 days of ads. In 15 minutes we will show you which buyer reasons you have tested, which you have not, and what we would run first.
See how we build them →Want to do this work yourself? See how we train marketing engineers.