Інтеграція рекламної мережі Unity Ads у мобільний додаток
Unity Ads — рекламна мережа, яку частіше вибирають для ігрових додатків. Причина: рекламодавці в мережі Unity — в основному ігрові студії, що забезпечує високий eCPM для ігрової аудиторії. Для non-gaming додатків Unity Ads зазвичай програє AdMob за коефіцієнтом заповнення.
Ініціалізація SDK
Unity Ads SDK 4.x (актуально на 2024):
// Android
UnityAds.initialize(context, "GAME_ID", isTestMode, object : IUnityAdsInitializationListener {
override fun onInitializationComplete() {
// SDK готовий, завантажуємо рекламні юніти
loadInterstitial()
}
override fun onInitializationFailed(error: UnityAds.UnityAdsInitializationError, message: String) {
Log.e("UnityAds", "Init failed: $message")
}
})
isTestMode = true обов'язковий під час розробки. Реальні оголошення в тестовому режимі не показуються — це захист від випадкового показу production-реклами в dev-збірках.
Rewarded Video — основний формат
Unity Ads спеціалізується на rewarded video. Паттерн завантаження та показу:
fun loadAd() {
UnityAds.load("rewardedVideo", object : IUnityAdsLoadListener {
override fun onUnityAdsAdLoaded(placementId: String) {
isAdReady = true
}
override fun onUnityAdsFailedToLoad(
placementId: String,
error: UnityAds.UnityAdsLoadError,
message: String
) {
// Повторити через 30 секунд або fallback на іншу мережу
}
})
}
fun showAd(activity: Activity) {
if (!isAdReady) return
UnityAds.show(activity, "rewardedVideo", object : IUnityAdsShowListener {
override fun onUnityAdsShowComplete(
placementId: String,
state: UnityAds.UnityAdsShowCompletionState
) {
if (state == UnityAds.UnityAdsShowCompletionState.COMPLETED) {
grantReward() // Нагородьте лише на COMPLETED, не на SKIPPED
}
}
})
}
SKIPPED — користувач закрив рано; COMPLETED — дивився до кінця. Нагороджуйте лише за COMPLETED — вимога Unity та здоровий глузд.
Placement IDs та конфігурація
Placement IDs створюються в Unity Dashboard (dashboard.unity3d.com). Типові плейсменти: rewardedVideo, interstitial, banner. Для кожного плейсменту налаштовується тип реклами, eCPM floor, частота показу.
Місце Unity Ads в медіації
Оптимальна архітектура для ігрових додатків: AdMob медіація + Unity Ads адаптер. AdMob запитує Unity Ads через медіацію та вибирає найвищий eCPM. Нативна інтеграція Unity Ads виправдана лише якщо AdMob не підходить (наприклад, додаток розроблений в Unity Engine та вже використовує Unity Gaming Services).
GDPR
Unity Ads підтримує UnityAds.setPrivacyConsent() та метадані через MetaData:
val gdprMetadata = MetaData(context)
gdprMetadata["gdpr.consent"] = true
gdprMetadata.commit()
Без явної згоди в EU — Unity показує non-targeted рекламу з пониженим eCPM.
Графіки роботи — 1–3 дні: ініціалізація SDK, налаштування плейсментів, GDPR consent flow, тестування на реальних пристроях.







