Optimize AdMob ad frequency using Firebase Stay organized with collections Save and categorize content based on your preferences.
Solution overview
What is ad frequency optimization?
Whether your app is hybrid-revenue or ads-revenue driven, optimizing ads revenueand keeping a high-quality user experience can be tricky. Ads are a great sourceof revenue, but a high frequency of ads can provide a negative user experienceand might lead to user churn.
There is no "one ad frequency suits all" approach for any app; ads performancevaries greatly from app to app and from audience to audience. You might beconcerned that increasing ad frequency could have a negative impact on userexperience or retention, but you might also be curious to see if it could leadto an increase in revenue and engagement when instrumented properly, keepingengagement metrics in check.
To resolve these unknowns, Firebase offers tools that help you test and thenmake data-driven decisions about the optimal ad frequency:
Using Firebase, you can A/B test the performance of various ad frequencieswith asmall subset of users.
You can observe the test results and review recommendations from Firebaseabout which ad frequency is performing better and with minimal impact onretention.
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 usingGoogle AdMob and Firebase tools foroptimizing their ad frequencies enjoy major revenue uplifts without adverselyimpacting user experience.
![]() | Qtonz uses Firebase to boost ad revenue by 4x and grow engagement by customizing the experience for different stages of the user journey.
|
Implementing the solution
To implement this solution, you can follow our step-by-step tutorial (find anoverview of this tutorial later on this page).
In this multistep tutorial, you'll learnhow to use Firebase to test variousfrequency caps forGoogle AdMob ads in your app. It usesinterstitial ads as the example test case, but you can extrapolate and use these same steps totest frequency capping forother ad formats.
This tutorial assumes that you already useAdMob in your app and that you'dlike to test whether changing thefrequency of an interstitial ad unit willhave an impact on your app's revenue or other metrics. However, if you don't alreadyuseAdMob in your app, that's ok! The steps in this tutorial can also helpyou understand what ad frequency you should use in your app.
Tip: If there's a term that you're not familiar with, check out theglossary at the bottom of this page.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 linkAdMob 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 useRemote 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. |
Solution tutorial overview
Go directly to the step-by-step tutorial
UseAdMob to create new ad unit variants for testing
Create two new interstitial ad units inAdMob.
Set theFrequency capping of each ad unit to an impressions per uservalue that you want to test.
Implement the ad unit placements within your app's code.
Set up an A/B test in theFirebase console
Define testing basics, targeting, and the goals that the test will runagainst.
Define test variants and set up theRemote Config parameter thatwill control which ad unit is shown to users in the test.
HandleRemote Config parameter values in your app's code
Use theRemote Config parameter in your app.
Implement the logic for displaying the ad unit based on the parameter'svalue.
Start the A/B test and review the test results in theFirebase console
After starting the test and allowing it to run for a few days or weeks,check theFirebase console for whether the A/B test has a winningvariant based on the primary goal of the A/B test.
Review the impact on secondary metrics for each variant to ensure thevariants didn't cause unintended negative impacts to those metrics.
Decide whether to roll out the new ad unit with the updated ad frequency
IfA/B Testing determines that the variant showing the new ad formatis the winner, you can start showing the ad format to all users targetedin the experiment, all users of your app, or to a subset of your users.
If a clear winner isn't yet determined, you can either continue runningthe experiment to gather more data, or end the experiment if it'salready been running for a long period with inconclusive results.
Glossary
View a list of common terms for this solution
AdMob revenue:AdMob network and open bidding revenue
IAP revenue: In app purchases revenue
Total revenue: Total revenue
Retention: Retention as a key metric in A/B tests is tracked as 1 day,2-3 days, 4-7 days, 8-14 days, or 15+ days user retention
Remote Config parameter: The configurable parameter used to controlwhich ad unit is show to users. In this guide, it will be an ad unit ID.
Baseline configuration: The as-is configuration in any particular A/B test— also known as the control. The control usually uses the default value fortheRemote Config parameter, but it can be configured to use a new controlvalue if needed.
Variant configurations: The variant configurations are the alternativeconfigurations with differentRemote Config parameter values that we wouldlike to test against the baseline configuration.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-11-25 UTC.
