Get personalized optimization tips, understand your account health and set up completion on the improved "My AdMob page".

Reports

Using impression-level ad revenue

Impression-level ad revenue helps you calculate more precise data on the lifetime value (LTV) of your app users. LTV is an important metric that can help guide your user acquisition and monetization strategy. 

When you enable impression-level ad revenue, AdMob sends back the ad revenue for each ad impression shown on the user's device. You can then use this data in your internal systems or other third-party tools to better understand your users’ activities.

Consider using the cohort report if you’d like AdMob to aggregate and analyze your LTV data.

How it works

When an ad impression is shown, the Google Mobile Ads SDK sends the revenue value of the ad, the currency, and the level of precision to your app. Note that USD is always used as the currency for impression-level ad revenue.

The following table includes the levels of precision available and what they mean. 

Level of precision What it means
Precise

The precise value paid for the ad. This is only available for the AdMob Network and your bidding ad sources.

Note: If AdMob is unable to provide a precise value for the bidding ad source, the precision will be estimated.
Estimated

An ad value estimated from aggregated data. 

If you’ve entered the ad source credentials for your third-party ad sources in waterfall mediation, AdMob uses an average based on historical data to approximate the value.
Publisher provided The publisher provided ad value is the manual CPM entered for your waterfall ad source instance in a mediation group. If you haven’t entered the ad source’s credentials or ad unit mapping information, or AdMob is unable to collect enough data to estimate the ad value for the third-party ad source, it will use the manual eCPM you’ve entered. 
Unknown

Unknown is used when there are no sources of data available for AdMob to calculate a revenue value.

This occurs for bidding ad sources for which AdMob provides an estimated revenue value, if there is not enough data to calculate it. Also note that the precision will be unknown for AdMob campaigns and house ads. AdMob returns a value of $0 for those cases.

Get started

To use impression-level ad revenue, complete the following steps:

  1. Make sure you’re using the minimum required Google Mobile Ads SDK version:
  2. Turn on the setting for impression-level ad revenue in your AdMob account:
    1. Sign in to your AdMob account at https://apps.admob.com.
    2. Click Settings in the sidebar.
    3. Click the Account information tab.
    4. Click the Impression-level ad revenue toggle to turn on this setting.
  3. Implement the paid event handler in your app. Use the instructions for Android, iOS, or Unity.

FAQs

Below are the answers to some frequently asked questions about impression-level ad revenue. 

Expand all  Collapse all
How is impression-level ad revenue different from AdMob reports and data from AdMob API?    

Impression-level ad revenue is best used for more granular revenue data and for LTV calculation. You should consider using impression-level ad revenue if you:

  • Need more granular LTV data
  • Calculate LTV or return on ad spend (ROAS) on your own
  • Use an internal system or third-party tool for data analysis and/or ROAS calculation
  • Have developer resources to implement impression-level ad revenue 

Otherwise, you should consider using the cohort report.

Impression-level ad revenue is supported out of the box by a number of measurement and analytics companies. You can check the list of supported companies for Android, iOS, and Unity. If your company isn’t supported yet, you may still be able to pass the impression-level ad revenue data directly to your third-party SDK.
How should I use impression-level ad revenue data?
Impression-level ad revenue will provide you with total revenue and impressions. Total revenue is the sum of ad_value from all impression-level ad revenue events (also called paid events in the SDK API). Based on what you collect from the SDK, you can view this data by ad source, ad unit, ad format, or more. 
Note: To determine which ad source served a specific paid event, use the MediationAdapterClassName() method on any of the ad formats. Learn more about testing with mediation for Android, iOS, and Unity.

The total impressions is the number of LTV pingback events. Make sure to include any events with zero ad_value to prevent underreporting. 

Why do I see a discrepancy in the data? 

Some level of discrepancy is expected with impression-level ad revenue for AdMob and third party networks. Depending on your calculation, the comparison of the impression-level ad revenue data to your AdMob reports or another data source may vary. Make sure you’re not filtering out any events when collecting the impression-level ad revenue data and calculating LTV. 

If you’re seeing a discrepancy on values with estimated precision, this can be caused by: 

  • Floor changes and eCPM fluctuations: Since values with estimated precision are calculated using an average based on historical data, ad unit floor changes or other CPM fluctuations can cause overestimation or underestimation. 
  • New ad source instances: If optimization is enabled, AdMob may take up to 5 days to generate data for a new ad source instance. In the meantime, publisher provided precision will be used.

If you’re seeing a discrepancy on values with publisher-provided precision, this can be caused by a mismatch between the manual eCPM and the third-party ad unit floor.

If you use manual eCPM in the mediation waterfall, this eCPM value is used to calculate the impression-level ad revenue data. If this eCPM is primarily used for ordering waterfall ad source instances or does not match the 3P ad unit floor, this can cause discrepancy, since the manual eCPM will not be reflective of the actual CPMs the third-party delivers.

We recommend that you enter the credentials for the waterfall ad sources to enable AdMob to estimate the eCPM value and reduce discrepancies.

Additionally, AdMob may apply invalid traffic filtering after the impression has served. In those cases, you may find discrepancies between what is shown in AdMob reporting and the data that was captured via the impression-level ad revenue data API prior to the filter being applied.

Can I integrate with a third-party App Attribution Partner (AAP)?
You can check the list of supported companies for Android, iOS, and Unity. If your company isn’t supported yet, you may still be able to pass the impression-level ad revenue data directly to your third-party SDK.
Why am I seeing ad_value = $0?

AdMob will report a value of $0 when there are no sources of data available for AdMob to calculate the revenue. Precision will be reported as Unknown in those cases.

This occurs for bidding ad sources for which AdMob provides an estimated revenue value, if there is not enough data to calculate it. This also occurs when the ad source is an AdMob campaign.

I’m seeing null for the ad source from the LTV pingback. Why is this happening?

If you’re seeing null for an ad source using our mediation adapter callback, it's likely due to an ad loading error: 

  • iOS: Null if no ad was returned
  • Android: Null if the ad failed to load
Was this helpful?
How can we improve it?

Need more help?

Sign in for additional support options to quickly solve your issue

Search
Clear search
Close search
Google apps
Main menu
Search Help Center
false
false
true
true
73175
false
false