1. Your Ads Manager export
Ads Manager → view: Ads → Columns: add Amount spent, Impressions, Reach, Frequency, Link clicks, Results (or Purchases) and purchase value → Reports → Export table data → CSV. Needs Ad name, Amount spent, Impressions and Results, Purchases or Leads; Campaign name, Ad set name, Reach, Frequency, Link clicks, purchase value or Purchase ROAS and a Day breakdown are used when present. Column names are matched loosely; thousands separators, a currency in the header, month-first or day-first dates and comma, tab or semicolon files (UTF-8 or UTF-16) are read.
Choose a file or paste export text, then click Analyze.
Result
Where the money went
| Bucket | Spend | Share of spend |
|---|
Creative-fatigue flags
Frequency at or above the threshold and at least one weak signal against the account median. A pattern in the file, not proof of wear: audience size, seasonality and budget changes move the same numbers.
| Ad | Campaign / ad set | Spend | Frequency | CTR | Cost / result | Why flagged |
|---|
Spend with no results
| Ad | Campaign / ad set | Spend | Link clicks | Evidence |
|---|
Scale candidates
| Ad | Campaign / ad set | Spend | Results | Cost / result | ROAS | Frequency |
|---|
Every ad
| Ad | Spend | Impr. | Freq. | CTR | Results | Cost / result | ROAS | Flags |
|---|
By campaign
| Campaign | Ads | Spend | Results | Cost / result | ROAS | No-result spend |
|---|
The model, and what it leaves out
- Per ad: rows are combined by campaign, ad set and ad name. CTR is link clicks over impressions; cost per result is spend over results; ROAS is purchase value over spend. Reach cannot be added across days, so frequency is the impressions-weighted average of the reported values.
- Reconciles. Spend on ads with results, plus the proven, overspent and watch tiers, adds up to your total spend, and the three tiers add up to the no-result figure.
- Fatigue flag: at least the frequency threshold and enough impressions, plus one of: CTR under 80% of the account median, cost per result over 125% of the median, spend over one result's cost with no results, or (daily exports, six days or more) CTR in the last third of the days at least 25% below the first third. Medians are taken over ads with enough impressions.
- Proven no-result spend means the fewest link clicks n with (1 − rate)n under 0.05 at the account's click-to-result rate. Overspent is more than one result's cost with none; watch is everything else.
- Scale candidate: at least the minimum results, cost per result at least 20% under the median (or ROAS at least 25% over with cost at or under the median), not flagged and frequency under the threshold. It describes the export period only.
- Not modelled: attribution windows and delayed conversions, audience overlap and size, learning phase, seasonality, budget and bid changes, view-through results, creative content, and what more spend would do. Results means whatever Meta counted for the chosen objective; mixed objectives make cost per result incomparable across ads.
Common questions
How do I find creative fatigue in my Meta Ads export?
Export the ad-level report from Ads Manager (set the view to Ads, add Amount spent, Impressions, Reach, Frequency, Link clicks, Results or Purchases and purchase value, then Reports, Export table data, CSV) and drop it here. The tool flags ads whose frequency is at or above your threshold (3 by default) and that also look weak against the account's own median: a click-through rate under 80% of the median, a cost per result over 125% of the median, spend over one result's cost with no results, or a daily CTR that fell by a quarter across the days in a daily export. Nothing is uploaded; the file is read in your browser.
What does the tool count as spend with no results?
An ad with zero results in the export. It is proven when it had enough link clicks that, at the account's own click-to-result rate, seeing nothing would happen by chance less than 5% of the time; overspent when it spent more than the target (or average) cost per result; and watch otherwise, because a handful of clicks proves nothing. The three tiers add up to the headline figure.
How are scale candidates chosen?
Ads with at least 5 results, enough impressions, frequency under the threshold and a cost per result at least 20% below the account median (or a return at least 25% above the median with a cost at or below it). That describes what happened in the file. It does not predict what more budget would do.
Which columns and file formats does it read?
Ad name and Amount spent are required, plus Impressions and one of Results, Purchases or Leads. Campaign name, Ad set name, Reach, Frequency, Link clicks, CTR, purchase conversion value or Purchase ROAS and a Day column are used when present. Column names are matched loosely, thousands separators and a currency in the header are handled, dates may be month-first, day-first or ISO, and comma, tab and semicolon files, including UTF-8 with a byte order mark and UTF-16, are read. Rows that cannot be read are listed with a line number.
Is this advertising or financial advice?
No. It applies arithmetic to the file you provide and does not replace your own judgement or a qualified adviser. It is independent of Meta and is not affiliated with or endorsed by it.