When to kill a Facebook ad (and how not to kill a winner)
When to kill a Facebook ad: the spend and day thresholds I use, why significance testing fails at kill-decision sample sizes, and four safeguards against mis-kills.
When to kill a Facebook ad: the spend and day thresholds I use, why significance testing fails at kill-decision sample sizes, and four safeguards against mis-kills.
Tuesday, 9 a.m., Ads Manager. The new ad set is on day two: €41 spent, zero purchases, and your target CPA is €25. Your finger is on the toggle. Switch it off now and you stop the bleeding. Switch it off now and you may also be deleting the one creative that needed one more day.
I have toggled too early more times than I want to admit. The damage never shows up in a report, because the ad you killed never gets the chance to prove you wrong.
The takeaways
Five days or €200 of spend, whichever comes later. Before that floor I do not allow a kill at all, however ugly the dashboard looks. Two mechanics force the wait. First, Meta's documentation puts learning-phase exit at around 50 optimization events within a seven-day window, and an ad set still in learning is being shown to audiences the delivery system is experimenting with, so its cost per result runs noisier and usually worse than what it settles into. Second, conversion reporting lags: purchases attributed to Tuesday's clicks keep trickling in on Wednesday and Thursday. The "zero conversions" on your screen may simply not have arrived yet. Most of the regret kills I have made happened inside that window, on data that was incomplete in a way the interface never warns you about.
Because the sample is not there, and it never will be at kill time. A defensible test of "this ad performs below my target CPA" wants dozens of conversions per ad. When you are deciding whether to cut a loser, you typically have between zero and five. Any p-value computed on that is theater. Statistics earns its keep elsewhere in a buyer's workflow: when you are ranking twenty tested creatives and need to know which winner is real, the samples are big enough to do it properly. I wrote up that side of the problem in won, or just lucky?. The kill decision is a different animal. It is a budget-protection move made under uncertainty, so the right tool is a rule you wrote in advance, with guardrails that limit how badly the rule can misfire.
I built four into Adscalr, because each one corresponds to a mis-kill I have personally made:
These are rules with seatbelts, not statistical proofs. I want to be precise about that, because plenty of tools imply their kill logic is "tested". Mine is logged: every evaluation, fired or not, is written down so I can audit why an ad died.
In my setup, rules can fire on 8 metrics: CPI, CTR, hook rate, hold rate, ROAS, spend, frequency, and CPM. The actions are only pause or kill, and the distinction matters. A pause says "this ad might come back": ROAS dipped on a weekend, CPM spiked during a sale event, the market had a bad day. A kill says "this creative is done". My bias is to pause on the volatile metrics (ROAS, CPM, spend pace) and reserve kills for the ones that describe the creative itself: a hook rate that never cleared 20%, a frequency past 3.5×, a CTR that has slid for days. Volatility belongs to the market. Fatigue belongs to the ad.
Whatever rules you run, give yourself an undo window. In Adscalr, kills stay reversible for 24 hours, and full automation is opt-in: the default mode only recommends, with a one-tap Telegram control that executes the pause (or the undo) through the Meta API when I agree. That last design choice is the whole philosophy in miniature. The rules exist so I never bleed €400 overnight on an obvious loser, and the safeguards plus the undo exist because rules are blunt and winners are rare. If you want the longer version of how those kill and pause rules fit together with alerts and the morning brief, the automation pillar walks through the full setup.
This is the thinking behind Adscalr.
See the product →