Catch up on everthing we announced at this year's Firebase Summit. Learn more

Optimize AdMob ad frequency using Firebase

Solution overview

What is ad frequency optimization?

Whether your app is hybrid-revenue or ads-revenue driven, optimizing ads revenue and keeping a high-quality user experience can be tricky. Ads are a great source of revenue, but a high frequency of ads can provide a negative user experience and might lead to user churn.

There is no "one ad frequency suits all" approach for any app; ads performance varies greatly from app to app and from audience to audience. You might be concerned that increasing ad frequency could have a negative impact on user experience or retention, but you might also be curious to see if it could lead to an increase in revenue and engagement when instrumented properly, keeping engagement metrics in check.

Graph showing changes in ARPDAU, net daily revenue, and retention with increasing ad frequency
Figure 1: Optimal ad frequency maximizes revenue with minimal impact to churn

To resolve these unknowns, Firebase offers tools that help you test and then make data-driven decisions about the optimal ad frequency:

  • Using Firebase, you can A/B test the performance of various ad frequencies with a small subset of users.

  • You can observe the test results and review recommendations from Firebase about which ad frequency is performing better and with minimal impact on retention.

  • Once you're confident that the changes will likely have a positive impact, you can roll out the changes to more of your users with a click of a button.

Business case and the value

Developers and publishers using Google AdMob and Firebase tools for optimizing their ad frequencies enjoy major revenue uplifts without adversely impacting user experience.

Qtonz logo

Qtonz uses Firebase to boost ad revenue by 4x and grow engagement by customizing the experience for different stages of the user journey.

  • Fewer ads for new users: They reduced the number of ads that a user sees on their first day using the app. They also changed the placement so that ads only appear after users complete a key in-app action. These changes made ads less intrusive.
  • More frequent ads for engaged users: For users with longer session lengths, Qtonz increased the number of ads shown from 2 to 3-4 per day.

Implementing the solution

To implement this solution, you can follow our step-by-step tutorial (find an overview of this tutorial later on this page).

In this multistep tutorial, you'll learn how to use Firebase to test various frequency caps for Google AdMob ads in your app. It uses interstitial ads as the example test case, but you can extrapolate and use these same steps to test frequency capping for other ad formats.

This tutorial assumes that you already use AdMob in your app and that you'd like to test whether changing the frequency of an interstitial ad unit will have an impact on your app's revenue or other metrics. However, if you don't already use AdMob in your app, that's ok! The steps in this tutorial can also help you understand what ad frequency you should use in your app.

Products and features used for this solution

Google AdMob

Google AdMob enables you to create ad units with various ad frequencies or refresh rates that will be served within your app. When you link AdMob with Firebase, AdMob sends ad revenue information to Firebase to improve ad strategy optimization.

Google Analytics

Google Analytics gives you insight into user engagement, retention, and monetization metrics like total revenue, AdMob revenue, purchase revenue, and much more. It also allows you to create user audiences and segments.

Firebase Remote Config

Firebase Remote Config enables you to dynamically change and customize the behavior and appearance of your app for desired user segments — all without publishing a new version of your app. In this tutorial, you'll use Remote Config parameters to control which ad unit is shown to your users.

Firebase A/B Testing

Firebase A/B Testing provides the interface and infrastructure to run product and marketing experiments in your app. It takes care of distributing experiment variants to users, and then performs statistical analysis to determine if an experiment variant is outperforming the control group based on your selected key metric, such as revenue or user retention.


Flowchart of solution and products used


Solution tutorial overview

Go directly to the step-by-step tutorial

  1. Use AdMob to create new ad unit variants for testing

    1. Create two new interstitial ad units in AdMob.

    2. Set the Frequency capping of each ad unit to an impressions per user value that you want to test.

    3. Implement the ad unit placements within your app's code.

  2. Set up an A/B test in the Firebase console

    1. Define testing basics, targeting, and the goals that the test will run against.

    2. Define test variants and set up the Remote Config parameter that will control which ad unit is shown to users in the test.

  3. Handle Remote Config parameter values in your app's code

    1. Use the Remote Config parameter in your app.

    2. Implement the logic for displaying the ad unit based on the parameter's value.

  4. Start the A/B test and review the test results in the Firebase console

    1. After starting the test and allowing it to run for a few days or weeks, check the Firebase console for whether the A/B test has a winning variant based on the primary goal of the A/B test.

    2. Review the impact on secondary metrics for each variant to ensure the variants didn't cause unintended negative impacts to those metrics.

  5. Decide whether to roll out the new ad unit with the updated ad frequency

    1. If A/B Testing determines that the variant showing the new ad format is the winner, you can start showing the ad format to all users targeted in the experiment, all users of your app, or to a subset of your users.

    2. If a clear winner isn't yet determined, you can either continue running the experiment to gather more data, or end the experiment if it's already been running for a long period with inconclusive results.

Glossary