TL;DR — CPM is what an advertiser pays per 1,000 impressions (input). eCPM is what a publisher actually earns per 1,000 impressions across all demand (output). RPM is page revenue per 1,000 pageviews, accounting for all ad units on the page. RPM is the most actionable publisher metric; eCPM is the best per-unit comparison.

Every ad revenue report you open is filled with three-letter acronyms: CPM, eCPM, RPM. They all involve dividing money by thousands of something, which makes them look interchangeable. They are not. Each metric answers a fundamentally different question, and confusing them leads to bad optimization decisions that cost publishers real money.

This guide breaks down what each metric actually measures, who it is designed for, when to use it, and most importantly, which one you should be optimizing for as a publisher in 2026.

Quick Definitions

Before we dive deep, here are the one-line definitions:

The critical distinction: CPM and eCPM are per-impression metrics. RPM is a per-pageview metric. A single pageview can generate multiple impressions (one per ad slot), which is why RPM is always higher than the eCPM of any individual ad unit.

CPM Explained: The Advertiser's Metric

CPM stands for Cost Per Mille, where "mille" is Latin for one thousand. It is the standard pricing model in display advertising and represents what an advertiser is willing to pay for 1,000 impressions of their ad.

The CPM Formula

CPM = (Total Ad Spend / Total Impressions) x 1,000

Example: An advertiser spends $5,000 on a campaign that delivers 2,000,000 impressions. Their CPM is ($5,000 / 2,000,000) x 1,000 = $2.50.

How Advertisers Use CPM

Advertisers use CPM to budget campaigns and compare the cost of reaching audiences across different channels. A brand awareness campaign might target a $3.00 CPM on display, knowing that video pre-roll costs $15.00 CPM and social media costs $8.00 CPM. CPM helps them allocate budget where each impression is cheapest relative to the audience quality.

In programmatic advertising, CPM is what demand-side platforms (DSPs) use to set bid prices. When Google DV360, The Trade Desk, or Amazon DSP bids on your inventory through header bidding or open exchange, they are submitting a CPM bid. The winning bid determines the CPM you receive for that impression.

Why Publishers Should Not Obsess Over CPM

Here is the problem with focusing on CPM as a publisher: it only tells you what one ad slot earned per impression. It tells you nothing about how many impressions you are generating per pageview, what your fill rate is, or how much total revenue each visitor generates. A site with a $10.00 CPM on one ad unit and 40% fill rate earns less per pageview than a site with a $3.00 CPM across five ad units at 95% fill rate.

CPM is an input metric. It is useful for evaluating individual demand partners, but it should never be your primary optimization target.

eCPM Explained: The Publisher's Demand Comparison Tool

eCPM stands for Effective Cost Per Mille. Unlike CPM, which is set by the advertiser before a campaign runs, eCPM is calculated by the publisher after revenue is earned. It normalizes revenue across different pricing models (CPM, CPC, CPA) into a single comparable rate.

The eCPM Formula

eCPM = (Total Revenue / Total Impressions) x 1,000

Example: Your 300x250 sidebar ad unit earned $420 from 180,000 impressions last month. The eCPM is ($420 / 180,000) x 1,000 = $2.33.

Why eCPM Matters

The power of eCPM is normalization. Suppose you are running three demand sources on the same ad slot:

Without eCPM, comparing these three is impossible because they use different pricing models and delivered different volumes. With eCPM, the comparison is immediate: Index Exchange delivers the highest effective rate at $2.92, while AdSense and the direct deal are tied at $2.00.

eCPM by Ad Unit

Smart publishers calculate eCPM per ad unit to identify underperformers. A typical breakdown might look like this:

This breakdown tells you that the bottom banner is dragging down your averages and may be worth removing or replacing with a lazy-loaded unit that only renders when the user actually scrolls there.

The Limitation of eCPM

eCPM still measures individual ad units or demand sources in isolation. It does not tell you how the full page is performing as a revenue-generating unit. For that, you need RPM.

RPM: The Metric That Actually Matters for Publishers

RPM stands for Revenue Per Mille and measures total revenue per 1,000 pageviews. This is the single most important metric for publishers because it captures the complete monetization picture: every ad unit, every demand source, every impression, every refresh, and every unfilled request.

The RPM Formula

Page RPM = (Total Page Revenue / Total Pageviews) x 1,000

Example: Your site earned $8,500 in total ad revenue from 620,000 pageviews last month. Your page RPM is ($8,500 / 620,000) x 1,000 = $13.71. This means every 1,000 pageviews generates $13.71 in revenue.

Page RPM vs Session RPM

There are two flavors of RPM that publishers should track:

Page RPM measures revenue per 1,000 individual pageviews. This is useful for comparing page templates (article pages vs. homepage vs. category pages) and identifying which content types monetize best.

Session RPM measures revenue per 1,000 user sessions. A session typically includes multiple pageviews, so session RPM is always higher than page RPM. Session RPM = Page RPM x Average Pages Per Session. If your page RPM is $13.71 and users view an average of 2.4 pages per session, your session RPM is $32.90.

Session RPM is the better metric for evaluating the overall value of your traffic because it accounts for user engagement. A site with lower page RPM but higher pages-per-session can generate more revenue per visitor than a site with high page RPM but single-page sessions.

Why RPM Is King

RPM is the only metric that answers the question every publisher actually cares about: "How much money does my traffic generate?" Consider these two scenarios:

Site A: One ad unit with $8.00 CPM, 90% fill rate. Page RPM = $7.20.

Site B: Four ad units with $2.50 average CPM, 85% fill rate, plus a sticky footer with 45-second refresh. Page RPM = $14.80.

Site B earns more than double per pageview despite having CPMs that are less than a third of Site A's. If you were optimizing for CPM, you would think Site A is winning. RPM reveals the truth.

Side-by-Side Comparison

CPM eCPM RPM
Full name Cost Per Mille Effective Cost Per Mille Revenue Per Mille
Formula (Ad Spend / Impressions) x 1,000 (Revenue / Impressions) x 1,000 (Revenue / Pageviews) x 1,000
Measured per 1,000 impressions 1,000 impressions 1,000 pageviews
Set by Advertiser (before campaign) Publisher (calculated after) Publisher (calculated after)
Primary user Advertisers, DSPs Publishers, ad ops Publishers, site owners
Accounts for fill rate No No Yes
Accounts for ad density No No Yes
Accounts for ad refresh No Partially Yes
Best used for Evaluating advertiser bids Comparing demand sources Measuring total monetization

Real-World Scenario: Same Website, Three Different Stories

Let us walk through a concrete example to see how these three metrics paint different pictures of the same site's performance.

The setup: A technology blog with 400,000 monthly pageviews running four ad units per page. Here is what the data looks like for March 2026:

Ad Unit Performance

What CPM Says

The average CPM across winning bids was $3.40. If you report only this number to stakeholders, they might compare it to industry benchmarks ($2.00-$5.00 for tech content) and conclude "we are in the middle of the range, nothing to optimize." That would be a mistake.

What eCPM Says

Breaking down eCPM by unit reveals that the sticky footer ($4.50) significantly outperforms the other placements. It also shows that the sidebar ($2.50) has the same eCPM as the in-content unit but a much lower fill rate (80% vs. 90%), suggesting the sidebar inventory is less attractive to bidders, possibly due to lower viewability. An ad ops team would use this to investigate the sidebar placement, perhaps testing different sizes or adding lazy loading to improve viewability scores.

What RPM Says

Total revenue: $1,140 + $900 + $800 + $2,340 = $5,180. Page RPM: ($5,180 / 400,000) x 1,000 = $12.95.

Now the picture is complete. The site earns $12.95 per 1,000 pageviews. If the publisher adds a fifth ad unit or improves the sidebar fill rate from 80% to 92%, they can model exactly how much additional revenue that change will produce. If the sidebar fill rate improved to 92%, it would generate an additional 48,000 impressions at $2.50 eCPM, adding $120 per month and pushing RPM to $13.25.

RPM is the metric that lets you model, forecast, and make decisions. CPM and eCPM are diagnostic tools that feed into that RPM calculation.

Which Metric Should You Optimize For?

The priority order for publishers is clear: RPM > eCPM > CPM. Here is why, and what each level of optimization looks like.

Optimize RPM First

RPM optimization means maximizing total revenue per pageview. This involves decisions about:

RPM optimization is holistic. It considers the interaction between all ad units and the user experience. A change that increases one unit's eCPM by $1.00 but decreases another's by $1.50 is a net negative that only RPM would catch.

Then Optimize eCPM

Once your ad layout and format strategy are set, eCPM optimization focuses on extracting more value from each impression. This involves:

Use CPM as a Diagnostic

CPM is useful for monitoring the demand landscape, not for optimization decisions. Track CPM trends to understand:

But never sacrifice RPM to chase higher CPMs. Removing a low-CPM ad unit to increase your "average CPM" is a classic mistake that reduces total revenue.

How to Improve Each Metric

Improving RPM

  1. Add strategic ad placements: Most content sites are under-monetized. Test adding a sticky footer bar, a second in-content unit, or a sidebar sticky. Each new unit should add incremental RPM without meaningfully increasing bounce rate.
  2. Implement ad refresh: Viewability-gated refresh on sticky units can increase impressions by 2-3x without adding any visual clutter. A sticky footer that refreshes every 45 seconds during a 3-minute average session generates 3-4 impressions from one slot.
  3. Improve pages per session: Internal linking, related content widgets, and better site navigation encourage users to view more pages. More pageviews per session means more ad impressions per visit, increasing session RPM.
  4. Optimize for high-value content: Not all pageviews are equal. A pageview on a "best credit cards" article might generate $40+ RPM, while a viral meme page generates $2 RPM. Investing in content that attracts high-CPM advertisers lifts your overall RPM.
  5. Fix fill rate gaps: Every unfilled ad request is lost revenue. If your fill rate is below 90%, add backup demand through a mediation chain or additional header bidding partners.

Improving eCPM

  1. Add header bidding partners: More bidders means more competition for each impression. The jump from 2 to 5 demand partners typically increases eCPM by 20-40%. Going from 5 to 10 adds another 10-15%.
  2. Improve ad viewability: Advertisers bid more for viewable inventory. Moving an ad unit from 45% to 75% viewability can increase its eCPM by 50% or more. Use lazy loading to only render ads when they are near the viewport.
  3. Test ad sizes: Larger ad formats (300x600, 336x280) generally command higher eCPMs than smaller ones (300x250, 728x90). Test whether upgrading sizes improves eCPM without hurting user experience.
  4. Set smart floor prices: Unified pricing rules in Google Ad Manager let you set minimum CPMs. A well-calibrated floor rejects low-value bids and forces higher minimums, but set it too high and your fill rate drops. Start with floors at 50% of your current average eCPM and adjust based on fill rate impact.
  5. Leverage first-party data: With third-party cookies effectively deprecated, publishers with strong first-party data (registered users, content preferences, engagement signals) can pass audience signals to bidders, increasing the value of each impression.

Monitoring CPM Trends

  1. Track by demand source: Monitor CPM trends per SSP/ad network weekly. A sudden drop from one partner may indicate a configuration issue or a change in their demand.
  2. Understand seasonality: Advertiser budgets peak in Q4 (October-December) and dip in Q1 (January-March). Do not panic when January CPMs drop 30% from December. This is normal.
  3. Segment by geography: US/UK traffic commands 3-5x higher CPMs than traffic from Southeast Asia or South America. If your traffic mix shifts geographically, CPMs will move accordingly even if nothing else changed.
  4. Watch for bid density changes: In your header bidding reports, track the number of bids per auction. If bid density drops, it means fewer partners are competing, which will lower CPMs. This is an early warning signal to add new demand sources.

The Revenue Equation

Total Monthly Revenue = Monthly Pageviews x (Page RPM / 1,000). A site with 500,000 monthly pageviews and $15.00 RPM generates $7,500/month. Improving RPM by just $2.00 (from $15 to $17) adds $1,000/month. That is the power of RPM-focused optimization: small improvements compound across every pageview.

Common Mistakes Publishers Make with These Metrics

Mistake 1: Removing Low-CPM Ad Units

A publisher sees that their bottom-of-page ad unit has a $0.80 eCPM and removes it, thinking it drags down their "average CPM." Their average eCPM goes up, but their RPM goes down because they eliminated revenue. Every ad unit that earns more than $0.00 contributes to RPM. The question is not "is this CPM high enough?" but "does this unit hurt user experience enough to offset its revenue contribution?"

Mistake 2: Comparing CPM Across Different Pricing Models

A publisher compares a CPC-based AdSense unit (which reports estimated CPM) with a CPM-based header bidding partner and concludes the header bidding partner is better because its CPM is higher. But the AdSense unit might have a higher eCPM when calculated from actual earnings, because CPC-based pricing can outperform CPM pricing on pages with high click-through rates. Always compare eCPM, never raw CPM, when evaluating different demand sources.

Mistake 3: Ignoring Fill Rate When Evaluating CPM

A demand partner offers $5.00 CPM but only fills 30% of requests. Another offers $2.00 CPM at 95% fill rate. The $5.00 CPM partner contributes $1.50 in effective revenue per 1,000 requests ($5.00 x 0.30). The $2.00 CPM partner contributes $1.90 ($2.00 x 0.95). The "lower CPM" partner actually generates more revenue. Always factor fill rate into your evaluations.

Frequently Asked Questions

What is the difference between CPM and eCPM?

CPM is the price an advertiser pays per 1,000 impressions, set before the campaign runs. eCPM is what the publisher actually earned per 1,000 impressions, calculated after the revenue is collected. CPM is an input from the advertiser side; eCPM is an output on the publisher side. A publisher running multiple demand sources with different pricing models uses eCPM to normalize and compare their effective performance on a level playing field.

Is RPM better than CPM for measuring publisher revenue?

Yes. RPM measures total revenue per 1,000 pageviews, capturing all ad units, fill rates, and refresh impressions on the page. CPM only measures the cost of a single ad unit per 1,000 impressions. A publisher can have high CPMs but low RPM if fill rates are poor or if they are running too few ad units. RPM gives the complete picture of how much money each pageview generates, making it the most actionable metric for total revenue optimization.

What is a good RPM for publishers in 2026?

RPM varies by vertical, geography, and ad setup. Typical page RPMs in 2026 range from $5-$15 for general content, $15-$40 for finance and legal, $8-$20 for technology, and $3-$10 for entertainment. These assume a well-optimized setup with header bidding, multiple demand partners, and ad refresh. Sites with primarily US, UK, Canada, and Australia traffic see the higher end of these ranges.

How do I calculate eCPM from my ad revenue?

Use the formula: eCPM = (Total Ad Revenue / Total Impressions) x 1,000. If an ad unit earned $150 from 80,000 impressions, the eCPM is ($150 / 80,000) x 1,000 = $1.875. Calculate eCPM per ad unit to identify underperformers, and per demand source to evaluate which SSPs or networks deliver the best value for your inventory.

Why is my CPM high but my revenue still low?

High CPM with low total revenue usually means one of three things: low fill rate (high bids but few impressions actually served), low ad density (strong CPMs but too few ad units per page), or low traffic volume. Check fill rate first. If it is below 80%, adding demand partners through header bidding or a monetization platform will capture unfilled impressions and increase overall revenue, even if the new demand comes at a lower CPM.

Stop Guessing, Start Optimizing

WeForAds gives publishers a unified dashboard with real-time RPM, eCPM, and fill rate across all demand sources. One tag, full transparency, maximum revenue.

Get Started Free
Weekly newsletter

Get these insights in your inbox

One tactical ad monetization tip per week. No fluff. Unsubscribe anytime.

Free forever. No spam. Learn more