
eCPM (effective cost per mille) is the ad revenue you earn for every 1,000 ad impressions. You get it by dividing total earnings by impressions and multiplying by 1,000, so $50 from 20,000 impressions works out to $2.50. It lets you compare ad sources, formats and countries on one scale.
Here's the catch. The metric only counts the impressions that actually served, so it can climb while your revenue falls. Publishers chase a higher number, raise floors or cut weak buyers, and then wonder why the month came in lower. This guide covers the formula, a worked example, where Google's reports show the metric, and how to read it next to fill. If you want a second pair of eyes on your numbers, our reporting and yield service explains how MH AdX reviews them.
What is eCPM? The meaning in plain words
eCPM meaning, in one line: it's what 1,000 of your ad impressions earned, whatever way the buyer paid. Google's AdMob help page on effective CPM calls it "an estimate of the revenue you receive for every thousand ad impressions."
The "effective" part matters. Some buyers pay per impression, some per click, some per install or action. The effective rate turns all of those into one per-thousand price so you can compare them side by side.
Advertisers use the same idea from the other side. For them it's their total cost divided by impressions, times 1,000, which tells them what a click or install campaign really cost per thousand views. On a publisher dashboard, though, the number always means your earnings.
The eCPM formula and how to calculate it
The formula is earnings divided by impressions, multiplied by 1,000. Google's AdMob reports glossary uses exactly that: estimated earnings divided by impressions, times 1,000.
effective CPM = (total earnings / total impressions) x 1,000
Example: $84.00 earned / 35,000 impressions = 0.0024
0.0024 x 1,000 = $2.40
Our free eCPM calculator does the sum for you. In a spreadsheet it's one cell: =B2/C2*1000, with earnings in column B and impressions in column C. The same layout works backwards too. Multiply the rate by impressions and divide by 1,000 to estimate earnings.
Watch out for estimated earnings
Most dashboards build this rate on estimated earnings, and those change. AdMob describes its earnings figure as "an estimate that is subject to change," and its glossary notes that for waterfall ad sources, the figure may not match the formula because of invalid traffic. So the number you saw mid-month can shift a little once revenue is finalised.
A worked example: when a higher rate means less money
A higher rate isn't always better, because it ignores the requests that went unfilled. The numbers below are made up to show the maths. They aren't benchmarks.
Say an app ad unit gets 50,000 ad requests a day. You then raise the price floor to push the rate up.
| Illustrative example | Requests | Impressions | Earnings | Effective CPM | Revenue per 1,000 requests |
|---|---|---|---|---|---|
| Before the floor change | 50,000 | 40,000 (80% fill) | $60.00 | $1.50 | $1.20 |
| After a higher floor | 50,000 | 25,000 (50% fill) | $45.00 | $1.80 | $0.90 |
The headline number went up 20%. Daily revenue fell by $15. That's the trap.
So when we review a publisher's setup, we never judge a change by this number alone. We look at requests and fill first, then revenue per 1,000 requests (or page RPM on a website), and only then use the effective rate to explain what changed.
Blend rates across sources by weighting, not averaging
Never take a simple average of rates from different sources. Add up the earnings and impressions first, then run the formula once.
Another made-up example: source A serves 30,000 impressions at $2.00 per thousand ($60), and source B serves 10,000 at $0.50 ($5). The simple average says $1.25. The true blended figure is $65 divided by 40,000, times 1,000, which is about $1.63. Source A served three times as many impressions, so it should count three times as much.
eCPM vs CPM vs RPM: which number to watch
CPM is the price a buyer agrees to pay per 1,000 impressions, eCPM is what you actually earned per 1,000 impressions, and RPM is earnings per 1,000 page views or impressions as Google's publisher tools report them.
| Metric | Whose number | Formula | Best for |
|---|---|---|---|
| CPM | Advertiser | Cost per 1,000 impressions on a CPM deal | Pricing a campaign or deal |
| eCPM | Publisher | (Earnings / impressions) x 1,000 | Comparing ad sources, formats, countries |
| Page RPM | Publisher | (Earnings / page views) x 1,000 | Judging layout changes on a website |
| Impression RPM | Publisher | (Earnings / ad impressions) x 1,000 | The same maths, under AdSense's name |
On eCPM vs CPM: a CPM is agreed before the impression, while the effective rate is worked out after it, from whatever the buyers paid. On eCPM vs RPM: impression RPM in AdSense uses the same formula, but page RPM divides by page views, so it also captures how many ads each visit shows. We cover the RPM side, and Google's revenue share, in our guide to AdSense CPM vs RPM and what moves them.
Where the metric shows up in AdMob and Ad Manager
Both Google platforms report the metric, but they use it in different ways. In AdMob it also decides the order of a mediation waterfall.
AdMob reports and mediation
AdMob reports show it next to requests, match rate, show rate and impressions. The AdMob reports glossary defines match rate as the share of ad requests that got a response from an ad source, and show rate as impressions divided by matched requests. Those two rates tell you how much of the price story is really about fill.
In a mediation waterfall, AdMob places third-party ad sources by their expected price per thousand impressions. Its page on optimizing waterfall ad sources says AdMob uses each source's historical data to update its price, refreshes that optimized value twice a day and optimizes the waterfall per country. You can type in a manual value as a starting point while AdMob gathers data. The glossary's "observed eCPM" is AdMob's estimate for optimized third-party networks, built from historical revenue.
A typed-in value that's far from reality pushes a weak source too high or a strong one too low. Google's page also suggests bidding, where sources compete in a real-time auction for each request instead of sitting in a fixed order.
Google Ad Manager reports
Google Ad Manager reports effective CPM by demand channel. Its report metrics list includes Total average eCPM, averaged across the Ad Manager server, AdSense, Ad Exchange and third-party mediation networks, and marks it as Ad Manager 360 only. The same list gives Total fill rate as total impressions divided by total ad requests, so you can put price and fill in one report.
Run the report by country, device and ad unit. One blended number across the whole network hides most of what you need to see. Our guide on how to get Google AdX access explains how Ad Exchange demand fits into an Ad Manager setup.
How ad format changes the rate
Different ad formats sell at different prices, so compare effective CPM within a format, never across formats. A full-screen interstitial or a rewarded video gets the whole screen and a near-certain view. Buyers pay more per impression for that than for a small banner at the bottom of the screen.
The catch is volume. A banner can serve many times per session, while AdMob's guidance places interstitials at natural transition points, so you show far fewer of them. A format with a high rate on few impressions can earn less in total than a cheap one on many.
| Format | Why buyers price it the way they do | Judge it by |
|---|---|---|
| Banner | Small, shares the screen with content, shown often | Revenue per 1,000 requests and viewability |
| Native | Matches the look of your content and feed | Page RPM or revenue per session |
| Interstitial | Fills the screen at a break in the app or site | Revenue per user and retention |
| Rewarded | The user chooses to watch in return for a reward | Revenue per daily active user and opt-in rate |
So when someone quotes a "good" number, ask which format it came from. Our guide to interstitial ads CPM covers the full-screen side, and our list of banner ad sizes shows which sizes draw the most bids.
What makes effective CPM go up or down
Your rate moves when buyer demand, the audience or the quality of the impression changes. Some of that's yours to fix and some isn't.
- Country and audience. Advertisers pay different prices in different markets, so a shift in traffic mix moves your blended rate even if nothing on the site changed.
- Season. Ad budgets rise and fall through the year. Compare the same weeks year on year before you panic.
- Ad format. Rewarded and full-screen formats are priced differently from banners. Compare rates within a format, not across them.
- Viewability. Ad Manager reports Active View viewable impressions as a share of measurable ones. Ads that are seen are worth more to buyers who pay for viewable impressions.
- Floors. A floor (a minimum price) lifts the average by dropping cheaper bids, at the cost of fill. The worked example above shows how that can cut revenue.
- Number of buyers. More demand sources competing for each impression usually means higher clearing prices. That's the case for bidding and header bidding.
- Page speed. Slow pages load ads late, so some never render in view. Those impressions are worth less to buyers who pay for viewable ones.
- Consent and traffic quality. Fewer personalised ads or invalid traffic deductions both pull the finalised rate down.
Our advice is boring but it works. Change one thing at a time, wait at least a couple of weeks, and judge it on revenue per request or page RPM. Our header bidding service covers adding buyers, and for apps our app monetization service covers mediation setup.
Frequently asked questions
What is a good eCPM?
There isn't one honest figure. The rate depends on country, format, app or site category, season and the buyers in your stack, so any published average is one sample. Compare your own sources, countries and months with each other instead.
Is eCPM the same as RPM?
Impression RPM and effective CPM use the same formula: earnings divided by impressions, times 1,000. Page RPM is different, because it divides by page views. That makes page RPM the better number for judging how many ads a page carries. We show how both rates turn into a monthly total in what a site earns at 1 million impressions a month.
What is an eCPM floor?
An eCPM floor is the lowest price you'll accept for an impression. It stops cheap bids from winning, which raises your average price, but it also leaves some requests unfilled. Set floors per country and format, then check revenue per request after the change.
Why did my eCPM drop?
Check the date first, because budgets swing by season. Then compare the rate by country, format and ad source to find which slice moved. A sudden fall in one source usually points to that partner, while a fall everywhere points to seasonality, traffic mix or a site change.
Does eCPM include unfilled requests?
No. The formula divides by impressions, so unfilled requests don't count. That's why you should read it next to fill rate or match rate, or track revenue per 1,000 requests as well.
Next step: check price and fill together
The metric tells you the price your impressions sold for. It doesn't tell you how many you sold. Put the rate, fill and revenue per request in one report, break it down by country and source, and judge every change on total revenue. When you'd like a second look at price and fill on your own site, contact MH AdX.


