EEltaCrew
HomeBlog

Ad revenue is set by session time, not downloads: AdMob numbers across 15 apps

Published 2026-09-16Measured 2026-09-03About 3 min readelta · EltaCrew

Eleven apps with more monthly users produced 27 times fewer ad impressions than four TV remote apps. Where the gap between 7.68 and 0.18 impressions per user per day comes from, and how it changed the order I do marketing in.

For months I worked on the assumption that more downloads means more revenue. I optimized store listings, posted in communities, reshot screenshots. Then I laid the AdMob report out across every app at once, and the assumption fell apart.

The numbers

On 3 September 2026 I split the 15 apps I run into two groups in the AdMob "Ad activity" report.

Monthly active users Impressions per day Impressions per user per day
4 TV remote apps 277 2,128 7.68
The other 11 apps 429 79 0.18

The other 11 apps have more users: 429 against 277. Yet the four remote apps produce 27 times the impressions. It is not the number of ad slots either. The bookmark manager has 9 slots and the benefits calendar has 8, while the remotes have 6. The apps with fewer slots produced 27 times more.

The difference is session length. A remote stays open and gets tapped for as long as the TV is on. A Markdown viewer or an error-code lookup gets opened once, answers the question, and gets closed. How long one person keeps the app open per day produces impressions, and impressions produce revenue. Downloads are merely the step before that.

Working the target backwards

I calculated what it takes for one app to earn one dollar a day. At $0.60 per 1,000 impressions, that is 1,667 impressions a day.

Same "one dollar a day", but one app has reached it and the other is 68x away. Doubling the viewer's downloads would leave 0.18 per user unchanged, so revenue would grow by a few cents a day, not double.

What I changed

First, I no longer start a revenue conversation with install counts. I measure impressions per day divided by monthly active users and see which side of the line the app is on. Below 1, time spent inside the app comes before any marketing.

Second, I dropped the idea of adding more ad slots. The data says no. A 9-slot app earns one twenty-seventh of a 6-slot app.

Third, I changed how I pick the next app. Not a blue ocean where I could rank first, but a market where people install several apps and switch between them, and a kind of app that stays open once launched. "No competition" was not an advantage. It usually meant a market with no session time.

How to measure it

In the AdMob console, Reports › Ad activity › AdMob Network, put impressions and active users per app on the same period and divide. This report is not available to service accounts through the API, so I read it in the console. One caveat: on an emulator AdMob serves test ads only, so fill rate and revenue cannot be measured there. Only numbers from a release build on a physical device mean anything.

Summary

AdMobad revenueapp operations

Related

Same app, same users, native ads paid 38x more per 1,000 impressions than banners, and why I stopped short of deleting the banner unitsSeven days of AdMob data from two TV remote apps, comparing revenue per 1,000 impressions for banners and native advanced ads. How over-exposure kills the rate, how to read native's low fill rate, and why I aborted deleting the banner ad units the next day.Why I put forced in-app updates (IMMEDIATE) into 17 apps: users on old versions earned nothing after the ad SDK swapWhen I replaced the ads SDK in July 2026, users who had not updated produced zero revenue. No fix, policy or consent form reaches an old version. How I added Play In-App Update in IMMEDIATE mode to every app, why it can only be verified on a Play-installed build, and what shipped alongside it.My AdMob account had zero GDPR consent messages: adding UMP to 21 apps in one dayA new app's release log said "no form(s) configured". The AdMob account had no European-regulation consent message at all, and only 3 of 17 live apps even contained UMP code. The order of operations to create the message, add the code to 14 apps and re-release, plus the traps along the way.