sixtysteps.co

A$5,908 and 122 sales: how a book ad pool stayed honest

By Ryan Richardson · Published 8 October 2026

The largest ad test in this account ran 225 book-ad creatives through a red/yellow/green scoring and scaling pipeline, spending A$5,908.18 and recording 122 purchases at an average cost of A$48.43 per purchase.

The question

For a self-published book sold directly off a landing page, which creatives are worth scaling spend into, and which should be killed, when the only thing you can measure early is cost per purchase? This test ran a continuous creative-testing-to-scaling pipeline on the same book offer for just under a year (22 Oct 2025 to 7 Oct 2026) to answer it with real money, not a one-off split test.

Setup

The method is Hernán Vázquez's Rapid Scale 2.0 / Red-Yellow-Green (RYG) model, run as written: a testing campaign seeds 5 new creatives a week into 3 ad sets (Interest / Lookalike / Broad) at a fixed daily budget. Every creative gets graded red (kill), yellow (hold) or green (scale) purely on cost per purchase against a moving target CPA, with no CTR or CPM override. Winners that clear 3+ purchases at or under the target graduate, by Facebook post ID (not by ad name, to avoid double-counting), into a separate broad-targeted scaling campaign with no interest restrictions.

3 campaign IDs sit under this one experiment: Creative Testing, an earlier single-campaign predecessor, and the Proven Scaling campaign that graduates feed into. 225 ads ran across them in the window pulled.

Results

Meta's own attributed revenue (A$3,126.45) is lower than total spend (A$5,908.18) on this view because Meta under-counts post-checkout purchases that don't fire a browser-side pixel event before the buyer leaves the page; our own tracking work (see 'What we changed next' below) found the real per-campaign ROAS was materially higher once server-side purchase events were added. Treat the A$3,126.45 figure as a floor, not the true revenue.

MetricValue
Ads225
SpendA$5,908.18
Impressions107,229
Link clicks1,715
CTR3.23%
Landing page views1,558
Checkouts initiated620
Purchases122
Cost per purchase (CPA)A$48.43
Recorded revenue (Meta-attributed)A$3,126.45

Breakdown within the test: awareness stage and audience segment

Avatar 5 at A$41.65 CPA is the cheapest-converting single cell found anywhere in this campaign's tagged ads; it's also the only cell with purchases (14) above the 10-sale mark this report treats as a usable minimum sample. Every other tagged cell is a single-digit purchase count and directional only.

Dimension valueSpendPurchasesCPA
Product-aware (s4)A$825.8613A$63.53
Problem-aware (s2)A$627.679A$69.74
Avatar 5A$583.1114A$41.65
Avatar 1A$560.646A$93.44

What won, and how sure to be about it

122 purchases at A$48.43 CPA is the best-attested result in this whole dataset by a wide margin, both in spend (the largest single experiment pulled) and in sample size (10x the next-biggest purchase count). The win is at the pipeline level, not a single creative or audience: ads that clear the CPA bar graduate by post ID into an uncapped scaling campaign, and the campaign-level number above is a rolling average across however many ads have graduated and been killed over the year, not a single A/B result.

A caveat found in internal project notes and worth repeating here: a graduated ad's cost per purchase reliably gets worse once it moves from a small, tightly-targeted testing ad set into the broad, unrestricted scaling campaign. Two tracked examples moved from A$13 to A$37 (2.8x worse) and A$34 to A$40 (1.2x worse) on the same creative, same post ID. The lesson documented at the time: never plan a budget off a testing-ad CPA, forecast off the scaling number instead.

What we changed next

Several changes are documented as having been made directly off this test's numbers: the kill-age gate was cut from 168 hours to 72 hours because the original 7-day window was protecting creatives that were already grading red; a scaling-budget ceiling bug (a missing-budget value silently read as not-a-number, which defeated the entire spend cap check) was found and fixed; and a hold band (0.7 to target ROAS) was added so a previously-scaled creative that softens gets held rather than killed outright, while a brand-new creative showing the same soft number still dies. The target ROAS dial itself was raised from 0.5 to 0.8 over the test's life as the back-end offer matured.

How to run this test yourself

Score every new creative on a fixed rubric before it spends a dollar (see the related scoring method below), seed a small fixed batch into 3 ad-set types at once rather than one ad set, judge purely on cost-per-action against a target you're willing to state out loud, and require a minimum purchase count (this test used 3) before anything graduates out of the small testing ad set. Match graduated and original ads by the platform's post or creative ID, not by the ad name you gave it, so a creative that gets renamed on promotion doesn't get silently double-counted or lost.

The numbers
ClaimValueSource
Number of ads in the test225Sixty Steps ad account, Meta Ads data
Total spendA$5,908.18Sixty Steps ad account, Meta Ads data
Impressions107,229Sixty Steps ad account, Meta Ads data
Link clicks1,715Sixty Steps ad account, Meta Ads data
CTR3.23%Sixty Steps ad account, Meta Ads data
Landing page views1,558Sixty Steps ad account, Meta Ads data
Checkouts initiated620Sixty Steps ad account, Meta Ads data
Purchases122Sixty Steps ad account, Meta Ads data
Cost per purchaseA$48.43Sixty Steps ad account, Meta Ads data
Meta-attributed revenueA$3,126.45Sixty Steps ad account, Meta Ads data
Date range of the campaign IDs pulled2025-10-22 to 2026-10-07Sixty Steps ad account, Meta Ads data
Method is Hernán Vázquez's Rapid Scale 2.0 / Red-Yellow-Green model, run as writtenconfirmedProject book ryg autopilot.md, lines 11, 31
3 ad sets per testing campaign (Interest/Lookalike/Broad), 5 new creatives seeded weeklyconfirmedProject book ryg autopilot.md, line 15, 45
Winners graduate at 3+ purchases at or under target CPA, matched by post ID not ad nameconfirmedProject book ryg autopilot.md, lines 31, 157 167
Avatar 5 spend/purchases/CPAA$583.11 / 14 / A$41.65Sixty Steps ad account, Meta Ads data
Avatar 1 spend/purchases/CPAA$560.64 / 6 / A$93.44Sixty Steps ad account, Meta Ads data
Product-aware (s4) spend/purchases/CPAA$825.86 / 13 / A$63.53Sixty Steps ad account, Meta Ads data
Problem-aware (s2) spend/purchases/CPAA$627.67 / 9 / A$69.74Sixty Steps ad account, Meta Ads data
A graduated ad's CPA reliably gets worse moving from testing to scaling, two tracked examplesA$13 to A$37 (2.8x worse) and A$34 to A$40 (1.2x worse)Project book ryg autopilot.md, lines 219 230
Kill-age gate cut168 hours to 72 hoursProject book ryg autopilot.md, line 51
CBO spend-ceiling NaN bug found and fixedconfirmedProject book ryg autopilot.md, line 51
Hold band added for previously-scaled creatives0.7 to target ROASProject book ryg autopilot.md, lines 97 124
Target ROAS raised over the test's life0.5 to 0.8Project book ryg autopilot.md, lines 67, 232
An earlier round of the same RYG method ran on a different book offer first: A$285.14 spend, 34 ads, 4 purchases, A$71.28 CPAconfirmedSixty Steps ad account, Meta Ads data
Go deeper

This page covers one step. The full method is in the book.

Read the full part
sixtysteps.co
AI-powered growth for what's next. Sixty Steps is Onwards Analytics — a data and analytics firm.
Pages
Home Library The book — $7 About
Start
The Teardown — free [email protected]
© 2026 Onwards Analytics Every claim on this site carries a number, or is marked as reasoning.