When to kill a Facebook ad creative: three kill rules and one non-rule, set before launch
A kill rule written before launch is a decision; the same rule invented on day four is a mood. Three rules cover almost every case, they apply per ad and never to the ad set, and the one thing they do not do is kill an ad for not being chosen.
Decide before launch
The question "should I kill this ad?" has a good answer only when it was asked before the ad existed. Written down with the batch, a kill rule is applied in thirty seconds on the read date. Invented on day four, after looking at the numbers, it is a rationalisation of whatever you already feel about the creative. So the rules below go into the batch sheet next to the target cost per result, before the batch is launched (how to structure a creative test batch).
Meta facts are quoted from Meta's help pages (fetched 4 September 2026; detail in adding ads to an existing ad set); the multipliers are our defaults, and you should set your own.
Rule 1: the spend cap without a result
Pause the ad when it has spent N times the target cost per result and has zero results.
Our default N is 2 for cheap results and 3 for expensive ones. At a USD 20 target, an ad with USD 40 to 60 spent and no result has had a fair chance in the auction and is not converting; leaving it running is paying for a second opinion you do not need. The reason to state it as a multiple of the target and not as a fixed amount is that the rule then survives across accounts and objectives.
The cap applies only to ads that are actually getting delivery. See the non-rule below.
Rule 2: cost per result against target, after the floor
Pause the ad when it has cleared the results floor and its cost per result is more than M times the target.
Our default M is 1.5. The floor is the number of results you decided an ad needs before its cost figure is stable (the ad-set-level version is Meta's own "about 50 results in the week"; see how many ads to test per week). Below the floor, the cost figure is not evidence and rule 2 does not fire; rule 1 does. Between target and M times target, the ad is a candidate for a second week, not a kill.
Rule 3: fatigue
Pause the ad when cost per result has risen on two consecutive reads while frequency rises.
Fatigue is a trend, not a level, so it needs two reads: the seven-day read and the next one (reading results after 7 days). A former winner whose cost climbs while frequency climbs has been seen enough by the audience it can reach. It is not a loser; it goes into the record as a winner that is now retired, and its iterations are probably already in the next batch (from a winning ad to the next batch).
The non-rule: do not kill for lack of delivery
Meta's delivery documentation says it shows "the ad that's most likely to achieve the lowest cost per optimisation event for the given person" and that "each of your ads won't necessarily be delivered the same number of times". An ad with a few dozen impressions and nothing else has not lost; it has not been picked. Killing it teaches you nothing and costs you a creative. Label it unread, and either give the batch its second week or move the ad to a batch where it does not compete with a stronger sibling.
Pause the ad, never the ad set
Meta's list of significant edits includes "pausing your ad set for 7 days or longer (the ad set reenters the learning phase once you unpause the ad set)". Pausing individual ads is not on the list. Every rule above is therefore applied by switching off the ad, in bulk if needed, and leaving the ad set, its budget, its history and its surviving ads untouched. The mechanics, and why the ad set is the wrong lever even in an emergency, are in rolling back a bulk launch.
Two related non-actions: do not edit a struggling ad's creative to "fix" it ("any change to ad creative" is a significant edit, and the fixed ad is a new test anyway), and do not move budget away from the ad set on the same day you pause half its ads; give the survivors the delivery.
Do not kill by CTR
CTR is the metric most often used to kill early and the one least connected to what you pay for. A curiosity hook, a bright thumbnail or an Advantage+ overlay lifts CTR without lifting results. The kill rules above use spend, results and cost per result only; CTR belongs in the "why" column of the record, not in the decision. If enhancements were on, the CTR you see is "including all variations" of the ad and is not even a clean measurement of your file (turn them off).
The checklist
| Rule | Fires when | Action |
|---|---|---|
| 1. Spend cap | Spent 2 to 3 × target cost per result, zero results, and the ad is getting delivery | Pause the ad |
| 2. Cost ceiling | Results floor reached and cost per result over 1.5 × target | Pause the ad |
| 3. Fatigue | Cost per result up on two consecutive reads while frequency rises | Pause the ad, mark as retired winner |
| Non-rule | Little or no delivery | Label unread; second week or new batch |
| Never | Any of the above | Pause the ad set, or edit the creative in place |
Write the multipliers you chose into the batch sheet. Then on the read date the kill is a filter (ads in this batch, spend over cap, results zero) and a bulk status change, which is the only way it gets done consistently at forty ads a week.
Record the reason
Each kill gets one word in the sheet: cap, cost, fatigue. After a few batches the distribution tells you something: mostly "cap" means the concepts are wrong; mostly "cost" means the hooks pull the wrong people; mostly "fatigue" means you need more concepts, not more iterations. That is the creative testing framework working as a loop.
Adlio's part in this is upstream: because every batch it launches lands paused, named by pattern and findable by that name, the filter that applies a kill rule is the same filter you used to review the batch before it went live. First 15 ads free; see how bulk upload works and pricing.
Frequently asked questions
How long should I let an ad run before killing it?+
Until a rule fires, not until a day count. The spend-cap rule can fire on day two if the ad is getting delivery and converting nothing; the cost-ceiling rule can not fire before the ad clears its results floor, which is usually the seven-day read; the fatigue rule needs two reads. An ad that is not getting delivery is not killed at all; it is unread.
Should I pause the ad set if most ads in it are bad?+
Pause the ads. Meta lists pausing an ad set for 7 days or longer as a significant edit that restarts learning when you unpause; pausing individual ads is not on that list. Switch off the losers in bulk and leave the ad set, its budget, its history and its survivors running.
Can I fix a losing ad instead of killing it?+
Not in place. "Any change to ad creative" is a significant edit, and the fixed ad is a different creative anyway, so it is a new test. Pause the loser, put the fix in the next batch as an iteration, and keep the record of what the original did.
Is a low CTR a reason to kill?+
No. CTR is the metric least connected to what you pay for: a curiosity hook, a bright thumbnail or an Advantage+ overlay lifts it without lifting results. The kill rules use spend, results and cost per result only; CTR goes in the "why" column of your record.
Sources
Adlio team
Built by media buyers who launch Meta ads in volume. Questions or corrections: support@adlio.ai.
Topic cluster
Creative testing at volume
How to structure, ship and read creative tests when you launch dozens of ads a week.
- How many ad creatives to test per week on Meta: work back from budget, not from a number
- How to structure a creative test batch on Meta: one variable, a deliberate ad set, one paused launch
- How to read creative test results after 7 days on Meta, and the three things you can not conclude yet
- When to kill a Facebook ad creative: three kill rules and one non-rule, set before launch
- From a winning ad to the next creative batch: scale without editing, iterate on one variable, launch as one addition
Related guides
- How-toCreative testing framework for Meta ads at volume: size, structure, read, kill, repeat
- How-toHow to read creative test results after 7 days on Meta, and the three things you can not conclude yet
- ChecklistRolling back a bulk launch: pause many ads at once without resetting learning
- How-toFrom a winning ad to the next creative batch: scale without editing, iterate on one variable, launch as one addition