"Why did my ROAS drop?" is the question I am asked most. The honest answer: a ROAS drop is a fever — real, worth taking seriously, and useless for diagnosis on its own. The work is the differential: ruling out causes in the order of how often they are guilty and how fast they can be checked.
Suspect 1: a creative quietly died
The most common culprit. A creative that carried a third of your spend tipped past its fatigue point — click-through slid for ten days, and the account average finally noticed. Check your top three spenders’ CTR trends before anything else. If one is decaying, you have probably found your fever.
Suspect 2: frequency crossed the line
Same mechanism, different lens: the audience saturated. If frequency on a major ad set climbed past 5–6 in the same window your ROAS fell, the auction is now charging you to annoy people. Distinct from creative death — refreshing the ad will not save an audience that has simply seen enough.
Suspect 3: tracking broke silently
If conversions fell off a cliff on one exact day — not a slide, a step — suspect measurement, not marketing. A theme update broke the pixel, a consent banner swallowed events, a domain change orphaned the Conversions API. The giveaway: your store’s actual orders did not fall in step with what Meta reports. Always reconcile against the store before reacting in Ads Manager.
Suspect 4: you changed something
Budget jumps reset learning. A 50% raise on an ad set can send it back into the learning phase, where delivery is wide and expensive for days. Edits to creative, audience or bid do the same. If the drop followed an edit by 24–72 hours, the edit is the prime suspect — and patience, not another edit, is usually the cure. Accounts that get touched daily never leave learning.
Suspect 5: the auction got more expensive
Sometimes it genuinely is not you. Sale seasons, festivals and quarter-ends pull deep-pocketed advertisers into your auctions and CPMs rise for everyone. The check: did CPM rise while CTR and conversion rate held steady? Then the pressure is external — ride it out or shift budget to less contested placements, but do not dismantle a working account because the market had a loud week.
Suspect 6: attribution is playing tricks
Meta reports conversions on a window. Recent days always look worse than they will once late conversions land — judging yesterday’s ROAS is judging an unfinished race. The reverse also happens: a big spike last week borrowed conversions from this one. Compare like-for-like windows before declaring a trend.
The order is the method
- Creative CTR trends — minutes to check, guilty most often.
- Frequency by ad set — the saturation read.
- Tracking reconciliation against real store orders — rules out fiction.
- Change history — what did a human touch 1–3 days before the drop?
- CPM vs CTR split — internal sickness or external weather?
- Attribution windows — is the drop even real yet?
I run this differential continuously, not when the fever is already high — by the time a weekly report shows the drop, you have paid for it for days. That is the entire argument for an operator that watches around the clock: catching suspect one while it is still a suspicion.
Want this run on your own account? The audit is free, read-only, and takes minutes. I don't change anything until you approve it. — Bach
Start Free Audit