Why we froze our best ad set - and stopped topping it up
Top-ups feel like scaling. They are dilution. What we learned from a hand-run campaign where one message lived for a year, and how it became a mode in the product.
The instinct, when an ad set is working, is to feed it. More creatives, more variations, another angle in the same set so the winner has company. It feels like scaling. In our numbers it is, almost always, dilution - and the only reason we know is that we tried to scale a winner, watched the engine kill it, and then went looking for a campaign that had never had the problem.
The campaign that lived a year
We found it in a client account that had been run by hand, before the engine. One campaign, one message, and a naming scheme that told the whole story: the letter was the message, the number was the release. Message A had lived for a year - not as one ad, but as ten successive releases, #1 through #10. Same promise, same call to action, a new visual every time the old one wore out. Nothing was ever added to it. When a release stopped working it was replaced, not joined.
That campaign never had a morning like ours. No newcomer ever took its budget, because no newcomer was ever let in. It did not need a quarantine rule because there was nothing to quarantine.
Letter = message. Number = release. Nothing is added to a working ad set. Ever.
What a top-up really does
When you add ads to a live set, Meta re-explores. The new ads get budget to prove themselves, the proven ad gets less, and for a few days the set’s numbers belong to the newcomers. If the newcomers are worse - and most new ads are worse than a proven winner, that is what proven means - the set’s 7-day cost per lead rises on their account. In our solar case, six top-ups took 277 zł (about $77) without a lead and pushed a set that had done 46 leads at 35.89 zł ($10) to a 7-day CPL of 99.48 zł ($27.63). The kill threshold was 90 zł ($25).
So the winner was not scaled. It was diluted, then blamed, then paused. Every part of that is a consequence of letting new ads into a set that had already earned its budget.
The freeze
The first fix was blunt: an ad set with a confirmed winner is closed. The engine writes its angle into a protected list, the generator stops planning for it, the publisher refuses new ads into it. The slot in the client’s ad set quota stays taken, so the freeze does not free up room for a copy of the same idea somewhere else. Later we widened the definition. A set whose best ad has produced three or more leads is closed to top-ups, winner or not. Track record, not CPL, is what earns the lock.
The second fix answered the obvious question: if you cannot add to a winner, how does it ever get fresh creative? With a release. When a set with five or more lifetime leads wears out, the engine does not kill it. It pauses the weak ads inside, and it briefs the generator with a directive that says: rewrite nothing. Hook, primary text, headline, on-image copy - word for word. New visual layer only. The release enters the same base set, one live release at a time, and spare approved releases wait their turn until the current one dies.
One message per ad set
Then we made the whole thing a mode. In what we call MPJ mode - named after the hand-run campaign - an ad set is a message. Inside it sit a few statics with identical copy and call to action in different styles; the quota is four. A different letter is a different message and gets its own set. An ad set, once created, is immutable: the generator rejects any candidate for an angle that already has a set, so top-ups are not merely discouraged, they cannot happen.
A release in this mode is a new set that inherits the letter and takes the next number. The old release keeps running until its successor is in the map; only then may the lifecycle kill it. The last static of every release goes to a human designer, because the visual layer is where a message ages, and a person still sees that first.
We are running MPJ mode as an A/B test against dynamic creative sets on the same offer, on our own budget, because a doctrine that sounds right is not the same as one that is measured. If the numbers change our mind, the mode will change. The freeze will not. Nothing gets added to a working ad set. Ever.
- Jakub Zwoliński
Founder, Lemon Agency · Efekto · September 8, 2026