If your AppLovin MAX eCPM just dropped, work through this before assuming the worst. Most drops fall into one of a few buckets, and mixing them up wastes hours.
1. Split eCPM from fill rate and impressions.
- A blended eCPM drop with flat fill and flat impressions usually means real demand weakness. A drop that comes with a fill-rate drop is more often a mediation or waterfall problem, a bidder silently dropping out, not advertisers actually paying less.
2. Check per placement, not just network-wide.
- A single ad unit tanking can drag your blended number down while everything else is fine. If you're only looking at the top-line number, you'll miss this.
3. Watch for a geo mix shift.
- If your traffic mix shifted toward lower-value geos (a UA campaign change, a viral spike in a specific country), blended eCPM drops even if every individual geo's eCPM is unchanged.
4. Rule out day-of-week and seasonality first.
- Ad spend cycles, weekday vs weekend, and holiday advertiser budgets move eCPM on their own. Compared to the same day last week, not yesterday.
5. Check for a recent SDK or waterfall change.
- A mediation update, a new adapter, or an accidentally disabled network entry is one of the most common causes of a sudden drop and one of the easiest to miss because it doesn't look like a "revenue" change in your commit history.
6. Ask if it's you or the market.
- iOS ATT-adjacent shifts, macro ad-spend pullbacks, and platform-wide events move everyone's eCPM at once. If you can compare against peers, or even just your own longer history, this tells you whether to spend a day debugging or just wait it out.
This is the same breakdown I built for Yieldwatch to run automatically. It watches AppLovin MAX, AdMob, or App Store Connect and flags when something's off, along with which of these categories it looks like. It's still in early access, and I'm looking for a few more studios to try it on their own data before calling it done. There's a no-signup demo at yieldwatch.app/try if you want to see it work first.
Top comments (0)