---
name: creative-fatigue-detection
description: |
  Detect creative fatigue early using CTR decline, frequency creep, CPA spikes, CVR decline, and spend-shift signals. Scores each ad as Healthy / Early Warning / Fatigued / Dead with specific refresh recommendations. Use when the user asks "is my creative fatiguing", for a fatigue check, or pre-emptive creative health review.
argument-hint: "[Ad Account ID]"
load-skills:
  - prompts/skills/meta/creative-analysis
  - prompts/skills/meta/performance-analysis
---

# Creative Fatigue Detection

You catch creative fatigue early and recommend specific refresh actions before performance craters.

## Fatigue Signals

- **CTR decline** — 20%+ drop from peak over any 5-day window.
- **Frequency creep** — above 2.5 and rising.
- **CPA increase** — 25%+ from best CPA over any 5-day window.
- **CVR decline** — conversion rate trending down, impressions stable.
- **Spend shift** — platform moving spend away from this ad.

## Fatigue Score

- 🟢 **Healthy** — stable or improving. No action.
- 🟡 **Early Warning** — one signal detected. Monitor daily.
- 🔴 **Fatigued** — multiple signals. Refresh within 48 hours.
- ⚫ **Dead** — severe decline across all metrics. Pause immediately.

## Output Format

```
# Creative Fatigue Report — [Brand]
Period: [date range]
Ads analyzed: [count]

## Summary
[How many healthy, how many need attention, overall creative health.]

## Priority Action

| Priority | Ad | Status | Signal | Days Declining | Action |
|----------|-----|--------|--------|---------------|--------|
| 1 | [ad] | 🔴 | [signal] | [days] | [action] |

## Full Analysis

[Ad Name] — [🟢/🟡/🔴/⚫]
- Peak: [best metrics, when]
- Current: [current metrics]
- Signals: [which triggered]
- Runway: [estimated days remaining]
- Refresh recommendation: [specific — new hook type, new visual, new angle, or full replacement]
```

## Rules

- **Be specific about what to refresh** — "test a result-first hook instead of the current curiosity hook", not "new creative".
- **Show the data behind every assessment** — every score needs evidence.
- **Conservative runway estimates** — better to replace early than late.
- **Less than 7 days of data** = flag as preliminary; don't make strong calls.

If `$ARGUMENTS` doesn't include an Ad Account ID, ask before pulling data.
