Back to Blog
CPM vs. eCPM: What Publishers Should Actually Track
The Aditude Team




CPM (cost per mille) is the price an advertiser pays for 1,000 ad impressions. eCPM (effective CPM) is what a publisher actually earned per 1,000 impressions across all demand: total ad revenue ÷ impressions × 1,000. CPM is a bid. eCPM is a result. For site-level decisions, track page RPM, which also accounts for ad slots that never filled.
If you run ad revenue for a publisher, you see all three numbers every day. They are easy to mix up, and treating them as interchangeable leads to bad calls on floors, layout and demand partners. This guide defines each one, shows the math, and explains which number belongs on your weekly dashboard.
What does CPM mean in advertising?
CPM stands for cost per mille, Latin for "per thousand." It is the price a buyer agrees to pay for 1,000 impressions of an ad. A campaign bought at a $4.00 CPM costs the advertiser $4.00 for every 1,000 times the ad is served.
CPM is set from the buy side. A direct-sold campaign has a negotiated CPM. In programmatic auctions, every bid is effectively a CPM, and the clearing price changes impression by impression. That means a single page view can carry several different CPMs at once, one for each ad slot on the page.
This is why CPM alone tells a publisher very little about how the business is doing. It describes one transaction, not the outcome across all of your inventory.
What is eCPM and how do you calculate it?
eCPM, or effective cost per mille, is the revenue a publisher actually earned per 1,000 impressions, blended across every buyer, deal and auction. It turns many different prices into one comparable number.
The formula:
\text{eCPM} = \frac{\text{Total ad revenue}}{\text{Total impressions}} \times 1{,}000
A worked example: a site earns $450 from 180,000 paid impressions in a day.
$450 ÷ 180,000 × 1,000 = $2.50 eCPM
You can calculate eCPM at any level: the whole site, one ad unit, one demand partner, one country or one device type. Comparing eCPM across those cuts is how ad ops teams spot which slots and partners pull their weight.
One detail matters a lot. Most platforms calculate eCPM on paid impressions only. Requests that went unfilled are not in the denominator. Keep that in mind for the next section.
CPM vs. eCPM vs. RPM: which number should a publisher track?
Track eCPM to compare ad units and partners. Track page RPM or session RPM to judge the business. RPM (revenue per mille) divides revenue by page views or sessions, not by impressions, so it captures fill rate, ad density and layout in a single number.
Metric | Formula | Who sets it | Counts unfilled slots? | Best used for |
CPM | Price per 1,000 impressions in a deal or bid | Buyer, or negotiated | No | Pricing a campaign or deal |
eCPM | Revenue ÷ paid impressions × 1,000 | Result of all demand | No | Comparing ad units, partners, geos |
Page RPM | Revenue ÷ page views × 1,000 | Result of demand + layout + fill | Yes | Judging overall site monetization |
Session RPM | Revenue ÷ sessions × 1,000 | Result of demand + layout + engagement | Yes | Weighing ad load against reader engagement |
Page RPM is the number to put in front of leadership. It answers the question they care about: how much money does each visit earn? It also resists the most common trap with eCPM, which the next section explains.
Why can eCPM rise while revenue falls?
Because eCPM ignores the impressions you did not sell. Raise your price floors and weak bids drop out. The impressions that still clear are worth more, so eCPM goes up. But fewer impressions clear, and total revenue can go down.
Scenario | Paid impressions | eCPM | Revenue |
Before floor increase | 100,000 | $2.00 | $200 |
After floor increase | 75,000 | $2.40 | $180 |
eCPM rose 20%. Revenue fell 10%. A team that reports eCPM alone would call this a win.
The same trap shows up when you remove low-performing ad units. Average eCPM climbs because the weakest slots are gone, but the page earns less. Always read eCPM next to fill rate and page RPM before you call a change a success.
What is a good eCPM?
There is no single good eCPM. It depends on who your audience is and how your inventory is packaged. The main drivers:
Geography. US, UK, Canadian and Australian traffic usually earns well above the global average.
Device. Desktop and mobile web often price differently, and in-app has its own market.
Format. Video and high-impact formats generally command higher prices than standard display.
Viewability. Buyers pay more for impressions that are likely to be seen.
Seasonality. Q4 budgets push prices up, and January usually resets them lower.
Audience data. Logged-in or well-described audiences attract more bidders.
The useful benchmark is your own history. Compare this week's eCPM by geo, device and ad unit with the same period last year, and investigate any cut that moves sharply against the trend.
How do you raise eCPM without losing fill?
The goal is more competition for each impression, not fewer impressions. These levers move eCPM and revenue in the same direction:
Add real competition. Header bidding through Prebid lets multiple demand partners bid on every impression at the same time. More bidders usually means higher clearing prices.
Improve viewability. Place units where readers actually look, and lazy-load below-the-fold slots. See our guide to banner blindness and layout fixes.
Set floors by context, not one flat number. A single floor for all traffic leaves money on the table in strong segments and kills fill in weak ones. Dynamic Flooring for AdX adjusts floors by segment to protect both price and fill.
Cut slots that hurt the page. A low-value unit that slows the page or crowds content can drag down RPM for every other slot.
Measure in one place. You cannot tune what you cannot see. Insights shows eCPM, fill and RPM by page, geo, device and partner side by side.
Frequently asked questions
How do you calculate eCPM?
Divide total ad revenue by total paid impressions, then multiply by 1,000. For example, $450 in revenue on 180,000 impressions is a $2.50 eCPM.
Is eCPM the same as RPM?
No. eCPM divides revenue by impressions. RPM divides revenue by page views or sessions. RPM reflects fill rate and how many ads each page carries, so it is the better measure of overall monetization.
Why is my eCPM high but my revenue low?
Usually because fill rate dropped. High floors or removed demand can raise the average price of the impressions you sell while cutting how many you sell. Check fill rate and page RPM alongside eCPM.
Does eCPM include unfilled impressions?
In most reporting, no. eCPM is typically calculated on paid impressions only. Unfilled requests show up in fill rate and in RPM, not in eCPM.
CPM (cost per mille) is the price an advertiser pays for 1,000 ad impressions. eCPM (effective CPM) is what a publisher actually earned per 1,000 impressions across all demand: total ad revenue ÷ impressions × 1,000. CPM is a bid. eCPM is a result. For site-level decisions, track page RPM, which also accounts for ad slots that never filled.
If you run ad revenue for a publisher, you see all three numbers every day. They are easy to mix up, and treating them as interchangeable leads to bad calls on floors, layout and demand partners. This guide defines each one, shows the math, and explains which number belongs on your weekly dashboard.
What does CPM mean in advertising?
CPM stands for cost per mille, Latin for "per thousand." It is the price a buyer agrees to pay for 1,000 impressions of an ad. A campaign bought at a $4.00 CPM costs the advertiser $4.00 for every 1,000 times the ad is served.
CPM is set from the buy side. A direct-sold campaign has a negotiated CPM. In programmatic auctions, every bid is effectively a CPM, and the clearing price changes impression by impression. That means a single page view can carry several different CPMs at once, one for each ad slot on the page.
This is why CPM alone tells a publisher very little about how the business is doing. It describes one transaction, not the outcome across all of your inventory.
What is eCPM and how do you calculate it?
eCPM, or effective cost per mille, is the revenue a publisher actually earned per 1,000 impressions, blended across every buyer, deal and auction. It turns many different prices into one comparable number.
The formula:
\text{eCPM} = \frac{\text{Total ad revenue}}{\text{Total impressions}} \times 1{,}000
A worked example: a site earns $450 from 180,000 paid impressions in a day.
$450 ÷ 180,000 × 1,000 = $2.50 eCPM
You can calculate eCPM at any level: the whole site, one ad unit, one demand partner, one country or one device type. Comparing eCPM across those cuts is how ad ops teams spot which slots and partners pull their weight.
One detail matters a lot. Most platforms calculate eCPM on paid impressions only. Requests that went unfilled are not in the denominator. Keep that in mind for the next section.
CPM vs. eCPM vs. RPM: which number should a publisher track?
Track eCPM to compare ad units and partners. Track page RPM or session RPM to judge the business. RPM (revenue per mille) divides revenue by page views or sessions, not by impressions, so it captures fill rate, ad density and layout in a single number.
Metric | Formula | Who sets it | Counts unfilled slots? | Best used for |
CPM | Price per 1,000 impressions in a deal or bid | Buyer, or negotiated | No | Pricing a campaign or deal |
eCPM | Revenue ÷ paid impressions × 1,000 | Result of all demand | No | Comparing ad units, partners, geos |
Page RPM | Revenue ÷ page views × 1,000 | Result of demand + layout + fill | Yes | Judging overall site monetization |
Session RPM | Revenue ÷ sessions × 1,000 | Result of demand + layout + engagement | Yes | Weighing ad load against reader engagement |
Page RPM is the number to put in front of leadership. It answers the question they care about: how much money does each visit earn? It also resists the most common trap with eCPM, which the next section explains.
Why can eCPM rise while revenue falls?
Because eCPM ignores the impressions you did not sell. Raise your price floors and weak bids drop out. The impressions that still clear are worth more, so eCPM goes up. But fewer impressions clear, and total revenue can go down.
Scenario | Paid impressions | eCPM | Revenue |
Before floor increase | 100,000 | $2.00 | $200 |
After floor increase | 75,000 | $2.40 | $180 |
eCPM rose 20%. Revenue fell 10%. A team that reports eCPM alone would call this a win.
The same trap shows up when you remove low-performing ad units. Average eCPM climbs because the weakest slots are gone, but the page earns less. Always read eCPM next to fill rate and page RPM before you call a change a success.
What is a good eCPM?
There is no single good eCPM. It depends on who your audience is and how your inventory is packaged. The main drivers:
Geography. US, UK, Canadian and Australian traffic usually earns well above the global average.
Device. Desktop and mobile web often price differently, and in-app has its own market.
Format. Video and high-impact formats generally command higher prices than standard display.
Viewability. Buyers pay more for impressions that are likely to be seen.
Seasonality. Q4 budgets push prices up, and January usually resets them lower.
Audience data. Logged-in or well-described audiences attract more bidders.
The useful benchmark is your own history. Compare this week's eCPM by geo, device and ad unit with the same period last year, and investigate any cut that moves sharply against the trend.
How do you raise eCPM without losing fill?
The goal is more competition for each impression, not fewer impressions. These levers move eCPM and revenue in the same direction:
Add real competition. Header bidding through Prebid lets multiple demand partners bid on every impression at the same time. More bidders usually means higher clearing prices.
Improve viewability. Place units where readers actually look, and lazy-load below-the-fold slots. See our guide to banner blindness and layout fixes.
Set floors by context, not one flat number. A single floor for all traffic leaves money on the table in strong segments and kills fill in weak ones. Dynamic Flooring for AdX adjusts floors by segment to protect both price and fill.
Cut slots that hurt the page. A low-value unit that slows the page or crowds content can drag down RPM for every other slot.
Measure in one place. You cannot tune what you cannot see. Insights shows eCPM, fill and RPM by page, geo, device and partner side by side.
Frequently asked questions
How do you calculate eCPM?
Divide total ad revenue by total paid impressions, then multiply by 1,000. For example, $450 in revenue on 180,000 impressions is a $2.50 eCPM.
Is eCPM the same as RPM?
No. eCPM divides revenue by impressions. RPM divides revenue by page views or sessions. RPM reflects fill rate and how many ads each page carries, so it is the better measure of overall monetization.
Why is my eCPM high but my revenue low?
Usually because fill rate dropped. High floors or removed demand can raise the average price of the impressions you sell while cutting how many you sell. Check fill rate and page RPM alongside eCPM.
Does eCPM include unfilled impressions?
In most reporting, no. eCPM is typically calculated on paid impressions only. Unfilled requests show up in fill rate and in RPM, not in eCPM.

