JL Apps

Guides for AdNumbers

AdMob metrics explained: eCPM, RPM, fill rate, match rate

AdMob and AdSense reports are full of ratios: eCPM, impression RPM, match rate, show rate, fill rate, CTR. Each one answers a different question, and mixing them up leads to wrong conclusions, such as blaming low prices when the real problem is that half your ad requests never get an ad.

This guide defines each metric with its formula, walks through one worked example, and explains what typically moves the numbers. It deliberately avoids quoting “normal” values, because they depend so heavily on your audience, format and country that a benchmark from someone else’s app tells you very little.

AdNumbers app icon

The app for this

AdNumbers: AdMob Dashboard

AdMob & AdSense Earnings

Download on the App Store

The funnel behind every ad

Every ad goes through the same steps. Your app or website sends an ad request. If an advertiser’s ad is available for that request, the request is matched. If the matched ad is actually displayed, it counts as an impression. Some impressions lead to clicks, and earnings come from all of this together.

Almost every ratio in AdMob and AdSense compares two steps of this funnel, so once you know the steps, the formulas follow naturally.

  • Ad requests: how often your app or site asked for an ad
  • Matched requests: requests that received an ad in response
  • Impressions: ads that were actually shown
  • Clicks: impressions that were tapped or clicked
  • Estimated earnings: what the network expects to pay you, before final adjustments

eCPM and RPM: earnings per 1,000 impressions

eCPM (effective cost per mille) is your earnings divided by impressions, multiplied by 1,000. It tells you what 1,000 displayed ads earned you on average. Formula: eCPM = earnings ÷ impressions × 1,000.

RPM (revenue per mille) is the same idea from the publisher’s side, and the term Google uses in AdSense. Impression RPM is calculated exactly like eCPM. Page RPM divides earnings by page views instead of impressions, so it includes the effect of how many ads each page shows. Formula: page RPM = earnings ÷ page views × 1,000.

When you compare numbers across reports or tools, check which denominator is used. A page RPM is often higher than the impression RPM on the same site simply because one page view can carry several ad impressions.

Match rate, show rate and fill rate

Match rate is matched requests divided by ad requests. It shows how often an ad was available at all. In AdSense, the comparable figure is called coverage.

Show rate is impressions divided by matched requests. It shows how many of the ads you received were actually displayed. A low show rate is often an implementation issue: interstitials or rewarded ads that are loaded but never shown, banners that are requested and then removed, or users leaving before the ad appears.

Fill rate is the older, general industry term for the share of requests that got an ad. AdMob now uses match rate for this, and different mediation tools and networks define fill rate slightly differently, so read the definition before comparing numbers from two sources. A useful cross-check is impressions per request (match rate × show rate), because that is what ultimately turns requests into money.

Do it with AdNumbersLearn more →

A worked example

The numbers below are made up to illustrate the formulas; they are not benchmarks. Imagine an app with 200,000 ad requests in a month, 176,000 matched requests, 149,600 impressions, 1,870 clicks and 523.60 USD in estimated earnings.

MetricFormulaResult
Match rate176,000 ÷ 200,00088 %
Show rate149,600 ÷ 176,00085 %
Impressions per request149,600 ÷ 200,00074.8 %
eCPM / impression RPM523.60 ÷ 149,600 × 1,0003.50 USD
CTR1,870 ÷ 149,6001.25 %
Earnings per 1,000 requests523.60 ÷ 200,000 × 1,0002.62 USD

Reading the example

Earnings can be split into four factors: requests × match rate × show rate × eCPM ÷ 1,000. In the example, 200,000 × 0.88 × 0.85 × 3.50 ÷ 1,000 gives the same 523.60 USD. This split is the most useful way to explain a change. If earnings drop by a third, ask which factor moved: fewer requests means less traffic or fewer ad placements, a lower match rate means less demand, a lower show rate points at your app, and a lower eCPM means advertisers paid less.

CTR is worth watching, but not optimizing directly. Encouraging accidental clicks violates Google’s policies and can lead to invalid-traffic deductions or worse.

What moves the numbers

Several factors change these metrics without you touching a line of code.

  • Country: advertisers bid very differently by market, so a shift in where your users come from changes eCPM even if nothing else changes.
  • Format: rewarded and interstitial ads usually earn more per impression than banners, but you show far fewer of them. Compare formats by eCPM and by earnings per user, not by eCPM alone.
  • Season: ad budgets follow the calendar. Many publishers see prices rise toward the end of the year and soften at the start of a new one.
  • Mediation and floors: higher price floors can raise eCPM while lowering match rate, so total earnings can go either way.
  • Privacy and consent: users who decline personalized ads or tracking tend to receive less valuable ads, which affects eCPM.
  • Estimates versus final: the current day and month are estimates; Google finalizes earnings later and may deduct invalid traffic.

Seeing the funnel in one place

AdNumbers shows earnings, impressions, eCPM, clicks, CTR, requests, match rate and show rate for AdMob and AdSense, broken down by apps, websites, ad units, countries, formats and platforms. It calculates eCPM as earnings per 1,000 impressions, match rate as matched requests per request and show rate as impressions per matched request, exactly as described above, so you can compare its figures with this guide.

The eCPM trend chart is part of the statistics, which, like breakdowns of every app and ad unit, are included in AdNumbers Pro. The overview, countries, formats and platforms are free.

Frequently asked questions

Is eCPM the same as RPM?

Impression RPM and eCPM use the same formula: earnings divided by impressions, times 1,000. Page RPM is different because it divides by page views instead of impressions.

What is the difference between match rate and fill rate?

In AdMob, match rate is matched requests divided by ad requests. Fill rate is the older industry term for a similar idea, but networks define it slightly differently, so check the definition before comparing.

Why did my eCPM drop when my traffic went up?

Often because the new traffic comes from countries or formats with lower prices. Check the country and format breakdowns before changing your ad setup.

More guides

AdNumbersFree on the App StoreGet