The two winner tests
The ad with the prettiest numbers usually isn't my winner. A strange visual can stop almost anyone mid-scroll: cheap clicks, long watch time, a few sales at a lovely cost. Then it gets real money and goes quiet. A low cost per sale on the first few hundred dollars only tells you the ad found the easiest buyers.
So before I call an ad a winner, it has to pass two tests. One: Meta keeps putting money behind it as the budget grows. Two: most of its sales come from people who have never bought from you.
Example used below: a joint supplement brand spending $5,000 a day on Meta, the week after a 20% budget increase. The numbers are made up to show the method.
Claude skill
Get the Claude skill
I turned my testing rules into a Claude skill. Attach your Ads Manager exports and it runs both winner tests, tells you what to fix on the ads that fail, and works out how many new ads your account can test.
To install: in Claude.ai, go to Settings > Capabilities > Skills and upload the zip. In Claude Code, unzip it into ~/.claude/skills/
C03Runner with sore kneesV02
WinnerWinnerCost per sale
$38
Spend share
18% → 31%
Past buyers
22%
C05Grandma back on the floorV01
WinnerWinnerCost per sale
$44
Spend share
12% → 19%
Past buyers
35%
C01Label readV04
Resells to past buyersResells to past buyersCost per sale
$21
Spend share
26% → 27%
Past buyers
74%
C07Strange visualV01
Meta won't spendMeta won't spendCost per sale
$19
Spend share
9% → 3%
Past buyers
41%
C02Founder storyV03
Fails bothFails bothCost per sale
$52
Spend share
15% → 9%
Past buyers
63%
The two cheapest ads both fail. Meta kept spending on the label read, but three of every four of its sales came from people who already buy from you. And Meta pulled money off the strange visual as soon as it had more to spend.
Step 01 · Ads Manager, once
Tell Meta who your existing customers are
In your ad account's Advertising settings, find Audience segments. Under Existing customers, add your customer list and a website purchasers audience. Meta then splits every result three ways:
Audience segmentsNew audience: people who have not interacted with your products or services Engaged audience: people who have interacted with your business but have not bought Existing customers: the customer list and purchasers you add here
Do it before the week you judge, so that week is split. New and engaged audience together are the people who have never bought from you.
Step 02 · Ads Manager
Pull two reports
Wait a full week after the budget increase. New spend sells late, so I never judge sooner.
Report settingsAds Manager > Ads tab Columns: Ad name, Ad set name, Amount spent, Purchases, Cost per purchase, Impressions, 3-second video plays Report A: the 7 days before the budget increase. No breakdown. Report B: the 7 days after it. Breakdown > By delivery > Audience segments. Export each one: Reports > Export table data > .csv
Step 03 · Claude
Run both tests
Attach both exports to Claude and paste:
Step 03 promptI'm attaching two Meta Ads Manager exports, both at ad level. Report A = the 7 days before my last budget increase. Report B = the 7 days after it, broken down by audience segment. Run two tests on every ad with at least 3 purchases in Report B. 1. Spend test: the ad's share of its ad set's spend in Report A and in Report B. It passes if the share held or grew. 2. New buyer test: the share of the ad's Report B purchases that came from "Existing customers". It passes if that share is under 50%. Give me one table sorted by Report B spend: ad name, cost per purchase in Report A, spend share A -> B, % of purchases from existing customers, verdict. Verdicts: WINNER (passes both), RESELLS TO PAST BUYERS (passes the spend test only), META WON'T SPEND (passes the new buyer test only), FAILS BOTH, NOT ENOUGH DATA (fewer than 3 purchases). Never judge an ad on cost per purchase alone. Then list the failed ads with the highest 3-second video plays divided by impressions. Their openings stopped people, so I want to reuse them.
If you use the skill above, you only attach the two files.
Step 04 · You
Act on each verdict
What I do with each verdictWINNER -> make versions of it: new face, new format, new edit, same reason to buy. RESELLS TO PAST BUYERS -> leave it running, but don't scale on it. It isn't adding buyers. META WON'T SPEND -> keep it on its test budget. Don't build the next batch on it. FAILS BOTH -> turn it off. Keep what stopped people for the next idea. NOT ENOUGH DATA -> one more week before any call.
The pretty one isn't wasted. Whatever made people stop, the visual or the first line, goes into the next idea I write, on a new reason to buy.
My winner is the ad that takes the money and keeps finding new buyers.
Done for you
Want me to run this for your brand?
Book a call and I’ll tell you what I’d test first in your account.
Book a call