Інтеграція рекламної мережі IronSource у мобільний додаток
Багато розробників стикаються з тим, що після підключення IronSource реклама не показується або падає fill rate. Ми за 5+ років інтегрували IronSource у понад 20 проектів — від казуальних ігор до складних сервісів. Одна з типових помилок — ігнорування порядку ініціалізації. IronSource (тепер Unity LevelPlay) вимагає послідовного виклику: спочатку init(), потім завантаження рекламних форматів. Якщо цього не зробити — на Android виникає IronSourceError code 510, а на iOS rewarded відео просто не відображається. У цій статті розберемо, як правильно підключити IronSource, налаштувати медіацію та не втратити дохід.
Типові проблеми при підключенні
Найчастіше питання в підтримці: «Банер завантажується, а rewarded не показується». Причина майже завжди одна — не дочекалися події onInitializationComplete перед викликом IronSource.loadRewardedVideo(). SDK асинхронний, ініціалізація на слабких пристроях займає 1.5–3 секунди, і якщо навантажити його одразу після Application.onCreate(), адаптер AdMob або Meta не встигає зареєструватися.
На iOS картина інша: ISInitializationDelegate відпрацьовує швидко, але ISRewardedVideoDelegate потрібно навісити до IronSource.init(), інакше пропускаєш перший rewardedVideoHasChangedAvailability(true) і отримуєш порожній екран там, де має бути реклама.
Ще одна грабля — GDPR та ATT. IronSource вимагає передачі consent до ініціалізації через IronSource.setMetaData("do_not_sell", "true") та IronSource.setConsent(true/false). Якщо consent-екран показується після init(), частина мереж у медіації отримує неправильний прапор і просто не віддає рекламу — без жодних помилок у логах.
| Платформа | Порядок ініціалізації | Типова помилка |
|---|---|---|
| Android | init() → завантаження реклами |
code 510 при паралельному виклику |
| iOS | Навісити делегати до init() |
Пропущений перший callback availability |
Як уникнути помилки code 510 на Android?
Щоб не отримати IronSourceError code 510, завжди використовуйте колбек onInitializationComplete. Приблизна послідовність:
IronSource.init(this, appKey, object : IronSourceInitListener { override fun onInitializationComplete() { // Тепер можна завантажувати рекламу IronSource.loadRewardedVideo() } override fun onInitializationFailed(error: IronSourceError) { // Обробити помилку } }) Ніколи не викликайте loadRewardedVideo одразу після init без очікування колбеку.
Чому rewarded відео не показується на iOS?
На iOS делегати ISRewardedVideoDelegate повинні бути призначені до виклику IronSource.init(). Якщо ви зробите це після, перший rewardedVideoHasChangedAvailability(true) не буде викликано, і кнопка «Дивитися рекламу» залишиться сірою. Виправлення: налаштуйте делегати в application:didFinishLaunchingWithOptions: до ініціалізації.
Як ми підключаємо IronSource
Процес починається з аудиту поточного стану: які рекламні SDK вже є в додатку, чи є конфлікти з com.google.android.gms:play-services-ads або Meta Audience Network за версіями. IronSource вимагає строгих версій адаптерів — неспівпадіння на мінорну версію ламає медіацію мовчки.
Стек для Android:
implementation 'com.ironsource.sdk:mediationsdk:7.9.0' implementation 'com.ironsource.adapters:admobadapter:4.3.40' implementation 'com.ironsource.adapters:metaadapter:4.3.43' Додаємо IronSourceInitListener у клас Application, а не в Activity — це дозволяє повторно використовувати вже ініціалізований інстанс при зміні екранів. Для Unity-проектів підхід інший: IronSourceUnityWrapper.CallStaticAndroid блокує main thread при неправильному налаштуванні threading model.
Серверна верифікація rewarded реалізується через Rewarded Video Server-Side Verification (SSV): IronSource робить GET-запит на ваш endpoint з підписом hmac-sha256, ви верифікуєте та видаєте винагороду. Без SSV винагороди можна накрутити через Charles Proxy за 10 хвилин — це реальний вектор атаки в іграх. Як показує практика, правильна реалізація SSV економить до 40% бюджету на антифрод.
Аналітику підключаємо через ISImpressionDataDelegate: кожен impression передає revenue, ad_unit, country, instance_name — цього достатньо для побудови дашборду eCPM по мережах у реальному часі. Медіація з IronSource дає на 30% вищий eCPM порівняно з використанням лише AdMob — особливо це помітно на регіонах з низькою конкуренцією.
| Адаптер | Версія | Мінімальна версія SDK |
|---|---|---|
| AdMob | 4.3.40 | 7.9.0 |
| Meta | 4.3.43 | 7.9.0 |
| Unity Ads | 4.3.41 | 7.9.0 |
Що входить в інтеграцію
- Аудит поточних рекламних SDK та версій
- Реєстрація додатку в консолі Unity LevelPlay, отримання App Key
- Налаштування рекламних блоків (placement ID) для кожного формату
- Інтеграція SDK з правильним порядком ініціалізації та consent-прапорами
- Підключення адаптерів потрібних мереж (AdMob, Meta, Applovin, Unity Ads)
- Реалізація SSV-ендпоінту для rewarded (якщо потрібен)
- Тестування на 10+ реальних пристроях з увімкненими test device ID
- Моніторинг fill rate та eCPM після публікації
- Документація щодо прапорів consent та test mode
- Підтримка після запуску — 1 місяць
Терміни та вартість
Базова інтеграція з одним форматом реклами займає 1–2 дні. Повне підключення з медіацією, SSV та аналітикою — 2–3 дні. Вартість розраховується індивідуально після аналізу поточного стеку проекту. Ми гарантуємо прозорі терміни та фіксовану вартість. Зв'яжіться з нами для оцінки вашого проекту — отримайте консультацію безкоштовно. Замовте інтеграцію IronSource та збільште дохід від реклами.







