앱이 하이브리드 수익형이거나 광고 수익으로 구동되는 경우에는 광고 수익을 최적화하고 고품질 사용자 환경을 유지하는 것이 어려울 수 있습니다. 광고는 훌륭한 수익원이지만 광고 게재빈도가 높으면 사용자 환경에 부정적인 영향을 주고 사용자 앱 제거로 이어질 수 있습니다.
어떤 앱이든 '모든 경우에 적합한 하나의 광고 게재빈도'는 존재하지 않습니다. 광고 실적은 앱에 따라서도, 잠재고객에 따라서도 크게 달라집니다. 광고 게재빈도를 늘리면 사용자 환경 또는 유지율에 부정적인 영향을 줄 수 있다고 걱정할 수 있지만 올바르게 계측된 경우에는 참여도 측정항목을 적절하게 유지하면서도 수익 및 사용자 참여 증가로 이어질 수 있지 않을까 궁금해 하실 수도 있습니다.
그림 1: 최적의 광고 게재빈도로 앱 제거 영향을 최소화하고 수익 극대화
이러한 미지의 문제를 해결하기 위해 Firebase에서는 최적의 광고 게재빈도를 테스트하고 이에 대해 데이터 중심의 의사결정을 내릴 수 있게 도와주는 도구들이 제공됩니다.
Firebase를 사용하면 소규모 사용자 하위 집합을 대상으로 여러 가지 광고 게재빈도의 성능에 대해 A/B 테스트를 수행할 수 있습니다.
테스트 결과를 관찰하고 성능이 더 뛰어나고 유지율에 대한 영향이 최소화된 광고 게재빈도에 대한 Firebase의 권장사항을 검토할 수 있습니다.
변화에 따른 긍정적인 영향을 확신할 수 있으면 버튼 하나만 클릭하여 더 많은 사용자들에게 변경사항을 적용할 수 있습니다.
비즈니스 사례와 가치
광고 게재빈도를 최적화하기 위해 Google AdMob 및 Firebase 도구를 사용하는 개발자 및 게시자는 사용자 환경에 대한 부정적인 영향 없이 중요한 수익 증가 효과를 얻을 수 있습니다.
Qtonz는 Firebase를 사용해서 사용자 경험의 여러 단계에 대해 경험을 맞춤설정함으로써 광고 수익을 4배 늘리고 참여도를 높일 수 있었습니다.
신규 사용자에 대해서는 광고 수 감소: 이 회사는 앱 사용 첫날 사용자에게 표시되는 광고 수를 줄였습니다. 또한 사용자가 중요한 인앱 액션을 완료한 후에만 광고가 표시되도록 게재위치도 변경했습니다. 이러한 변화를 통해 광고로 인한 방해를 줄여주었습니다.
참여도가 높은 사용자에게는 광고 게재빈도 증가: Qtonz는 사용 세션 길이가 긴 사용자에 대해 하루 2회에서 3-4회로 광고 표시 횟수를 늘렸습니다.
솔루션 구현
이 솔루션을 구현하려면 단계별 튜토리얼을 따라할 수 있습니다(이 페이지 뒷 부분에서 이 튜토리얼의 개요 참조).
이 다단계 튜토리얼에서는 Firebase를 사용하여 앱에서 Google AdMob 광고에 대한 여러 최대 게재빈도를 테스트하는 방법을 알아봅니다. 여기에서는 예제 테스트 사례로 전면 광고가 사용되지만, 이를 기반으로 해서 동일한 단계를 사용하여 다른 광고 형식에 대해서도 최대 게재빈도를 테스트할 수 있습니다.
이 튜토리얼에서는 앱에서 이미 AdMob을 사용 중이고 전면 광고 단위의 게재빈도를 변경하여 앱 수익 또는 기타 측정항목에 미치는 영향을 테스트한다고 가정합니다. 하지만 앱에서 아직 AdMob을 사용하지 않더라도 문제가 없습니다. 또한 이 튜토리얼의 단계를 통해 앱에 사용할 광고 게재빈도를 이해할 수 있습니다.
이 솔루션에 사용된 제품 및 기능
Google AdMob
Google AdMob을 사용하면 앱 내에서 제공되는 여러 가지 광고 게재빈도 또는 새로고침 빈도를 사용하여 광고 단위를 만들 수 있습니다. AdMob을 Firebase에 연결하면 AdMob이 광고 전략 최적화를 향상시키기 위해 광고 수익 정보를 Firebase로 전송합니다.
Google Analytics
Google Analytics는 사용자 참여 및 유지율과 총수익, AdMob 수익, 구매 수익 등의 수익 창출 측정항목에 대한 유용한 정보를 제공합니다. 또한 사용자 잠재고객 및 세그먼트를 만들 수 있게 해줍니다.
Firebase Remote Config
Firebase Remote Config를 사용하면 새 앱 버전을 게시하지 않고도 원하는 사용자 세그먼트에 맞게 앱의 동작과 모양을 동적으로 변경하고 맞춤설정할 수 있습니다. 이 튜토리얼에서는 Remote Config 파라미터를 사용하여 사용자에게 표시되는 광고 단위를 제어합니다.
Firebase A/B Testing
Firebase A/B Testing은 앱에서 제품 및 마케팅 실험을 실행할 수 있는 인터페이스와 인프라를 제공합니다. 사용자에게 실험 변형을 배포한 다음 통계 분석을 실행하여 수익 또는 사용자 유지와 같은 선택한 주요 측정항목을 기반으로 실험 변형이 통제 그룹보다 우수한지 확인합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-23(UTC)"],[],[],null,["**Solution overview**\n\nWhat is ad frequency optimization?\n\nWhether your app is hybrid-revenue or ads-revenue driven, optimizing ads revenue\nand keeping a high-quality user experience can be tricky. Ads are a great source\nof revenue, but a high frequency of ads can provide a negative user experience\nand might lead to user churn.\n\nThere is no \"one ad frequency suits all\" approach for any app; ads performance\nvaries greatly from app to app and from audience to audience. You might be\nconcerned that increasing ad frequency could have a negative impact on user\nexperience or retention, but you might also be curious to see if it could lead\nto an increase in revenue and engagement when instrumented properly, keeping\nengagement metrics in check.\n***Figure 1**: Optimal ad frequency maximizes revenue with minimal impact to churn*\n\nTo resolve these unknowns, Firebase offers tools that help you test and then\nmake data-driven decisions about the optimal ad frequency:\n\n- Using Firebase, you can A/B test the performance of various ad frequencies\n with a *small subset* of users.\n\n- You can observe the test results and review recommendations from Firebase\n about which ad frequency is performing better and with minimal impact on\n retention.\n\n- Once you're confident that the changes will likely have a positive impact,\n you can roll out the changes to more of your users with a click of a button.\n\nBusiness case and the value\n\nDevelopers and publishers using Google AdMob and Firebase tools for\noptimizing their ad frequencies enjoy major revenue uplifts without adversely\nimpacting user experience.\n\n|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| | [**Qtonz**](/use-cases/qtonz-mbit-music) 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. |\n\nImplementing the solution\n\nTo implement this solution, you can follow our step-by-step tutorial (find an\noverview of this tutorial later on this page). \n\nIn this multistep tutorial, you'll learn **how to use Firebase to test various\nfrequency caps for Google AdMob ads in your app** . It uses\n[interstitial ads](https://support.google.com/admob/answer/7311435)\nas the example test case, but you can extrapolate and use these same steps to\ntest frequency capping for\n[other ad formats](https://support.google.com/admob/answer/6128738).\n\nThis tutorial assumes that you already use AdMob in your app and that you'd\nlike to test whether changing the *frequency* of an interstitial ad unit will\nhave an impact on your app's revenue or other metrics. However, if you don't already\nuse AdMob in your app, that's ok! The steps in this tutorial can also help\nyou understand what ad frequency you should use in your app.\n| **Tip:** If there's a term that you're not familiar with, check out the [glossary](#glossary) at the bottom of this page.\n\nProducts and features used for this solution\n\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Google AdMob \u003e [Google AdMob](/docs/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 \u003e [Google Analytics](/docs/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 \u003e [Firebase Remote Config](/docs/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 \u003e app* . In this tutorial, you'll use Remote Config parameters to control which ad unit is shown to your users. Firebase A/B Testing \u003e [Firebase A/B Testing](/docs/ab-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. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nSolution tutorial overview\n\n[Go\ndirectly to the step-by-step tutorial](/docs/tutorials/optimize-ad-frequency/step-1)\n\n1. [**Use AdMob to\n create new ad unit variants for testing**](/docs/tutorials/optimize-ad-frequency/step-1)\n\n 1. Create two new interstitial ad units in AdMob.\n\n 2. Set the *Frequency capping* of each ad unit to an impressions per user\n value that you want to test.\n\n 3. Implement the ad unit placements within your app's code.\n\n2. [**Set up an A/B test\n in the Firebase console**](/docs/tutorials/optimize-ad-frequency/step-2)\n\n 1. Define testing basics, targeting, and the goals that the test will run\n against.\n\n 2. Define test variants and set up the Remote Config parameter that\n will control which ad unit is shown to users in the test.\n\n3. [**Handle\n Remote Config parameter values in your app's code**](/docs/tutorials/optimize-ad-frequency/step-3)\n\n 1. Use the Remote Config parameter in your app.\n\n 2. Implement the logic for displaying the ad unit based on the parameter's\n value.\n\n4. [**Start the A/B test\n and review the test results in the Firebase console**](/docs/tutorials/optimize-ad-frequency/step-4)\n\n 1. After starting the test and allowing it to run for a few days or weeks,\n check the Firebase console for whether the A/B test has a winning\n variant based on the primary goal of the A/B test.\n\n 2. Review the impact on secondary metrics for each variant to ensure the\n variants didn't cause unintended negative impacts to those metrics.\n\n5. [**Decide whether to\n roll out the new ad unit with the updated ad frequency**](/docs/tutorials/optimize-ad-frequency/step-5)\n\n 1. If A/B Testing determines that the variant showing the new ad format\n is the winner, you can start showing the ad format to all users targeted\n in the experiment, all users of your app, or to a subset of your users.\n\n 2. If a clear winner isn't yet determined, you can either continue running\n the experiment to gather more data, or end the experiment if it's\n already been running for a long period with inconclusive results.\n\nGlossary\n\n\u003cbr /\u003e\n\nView a list of common terms for this solution\n\n\u003cbr /\u003e\n\n- **AdMob revenue** : AdMob network and open bidding revenue\n\n- **IAP revenue**: In app purchases revenue\n\n- **Total revenue**: Total revenue\n\n- **Retention**: Retention as a key metric in A/B tests is tracked as 1 day,\n 2-3 days, 4-7 days, 8-14 days, or 15+ days user retention\n\n- **Remote Config parameter**: The configurable parameter used to control\n which ad unit is show to users. In this guide, it will be an ad unit ID.\n\n- **Baseline configuration** : The as-is configuration in any particular A/B test\n --- also known as the control. The control usually uses the default value for\n the Remote Config parameter, but it can be configured to use a new control\n value if needed.\n\n- **Variant configurations** : The variant configurations are the alternative\n configurations with different Remote Config parameter values that we would\n like to test against the baseline configuration.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e"]]