Skip to content
Get MCP AdsGet MCP Ads, home
Start free
Deep contractMeta Ads

How to detect creative fatigue on Meta and TikTok with an AI agent

Find the ads whose audience has seen them too often, prove the decay with frequency and CTR trends, and rank what to refresh first.

IntentSeparate creatives that are worn out from creatives that never worked, and rank refresh candidates by spend at risk.

5
Steps
6
Tools
4
Rules
3
Failure modes

When to use it

Use it when

  • CPA drifting up over weeks with no structural change.
  • Frequency creeping on always-on prospecting.
  • Before a creative production sprint: this is the brief.

Do not use it when

  • Ads younger than 7 days or under ~1,000 impressions: that is a launch, not fatigue.
  • Remarketing audiences, where high frequency is the design; judge them on efficiency only.

What it needs first

Required

Optional

Preconditions

  • Ad-level daily insights available over at least 21 days.
  • Accounts ticked, confirmed via list_accounts.

Inputs

scope
Campaigns or ad sets to inspect.Default: active prospecting campaigns.
window
Trend window.Default: last 28 days, daily.

Procedure

In order. Every tool named is one the gateway ships, and links to its reference.

  1. On TikTok, start from the platform's own fatigue diagnostics.

    It encodes TikTok's thresholds; use it as the first ranking, then verify.

  2. Pull ad-level daily insights with frequency, CTR, CPM and spend.

  3. Join ads to their creatives so findings name the asset, not an ID.

  4. For each ad with enough data, compare current CTR to its own first-14-days baseline, and read the frequency trend.

  5. Rank confirmed fatigue by spend at risk, and note the creative angle of each so the refresh brief writes itself.

Decision rules

The observable condition, what it lets you conclude, and what takes the conclusion back.

  • When

    CTR is down 30% or more against the ad's own first-14-days baseline AND frequency exceeds 4 on a 7-day window

    Conclude

    Fatigue confirmed. Rank by current spend.

    Unless

    CPM rose sharply at the same time, which can depress CTR account-wide; check a non-fatigued control ad first.

  • When

    CTR never reached the account's median for the format

    Conclude

    Not fatigue: the creative under-performed from launch. Different fix, different list.

  • When

    Frequency is high but CTR and CPA are stable

    Conclude

    Watch, do not refresh: audiences tolerate frequency until results say otherwise.

  • When

    Under 1,000 impressions or under 7 days of data

    Conclude

    Refuse to grade; say the sample is too small.

Evidence every conclusion must carry

  • Every fatigued ad shows its baseline CTR, current CTR, frequency and the dates of both readings.
  • Spend at risk is the ad's current daily spend, stated with its window.

Where the agent stops

  • Pausing a fatigued ad is a Safe Write: preview, human confirmation, apply.
  • Choosing replacement creative is a human decision; the skill delivers the ranked brief.

How it goes wrong quietly

The cases where the analysis is wrong and still looks right. Read them before trusting a number.

  • Seasonality read as fatigue: compare against the account's overall CTR trend before blaming the creative.
  • An audience change mid-window resets the baseline; check ad set history before concluding.
  • On TikTok, catalogue ads carry no owned creative asset; fatigue there belongs to the product feed, not a video.

What the answer contains

01Fatigued, ranked
Ad, creative, baseline vs current CTR, frequency, spend at risk.
02Never worked
The separate list, so the refresh brief does not revive them.
03Refresh brief
Angles and formats that are still fresh in the account.