Your ad dashboard says eCPM rose, yet total app ad revenue fell. That apparent contradiction is common when a higher price per impression comes with fewer filled requests, less traffic, or a different audience mix. Reading eCPM correctly means looking beyond the headline number.
eCPM, or effective cost per mille, is the estimated ad revenue a publisher earns for every 1,000 impressions. Calculate it by dividing total ad earnings by served impressions and multiplying by 1,000; use it to compare monetization yield across formats, placements, networks, and audience segments.
This guide explains the formula, shows how to build a useful benchmark, and turns eCPM changes into practical decisions for a mobile app.
What is eCPM, and what does eCPM mean for an app?
The eCPM meaning is “effective cost per mille,” where *mille* means one thousand. Despite the word “cost,” app publishers usually read eCPM as revenue: the amount earned per 1,000 ad impressions that actually served. Google AdMob defines eCPM this way and uses the same earnings-based formula.
The metric is “effective” because it normalizes revenue from different buying models. One advertiser may pay per thousand impressions, another per click, and another per action. Once those campaigns have run, eCPM converts the resulting publisher revenue into one comparable rate.
That makes eCPM useful for questions such as:
- Which ad placement earns more for each impression delivered?
- Does rewarded video outperform interstitial for the same country and platform?
- Which network monetizes a specific audience segment most efficiently?
- Did a product or mediation change improve yield, or only change impression volume?
It does not tell you how many requests went unfilled, whether ad frequency harmed retention, or whether total revenue increased. Google explicitly recommends reading eCPM with impressions, ad requests, match rate, and estimated earnings rather than treating it as the only monetization signal.
eCPM vs. CPM, RPM, and CPA
These metrics answer different questions:
| Metric | Calculation or basis | Best used for |
|---|---|---|
| CPM | Advertiser cost per 1,000 impressions | Pricing an impression-based media buy |
| eCPM | Publisher earnings per 1,000 served impressions | Comparing ad yield across demand sources or formats |
| RPM | Revenue per 1,000 units, with the unit defined by the platform | Measuring revenue per pageview, request, session, or another stated unit |
| CPA | Advertising cost divided by completed actions | Evaluating conversion efficiency |
Always check the denominator shown in a dashboard. “RPM” may mean revenue per thousand pageviews in web publishing, while an ad platform may expose a request-based RPM. eCPM is normally impression-based, but a reporting label is only useful when its underlying definition is clear.
The eCPM formula, with worked examples
The standard eCPM formula is:
eCPM = (total ad earnings / served ad impressions) × 1,000Suppose an app earns $624 from 120,000 ad impressions during one week:
eCPM = ($624 / 120,000) × 1,000
eCPM = $5.20The app earned an average of $5.20 for every 1,000 impressions served. This does not mean each block of 1,000 impressions paid exactly $5.20. It is an aggregate rate across the selected period and segment.
You can rearrange the formula to estimate revenue:
estimated revenue = (eCPM × expected impressions) / 1,000At a $5.20 eCPM, 300,000 impressions would produce an estimated $1,560 if the audience, demand, format mix, and other conditions stayed comparable. Treat that as a planning estimate, not a guarantee; auctions and user behavior change.
Calculate blended eCPM correctly
Do not average two eCPM values unless their impression counts are equal. Weight the result by impressions instead.
| Placement | Revenue | Impressions | eCPM |
|---|---|---|---|
| Rewarded video | $900 | 100,000 | $9.00 |
| Banner | $300 | 300,000 | $1.00 |
| Combined | $1,200 | 400,000 | $3.00 |
The simple average of $9 and $1 is $5, but the true blended eCPM is $3 because the lower-yield banner supplied three times as many impressions. Calculate the total revenue divided by total impressions whenever you combine segments.
Use enough data for the decision
A $20 eCPM from 100 impressions represents only $2 in revenue and can move sharply after one additional auction. Compare stable windows and include impression counts. For product tests, keep the country, operating system, format, placement, and date range aligned so a change in traffic mix does not masquerade as a monetization win.
What is a good eCPM benchmark?
There is no universal “good eCPM.” A useful benchmark matches your app category, country, operating system, ad format, placement, and season. Your own trailing performance for the same segment is often more actionable than a broad industry average.
Current industry reports illustrate why. Appodeal’s mobile-game report found rewarded video had the highest eCPM across both major mobile platforms, banners the lowest, and North America and Europe the strongest regions in its dataset. A newer 2026 non-gaming app trends report likewise reports that rewarded and interstitial video outperformed banners on its own network, but expresses much of the comparison as indexed values rather than pretending one dollar figure applies to every publisher.
Those reports are directional evidence, not a rate card. They cover particular platforms, apps, regions, periods, and demand sources. A dollar benchmark copied from a different genre or geography can create the wrong target.
Build a defensible benchmark in three layers:
- Internal baseline: compare the segment with its trailing 28-day and year-over-year performance.
- Peer context: use tools such as AdMob eCPM Trends, which groups benchmarks by attributes including category, platform, country, and format.
- Business outcome: confirm that total ad revenue, revenue per user, and retention moved in the intended direction.
Also mark seasonal comparisons. Advertiser demand can rise around major shopping periods and fall after budgets reset. AppsFlyer’s eCPM guide identifies geography, seasonality, placement, format, loading speed, and audience quality as important context. Comparing January with December without an annual baseline can send a team chasing a normal market swing.
Why eCPM changes
An eCPM change usually comes from a shift in demand, inventory, delivery, or audience—not from the formula itself.
Demand and competition
More eligible bidders can raise competition for an impression. Fewer advertisers, broad category blocking, or demand weakness in a country can lower the clearing price. Google notes that blocking more ad categories can reduce auction competition and revenue.
Geography, platform, and app category
Advertisers value audiences differently. Country, operating system, app category, and user intent all influence bids. The right response is segmentation, not an attempt to force every region toward one global average.
Ad format and placement quality
Rewarded and full-screen formats frequently earn more per impression than banners, as both Appodeal’s research and AppLovin’s monetization guidance indicate. But format changes also affect interruption, session length, and retention. A higher rate is not automatically a better product decision.
Fill, latency, and floors
An aggressive floor can reject low bids and lift the average value of impressions that remain. It can also leave more requests unfilled. Google’s eCPM floor documentation warns that raising a floor is likely to reduce fill rate and recommends monitoring total revenue.
Audience and acquisition mix
A new campaign can bring users from different countries or with different session behavior. That shifts both the number and value of ad opportunities. Segment eCPM by acquisition source and cohort before concluding that the mediation stack caused the change.

How to improve eCPM without sacrificing app revenue
The goal is not the highest possible eCPM. It is durable revenue from an ad experience users will tolerate. Use a controlled workflow so each change has an interpretable result.
1. Create a segmented baseline
For each material placement, report revenue, impressions, requests, fill or match rate, eCPM, and revenue per daily active user. Break the data down by country, OS, format, placement, network, and acquisition cohort. Keep a blended executive view, but diagnose from the segments.
2. Find the limiting factor
Use the pattern in the metrics:
- eCPM down, fill stable: investigate demand mix, format, viewability, audience, or seasonality.
- eCPM up, fill and revenue down: the floor or targeting may be rejecting too much demand.
- eCPM stable, impressions down: inspect traffic, session depth, ad loading, and placement eligibility.
- One geo down, others stable: treat it as a regional demand or traffic-mix issue before making a global change.
3. Test demand and formats one variable at a time
Add or remove a bidding source, adjust one placement, or test one format while holding other settings steady. AppLovin recommends A/B testing network changes and prioritizing bidding networks where possible. Give the test enough traffic to reduce random noise, and define a rollback condition before launch.
4. Tune floors against request-level revenue
Consider two placements with 100,000 requests:
| Scenario | eCPM | Fill rate | Impressions | Revenue | Revenue per 1,000 requests |
|---|---|---|---|---|---|
| High floor | $8.00 | 50% | 50,000 | $400.00 | $4.00 |
| Balanced floor | $5.50 | 85% | 85,000 | $467.50 | $4.68 |
The high-floor scenario wins on eCPM but loses on revenue. A request-level revenue metric exposes the unfilled inventory that impression-based eCPM ignores. Review both figures, then segment floor tests by country or placement rather than applying one global threshold.
5. Protect the user experience
Track session length, retention, crashes, latency, and paid conversion alongside ad metrics. More interruptions can create additional impressions in the short term while weakening the audience that produces future revenue. Rewarded formats should be genuinely optional and tied to a clear value exchange.
6. Connect monetization to acquisition quality
Once revenue reporting is segmented, compare which acquisition cohorts produce engaged users and healthy ad opportunities. Deeplinkly’s app attribution platform can connect installs and downstream events to campaigns and links; pair those cohorts with your ad-network revenue data to evaluate acquisition quality rather than optimizing only for cheap installs.
A weekly eCPM diagnostic checklist
Use the same sequence whenever the number moves unexpectedly:
- Confirm the reporting window, currency, timezone, and impression definition.
- Compare revenue, eCPM, impressions, requests, and fill or match rate together.
- Segment by country, OS, format, placement, network, and acquisition source.
- Check recent releases, SDK changes, mediation edits, floors, and category blocks.
- Compare with the prior week, trailing 28 days, and the same seasonal period.
- Inspect latency, ad errors, policy notices, and app stability.
- Change one lever, document it, and measure both revenue and user impact.
This process turns eCPM from a score to a diagnostic tool. It also prevents a common failure: making a global configuration change to fix a decline caused by one small segment.
Frequently asked questions
What does eCPM stand for?
eCPM stands for effective cost per mille, or effective revenue per 1,000 ad impressions in publisher reporting. It normalizes actual earnings so app teams can compare monetization yield across different segments.
How do you calculate eCPM?
Divide total ad earnings by served ad impressions, then multiply by 1,000. For example, $200 earned from 50,000 impressions equals a $4 eCPM.
Is a higher eCPM always better?
No. A higher eCPM can accompany lower fill, fewer impressions, or worse retention, resulting in less total revenue. Read it with fill or match rate, request-level revenue, revenue per user, and product health metrics.
What is a good eCPM for a mobile app?
A good eCPM beats a relevant baseline while supporting total revenue and user experience. Compare the same app category, country, OS, format, placement, and season; broad global averages are too blended for most decisions.
How often should eCPM be reviewed?
Monitor it regularly for anomalies, but make optimization decisions with enough data to reduce noise. A weekly review with trailing 28-day and year-over-year context is more reliable than reacting to every daily move.
Conclusion: optimize the system, not one number
eCPM is the cleanest way to compare earnings per served impression, but it is not a complete measure of app monetization. The practical decision is whether a change improves total revenue per available opportunity while preserving retention and product quality.
Start by segmenting one high-volume placement, calculate its eCPM and request-level revenue, and establish a stable baseline. Then test the smallest plausible change—format, bidder, floor, or placement—and keep it only when the wider scorecard improves.