← All articles日本語で読む →

eCPM dropped: isolate it by country, OS, and ad unit (any network)

June 30, 2026 · 7 min read · Mediation One team

eCPM is a blended average, and averages lie. A network-agnostic method to separate a real price drop from a mere mix shift by holding country, OS, and ad unit fixed — works across AdMob, AppLovin MAX, and LevelPlay.

eCPM is a blended average, and averages lie. When your eCPM drops, the number you are staring at is the weighted mean across every country, OS, ad unit, and format you serve. The cause is never "eCPM went down" — it is one slice of that mix moving. This is a network-agnostic method to isolate which slice, whether you run AdMob, AppLovin MAX, LevelPlay, or several at once.

The core idea: a blended eCPM can fall for two completely different reasons, and you must separate them before doing anything.

You distinguish them by holding one dimension fixed and re-checking. Walk these three dimensions in order.

Country: the mix-vs-price test

Break eCPM down by country, yesterday vs your 14-day baseline, alongside each country's impression share. The most common benign cause is a UA campaign flooding you with low-eCPM installs (Brazil, India, Indonesia): tier-1 share shrinks, blend falls, but no market got worse. The test: look at eCPM within a single high-value country like the US. If US-only eCPM is flat, your drop is mix — a UA-side story, not an ad-stack problem. If US-only eCPM itself fell, the price genuinely moved and you continue down.

OS: the dimension everyone forgets

Split eCPM by iOS vs Android. These two monetize very differently — iOS typically commands higher eCPMs, so a shift in your iOS/Android impression ratio moves the blend on its own. An Android-heavy UA push, or an iOS release bug that suppressed iOS impressions, both show up here. OS is also where signal problems surface: a drop in ATT consent or a broken SKAdNetwork/GAID setup degrades targeting and prices on one platform specifically. If the fall is almost entirely on one OS, your next steps live in that platform's attribution/consent setup, not in floors.

Ad unit (and format): where real price drops concentrate

Finally, break eCPM down by ad unit, and note each unit's format (rewarded, interstitial, banner, native). Genuine price drops rarely hit every unit evenly. If one rewarded unit's eCPM cratered while banners are flat, look at that unit specifically: a floor changed too high (it stopped clearing demand), a bidder that priced that format dropped out, or — a format-mix trap — rewarded impressions collapsed and the blend now leans on cheap banners. Rewarded is usually your top-eCPM format, so losing its share drags the average hard even when every unit's own eCPM is unchanged. That is a mix problem wearing a price problem's clothes.

Putting it together

Run the three dimensions and the pattern names itself. Blend fell but every fixed slice is flat → mix shift (country/OS/format), usually nothing to fix. One country or OS fell within itself → demand or signal/attribution issue on that segment. One unit fell within itself → a floor or bidder problem on that unit. The expensive error is reacting to the blended number directly — lowering floors everywhere, or emailing a network — when the cause was simply that your traffic mix changed. Always ask "price or mix?" first; the dimensions answer it.

Holding each dimension fixed and re-checking by hand, across every app and segment, is slow and easy to half-do. Mediation One does exactly this decomposition for you: feed it the CSV your network exports and it separates price moves from mix moves and points to the country, OS, or unit responsible. The free audit is one CSV upload — no SDK, no signup, nothing stored.

Try the free 60-second audit

Upload a 14-day AdMob, MAX or LevelPlay CSV and we'll email you the diagnosis. No SDK, no signup.

Run my free audit