Case studies US non-profit kids' STEM brand, 3 min read

What 106 Days of Meta Ads Taught a Kids' STEM Subscription Brand

Role. Paid social strategist and analyst. I diagnose the account, write the creative briefs, and report to the client every one to three weeks. Eleven report rounds so far.

0.3% → 66%
share of spend reaching new creative after a restructure
2 of 3
weak ads rejected before launch by a six-point check
1.25x vs 0.45x
return per dollar that reversed a budget call

Context

The client is a US non-profit that sells hands-on STEM kits and a subscription for kids. Meta ads went live in July on a modest daily budget, aimed at parents who had never heard of the brand. My job was to find out what worked, explain it plainly, and decide what to test next.

This case study is less about a big win than about judgment: three times the obvious read of the data was wrong, and catching it changed what we did.

1. The delivery problem that was a creative problem

By day 41 the third batch of new ads was barely getting spend. The export made it look like a delivery issue, as if Meta simply wasn't showing them.

Instead of trusting the export, I pulled up the live previews and compared them to the one ad that was converting. That ad combined six things: a specific stake on the image ("before they say science is too hard"), a real unposed photo, tension resolved in the same frame, a simple Build, Try, Learn, Grow roadmap, a soft "see how it helps" call to action, and a single static format.

None of the five new ads matched it on any of the six. They all used "Shop now" and a carousel format. Meta wasn't failing to deliver them. It was correctly predicting they wouldn't convert.

That comparison became a pre-launch gate. On the next batch it scored three unlaunched ads 1, 2 and 4 out of 6, and two were rejected before spending a dollar. The one that passed had been written from a brief I'd laid out as labelled rows (headline, relief line, primary text, image, call to action), which turned out to be what made it buildable.

2. The "stable" cost that wasn't

On day 41 I reported that the winning ad had held a steady cost per sale across two groups of purchases. On day 48 the third group came in 84% more expensive.

I corrected the call in the next report rather than quietly moving on. The data hadn't been wrong. I'd been overconfident about what two data points on a small account can prove. Since then every early number goes out with its sample size attached.

The cause was saturation. Meta's automatic budget split was giving the winning ad 99.7% of spend, so new creative never got enough delivery to prove itself.

Before: new creative inside the winner's ad set0.3%
After: new creative in its own campaign66%
Share of spend going to new creative

Moving new creative into its own campaign fixed it. It produced a new converting ad within 15 days.

3. Adding order value reversed my own recommendation

Until day 99 the reports ranked ads by cost per sale, and on that basis I recommended shifting budget toward a newer ad. On day 106 I added order values for the first time.

Original winning ad1.25x
Newer "Made Not Memorized" ad0.45x
Revenue back per dollar spent, Oct 8 to 14

The newer ad was winning cheap, small orders. The original was winning bigger ones. Cost per sale had ranked the ads backwards, so I reversed my own budget call in the same report and said why. The original ad's return was still flattered by two large orders, which I flagged too: without them it was closer to break-even.

Results, honestly

The account sits around break-even at best, and cost per sale has risen over the life of the account as the audience saturated. What did improve:

  • A creative check that kills weak ads before they spend
  • A campaign structure where new creative actually gets tested
  • Reports written in plain language with visuals, ranking ads by revenue rather than by cost per sale
  • A running learning file, so every round builds on the last instead of re-deriving it

Takeaway

  • Look at the ads, not just the export. The spreadsheet said delivery; the previews said creative.
  • Two matching data points on a small account is not a trend.
  • Cost per sale ignores what each sale is worth. Rank by return when you can.
  • Correct your own calls in writing. It's the reason a client keeps trusting the next one.

↑↓ to move, Enter to open, Esc to close