Інтеграція рекламної мережі IronSource у мобільний додаток
IronSource у 2023 році став частиною Unity під брендом Unity LevelPlay — але SDK, документація та адаптери по-прежнему живуть під старим іменем у більшості production-проектів. Якщо ви підключаєте його вперше або мігруєте зі старого com.ironsource.sdk, важливо розуміти, що архітектура LevelPlay побудована навколо єдиного IronSource.init() з послідовною ініціалізацією, а не паралельною — і порушення цього порядку дає IronSourceError code 510 на Android при першому запиті реклами.
Типові проблеми при підключенні
Найчастіше запитання на підтримці: «Банер завантажується, але rewarded не показується». Причина майже завжди одна — не дочекалися evento 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(), частина мереж в медіації отримує неправильний флаг та просто не отдає рекламу — без будь-яких помилок в логах.
Як ми підключаємо 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 хвилин — це реальний вектор атаки в іграх.
Аналітику підключаємо через ISImpressionDataDelegate: кожний impression передає revenue, ad_unit, country, instance_name — цього достатньо для побудови дашборду eCPM за мережами в реальному часі.
Етапи роботи
- Аудит залежностей та версій SDK в проекті
- Реєстрація додатку в консолі Unity LevelPlay, отримання App Key
- Налаштування рекламних блоків (placement ID) для кожного формату
- Інтеграція SDK з правильним порядком ініціалізації та consent-флагами
- Підключення адаптерів потрібних мереж (AdMob, Meta, Applovin, Unity Ads)
- Реалізація SSV-ендпоінту для rewarded (якщо потрібен)
- Тестування на реальних пристроях з включеними test device ID
- Моніторинг коефіцієнту заповнення та eCPM після публікації
Графіки роботи
Базова інтеграція з одним форматом реклами — 1–2 дні. Повне підключення з медіацією, SSV та аналітикою — 2–3 дні. Стоимість рассчитывается індивідуально після аналізу поточного стека проекту.







