Skip to content

Mobile User Level Ad Revenue | The what, how, and why it’s important for mobile app developers

Photo by Rob Curran on Unsplash


From the very beginning of digital advertising, accurate measurement was both revolutionary and a key pillar of differentiation from traditional, offline advertisements. This capability of granular measurement has enabled mobile advertising to grow to a $200 Billion dollar business in a relatively short 10-years.

However, for all the capabilities of data measurement available to the advertising buyers, the majority of mobile ad earnings has been overly-aggregated into broad generalizations– making true user level ad revenue difficult or impossible to measure. Recently recently, the mobile ad mediators have stepped up to provide a solution to provide more granular reporting at the user level. Simply put, user level ad revenue is enabled by tracking impression-level ad earnings, which gives you accurate user level ad revenue. This article is designed to help app developers understand how it works, why it’s important and how you should be using it. 

Sidebar: Why has revenue reporting been aggregated for so long?

Advertising is very much a business where innovation wins. Winners make higher margins. When an advertiser finds a method for success it doesn’t behoove them to share this success with others. If this success is a geo / group of users / or a specific advertiser they can invite competition by allowing apps — or competitive advertisers– to circumvent, or increase competitive pressure on that lucrative find. Simply put: aggregation lasted so long because advertisers are disincentivized to do otherwise.

User Level Ad Revenue Strategies for Popular Mobile Mediators


Each mobile ad mediation platform has a different spin on this technology and at the time of this article’s publication, here is a summary:


MoPub defines their approach as Impression Level Reporting. MoPub enables you to capture metadata of the incoming impression and relay this information to a data collection platform of your choice. (source)

If you’re interested in MoPub ILRD, please see our documentation on how to implement with Firebase.

MAX (AppLovin) defines their technology as impression and user level ad revenue attribution – Applovin provides you with an API where you can periodically download the user events. (source)

ironSource calls theirs Ad Revenue Measurement. IronSource reports the impression level value with the ad-impression and provides you an API to download user level data (source).

Admob – At this time Admob doesn’t offer external impression-level granularity reporting. But they do use AdMob reported information within Firebase to view LTV & ARPDAU metrics (source).


Challenges with User Level Ad Revenue.


Beyond any necessary app or SDK updates needed, there are some less obvious challenges that emerge when moving to impression-level tracking that are important to understand:


Photo by NASA on Unsplash

Data Scale: Because data is tracked at the impression level, the quantity of data generated is several orders of magnitude higher than the traditional, aggregated data. For example, an app that generates one million ad impressions per day might have generated total daily aggregate reporting in the low megabytes will now be tracking events that can quickly reach into the tens, or hundreds, of terabytes daily. 

Dealing with Bloat: We work with apps both big and small.  While the size of your audience matters, a very controllable variable on the size of your data is on the number of your overall collected events. By judiciously choosing to fire and collect only valuable events — or limiting the timeframe of data stored– you can vastly decrease data bloat, and cost.

Reliance on third-party platforms: In the cases where you are using impression-level reporting and firing events to a data aggregator or measurement partner, you’ll need to make the commitment of choosing third-party technology to track and store these events. This can increase app-size, integration complexity, incur costs or challenges with user-privacy.

A case for 3rd parties: While tracking your own events can seem straight-forward, it can get tricky– and expensive– fast. As your app can (hopefully) quickly scale to millions of distributed users, collecting and managing these events can quickly become a very challenging data operations problem.

Photo by engin akyurt on Unsplash

Accuracy & Drift: Since you’re relying on third-parties for earning information you have the risk of incorrect reporting (often caused by serving discrepancies) and in some cases the CPM served may be an estimate. For example, MoPub will report the configured CPM on the line item or segment, which may or may not be up-to-date and reflect the actual CPM earned.

While this can be a scary thought it’s worth noting in the wild we’ve seen aggregated reporting come within 5-10% to actual reporting numbers.

Data Usability: While traditional ad revenue are available in a csv flat-file format, user level ad revenue is often captured as unstructured event data. While csv’s can be easy to combine, normalize and manipulate (e.g. in Excel), unstructured event data can pose very difficult to manipulate and generally require more extensive transforming or parsing to be easily accessible.

There are cases for storing data in both structured & unstructured formats — mostly usability vs. flexibility. Our solution? Both.


Key value propositions in moving to User Level Ad Revenue


Despite the challenges, when used correctly user level ad revenue provides allows for key insights that can lead to a better user experience, better monetization opportunities, and overall better apps. 

More accurate ROAS measurement of acquisition campaigns: one of the biggest and most common uses of impression-level data is to aid in measuring the return on ad spend, or ROAS, of user acquisition campaigns. Attribution providers track users by the source of the paid install, and impression-level data allows the ad revenue to be allocated to those users accurately.

One of my favorite quotes: when walking a customer through their LTV reporting: “wait, users from that campaign are making how much? I can double my budget!” 

Identify ad whales: Yes, they are real. User level ad revenue allows for analysis on which users see the most ads, which users generate the most ad revenue, and which users never generate ad revenue.

What is an ad whale? “Ad whales are a small percentage of app users who generate a great deal of mobile app revenue, simply by watching and engaging with ads. These users are a quintessential part of any app monetization campaign.” – ironSource


 Understand the true value — or cost — of Ad Networks: An ugly truth in mobile app advertising: you can help increase your ad earnings but it may cost you in the form of cannibalized users. A more advanced method of utilizing the impression-level data is to tie churn-events to ad networks which can give you insights to whether the network is increasing your overall LTV, or taking out your users too quickly.

A longtime client and friend Andrew Stone has a very realistic view on running advertising in their titles: We’re paid to run ads: “we want our users to leave the game.

Photo by Gio Bartlett on Unsplash

Data-driven app design: Most app developers make design decisions based on gut or intuition, not using actual testing or data. And it’s obvious why: without granular data of revenue-performance you can’t track meaningful results. But this all changes with user level ad revenue. You can track the actual LTV impact of an app change or the churn from a monetization strategy shift. No more guessing!

We could do a whole blogpost on just this one value proposition. In our view, this is the future of mobile app development.

    Choosing the best method for user level ad revenue


    As earlier mentioned, some user level ad revenue  (MoPub & ironSource) is aggregated by collecting post-back events that fire in the app and are collected via a server. But even if you are connecting to an API (AppLovin or ironSource), there is a lot of data to manipulate. The three most common ways impression-level data is accessed & used is by either a homegrown solution, an attribution provider (MMP), or an analytics platform.

    Here we briefly discuss the use-case for each:


    Photo by Adeolu Eletu on Unsplash

    Homegrown solution: This can require significant investment to build and ongoing cost to support but if your desire at the end result is a completely customizable (and private) solution, investing in some or all of these capabilities may be best.

    A noble undertaking, some of our customers have gone in this direction. The upside is flexibility and lower (hardware) operating cost. The downside is higher investment and ongoing operation overhead.

    Photo by Kaleidico on Unsplash

    Attribution providers (Mobile Measurement Platforms): Analytics and Attribution providers, such as AppFlyer and Tenjin, offer impression-level reporting as part of their offerings. They have also built out API integrations so that the data can be easily exported to a BI tool or other analytics aggregator.

    Note: These solutions vary in cost but often make the most sense when using them for attribution of user acquisition campaigns.

    Mobile Analytics Platforms: By nature analytics platforms are built to capture a set of unstructured – or custom—structured events. App developers fire the event to their platform of choice, then capture and store it alongside of their analytics data. This can be beneficial because a natural extension of user level revenue is to start comparing this information against other user events and attributes. Be warned: it can cause additional parsing and transforming complexity to get the data usable!

    Note: For app developers that do not want to build out the infrastructure themselves and are not pursuing paid user acquisition, AdLibertas recommends Firebase as the best option for capturing impression-level data. Firebase also offers a very generous free tier; for many small and mid-size app developers they will be able to use Firebase without incurring cost.

    AdLibertas Audience Reporting: Our customers have been struggling with the architecture and usability of the other solutions discussed so we’ve built a product suite to help them quickly and easily capture, store and use the impression-level data.

    Notes: If you’re interested in easy, accurate access to your user-level revenue by event, action or chain of actions, check out our product page or see a demo by watching the video to the left.




    User level ad revenue offers a new level of granularity for mobile app developers. This granularity opens new types of analysis that can be performed, such as understanding how ads are performing for a set of users. The increase in granularity comes with additional technical challenges for capturing and processing the data, but for app developers looking to take their analytics to the next level impression-level data is a must.