When a paid campaign starts costing more per result, the standard responses are to change the bid, change the audience, or wait for the platform to settle. All three assume the problem is delivery. Often it is not: the creative has been seen too many times by the same people, and no bid adjustment fixes an advert the audience is tired of.
It gets misdiagnosed because the two look identical in a performance chart — cost per result rises either way. They are distinguishable from data the platform already reports, and almost nobody separates them. Fatigue shows frequency climbing while click-through falls on a stable audience. Saturation shows the audience itself exhausted, with reach plateauing however much is spent.
They need opposite responses. Fatigue needs new creative against the same audience. Saturation needs a new audience for creative that still works. Doing the wrong one wastes both the production budget and the media budget.
The other quiet loss is spend continuing on a creative that stopped working weeks ago, because nobody watches that ad set specifically — campaign-level numbers stay acceptable while one creative inside them decays.
This agent reports which is which, per creative, with the point at which each turned. It pauses nothing and has no access to any ad account.
Which is where most of the waste sits.
New creative and new audience cost differently and fix different things.
Built from what still works rather than from taste.
Identical in a performance chart, opposite in what they need. One wants new creative, the other a new audience.
The day a creative stopped working, rather than the week somebody noticed.
Campaign numbers stay acceptable while one creative inside them decays unwatched.
Rising frequency with falling click-through is fatigue, and it is visible weeks before cost per result moves.
Which creative to build the next round from, which is the more useful half and nobody reports it.
It has no ad account access. Pausing a creative mid-learning is how a campaign gets reset.
Why Advertising in particular. Creative fatigue and audience saturation look identical in a performance chart and need opposite fixes — new creative against the same audience, or a new audience for creative that still works.
Runs unattended
Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.
The same standard every time
The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.
It cannot act on its own
Creative Fatigue Analyst has no path to sending, spending or committing. That limit is why its output is safe to act on.
This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.
Read-only by design. This agent has no path to sending, spending, publishing or committing anything. Where that limit is the product, removing it would remove the reason to trust the output.
Demo dataIllustrative sample output, abridged.
{
"period": "Q3 2026",
"currency": "USD",
"creatives": []
}{
"escalate": true,
"diagnoses": [
{
"audience": "Retargeting, 30 day",
"creative": "CR-118 — testimonial video",
"evidence": "Frequency rose from 2.1 to 7.4 while click-through fell 61%. Reach on the same audience is unchanged, and a second creative on the identical audience is still performing. The audience is fine; they have seen this one too often.",
"diagnosis": "creative-fatigue",
"whatItNeeds": "New creative against the same audience. Changing the audience would waste one that still works.",
"turningPoint": "2026-07-19",
"spendSinceTurningPoint": 38400
},
{
"audience": "Lookalike 1%",
"creative": "CR-204 — carousel",
"evidence": "Frequency is flat at 1.9 and click-through is stable, but reach has plateaued at 78% of the audience and has not moved in three weeks despite a 40% budget increase. The creative still works; there is nobody left to show it to.",
"diagnosis": "audience-saturation",
"whatItNeeds": "A new audience. Producing new creative here would spend a production budget on a problem it cannot solve.",
"turningPoint": "2026-08-04",
"spendSinceTurningPoint": 21600
}
],
"disclaimer": "An analysis of your own campaign data. No ad account was accessed, nothing paused, edited or created, no bid or budget change is recommended as a decision, no judgement is made about creative quality, and cases the data cannot separate are reported as such.",
"avoidableSpend": 60000,
"cannotSeparate": [
"Two creatives have no audience size reported, so fatigue and saturation cannot be told apart for them. Reported rather than guessed."
],
"stillPerforming": [
"CR-231 has run 9 weeks with stable frequency and improving cost per result. Whatever it does differently is the brief for the next round, and no report currently says so."
],
"escalationReason": "38,400 was spent on one creative after it turned, above the threshold, and one audience is saturated across every creative running against it.",
"saturatedAudiences": [
"The 1% lookalike is saturated across all three creatives running against it."
]
}No integrations required.
Which creatives turned, and why.
Whether it is the advert, the audience, or delivery.
What to make more of, and what to stop.
Where decay is slow and nobody is watching a single ad set.
$249/month
Billed monthly through your PROMIVO subscription. Cancel at any time.
Runs consume your plan allowance for agent executions and tokens. See plan limits.
No. It has no ad account access. Pausing a creative that is still in a learning phase resets it, and that judgement belongs to whoever runs the account.
Fatigue is frequency rising while engagement falls on a stable audience. Saturation is reach plateauing regardless of spend. Both are in the data every platform already reports, and almost nobody separates them.
No. It reports how a creative performed over time. Whether an advert is good is a judgement about brand and audience that it will not make.
No reviews yet. Reviews open once customers have run this agent.
Tell us what to change and our team will scope a customised version for your business.
Customize this agent