All articles
Ad Intelligence5 min read

Scaling winning ads without breaking them: the part the 20% rule skips

Why winners sink when you raise the budget, what Meta's learning phase has to do with it, and how a holdout tells you whether scaling was the culprit.

Your ad has held a 2.9 ROAS for six straight days. Monday night you triple the budget, because why would you not. By Thursday it sits at 1.4, you quietly walk the budget back down, and the old performance never comes home.

Every buyer I know has a version of this story. Mine cost about four thousand euros before I changed how I scale. The strange part is that in almost every version, the budget jump gets all the blame, and the budget jump is rarely the whole crime.

The takeaways

  • Most "broken" winners were never that good. A six-day 2.9 ROAS on thin data drifts back toward average with or without a budget change. Statisticians call it regression to the mean, and it does more damage to scaled ads than any learning-phase reset.
  • Meta's documentation puts the learning-phase exit at roughly 50 conversion events per ad set within 7 days, and lists budget changes among the "significant edits" that can restart it. The famous "raise budgets 20% every 2 to 3 days" figure appears nowhere in those docs.
  • A holdout kept at the old budget is the cheapest diagnosis you will ever run. If the holdout sinks too, the market moved. If only the scaled copy sinks, the scaling did the damage.

Why do winning ads break when you scale them?

Three things hit at once when you raise a budget hard, and only one of them is your fault. First, regression to the mean: an ad you picked for a hot early ROAS usually cools off on its own, because part of that ROAS was luck, and luck does not renew. Second, the auction: at triple the daily spend, Meta has to buy you impressions it previously skipped, so your marginal CPM rises and your marginal customer gets worse. Third, the learning phase: a large budget edit can push the ad set back into learning, where delivery is volatile by design.

Notice the order. The first one was already happening before you touched anything. Which is why the real work starts before the scale button, on the day you decide which ad deserves more money at all.

How much can you raise a budget without restarting the learning phase?

Meta's Help Center lists budget changes among the "significant edits" that can restart learning, and puts the exit bar at about 50 conversion events per ad set within 7 days. It never names a safe percentage. The 20%-every-few-days rule that every scaling guide repeats is buyer folklore, tested into shape by thousands of accounts, and I have no quarrel with it.

I treated it as a speed limit while running around €150k a month in app-install spend: steps of 20 to 30%, 48 to 72 hours apart, and never a step while the ad set was still in learning. Slow, boring, stable delivery.

One refinement the folklore leaves out: tie your step size to conversion volume, since the learning phase is measured in conversion events. An ad set doing 80 conversions a week absorbs a 30% raise far better than one doing 15.

Verify the winner before you scale it

The most expensive scaling mistakes happen on decision day. A creative that tops the dashboard after four days and 25 conversions is, more often than you would like, a coin that landed heads several times in a row. Scaling does not break that ad. It exposes it.

My bar before any vertical scale: a minimum conversion count fixed before the test started, at least 5 full days of delivery, and a score blended from several metrics so one jumpy ROAS day cannot decide the ranking. When I built this into Adscalr I added Bayesian shrinkage with format-specific priors: a new ad's wild early score gets pulled toward what its format usually does, so a lucky day cannot top the list in the first place. I unpacked that whole problem in how to read an ad test without kidding yourself.

Keep a holdout, so you know what the scaling cost you

When you scale a winner, leave a control behind. Two versions I use:

  • The untouched duplicate. Duplicate the winning ad set, leave the original at its old budget, scale the copy. Compare after a week. Both sank: the market moved or the creative fatigued. Only the scaled copy sank: the budget move did it.
  • The protected cohort inside CBO. Campaign-budget optimization will happily starve your control if you let it, so inside CBO I keep a floor of at least 3 active ads and scale beside proven ad sets I never touch. The algorithm needs alternatives to shift budget between, and you need an undisturbed baseline.

The holdout also protects you from the most common misdiagnosis in scaling: blaming the creative for a bad market week. CPMs spike for everyone sometimes. When I built fatigue detection for Adscalr, I made it read a multi-day CTR slope against the whole market first, precisely so an ad that "broke" during an expensive week does not get killed for the market's sins.

Where this discipline lives now

Everything above runs fine from a spreadsheet and a calendar reminder. I got tired of being the calendar reminder. The scoring half of it now lives in Adscalr's ad intelligence: a composite of six metrics (hook rate, CTR, CPI, ROAS, share rate, revenue per install), format-prior shrinkage so early luck never gets scaled, and fatigue checks that look at the market before blaming your ad. If you want your next scale decision to start from a number you can trust, that is the part of the product built for it.

This is the thinking behind Adscalr.

See the product