Skip to content
Playbook·5 min read·

How to tell when a Facebook ad is fatiguing, before your CPA doubles

Three leading signals tell you a Meta ad is dying days before cost per result rises. Here is what to watch, and the thresholds that actually matter.

ByMart Hendrik·6 years running Meta ads
In one paragraph

A Meta ad is fatiguing when its click-through rate decays while frequency climbs and reach saturates, all before CPA visibly rises. The three leading signals, in order of importance, are: CTR decay on a rolling 3-day window compared to the ad's own trailing baseline, frequency velocity (how fast average frequency is rising), and reach saturation (what share of impressions are hitting people who have already seen the ad). Watching CPA alone means reacting days late.

Creative fatigue is not a mystery, and it is not sudden. An ad fades on a curve, and the curve leaves fingerprints in your data days before your cost per result rises. The problem is not that the signals are hidden. It is that Ads Manager does not surface them, and no one has time to check them by hand across every ad every day.

Here are the three signals that matter, in the order you should trust them.

1. CTR decay, the first and loudest signal

When people see the same creative repeatedly, they stop clicking. Click-through rate is the earliest place fatigue shows up, and it is the single most important signal. What matters is not the absolute CTR, which varies wildly by account and audience, but the decay: how far the last few days have dropped below what was normal for that specific ad.

Watch a rolling 3-day CTR against the ad's own trailing baseline, excluding the most recent days so a bad day does not poison the reference. A drop of 10% is worth noting. A drop of 25% or more, sustained, is fatigue in progress.

The short answer

A rule of thumb: if 3-day CTR has fallen more than 25% below the ad's own two-week baseline and the trend is still downward, the ad is fatiguing regardless of what CPA currently says.

2. Frequency velocity, not just frequency

Everyone watches frequency. Fewer people watch how fast it is rising. A frequency of 3.0 that has been stable for a week is very different from a 3.0 that was 1.8 three days ago and is accelerating. The velocity tells you whether you are approaching saturation or already sliding into it.

One important exception: retargeting and remarketing campaigns run at naturally high frequency by design. A frequency of 5 on a warm retargeting audience is not fatigue, it is the point. Any honest fatigue signal has to exempt retargeting from frequency penalties, or it will cry wolf constantly.

3. Reach saturation, the audience running dry

The third signal is how much of your delivery is recycling the same people. If impressions keep climbing but reach barely moves, you are showing the ad to a pool that has already seen it. That is reach saturation, and it is what forces frequency up and CTR down in the first place.

Measured simply: over the last few days, how much did reach grow relative to how much impressions grew? When reach growth stalls while impressions keep spending, the audience is exhausted.

Why you should blend them, not watch them separately

Any one signal alone produces false alarms. CTR dips for a hundred reasons. Frequency climbs for benign ones. Reach stalls when budgets change. The reliable read comes from blending all three into a single health score, weighted by how predictive each is, and judged against the account's own history rather than a generic benchmark.

That is exactly what a fatigue detector does, and it is why the useful version weights CTR decay most heavily, treats frequency by its velocity, exempts retargeting, and compares everything to learned baselines instead of fixed thresholds.

The manual version, step by step

If you are not buying anything, this is the routine that works. It takes about twenty minutes to set up and five minutes a day to run.

  • Export ad-level insights daily: ad name, date, impressions, reach, clicks, CTR, frequency, spend, results.
  • For each ad, compute the mean CTR of the last 3 days and the median CTR of the 14 days before those. Median rather than mean for the baseline, because one viral day should not raise the bar the ad is then judged against.
  • Express the difference as a percentage: (recent minus baseline) divided by baseline.
  • Compute frequency change over the last 5 days, and check whether reach is still growing while impressions grow.
  • Flag any ad where CTR is down more than roughly 20 to 25 percent against its own baseline while frequency is climbing. Investigate rather than act: the flag is a prompt to look, not a verdict.

Two rules make this survive contact with reality. Only score ads with enough data, because small numbers produce dramatic percentages that mean nothing: 5 days of history and around 1,000 impressions is a sensible floor, and it is the same gate Fadar uses. And exempt retargeting from the frequency half of the test, or you will flag it every single day.

The false positives that cost you a winner

Every detection method produces them, and acting on one means killing an ad that was working. These are the four worth knowing before you trust any flag.

  • Learning phase. A new or recently edited ad has unstable delivery by design. Do not judge anything during learning.
  • Low volume. An ad with 300 impressions a day can swing 40 percent on noise. This is what the minimum data gate is for.
  • Promotion end. If a sale finished, CTR drops because the offer changed, not because the creative wore out. The fix is a new offer, not a new execution.
  • Seasonality and day-of-week. Some accounts have a reliable weekly rhythm. A Tuesday judged against a weekend baseline will look like a collapse.
The short answer

Fadar blends these three signals into one 0-100 health score per ad and pings Slack the day a creative crosses the line, with the euro cost attached. You can see the score on your own account with a free backtest, no card required.

Questions

Fair questions.

Can I detect ad fatigue without buying a tool?

Yes, at small scale. Export ad-level insights, track each ad's rolling three-day CTR against its own trailing fortnight, and check weekly. That genuinely works for one account with a handful of live ads. It breaks on volume: five accounts with thirty live ads is a hundred and fifty daily comparisons, which is a job nobody sustains.

How often should I check for ad fatigue?

Often enough to beat your own account's warning window. Measure how many days typically pass between CTR turning and cost per result moving on ads you have already replaced, then check more frequently than that. For most accounts the answer lands somewhere between daily and twice a week.

Does high frequency on its own mean an ad has fatigued?

No, and treating it that way generates constant false alarms. Frequency is one of three signals and the least reliable alone, because what counts as high depends entirely on the audience. Fatigue shows as a cluster: CTR declining against baseline, frequency rising, and reach flattening together.

What is the minimum data needed before a fatigue score means anything?

Enough volume that the movement is not noise. Fadar will not score an ad until it has at least 5 days of history and 1,000 impressions, and that floor exists because small numbers produce dramatic-looking percentage swings that mean nothing. Any method you use should have an equivalent gate.

Written by
Mart Hendrik
Founder, Fadar · 6 years running Meta ads

Fadar came out of buying Meta ads and watching the same thing happen on every account: the creative starts dying days before the cost per result admits it. These field notes are what that looks like from inside an ad account, written from real numbers rather than a keyword list.

More about Mart
Put your ads on the radar

Fadar watches every Meta ad for fatigue and pings Slack, Telegram, or Discord in euros the day one starts to fade. The 90-day backtest is free.

Run the free backtest