Creative Fatigue Check
Find ads where frequency is up, CTR is down and cost per result is climbing, and decide: refresh the hook, widen, or leave it.
From Sanskar's ad account
Every sales campaign in Sanskar's accounts runs broad: India, 18+, no interests. With tens of millions of people in the audience, frequency climbs slowly, so a good reel can run for weeks. When an ad stops working on a broad audience, the cause is usually the offer or the page, not fatigue. Check those before you shoot something new.
Install
Run this once in your terminal. Claude Code picks the skill up in your next session, in every project.
mkdir -p ~/.claude/skills/creative-fatigue-check && curl -fsSL https://talktoads.com/skills/creative-fatigue-check/SKILL.md -o ~/.claude/skills/creative-fatigue-check/SKILL.mdFor one project only, use .claude/skills/creative-fatigue-check inside the project instead.
Then ask
Are any of my ads fatigued? Compare the last two weeks
The skill
What the agent follows, from the SKILL.md you download.
An ad that worked last month can quietly get worse as the same people see it again and again. This skill checks the signs ad by ad and tells you which ones actually need new creative.
Needs the TalkToAds connector (Meta). Read-only.
Steps
-
Pull ad-level trends. Call
get_performancewithobject_id= the ad account,level: "ad",date_preset: "last_14d",time_increment: "7". You get two weekly rows per ad: last week and the week before. -
Flag fatigue. An ad is fatigued when, week over week, all three happen:
- frequency goes up (people see it more often)
- link CTR goes down by 20% or more
- cost per result goes up by 20% or more
If only cost per result rose but CTR held, it's probably the auction (season, competition), not the creative.
-
Check the audience size. For flagged ads, look at the ad set's targeting (
list_ad_sets). A small audience (a narrow interest, a small custom audience) gets tired faster than a broad country-wide one. -
Ignore small spenders. Skip ads that spent less than 2× their cost per result in the window. There isn't enough data to judge them.
-
Recommend per ad.
- Refresh: same message, new hook. Change the first 3 seconds of the video or the headline of the image. Keep the offer.
- Widen: if the audience is small, go broad (country + age) before changing the creative.
- Leave it: still profitable on real revenue even with rising frequency. Fatigue only matters if it's costing you money.
-
Report. Table: ad, frequency (week 1 → week 2), CTR, cost per result, verdict. One recommendation first. Change nothing without a yes.
Rules
- Don't kill a winner because frequency went up. Kill it when it stops making money.
- New creative goes in a new ad in the same ad set, next to the old one. Don't edit a running ad, because editing resets its learning.
- Refresh the hook first. Changing the offer or the page at the same time means you won't know what worked.