← all writing

· 5 min read

How do you know when to stop a campaign that isn't working?

Most small campaigns die by drift rather than by decision. The three stopping rules to write down before you spend, and the sunk-cost arguments to ignore.

Deciding when to stop a campaign is not a tactical question, it is a discipline question, and the reason most small advertisers get it wrong is that they try to answer it while the money is running. By then the decision is contaminated: you have spent something, you want it to have been worth it, and every ambiguous number looks like a reason to give it another week. The fix is to write the stopping rule down before the first dollar leaves. (Disclosure: published by BidSurvivor. Our whole model is twelve-hour slots that expire on their own, so we are arguing for something we happen to sell — read the last section, where that is examined rather than glossed.)

Write three numbers before you start

Not a target. Three thresholds, each with an action attached.

The kill number. The result below which you stop immediately, regardless of how much budget remains. "Fewer than 2 sign-ups from 300 clicks" is a kill number. "It's not really working" is not.

The scale number. The result above which you spend more. Worth writing because it stops the opposite failure: a campaign that is quietly working while you sit on your hands waiting for certainty that will not arrive at this sample size.

The full stop. The total you will spend before deciding either way, arrived at by sample-size arithmetic rather than by what felt affordable. If those two disagree — and at small budgets they usually do — the honest response is to run a smaller test of one thing rather than an underpowered test of everything.

The whole value is that all three are written while you are still capable of being objective about them, which is to say before you have spent anything.

The three arguments to ignore

Each of these will occur to you, and each is a version of the same fallacy.

"It just needs more time to learn." Sometimes true, and the reason it is dangerous is that it is sometimes true. Platforms genuinely do have learning periods. But "learning" has a defined end — a conversion volume, not a feeling — and if you cannot state what the algorithm is still waiting for, the campaign is not learning, it is running.

"We've already spent $300, we may as well finish." The $300 is gone in both branches. It is not evidence about the next $300 and it cannot be recovered by spending more. This is the plainest sunk cost there is, and it is astonishing how well it works on people who would spot it instantly in someone else's business.

"It might be seasonal." Occasionally real, usually unfalsifiable, and always available. If seasonality was a genuine hypothesis you would have named the season before you started. Named afterwards, it is a way of moving the goalposts to wherever the ball landed.

What to do with a result you cannot read

The most common outcome of a small campaign is not success or failure. It is a number too thin to interpret — nine clicks, one sign-up, a rate of 11% that means nothing.

Three honest responses, and only three.

Stop and bank the qualitative. You still learned things a spreadsheet will not hold: which phrasing you found yourself defending, what the two people who replied actually asked. That is real, it is just not a conversion rate and should not be written down as one.

Spend to the sample size or not at all. If the number needed to read the result is four times what you have spent, the choice is to commit that or to stop. What does not work is spending 1.3× and hoping the picture resolves. It does not; it just costs more.

Change the question to one you can afford. Testing whether a message stops a stranger takes far less traffic than testing whether it converts one. Move up the funnel where events are more common, get an answer, and treat that answer as what it is — a proxy, honestly labelled.

Campaigns that stop themselves

Here is the part where I have an interest, so here is the argument and its limits.

Anything sold by the day, week or month runs until somebody cancels it, and "somebody" is a person who is busy and mildly invested in it having been a good idea. That is a bad combination, and it is why subscription ad spend drifts: the default is continuation, and continuation requires no decision from anyone.

Anything sold in a fixed block ends on its own. A twelve-hour slot is over in twelve hours whether it worked or not, and renewing is an action somebody has to take while looking at the result. That inverts the default, which is genuinely the more honest structure — advertising that expires is the longer argument.

The limits, plainly. A fixed block does not make a bad campaign good, it just stops it sooner. It suits testing far better than scaling, because scaling is precisely the case where you want continuation and re-deciding every twelve hours is overhead rather than discipline. And on our board the rules cut both ways: being outbid ends your slot with no refund, which is a hard stop you did not choose. That is fine for a test and would be intolerable for a channel you depend on.

The rule in one line

Decide what would make you stop while you can still be wrong about it cheaply, then hold yourself to it when you no longer want to. Everything above is elaboration on that, and the elaboration matters less than doing it at all — a written kill number you follow imperfectly beats an unwritten one you rationalise perfectly. If you want the budget side of the same discipline, what a click is worth to you is where the numbers come from.

BidSurvivor sells advertising in twelve-hour blocks, at auction. The first brand into an empty slot pays nothing, every account starts with $100 of house credit, and every brand's click-throughs are public before you bid.

See the board

Read next