Интеграция рекламной сети myTarget в мобильное приложение
myTarget — рекламная сеть VK Group, которая хорошо монетизирует приложения с российской аудиторией. Для большинства западных SDK (AdMob, IronSource) myTarget подключается как адаптер медиации, а не самостоятельно. Но если у вас приложение для СНГ-рынка и нужна прямая интеграция без лишних зависимостей — SDK работает автономно и закрывает все основные форматы.
Что часто идёт не так
Первая проблема — инициализация без явного слота. myTarget SDK требует передачи slotId уже при создании MyTargetView, а не после. Паттерн «создал вью → потом установил слот» не работает: объявление не запрашивается, ошибок в логах нет, просто пустое место.
На Android SDK добавляет android.permission.ACCESS_COARSE_LOCATION через манифест-слияние. Если в приложении нет геолокации, это вызывает вопросы у пользователей и может стать причиной замечаний при ревью в Google Play. Отключается явным <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove"/> в основном манифесте.
Нативная реклама через NativeAd требует обязательного вызова registerView() для каждого кликабельного элемента — иначе клики не трекаются и рекламодатель получает нулевую конверсию, что со временем снижает fill rate конкретно для вашего приложения.
Стек интеграции
Android (Kotlin):
// build.gradle
implementation 'com.my.target:mytarget-sdk:5.20.1'
// В Activity или Fragment
val adView = MyTargetView(context)
adView.setSlotId(YOUR_SLOT_ID)
adView.setListener(object : MyTargetView.MyTargetViewListener {
override fun onLoad(view: MyTargetView) { /* показываем */ }
override fun onFailedToLoad(reason: String, view: MyTargetView) { /* логируем */ }
})
adView.load()
iOS (Swift):
import MyTargetSDK
let adView = MTRGAdView(slotId: YOUR_SLOT_ID)
adView.delegate = self
adView.load()
GDPR-совместимость реализуется через MyTargetPrivacy.userConsent = .granted до первого запроса рекламы. Для российского рынка это менее критично, но для EU-пользователей — обязательно.
Форматы и их особенности
| Формат | Класс Android | Класс iOS | Специфика |
|---|---|---|---|
| Баннер | MyTargetView |
MTRGAdView |
Нужен slotId при создании |
| Интерстициал | InterstitialAd |
MTRGInterstitialAd |
Загрузка заранее, показ по готовности |
| Rewarded | RewardedAd |
MTRGRewardedAd |
Callback с типом и количеством награды |
| Нативная | NativeAd |
MTRGNativeAd |
Обязателен registerView() |
Процесс работы
Начинаем с создания слотов в кабинете myTarget и получения slotId для каждого формата. Дальше — интеграция SDK, настройка событий, тестирование на реальных устройствах (тестовые объявления включаются через MyTargetManager.setDebugMode(true)).
Если myTarget нужен как адаптер для AdMob или IronSource — добавляем адаптер com.my.target:mytarget-admob-mediation-adapter или com.my.target:mytarget-mopub-adapter и настраиваем маппинг слотов в консоли медиации.
Сроки: прямая интеграция — 1–2 дня, подключение как адаптера в существующую медиацию — полдня. Стоимость — по итогам анализа проекта.







