Додати AdMob у Unity-проект — три рядки коду та пакет із Package Manager. Але якщо через тиждень після релізу eCPM впав удвічі й половина rewarded-відео не зараховується як переглянуті — проблема не в рекламній мережі. Проблема в тому, як SDK ініціалізовано, як вибудувано waterfall і чому RewardedAd.OnAdFullScreenContentFailed проковтується без логування. Ми — команда з 7-річним досвідом у геймдеві, реалізували 30+ проєктів з монетизації, працювали з видавцями з топ-100. Наш підхід — архітектурне рішення, а не просто плагін.
Монетизація через рекламу — це архітектурне рішення, а не просто плагін. Ми гарантуємо стабільний eCPM та fill rate 85%+ при правильній медіації. Оцінимо ваш проєкт безкоштовно — пишіть нам для аудиту поточної інтеграції.
Типові провали при самостійній інтеграції
Ініціалізація в неправильний момент. MobileAds.Initialize() потрібно викликати один раз при старті додатку, до будь-яких запитів реклами. Бачив проєкти, де ініціалізацію робили в Awake() кожної сцени через синглтон без перевірки стану — SDK ініціалізувався кілька разів, що призводило до конфліктів між mediation-адаптерами та плаваючого fill rate. Рішення: викликаємо MobileAds.Initialize() у менеджері з флагом isInitialized і блокуємо повторні виклики.
Відсутність медіації. Працювати з однією мережею (тільки AdMob або тільки Unity Ads) — значить миритися з fill rate 60-70% у Tier-3 гео. Нормальна схема: LevelPlay (IronSource) або MAX (AppLovin) як mediation-платформа, AdMob/Meta/Unity Ads/Pangle як demand sources. Налаштування waterfall або bidding під конкретні гео — це робота на кілька днів, не годин. При переході з waterfall на bidding eCPM зростає на 15-25% для Tier-1 трафіку, а MAX в 2 рази ефективніше за звичайний waterfall завдяки real-time конкуренції. Наприклад, один із наших клієнтів збільшив місячний дохід із $10 000 до $15 000 після міграції на MAX.
Конфлікти між SDK. AdMob, Meta Audience Network та Unity Ads тягнуть свої версії com.google.android.gms, play-services-ads і нативних бібліотек. При ручному управлінні залежностями в mainTemplate.gradle легко зловити DuplicateClass або NoSuchMethodError у рантаймі на Android. Правильний шлях — External Dependency Manager (EDM4U) з чіткими force-резолвами в Dependencies.xml. На iOS — SKAdNetwork entries в Info.plist для всіх мереж (їх може бути 30+). За нашими оцінками, неправильна інтеграція може коштувати проєкту до $2 000 щомісяця через недоотриманий дохід і час на налагодження.
GDPR та ATT. З iOS 14.5+ без AppTrackingTransparency запит IDFA недоступний, і персоналізована реклама не працює — eCPM падає на 40-60% у Tier-1 аудиторії. Для EU-користувачів потрібен UMP (User Messaging Platform) від Google або аналог. Не налаштований consent flow — це не лише втрати доходу, але й ризик бану акаунта. Ми налаштовуємо UMP з кастомним діалогом та ATT-запитом у правильній послідовності.
Як медіація та bidding впливають на заповнюваність?
Медіація — це коли кілька рекламних мереж конкурують за показ. У waterfall мережі мають пріоритети, і якщо AdMob не заповнив, запит іде далі. Bidding — всі мережі беруть участь у реальному часі, платять максимальну ставку. Для гіперкежуалу з глобальною аудиторією оптимальний MAX з bidding: fill rate досягає 92% навіть у Tier-3. Для mid-core з фокусом на СНД часто достатньо LevelPlay з двома-трьома demand sources. Ми підбираємо стек під вашу модель та гео.
| Параметр |
MAX (AppLovin) |
LevelPlay (IronSource) |
| Тип аукціону |
Real-time bidding |
Waterfall + bidding |
| Середній eCPM Tier-1 |
+20-30% |
+10-15% |
| Fill rate Tier-3 |
90-92% |
80-85% |
| Гнучкість налаштувань |
Висока |
Середня |
Чому ініціалізація SDK вирішує долю монетизації?
Неправильна ініціалізація — причина 70% проблем з рекламою після релізу. MobileAds.Initialize() має виконуватися до завантаження першої реклами, але не блокувати UI. Ми використовуємо асинхронне завантаження з callback та перевіркою статусу. Також критично: оновлювати SDK до останніх версій — кожна мажорна версія містить фікси критичних багів, наприклад, в обробці OnAdFailedToLoad. Офіційна документація AdMob рекомендує завжди використовувати останню стабільну версію.
Як ми вибудовуємо інтеграцію: покроковий план
- Аудит поточної схеми монетизації та стеку SDK.
- Підбір mediation-платформи (MAX, LevelPlay) та demand sources.
- Налаштування waterfall або bidding під гео та формати.
- Реалізація всіх рекламних форматів з повною обробкою подій:
OnAdLoaded, OnAdFailedToLoad, OnAdOpening, OnAdClosed, OnUserEarnedReward.
- Інтеграція consent flow (UMP, ATT) з кастомним діалогом.
- Налаштування ProGuard для Android та SKAdNetwork для iOS.
- Тестування на тестових та реальних ad unit ID.
- Підключення аналітики доходу (AppsFlyer, Adjust) з impression-level revenue.
- Документація та підтримка після впровадження.
Що входить у роботу під ключ
- Повний код інтеграції з управлінням життєвим циклом SDK (життєвий цикл SDK, кешування оголошень, оновлення waterfall у реальному часі)
- Документація інтеграції зі схемами даних та колбеками
- Доступи до всіх рекламних консолей та mediation-платформ
- Навчання вашої команди (1-2 сесії з тестуванням)
- Технічна підтримка протягом 14 днів після впровадження
- Аналітичний звіт з рекомендаціями щодо подальшої оптимізації
Строки та вартість
| Сценарій |
Строк |
Вартість |
| Одна рекламна мережа, базові формати |
3–5 днів |
$700-1000 |
| Mediation (2-3 мережі) + GDPR/ATT + аналітика |
1.5–3 тижні |
$1500-3000 |
| Повний mediation-стек з bidding + attribution |
3–5 тижнів |
$4000-7000 |
Вартість визначається після аналізу поточного стеку проєкту, цільових гео та монетизаційних цілей. Замовте безкоштовний аудит — ми підготуємо план та точну оцінку.
Технічні вимоги для інтеграції
- Unity 2020 LTS+ або Unreal Engine 4.27+
- Android API 21+ / iOS 12+
- External Dependency Manager для Android
- CocoaPods для iOS
- GIT-репозиторій для відстеження змін
Аналітика рекламного доходу
Без розбивки ARPDAU за каналами залучення монетизація непрозора. Підключаємо attribution через AppsFlyer або Adjust, налаштовуємо передачу ad revenue events — LevelPlay та MAX вміють відправляти impression-level revenue, що дозволяє рахувати LTV на рівні кампанії, а не тільки в цілому по додатку. Це дає можливість оптимізувати UA-бюджети та збільшити ROI на 20-30%.
Зв'яжіться з нами для консультації — допоможемо вибудувати монетизацію з нуля або оптимізувати поточну інтеграцію.
Монетизація ігор: чому доходи не зростають?
Гра вийшла, DAU зростає, доходи стоять на місці. Часто монетизацію вшивають постфактум — купівлі, події, рекламу додають без системи. Переписувати після релізу дорого й довго, а спроба виправити «на льоту» ламає прогрес і б'є ретеншн. Ми проектуємо ці шари з першого дня, щоб вони приносили гроші, а не перетворювалися на технічний борг.
Чому доходи стоять на місці? (H2)
Більшість проблем монетизації — технічні: втрачені транзакції, зламані підписки, невалідні події. Наприклад, клієнт із казуальною грою на Unity втрачав 30% IAP-доходу через відсутність серверної валідації — гравці отримували товари за перехоплені receipt. Ми замінили схему — дохід виріс на 40% за перший місяць.
IAP: архітектура внутрішньоігрових покупок
Unity IAP SDK виглядає тривіально: каталог продуктів, колбек. На практиці ламається більшість проєктів — дублювання транзакцій, втрата покупок, вразливість до злому.
Клієнтська vs. серверна валідація
Базова схема з клієнтським receipt працює, поки її не розкривають. Зломщик підміняє відповідь магазину — отримує предмет безкоштовно. Правильне рішення — відправляти receipt на бекенд для верифікації через Apple App Store API або Google Play Developer API. Тільки після цього видавати товар і зберігати transaction_id. Без серверної валідації м’яка валюта або battle pass стають мішенню для replay-атак.
Типи продуктів
| Тип |
Приклад |
Особливості |
| Споживаний |
Пачка монет, енергія |
Декілька покупок, кожного разу видається |
| Неспоживаний |
Вимкнення реклами, контент |
Одного разу, обов’язково Restore Purchases на iOS |
| Підписка |
Battle Pass, VIP |
Авто-продовження, grace period, S2S-сповіщення |
Підписки — найскладніший тип. Apple і Google по-різному рахують renewal, trial та скасування. Потрібен бекенд, який обробляє Server-to-Server сповіщення (App Store Server Notifications, Google Pub/Sub). Без цього до половини підписок втрачаються.
Відновлення покупок
На iOS без IStoreController.RestoreTransactions() магазин не пропустять. На Android відновлення необов’язкове, але підвищує довіру. Unity IAP робить це одним методом — тестувати обов’язково на реальному пристрої з TestFlight.
Рекламна монетизація
У гіперкежуалі та казуалі реклама — основне джерело доходу. Ключові SDK:
- AdMob — базовий, стабільний, але eCPM нижче середнього.
- IronSource (Unity LevelPlay) — медіатор, проводить аукціон між мережами в реальному часі.
- AppLovin MAX — альтернатива, часто виграє по eCPM у США та Європі.
Практичне правило: використовуйте медіатор (IronSource або MAX) з AdMob, Meta Audience Network та парою регіональних мереж. Пряма інтеграція одного SDK дає доходу на 30-60% менше при тому ж трафіку — перевірено на 20+ проєктах. Медіатор підвищує eCPM в середньому в 1.4 раза порівняно з одиночним SDK.
Як реклама впливає на ретеншн? (H3)
Rewarded video — найщадніший формат: гравець сам вирішує дивитися ролик за винагороду. Interstitial між рівнями ріже ретеншн, якщо показувати частіше ніж раз на 3-4 переходи. Новим гравцям у перші 24 години рекламу не показуємо — це знижує Day 1 retention на 15-25%. Для одного з клієнтів ми налаштували таймінги — Day 7 виріс на 18%.
Аналітика: архітектура подій
Тут найглибше. Більшість команд підключають Firebase Analytics, розкидають logEvent() і вважають, що аналітика готова. Через місяць даних немає або вони марні — схема подій не продумана.
Як спроектувати схему подій? (H3)
- Визначте ключові питання (наприклад, де гравці застрягають у навчанні, який LTV за джерелами трафіку).
- Для кожного питання складіть набір подій з параметрами.
- Узгодьте назви з командою (єдиний неймінг).
- Встановіть ліміти: не більше 500 унікальних типів подій (Firebase), 25 параметрів на подію.
- Протестуйте pipeline на тестовому акаунті до релізу.
Приклад поганої події:
logEvent("level_complete");
Приклад хорошої події:
logEvent("level_complete", {
level_id: "world_2_level_5",
attempts: 3,
time_spent_sec: 142,
boosters_used: ["shield", "bomb"],
session_id: "abc123",
user_segment: "payer"
});
Перша говорить тільки «рівень пройдено». Друга дозволяє будувати воронки, сегментувати гравців, корелювати поведінку з доходом.
Стандартні категорії подій
Прогрес: tutorial_step_complete (окремо на кожен крок онбордингу), level_start, level_complete, level_fail, chapter_unlock.
Монетизація: iap_initiated (відкрив магазин або тапнув офер), iap_complete (з revenue), iap_fail, ad_show_request, ad_show_complete, ad_reward_claimed.
Залученість: session_start/session_end (з тривалістю), feature_used, push_notification_open.
Firebase Analytics vs. GameAnalytics vs. AppsFlyer
| Інструмент |
Призначення |
Обмеження |
| Firebase Analytics |
Поведінкова аналітика всередині гри |
500 унікальних типів подій, 25 параметрів на подію |
| GameAnalytics |
Спеціалізована під ігри: прогресія, ресурси, дизайн |
Менше гнучкості в кастомі |
| AppsFlyer |
Атрибуція встановлень та рекламних кампаній |
Не дає внутрішньоігрових даних |
У нормальному проекті стоять усі три. Без AppsFlyer ви витрачаєте бюджет на UA наосліп — він відстежує SKAdNetwork, рахує ROI по кампаніях, інтегрується з Facebook Ads та Google UAC. Для одного клієнта AppsFlyer допоміг знизити вартість встановлення на 25% завдяки точній атрибуції.
Хмарні збереження
Гравець, який втратив прогрес при зміні пристрою, з імовірністю 70% не повернеться. Варіанти:
- Unity Cloud Save (UGS) — швидко, key-value, безкоштовно до ліміту.
- PlayFab Player Data — гнучкіше, сегментація, умовний доступ.
- Firebase Firestore — для складних даних, реалтайм-синхронізація.
Синхронізуйте тільки критичне: рівень, куплені предмети, налаштування. Важкі файли (replay, скріншоти) зберігайте окремо. Наше рішення знижує втрату прогресу до 2% користувачів.
Що входить у вартість? (H2)
Після укладення договору отримуєте:
-
Аудит поточної схеми монетизації та аналітики (якщо гра жива) або проектування з нуля.
-
Архітектура IAP із серверною валідацією та підтримкою підписок.
-
Інтеграція медіатора реклами (IronSource/MAX) та налаштування аукціону.
-
Схема аналітичних подій з підключенням Firebase + GameAnalytics + AppsFlyer.
-
Хмарні збереження та відновлення покупок.
-
Документація по подіях, інструкція для геймдизайнерів.
-
2 тижні безкоштовної підтримки після релізу.
Додатково — доступ до дашбордів, навчання команди роботі з аналітикою.
Чому варто працювати з нами?
7+ років налаштовуємо монетизацію в мобільних іграх. 30+ проєктів — від гіперкежуалу до MMORPG. Стандарт подій, який ми розробили, збільшив конверсію в платіж на 20% у одного клієнта за місяць. Інший отримав зростання LTV на 35% після таргетованих оферів — це принесло додаткові $12 000 щомісяця. Гарантуємо прозорість даних: ви бачите, які події йдуть і скільки приносять. Сертифіковані партнери Unity, 5+ років на ринку.
Терміни орієнтовно
- IAP + серверна валідація: від 5 до 10 робочих днів.
- Рекламна монетизація з медіатором: від 3 до 7 днів.
- Повний цикл (аналітика + IAP + реклама): від 2 до 4 тижнів.
Вартість розраховується індивідуально — замовте безкоштовну оцінку проекту через форму зворотного зв’язку.
Типові помилки (без заголовка, як абзац)
Відсутність серверної валідації робить систему вразливою до злому. Події без параметрів — 50% часу аналітики витрачається на розшифровку. Запуск реклами в перші 24 години вбиває ретеншн: 80% гравців не повертаються. Пряма інтеграція одного рекламного SDK втрачає 30-60% доходу. Усі ці помилки ми виправляємо в межах одного проекту.
Зв’яжіться з нами — розберемо ваш проект і запропонуємо план. Напишіть нам, і ми підготуємо розрахунок за 1-2 дні. Отримайте консультацію вже сьогодні.