The Graduation System: How to Force Spend Onto Your Winning Meta Ads

"My best ad is doing all the work, and I can't get a cent of new budget onto it."

A founder said that to me on a call a few weeks back, half-frustrated, half-confused. He had one ad in his prospecting campaign carrying the account. Every time he raised the campaign budget to feed it, the extra spend trickled out across eight other ads instead, most of them mediocre. The winner stayed stuck.

If you run Meta ads at any real scale, you've felt this. Your top ad is the one thing working, and the account structure won't let you back it. This is the exact problem the graduation system solves, so let me walk through how I think about it, where the hard lines are, and the one situation where I'd tell you not to bother.

The problem: a CBO won't hard-back your winner

Quick bit of context on why this happens, because the fix only makes sense once you see the cause.

In a CBO prospecting campaign, the algorithm spreads budget across the ads inside it based on where it thinks the next conversion is. That's usually fine. But it means you don't get to decide that one specific ad deserves A$500 a day. You raise the campaign budget, Meta redistributes it however it likes, and your proven winner might get more, or might not. You're making a request, not a decision.

Worse, the top ads tend to hog whatever spend is going, so genuinely new creative never gets enough budget to prove itself. You end up with a frozen account: the winners can't scale, and the challengers can't break in.

Graduation fixes both. You take your proven ad and give it its own dedicated home where you control the budget directly, while leaving the original running so your prospecting campaign keeps its momentum and its social proof.

Step one: define a graduate-able winner with hard criteria

This is the part most people get wrong. They "graduate" an ad on a hunch, two days in, because it had a good morning. Then they're surprised when it dies in the scale campaign.

A winner you're allowed to graduate has to clear two bars at once, not one:

  • It's a high spender already. I want it to be one of the top two or three ads by spend inside its prospecting pack. If the algorithm is already choosing to put real money behind it, that's Meta telling you it's found the audience. That signal matters more than any vanity metric.
  • It's above your baseline return. High spend alone isn't enough, because an ad can burn budget and still lose money. It also has to be sitting above the ROAS line you actually need for the account to work. Roughly speaking, I want to see it holding above baseline while taking a meaningful slice of the pack's budget, say it's eating more than 10% of that pack and still profitable.

Both, together. Top of the pack by spend AND above your return target. An ad that spends a lot but sits below baseline isn't a winner, it's an expensive problem. An ad that's wildly profitable but only spent A$30 isn't proven, it's lucky. The graduate-able ones are the ones doing both, and there are usually fewer of them than you'd hope.

Give it a few days of spend before you decide, too. One good day is noise.

Step two: hard-duplicate into a scale campaign

Once an ad clears both bars, here's the actual move, and one small mechanic that matters more than it looks.

You run a separate scale campaign, set at the ad set level (not campaign level), so you can force budget exactly where you want it. Then you take your winning ad and you hard-duplicate it into that campaign. Not copy-paste. The hard-duplicate option, which carries the original post across so the ad keeps every like, comment and share it had already earned.

That detail is the whole reason to do it this way. Social proof is part of why the ad works. A fresh copy with zero comments is a different, weaker ad. Hard-duplicating means you're scaling the proven asset, not a stripped-down clone of it.

Then the rule that founder on the call needed to hear: you do not pause the original. The winner keeps running in prospecting, doing its job and holding its momentum, while the duplicate sits in the scale campaign with a budget you control directly. Now when you want A$500 a day on that creative, you put A$500 a day on that creative, and it actually lands there.

Step three: graduate it into an interest ad set too

There's a second home for a proven winner, and it solves a different problem: running out of broad audience.

Most broad prospecting audiences plateau. You're technically able to reach tens of millions of people, but in practice the campaign keeps hitting the same pocket and costs climb as you push. The way out is to take that same graduated winner and drop it into a lightly-targeted interest ad set.

The point of the interest isn't tight targeting. It's that a well-chosen interest nudges the broad algorithm into an adjacent pocket of people it wasn't reaching, and a proven ad is exactly what you want carrying that expansion. Pick interests that sit next to your customer, not dead-centre on an obvious rival. If you sold premium running gear, you'd reach for an adjacent premium interest rather than your biggest competitor's name, so Meta finds people it wasn't already showing you.

So one proven ad ends up working three places at once: still in prospecting holding its ground, in the scale campaign with a budget you control, and in an interest ad set opening up fresh audience. That's the system. Define the winner properly, hard-duplicate to scale, graduate into interest, leave the original alone.

Step four (only at real spend): cost-cap the scale ad set

One refinement for accounts already spending properly, four figures a day and up. Below that, skip this, it adds complexity you don't need yet.

Inside the scale campaign you can group proven winners by average order value and run them under a cost cap. The maths is simple: if your AOV is A$100 and you need a 2x return, your cost per purchase has to come in around A$50, so you set the cost cap at roughly that, maybe a dollar under your real target. Then you set the budget uncomfortably high and let the cap do the throttling.

The thing to understand is that a high budget under a cost cap won't necessarily spend the full amount. It only spends when Meta thinks it can hit your cost target, and pulls back on its own when it can't. You're not setting a budget so much as a ceiling on what you'll pay, and letting a proven ad run as hard as it can underneath it.

Where I'd tell you NOT to graduate: the post-Andromeda catch

Now the honest bit, because graduation isn't a free win anymore and I don't want to sell it as one.

Since the big delivery overhaul that rolled across accounts, the algorithm is built to match one ad to one person at the right moment, and it specifically does worse when you force budget onto things it didn't choose. That's an awkward fit with a system whose whole purpose is to force budget. So a few situations where I'd hold off:

  • You're under roughly A$10k a month. At that spend, you don't have the volume to justify splitting a winner across three placements. You're better off leaving everything in one broad prospecting campaign and letting the algorithm breathe. Graduation is a scaling tool, not a starting tool.
  • The winner goes cold the moment you move it. This is the one people don't expect. A duplicated ad sometimes just never takes off in its new home, because the new ad set has no learnings and the algorithm has no reason to re-spend on a creative it's already running profitably elsewhere. I've watched a perfectly good ad get duplicated into a scale campaign and sit there doing nothing, while the original kept performing. If that happens, don't fight it. The original is making money. Turn the dead duplicate off and let the winner stay where it's happy.
  • You're force-feeding budget the account can't absorb. If your scale campaign is pushing spend that the proven ad can't actually convert, you'll drag down ad rank and watch your costs climb across the board. Under this algorithm, over-forcing is a real way to make a good account worse.

So the move isn't "graduate every winner". It's "graduate the ones that earn it, watch whether they take, and walk it back fast when they don't".

If your top ad is stuck and the account won't let you back it, this is the structure I'd try first. Run the two-bar test on your current winners this week, pick the one or two that genuinely clear both, and see what happens when you give them a home with a budget you actually control. It's roughly how we approach scaling for clients, and the discipline is less in the duplicating and more in being honest about which ads have truly earned the spend.

Ethan To
CEO @ Pigeon Digital