Chart · Ads

eCPM for in-app ads: how to calculate it

eCPM is effective cost per mille: ad revenue per 1,000 ad impressions. RevenueDot divides ad revenue in US dollars by the number of ad displayed events and multiplies by 1,000. If a period has no displayed events, eCPM is blank rather than zero or infinite.

Formula

eCPM = ad revenue ÷ impressions × 1,000

Shape

What happened during each period

API name

ad_rpm

Measures

eCPM (USD)

Filter and segment by

App, Country, Platform, App version

The eCPM chart in the RevenueDot dashboard, with demo data, its chart rail, plot and table
Captured from the RevenueDot dashboard with demo data.

Definition

How RevenueDot calculates eCPM

The numerator is ad revenue: the sum of rc_ads_ad_revenue events, converted to US dollars at each event's date. The denominator is impressions: the count of rc_ads_ad_displayed events. RevenueDot divides the two totals for the period and multiplies by 1,000. The table also shows Ad Revenue and Impressions, which are not plotted.

eCPM needs both event types. Your SDK ad tracking sends them to RevenueDot's /v1/events endpoint, from an ad network adapter or by manual capture. A network that sends revenue events but no displayed events gives a blank eCPM here, because there are no impressions to divide by.

A week or a month is the ratio of that period's totals, not the average of daily eCPMs, so busy days weigh more. Sandbox events are excluded. Filter or segment by app, country, platform and app version.

Find it in the dashboard under Analytics > Charts, or call GET /v2/projects/{project_id}/charts/ad_rpm. That is the API name of the eCPM chart. The response has the same shape as RevenueCat's Charts API.

Worked example

eCPM, step by step

Illustrative numbers for one day.

ItemValue
Ad revenue$12.50
Impressions5,000

eCPM = 12.50 ÷ 5,000 × 1,000 = $2.50.

Why it matters

What eCPM tells you

eCPM is the price you get for your ad space. When ad revenue changes, eCPM tells you whether the price moved or only the volume did. That separates a demand or network change from a change in how many ads your app shows.

Use it to compare countries, platforms and app versions, and to judge a change of network, ad format or placement. Read it with Fill Rate: a high eCPM does not help when most requests get no ad.

How to read it

  • A blended eCPM hides differences. Segment by country and platform before you draw a conclusion.
  • Weekly and monthly eCPM is total revenue over total impressions, so a few high-traffic days dominate it.
  • A blank eCPM means no displayed events in that period. Check that the SDK sends them.
  • The chart sums revenue the SDK reported. Networks report some revenue as estimates, so it can differ from their final reports.
  • A falling eCPM with rising impressions can mean you added low-value placements. Compare with Ad Revenue.

API

Get eCPM from the Charts API

Same path and response shape as RevenueCat's Charts API, so existing scripts keep working.

Requestshell
curl "https://api.revenuedot.app/v2/projects/$PROJECT_ID/charts/ad_rpm?resolution=day" \
  -H "Authorization: Bearer $SECRET_KEY"   # sk_... with charts_metrics:charts:read

Reference: Charts guide · REST API v2

FAQ

eCPM: questions people ask

How do you calculate eCPM for in-app ads?

Divide ad revenue by the number of ad impressions and multiply by 1,000. RevenueDot uses ad revenue events converted to US dollars and ad displayed events as impressions.

What is the difference between eCPM and RPM?

People use the two names loosely. In RevenueDot the chart is eCPM, revenue per 1,000 impressions, and its API name is ad_rpm.

Why is my eCPM blank?

The period has no ad displayed events, so there is nothing to divide by. Check that your SDK sends displayed events as well as revenue events.

Does eCPM include sandbox ads?

No. Events from sandbox and TestFlight builds are stored as sandbox and left out of the chart.

What is a good eCPM for in-app ads?

It depends on the ad format, country, platform and network, so RevenueDot does not publish a benchmark. Segment your own eCPM by country and compare it over time.

Get started

See your eCPM in minutes.

Connect your app to RevenueDot Cloud, free up to $10,000 a month in tracked revenue, and all 43 charts fill from your store history after import.

Already have an account? Sign in · Prefer your own servers? Self-host free