Інтеграція рекламної мережі AdMob у мобільний додаток
AdMob — це не просто «додати банер». Неправильна інтеграція призводить до двох наслідків: низький eCPM через невдалу конфігурацію таргетингу та відхилення у Google Play/App Store через порушення політики розміщення реклами. Обидва наслідки виникають через неуважне читання документації.
Ініціалізація та GDPR
З 2023 року AdMob вимагає інтеграції User Messaging Platform (UMP) для відповідності GDPR/CCPA. Без запиту на згоду реклама в EU показується без персоналізації (non-personalized) — eCPM падає в 3–5 разів.
// Android
val params = ConsentRequestParameters.Builder()
.setTagForUnderAgeOfConsent(false)
.build()
ConsentInformation.getInstance(context).requestConsentInfoUpdate(
activity, params,
{
if (ConsentInformation.getInstance(context).isConsentFormAvailable) {
UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { error ->
// Після відображення форми — ініціалізуємо AdMob
MobileAds.initialize(context)
}
} else {
MobileAds.initialize(context)
}
},
{ error -> /* обробка помилки */ }
)
MobileAds.initialize має вироблятися строго після отримання статусу згоди, але лише один раз протягом життя додатку. Виклик до consent-flow → реклама показується без коректного таргетингу.
Формати та їх розміщення
Банери (AdaptiveBanner) — не використовуйте фіксовані розміри BANNER (320x50). AdaptiveBanner адаптується до ширини екрана та забезпечує eCPM на 10–20% вищий за рахунок кращого заповнення:
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
context, adContainerWidth
)
Політика Google: банер не повинен перекривати контент та бути закріплений внизу або вгорі екрана. Плаваючі банери, банери поверх кнопок — причина блокування.
Interstitial — показуйте лише в природних паузах: між рівнями, після завершення завдання. Ліміт: не частіше одного разу на 60 секунд. Попередньо завантажуйте через InterstitialAd.load(), показуйте по готовності — interstitialAd.show(). Показ під час натиснення кнопки — порушення політики, App Review це виловлює.
Rewarded — найвищий eCPM. Користувач свідомо дивиться рекламу за нагороду (життя у грі, монети). Обов'язково: нагородити лише в onUserEarnedReward, не в onAdDismissed.
rewardedAd.fullScreenContentCallback = object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
// НЕ нагороджуйте тут — користувач міг закрити рекламу рано
}
}
rewardedAd.show(activity) { rewardItem ->
// Нагородьте лише тут
addReward(rewardItem.amount)
}
Медіація для збільшення коефіцієнту заповнення
Чистий AdMob часто не забезпечує 100% коефіцієнт заповнення в деяких регіонах. Google Ad Manager з медіацією дозволяє підключити кілька мереж (Meta Audience Network, Unity Ads, AppLovin) — AdMob вибирає мережу з найвищим eCPM для кожного показу.
Налаштування медіації — в консолі AdMob, інтеграція адаптерів для кожної мережі через Gradle/CocoaPods.
Графіки роботи — 1–3 дні залежно від форматів: базова інтеграція з UMP та одним форматом — 1 день; повний стек медіації з кількома мережами — 3 дні.







