Get in touch
Have a project in mind? Tell us a bit about it.
Every paid social account eventually hits the same wall: performance was solid for weeks, then CPMs start creeping up, click-through rate slides, and cost per result climbs even though nothing else in the account changed. The instinct is to blame the algorithm, the season, or the audience. Most of the time the real cause is simpler and much more fixable: the creative got old before anyone noticed.
Creative fatigue is the single most common reason a previously profitable campaign quietly stops being profitable. It’s also one of the easiest problems to spot early, if you’re watching the right signals instead of waiting until ROAS tanks to confirm what already happened two weeks ago.
ROAS is a lagging indicator, not an early warning
By the time return on ad spend drops enough to trigger a conversation, the creative has usually been declining for a week or two already. ROAS bakes in conversion rate, average order value, and attribution lag, which means it smooths out and delays the exact signal you need to act on quickly. If creative fatigue is only visible once it shows up in ROAS, you’re always reacting a week late and spending budget on an ad that stopped working before you noticed.
Frequency is the number to watch first
Frequency, how many times the average person in your audience has seen the ad, is the cleanest early warning you have. Most feed and story placements start showing real fatigue somewhere between 3 and 5 impressions per person for cold audiences, and considerably sooner for smaller retargeting pools. The exact threshold varies by account and creative style, but the pattern doesn’t: if frequency is climbing past that range while CTR is flat or falling, the ad is wearing out on the exact people you’re paying to reach again and again. Check this weekly at the ad set level, not just at the campaign level, because a healthy campaign average can hide one exhausted ad set dragging the rest down.
Watch the shape of the CTR curve, not just the number
A single CTR reading tells you almost nothing on its own; the trend line over the ad’s life tells you everything. Pull daily CTR for each active ad and look at the shape: a steady, gradual decline over ten to fourteen days is normal wear and a signal to plan a refresh. A sharp overnight drop usually means something else entirely, a platform change, a landing page issue, or a tracking break, and refreshing the creative won’t fix that. Treating every CTR dip as a creative problem is how teams end up churning through new ad variations while the actual issue sits untouched on the landing page.
CPM creep confirms what frequency already told you
As an ad’s relevance and engagement scores erode, the platform’s auction responds by charging more to show it, which shows up as rising CPM even with no change in budget, audience, or bid strategy. CPM creep on its own can have other causes, seasonal competition being the most common, but CPM creep that coincides with rising frequency and falling CTR on the same ad is close to a confirmed diagnosis. When you see two of these three signals moving the wrong direction together, stop waiting for the third.
“Make more ads” isn’t a rotation plan
The common fix, asking the creative team for more variations, treats the symptom without addressing the underlying scheduling problem. If new creative only gets made once performance has already visibly dropped, you’re permanently building the next ad under time pressure and shipping whatever’s ready rather than what’s actually good. A rotation plan means knowing, before you launch an ad, roughly how many days or impressions it’s expected to hold up, and having the next one built and approved before that point arrives, not after.
Audience size is the biggest input into that timeline. A retargeting pool of a few thousand people burns through frequency and fatigues in days. A broad, algorithmically expanded cold audience of several million can run the same static image for a month before wear becomes visible. Set your refresh cadence per audience tier instead of applying one fixed calendar rule, like “new creative every two weeks,” to every ad set regardless of size.
Refreshing and replacing are not the same move
A refresh changes the surface, new headline, new color treatment, a different opening frame, while keeping the underlying concept and offer intact. A replacement retires the concept entirely and starts from a different angle or hook. Refreshes buy you time cheaply and work well for the first sign of fatigue. But an ad that’s been refreshed twice and is fatiguing a third time usually isn’t tired, it’s finished, and another surface-level tweak won’t extend its life much further. Knowing which move you’re making, and not defaulting to the cheaper one out of habit, keeps a team from squeezing a dead concept for another two weeks of mediocre spend.
Video and UGC-style creative don’t fatigue on the same clock as static images
A well-produced UGC-style video with a real hook in the first three seconds tends to hold up meaningfully longer than a static image running the same offer, because the format itself carries more variety within a single asset, different faces, pacing, and framing across the runtime. Static images typically show wear fastest since there’s less for the algorithm and the viewer to parse differently on repeat exposure. If your rotation cadence assumes every format decays at the same rate, you’re either replacing video too early, wasting production budget, or holding onto static creative too long out of habit.
Keep the next creative in reserve, always
The most practical fix is procedural, not creative: never let an ad set run without at least one approved, ready-to-launch alternative sitting in reserve. When frequency or CTR crosses your threshold, the swap should take an hour, not a week of briefing, drafting, and approvals. Teams that treat creative production as a continuous background process, rather than a reactive scramble that starts once performance already dropped, consistently spend less on wasted impressions and recover faster when an ad does fatigue. The goal isn’t to predict the exact day an ad will die. It’s to make sure that whenever it does, you’re not caught with nothing ready to replace it.
