Every Telegram Mini App that shows ads earns through one number: eCPM. It tells you how much revenue 1,000 ad impressions bring in, which makes it the fastest way to compare ad blocks, geos, formats and ad networks with each other. The problem is that most eCPM explanations are written for websites or app-store games, where the math is the same but the context is not.
This guide covers what eCPM means, the eCPM formula with worked examples, how to run the calculation in both directions (from revenue to eCPM and from eCPM to a revenue forecast), three modeled Mini App cases (first payout, a placement change, traffic buying), how eCPM differs from CPM and RPM, what benchmarks look like by country tier and ad format, and which levers actually raise eCPM in a Mini App. All figures in the examples are illustrative unless a source is named.
Let's start with the definition, because half of the confusion about eCPM comes from mixing it up with the advertiser's CPM.
TL;DR
- eCPM (effective cost per mille) is the revenue a publisher earns per 1,000 ad impressions, calculated as revenue ÷ impressions × 1,000.
- CPM is what an advertiser pays per 1,000 impressions; eCPM is what a publisher actually receives, so the two are rarely equal.
- A Mini App earning $1,890 from 420,000 impressions has an eCPM of $4.50; the same formula works in reverse to forecast revenue from expected traffic.
- Benchmarks depend on geography and format: rewarded video in Tier-1 markets earns several times more per 1,000 impressions than banners or Tier-3 traffic.
- The three levers that move eCPM in a Telegram Mini App are ad format mix, audience geo and placement quality, in that order of impact.
What Is eCPM in Advertising
eCPM is the effective revenue a publisher earns for every 1,000 ad impressions. The "e" stands for effective: eCPM is not a price anyone sets, it is a result that comes out after the ads have been shown and the revenue has been counted.
The full form of eCPM is effective cost per mille, where mille is Latin for thousand. Google's AdMob documentation defines eCPM as an estimate of revenue per thousand impressions calculated from total earnings and impressions — the same formula every ad network uses, including AdsGram.
eCPM matters because it normalizes revenue. Ten thousand impressions on one ad block and two million on another cannot be compared by total revenue, but they can be compared by eCPM. That is why the AdsGram publisher dashboard and every serious ad network report eCPM next to impressions and revenue: it is the single number that shows how well your inventory is being monetized, regardless of scale.
In practice, Telegram Mini App publishers use eCPM for four decisions:
- Which ad block to show more often (and which one is wasting screen time).
- Which geos are worth acquiring traffic from (because a user from one country can be worth 10× a user from another).
- Which ad network to keep when running a split test.
- How much revenue to forecast before scaling a Mini App.
eCPM Formula and How to Calculate It
The eCPM formula is: eCPM = (Revenue ÷ Impressions) × 1,000. Revenue is the money the ad network credited to you, and impressions are the ads it actually counted as shown.

Here is a worked example for a Telegram Mini App (illustrative figures):
- Pick a period. Take the last 30 days.
- Take ad revenue for that period from the publisher dashboard: $1,890.
- Take counted impressions for the same period: 420,000.
- Divide revenue by impressions: 1,890 ÷ 420,000 = 0.0045.
- Multiply by 1,000: eCPM = $4.50.
Two details decide whether the number is correct.
Count only paid impressions. If your Mini App requested an ad 500,000 times but the network served and paid for 420,000, the denominator is 420,000. Dividing by requests instead of impressions gives you a lower, misleading figure. AdsGram counts and pays per 1,000 impressions, with the rate depending on the geo of the user who saw the ad, so always take impressions from the dashboard rather than from your own event logs.
Keep revenue and impressions in the same period and same scope. A common error is to take monthly revenue and weekly impressions, or revenue for the whole account and impressions for one ad block. The result looks like an eCPM but means nothing.
eCPM calculation per ad block
Every AdsGram ad block (Reward, Interstitial or Task) reports its own statistics, so you can calculate eCPM separately for each one. This is where eCPM becomes useful rather than decorative, because a single app-level number hides the difference between formats.

Using the same illustrative Mini App:
Ad block | Impressions | Revenue | eCPM |
|---|---|---|---|
Reward (rewarded video) | 150,000 | $1,200 | $8.00 |
Interstitial | 240,000 | $600 | $2.50 |
Task | 30,000 | $90 | $3.00 |
Whole app (blended) | 420,000 | $1,890 | $4.50 |
The blended eCPM of $4.50 is accurate, but it is not what you should optimize. The Reward block earns more than three times as much per impression as the Interstitial block, and the Interstitial block generates most of the volume. That combination is the typical shape of a Mini App that shows interstitials too often and rewarded ads too rarely.
eCPM Calculator: Three Formulas You Need
An eCPM calculator is just the eCPM formula rearranged three ways, so you can solve for whichever variable you are missing. You do not need a tool for this — a spreadsheet cell or a calculator app is enough.
What you want to know | Formula | Example (illustrative) |
|---|---|---|
eCPM from revenue and impressions | eCPM = Revenue ÷ Impressions × 1,000 | $1,890 ÷ 420,000 × 1,000 = $4.50 |
Revenue from eCPM and impressions | Revenue = eCPM × Impressions ÷ 1,000 | $4.50 × 1,000,000 ÷ 1,000 = $4,500 |
Impressions needed for a revenue goal | Impressions = Revenue goal ÷ eCPM × 1,000 | $100 ÷ $4.50 × 1,000 = 22,223 |
The third formula is the one Telegram Mini App publishers use most often. AdsGram pays out in USDT on the TON network with a standard minimum of $100, so "how many impressions until my first payout" is a real planning question. At a $4.50 blended eCPM it takes roughly 22,000 impressions; at a $1.50 eCPM, which is realistic for traffic concentrated in low-tier geos, it takes about 67,000.
To turn this into a daily forecast, add one more variable — ad impressions per daily active user:
Daily revenue = DAU × impressions per DAU × eCPM ÷ 1,000
A Mini App with 20,000 DAU, 2 ad impressions per user per day and a $4.50 eCPM would earn 20,000 × 2 × 4.50 ÷ 1,000 = $180 per day, or about $5,400 per month. Change any input and the forecast updates — which is exactly the point of keeping eCPM separate from volume.
[CTA BLOCK — PUBLISHER — INSERT HERE]
eCPM Examples: Three Mini App Scenarios
The fastest way to understand eCPM is to run it through the situations a Telegram Mini App publisher actually faces: first payout, a placement change, and traffic buying. The three scenarios below are modeled cases with illustrative inputs; the arithmetic is exact, the figures are not quotes from any specific app.
Case 1: a clicker game and the road to the first payout
A tap-to-earn Mini App launches with a Telegram-typical audience: 55% of impressions from Russia, Kazakhstan and Uzbekistan, 30% from India and Pakistan, 15% from Türkiye and Brazil. It runs one Interstitial block and reaches 8,000 DAU in the first week, showing 3 ads per user per day.
Segment | Share of impressions | eCPM (illustrative) | Contribution to blended eCPM |
|---|---|---|---|
CIS | 55% | $1.60 | $0.88 |
South Asia | 30% | $0.50 | $0.15 |
Türkiye + Brazil | 15% | $2.20 | $0.33 |
Blended | 100% | — | $1.36 |
Daily impressions: 8,000 × 3 = 24,000. Daily revenue: 24,000 × $1.36 ÷ 1,000 = $32.64. The $100 payout threshold is reached in just over 3 days, and a month brings roughly $980.
What the case teaches: a $1.36 eCPM is not a failure for this geo mix — it is simply what interstitials pay for this audience. The lever is not "find a network with a higher number," it is the format mix, which the next case shows.
Case 2: the same app after moving volume to Reward
The team adds a Reward block tied to a 2× earnings booster and caps interstitials at 2 per session. Volume per user stays at 3 impressions a day, but the mix changes: 1 rewarded impression and 2 interstitials instead of 3 interstitials. Rewarded ads for the same geo mix pay roughly 3× the interstitial rate.
Block | Impressions / day | eCPM (illustrative) | Revenue / day |
|---|---|---|---|
Interstitial | 16,000 | $1.36 | $21.76 |
Reward | 8,000 | $4.10 | $32.80 |
Total | 24,000 | $2.27 blended | $54.56 |
Same users, same number of ads, same geo — revenue per day goes from $32.64 to $54.56 (+67%) because a third of the impressions now sell at a rewarded rate. The blended eCPM rose from $1.36 to $2.27 without buying a single new user. This is the single most common eCPM win in Telegram Mini Apps, and it is visible only if the two blocks report separately.
Case 3: deciding where to buy traffic
Now the team wants to scale and compares two acquisition sources at the same cost per install: one delivers mostly Tier-1 users, the other mostly Tier-3. Assume each new user generates 3 impressions a day and stays for 10 days on average, with the post-Case-2 format mix.
Source | Blended eCPM (illustrative) | Impressions per user (10 days) | Ad revenue per user | Revenue per 1,000 installs |
|---|---|---|---|---|
Tier-1 heavy | $9.00 | 30 | $0.27 | $270 |
Tier-3 heavy | $1.20 | 30 | $0.036 | $36 |
At the same volume, the Tier-1 source returns 7.5× more ad revenue per install. If installs from the Tier-1 source cost $0.20 and from the Tier-3 source $0.04, the first pays back ($0.27 earned vs $0.20 spent) and the second does not ($0.036 vs $0.04). The eCPM table is what turns "which traffic is cheaper" into "which traffic is profitable."
The same logic applies in reverse for advertisers: a brand that buys CPM traffic in Mini Apps through AdsGram is paying for the audience on the other side of this table, which is why Tier-1 placements cost more per 1,000 impressions.
eCPM vs CPM vs RPM: What Is the Difference
CPM is the advertiser's price, eCPM is the publisher's result, and RPM measures revenue per 1,000 sessions or page views rather than per 1,000 ad impressions. They share the "per thousand" logic but answer different questions.
CPM (cost per mille) is what an advertiser agrees to pay for 1,000 impressions when they set up a campaign. On the AdsGram advertiser side, for example, a brand can buy traffic in Telegram Mini Apps on a CPM basis. That number is the buyer's cost before the network's margin, before fill gaps and before invalid traffic is filtered out.
eCPM is what reaches the publisher after all of that. An advertiser paying a $6 CPM does not mean the Mini App showing that ad earns a $6 eCPM: part of the budget is the network's commission, some impressions go unfilled or unpaid, and a block may show ads from several campaigns with different CPMs. eCPM averages everything that actually happened into one figure.
RPM (revenue per mille) divides revenue by 1,000 sessions (or page views, or users), not by ad impressions. If a Mini App shows 2 ads per session, its RPM is roughly double its eCPM. RPM is useful when you want to know what a session is worth; eCPM is useful when you want to know what an impression is worth. Many networks use the two terms loosely — check which denominator a dashboard uses before comparing numbers.
Metric | Who uses it | Denominator | Question it answers |
|---|---|---|---|
CPM | Advertiser | 1,000 impressions bought | How much does reach cost me? |
eCPM | Publisher | 1,000 impressions shown | How much does my inventory earn? |
RPM | Publisher | 1,000 sessions or page views | How much does a visit earn? |
For a Telegram Mini App publisher, eCPM is the working metric. RPM becomes helpful once you have several monetization sources — ads, Telegram Stars purchases, subscriptions — and want to see total value per session. If Stars are part of your mix, the AdsGram guide to Telegram Stars prices and withdrawals explains how that revenue converts to USD.
eCPM Benchmarks by Country Tier and Ad Format
A good eCPM depends almost entirely on two things: where your users are and which ad format they see. Industry data for mobile in-app advertising puts rewarded video at the top of every format ranking and Tier-1 countries at the top of every geo ranking.
Appodeal's eCPM Report 2025, based on 200+ billion ad views, found that rewarded video had the highest eCPM on both iOS and Android, interstitials grew steadily, and banners stayed the lowest-earning format, with iOS consistently outperforming Android and North America and Europe leading on rate. Country-level data compiled by Mistplay from the same industry sources shows the United States, the United Arab Emirates, Australia, Switzerland and South Korea at the top of the rewarded video eCPM table, with the US averaging around $15 across both platforms.
These are mobile app benchmarks, not Telegram-specific ones, and they move every quarter. Treat the table below as orientation, not as a rate card:
Format | Tier 1 (US, UK, DE, AU, KR, AE) | Tier 2 (Eastern Europe, LATAM leaders, Türkiye) | Tier 3 (South Asia, SE Asia, Africa) |
|---|---|---|---|
Rewarded video | roughly $10–20+ | roughly $3–8 | roughly $1–3 |
Interstitial | roughly $5–12 | roughly $1.5–4 | roughly $0.3–1.5 |
Banner | roughly $0.3–1 | roughly $0.1–0.3 | under $0.1 |
What to take from this as a Telegram Mini App publisher:
- Geo mix outweighs almost everything else. Two apps with identical DAU can differ 5–10× in revenue purely because of where their users live. Before buying traffic for a Mini App, check what the resulting geo mix will do to blended eCPM.
- Rewarded formats are the ceiling, banners are the floor. A Mini App that only runs interstitials is leaving the highest-eCPM format unused. AdsGram's Reward block is the Telegram equivalent of rewarded video: the user opts in, watches the ad, and your app grants a bonus.
- Telegram audiences skew differently from app stores. Telegram's user base is large in CIS, South Asia, Southeast Asia, the Middle East and LATAM. A Mini App that goes viral will often collect a lot of Tier-2 and Tier-3 traffic, which is why a $2–5 blended eCPM is a normal starting point and not a sign that something is broken.
If you are choosing between networks for a Mini App, compare them on the same geo and the same format rather than on a headline eCPM. The AdsGram comparison of ad formats and payout terms for Telegram Mini Apps breaks down what each network pays for and how.
How to Increase eCPM in a Telegram Mini App
eCPM goes up when more of your impressions come from high-value formats, high-value geos and placements where users actually engage. You cannot change what advertisers bid, but you can change which impressions you sell.
Here are the levers, in the order they usually pay off:
- Shift volume toward the Reward block. Rewarded ads are opt-in, so completion and engagement are high and advertisers pay more. Put the reward where it has real value in your app economy: an extra life, a booster, a second spin, a daily-chest multiplier. A reward nobody wants produces impressions nobody pays well for.
- Cap interstitial frequency. Interstitials earn less per impression, and showing them every screen depresses eCPM further because advertisers see poor post-view behavior. Two to three interstitials per session at natural breaks (level end, screen transition) is a reasonable starting point; measure eCPM before and after you change the cap.
- Use the Task block as a list item, not a pop-up. A Task ad (subscribe to a channel, open another Mini App) belongs inside your existing "Earn" or "Missions" screen, next to your own missions. It converts there because users are already in a completing-tasks mindset.
- Separate ad blocks by placement. AdsGram lets you create multiple ad blocks per app with separate statistics. One block for the loading screen, one for the post-level interstitial, one for the missions list: without this split you cannot see which placement earns the $8 eCPM and which earns $2.
- Watch the geo report, then act on it. If one country sends 40% of impressions at a $0.80 eCPM, decide whether to keep showing it the same frequency, lower the ad load for that segment, or focus growth on better-paying markets.
- Keep invalid traffic out. Ad networks filter suspicious impressions and do not pay for them, so bot-inflated "impressions" raise your denominator without raising revenue. AdsGram runs 24/7 anti-fraud on the network side; on your side, server-side reward verification stops users from claiming bonuses for ads they never watched.
- Give the app time to get priced. eCPM in the first days after launching a new block is usually lower than it will be after the network has data on how its audience behaves. Compare week 3 against week 1 before drawing conclusions.
The common thread: eCPM responds to the quality of impressions, not the number of them. If you want more revenue, raise eCPM first and volume second — because scaling an app that monetizes at a $1.50 eCPM multiplies a weak number.
Common eCPM Calculation Mistakes
Most eCPM errors come from mixing denominators, periods or scopes, not from the arithmetic. The formula is simple; the inputs are where things go wrong.
- Dividing by ad requests instead of impressions. Requests include unfilled ads. Use the impressions column from the dashboard.
- Comparing eCPM across different formats as if it were one metric. A $3 interstitial eCPM and a $9 rewarded eCPM are both healthy; comparing them tells you about the format, not about performance.
- Reading a drop in eCPM as a drop in revenue. If you add a new ad block with a lower rate, blended eCPM falls while total revenue rises. Check revenue and impressions together.
- Judging a geo by eCPM alone. A low-eCPM country can still be your largest revenue source. Look at revenue share and eCPM side by side.
- Forgetting currency and timing. AdsGram reports in USDT; if you track revenue in another currency, convert consistently. Also note that a network's figures for the last day may still be updating.
- Calculating from a few hundred impressions. eCPM from tiny samples is noise. Use at least several thousand impressions per segment before deciding anything.
Once the calculation is clean, eCPM becomes a reliable planning tool — for forecasting a payout date, for deciding where to acquire users, and for proving that a change in placement actually paid off. If you have not connected your Mini App to an ad network yet, the formats, requirements and payout terms are on the Telegram Mini Apps monetization page.
FAQ
1. What does eCPM mean?
eCPM means effective cost per mille — the revenue a publisher earns for every 1,000 ad impressions. It is calculated after the fact from actual revenue and actual impressions, which is why it is called "effective." Publishers of Telegram Mini Apps, websites and mobile apps use eCPM to compare how well different ad blocks, formats, countries and ad networks monetize their traffic, regardless of how much traffic each one has.
2. How do you calculate eCPM?
To calculate eCPM, divide ad revenue by the number of counted impressions and multiply by 1,000. For example, $1,890 in revenue from 420,000 impressions gives an eCPM of $4.50. Take both numbers from the same period and the same ad block, and use paid impressions rather than ad requests. The AdsGram publisher dashboard reports revenue and impressions per block, so the calculation can be done per placement.
3. What is the difference between eCPM and CPM?
CPM is the price an advertiser pays for 1,000 impressions when buying a campaign; eCPM is the revenue a publisher actually receives per 1,000 impressions after the network's commission, unfilled inventory and filtered invalid traffic. An advertiser can pay a $6 CPM while the publisher showing those ads earns a $4 eCPM. CPM is a planning input for buyers; eCPM is a performance result for sellers.
4. What is a good eCPM for a Telegram Mini App?
A good eCPM for a Telegram Mini App depends on the audience geo and the ad format. Industry benchmarks for mobile rewarded video reach $10–20 or more in Tier-1 countries such as the US, UK or South Korea, while interstitials in Tier-3 markets can earn under $1. Because Telegram audiences are often concentrated in Tier-2 and Tier-3 regions, a blended eCPM of $2–5 is a realistic starting point.
5. What is eCPM vs RPM?
eCPM divides revenue by 1,000 ad impressions, while RPM divides revenue by 1,000 sessions, page views or users. If a Mini App shows two ads per session, its RPM is roughly twice its eCPM. eCPM shows what an impression is worth and is the standard metric for comparing ad blocks and networks; RPM shows what a visit is worth and is more useful when ads are combined with other revenue sources.
6. How can I increase eCPM in a Mini App?
To increase eCPM, move impressions toward higher-value formats and better-paying audiences. Give rewarded ads a meaningful place in your app economy, cap interstitial frequency at natural breaks, place task-based ads inside your missions list, split ad blocks by placement so you can see which ones earn most, and watch the geo report. Keeping invalid traffic out also helps, since unpaid impressions lower eCPM without adding revenue.





