How to detect creative fatigue before it kills your ROAS
By Anish Jajodia1 min read
Creative fatigue is the silent ROAS killer. Your campaign looks fine. Spend is stable, targeting hasn't changed, but ROAS is slowly declining. The creative is exhausted and you didn't notice because the decline is gradual.
Here's how I detect it early, both manually and with the automated system I built.
The signals
Creative fatigue shows up in a specific pattern. All three of these must be true simultaneously:
- Frequency is rising: above 3.0 on Meta, the same people are seeing your ad repeatedly. They've already decided they're not interested.
- CPM is increasing: Meta charges you more when people stop engaging. Rising CPM with stable targeting = the algorithm is struggling to find fresh impressions.
- CTR is declining: fewer people clicking relative to impressions. This is the clearest signal that the creative has been seen too many times.
If only one of these is true, it might be something else (audience saturation, seasonal trends, platform-wide CPM shifts). All three together = fatigue.
The thresholds I use
- Creative running more than 7 days
- CPM up 15%+ vs first 3 days
- CTR down 20%+ vs first 3 days
- Frequency above 3.0
When all four conditions are met, the creative needs to be rotated or refreshed.
The automated version
I built an agent that runs this check every morning across every active campaign, every brand. It queries recent data, computes the trend lines, and sends a Slack alert if any creative hits all four thresholds.
The alert includes: brand name, campaign name, creative ID, current frequency, CPM change percentage, CTR change percentage, and a recommendation (pause, rotate, or refresh).
The entire check is rule-based. No expensive AI calls needed. Just well-structured queries against our campaign database. It runs automatically and costs essentially nothing.
Time saved: significant daily hours of manual checking across all ad accounts.