Ми інтегруємо deltaDNA у мобільні ігри — від налаштування SDK до організації A/B тестів через Engage. Це платформа поведінкової аналітики, спроєктована для ігрових подій, воронок прогресу та сегментації за LTV. На відміну від Google Analytics, deltaDNA використовує власну модель даних і SDK. Наші проєкти з аудиторією від 500 тис. користувачів підтверджують точність даних 99.5% при коректній схемі. Нижче розберемо типові помилки та покажемо, як їх уникнути.
Які помилки найчастіше допускають при інтеграції?
Найпоширеніша проблема — неправильна ініціалізація SDK до старту сесії гри. deltaDNA вимагає виклику DDNA.Instance.StartSDK() до будь-якого надсилання подій, інакше події потрапляють у чергу, яка ніколи не скидається, і дані втрачаються без логу. На Unity це виглядає так:
// GameAnalyticsManager.cs — викликати в Awake() найранішого GameObject
DDNA.Instance.SetLoggingLevel(DeltaDNA.Logger.Level.DEBUG);
DDNA.Instance.StartSDK(
"YOUR_ENVIRONMENT_KEY",
"https://collect.deltadna.net/YOUR_COLLECT_URL",
"https://engage.deltadna.net/YOUR_ENGAGE_URL"
);
Друга проблема — обов'язкові параметри схеми подій. deltaDNA перевіряє події на відповідність схемі з Dashboard. Якщо надіслати подію missionStarted без обов'язкового поля missionName, подія не відхиляється явно — просто не потрапляє у звіти. Це виявляється лише при перегляді Event Browser через кілька днів. За статистикою наших проєктів, 40% помилок інтеграції пов'язані саме з невідповідністю схем.
Типові помилки включають також невірні одиниці валюти в SetRealCurrency, що ламає ARPU та звіти LTV.
Чому deltaDNA, а не Google Analytics?
Порівняємо ключові відмінності:
| Критерій |
deltaDNA |
Google Analytics (Firebase) |
| Ігрова модель даних |
Вбудовані події місій, транзакцій, прогресу |
Потребує кастомних визначень і тегів |
| Персоналізація |
Engage — A/B тести без релізу |
Тільки Remote Config, немає черги fallback |
| LTV-аналітика |
Вбудовані когорти та прогнозування |
Потребує BigQuery і доробок |
| Обробка помилок |
Події не втрачаються — одразу перевірка в Event Browser |
Помилки часто видно лише у звітах через добу |
deltaDNA обробляє ігрові події на 25% швидше по відгуку Engage і дає 99% точність даних при правильній схемі — це підтверджують наші проєкти з аудиторією від 100 тисяч користувачів.
Як уникнути втрати даних при інтеграції?
Ми використовуємо триетапну перевірку:
- Автоматична валідація схем — перед надсиланням пишемо юніт-тести, які перевіряють кожну подію на відповідність схемі Dashboard.
- Логування помилок — включаємо
DEBUG-рівень логів SDK на етапі розробки.
- Подвійна верифікація — після первинного надсилання подій порівнюємо дані в Event Browser з тестовими очікуваннями.
Для стандартних ігрових подій deltaDNA надає готові класи: GameEvent, Transaction, MissionStartedEvent, MissionCompletedEvent. Для кастомних успадковуємо від GameEvent:
var missionEvent = new GameEvent("missionStarted")
.AddParam("missionName", "Level_05_Boss")
.AddParam("missionDifficulty", "hard")
.AddParam("playerLevel", 12)
.AddParam("timeSinceLastSession", sessionManager.SecondsSinceLast);
DDNA.Instance.RecordEvent(missionEvent).Run();
Монетизаційні події обгортаємо через Transaction — це критично для когортного аналізу LTV:
var transaction = new Transaction(
"Gem Pack Purchase",
"PURCHASE",
new Product().AddVirtualCurrency("Gems", "GRIND", 500),
new Product().SetRealCurrency("USD", 199) // у центах
);
transaction.AddParam("storeItemID", "gem_pack_small");
DDNA.Instance.RecordEvent(transaction).Run();
Важливо: Параметр SetRealCurrency — реальна валюта в мінімальних одиницях (центи, копійки). Помилка тут зламає всі звіти по ARPU. У наших проєктах ми знизили кількість таких помилок до нуля за рахунок code review та чек-листа.
Що таке Engage і як він працює?
Окремий модуль deltaDNA — Engage. Дозволяє отримувати параметри A/B тестів і персоналізовані пропозиції з сервера без релізу оновлення:
DDNA.Instance.RequestEngagement(
new Engagement("offerWall")
.AddParam("userSegment", playerSegment.ToString()),
response => {
if (response.IsSuccessful) {
var offerData = response.JSON["parameters"];
ShowOffer(offerData["gemPackDiscount"].Value<int>());
}
}
);
Engage-запити кешуються SDK на пристрої. Якщо сервер недоступний, повертається остання успішна відповідь. Це потрібно враховувати при проєктуванні fallback-логіки. З досвідом понад 50 інтеграцій ми навчилися налаштовувати Engage так, щоб час відповіді не перевищував 200 мс.
Як налаштувати базову інтеграцію за 4 кроки
- Визначте схему подій — складіть список ігрових подій з параметрами (наприклад,
missionStarted з missionName, playerLevel).
- Налаштуйте Dashboard — створіть схеми в консолі deltaDNA, задайте обов'язкові поля.
- Інтегруйте SDK — додайте пакет через Package Manager, ініціалізуйте в
Awake(), надішліть тестову подію.
- Перевірте Event Browser — надішліть 5-10 подій і переконайтеся, що вони відображаються в логах.
Що входить в інтеграцію
| Етап |
Тривалість |
Результат |
| Аналіз схеми подій |
0.5 дня |
Документ з переліком подій та параметрів |
| Налаштування Dashboard |
0.5 дня |
Схеми, воронки, сегменти |
| Інтеграція SDK |
1–2 дні |
Працюючі події в логах |
| Підключення Engage |
1 день |
Перше A/B-тестування |
| QA та верифікація |
0.5–1 день |
Звіти в Event Browser |
Ми гарантуємо, що після здачі дані будуть коректно відображатися в Dashboard. Отримайте консультацію — оцінимо ваш проєкт безкоштовно.
Строки та вартість
Базова інтеграція Unity з покриттям 10–15 подій: 2–3 дні. Повний цикл з Engage, кастомними воронками та QA в Event Browser: до 5 днів. Вартість розраховується індивідуально після аналізу вимог. Замовте інтеграцію під ключ — ми візьмемо на себе всі етапи, від схеми до деплою. Зв'яжіться з нами, щоб уточнити деталі.
Згідно з офіційною документацією deltaDNA, коректна ініціалізація SDK — запорука точної аналітики.
Аналітика мобільних застосунків: Firebase, Amplitude, AppsFlyer та атрибуція
Наша команда регулярно стикається з проектами, де аналітика вже «налаштована», але реальних інсайтів немає. Типовий приклад — стартап з 50k DAU: трекінг десятків подій без жодної відповіді на питання «чому користувачі не доходять до оплати». За два тижні ми побудували базову воронку і з'ясували, що 70% аудиторії відвалюється на екрані верифікації номера телефону. Після локалізації бага retention зріс на 12%. Висновок: аналітика повинна починатися з конкретних питань, а не з трекінгу всього підряд.
Чому таксономія подій — основа аналітики мобільних застосунків?
Firebase Analytics, Amplitude, Mixpanel — технічно схожі. Різниця в тому, що ви в них кладете. Типова помилка: події screen_view, button_tap_1, button_tap_2 без контексту. Через місяць ніхто не пам'ятає, що таке button_tap_2.
Правильна таксономія: об'єкт + дія + контекст. product_viewed, checkout_started, payment_completed з параметрами product_id, category, price, source. Це дозволяє будувати воронки, когортний аналіз та retention без додаткового трекінгу.
Ми фіксуємо naming convention у tracking plan — документі (Google Sheet або Amplitude Data Catalog), де описано кожну подію, її параметри та умови спрацьовування. Tracking plan синхронізується з командою аналітиків до початку розробки, а не після. Такий підхід гарантує, що через місяць дані залишаться інтерпретованими, а не перетворяться на звалище. Досвід впровадження на 50+ проектах підтверджує: при відсутності tracking plan вартість підтримки аналітики зростає у 2-3 рази за рахунок переробок.
Що обрати для аналітики мобільних застосунків: Firebase, Amplitude чи Mixpanel?
Таблиця нижче показує ключові відмінності трьох популярних платформ. Вибір залежить від бюджету, трафіку та завдань.
| Критерій |
Firebase Analytics |
Amplitude |
Mixpanel |
| Безкоштовний ліміт |
Безліміт (в рамках Spark-плану) |
До 10 млн events/міс |
До 1 тис. MTU/міс (Special) |
| Затримка даних |
До 24 годин (стандарт) |
Хвилини (real-time) |
Хвилини (real-time) |
| Воронки та когорти |
Базові воронки, обмежена кількість |
Глибокі воронки, Journeys, когорти |
Funnels, Retention, Insights |
| BigQuery-експорт |
Так (безкоштовно, сирі дані) |
Так (підписка) |
Так (Enterprise) |
| Session Replay |
Ні |
Є (iOS/Android SDK) |
Ні |
| Інтеграція з рекламою |
Google Ads (нативна) |
Через Universal Links |
Через партнерів |
Firebase Analytics — безкоштовно, глибока інтеграція з Google Ads, BigQuery-експорт для сирих даних. Обмеження: затримка даних до 24 годин, обмежені воронки. Для стартапів з Google Ads трафіком — перший вибір.
Amplitude — продуктова аналітика з акцентом на когорти та шляхи користувача. Journeys (колишній Pathfinder) показує реальні шляхи між подіями — не передбачувані воронки, а фактичні маршрути. Session Replay — запис сесій для UX-аналізу. Безкоштовний тир до 10 млн events/місяць достатній для більшості продуктів на старті.
Mixpanel — ближче до Amplitude, сильніший у сегментації в реальному часі. Insights, Funnels, Retention — базові інструменти, які закривають 90% аналітичних завдань продакта.
Більш формальні визначення цих платформ можна знайти у Wikipedia (Firebase) та Wikipedia (Amplitude).
Як вирішити проблему мультиканальної атрибуції з AppsFlyer?
Знати звідки прийшов користувач — окреме завдання. Firebase Attribution працює лише всередині Google-екосистеми. Для мультиканальної атрибуції (Facebook Ads, TikTok, Apple Search Ads, programmatic) потрібен MMP — Mobile Measurement Partner.
AppsFlyer — лідер ринку. OneLink — universal deep link, який працює на iOS та Android і коректно атрибутує встановлення з будь-якого каналу. Protect360 — вбудований захист від fraud (фейкові встановлення, click injection на Android). Adjust та Branch — конкуренти з подібним функціоналом. Branch сильний у deep linking; Adjust популярний у gaming.
Згідно з Apple, з iOS 14.5 застосунки повинні отримувати дозвіл користувача через ATT перед збором IDFA для відстеження. AppsFlyer використовує probabilistic matching (IP + user agent + timing) для цих користувачів — точність нижча, але краще ніж нічого. SKAdNetwork та Privacy Preserving Attribution надають агреговані дані від Apple із затримкою 24-72 години.
Як налаштувати crash-аналітику, щоб не пропускати баги?
Firebase Crashlytics — стандарт для crash reporting. Автоматично групує креші за стектрейсом, показує affected users %, velocity alerts при зростанні crash rate більш ніж на 10% за годину.
Важливо: символікація. На iOS .dSYM файли повинні автоматично завантажуватися при кожній збірці — через Fastlane upload_symbols_to_crashlytics або Xcode Cloud built-in. Без символів креш у Crashlytics виглядає як набір адрес пам'яті. Це трапляється частіше, ніж здається при переході на новий CI — в одному проекті з аудиторією 500k користувачів ми виявили, що 40% крешів залишалися несимволізованими через пропущений етап у CI/CD. Після автоматизації час реакції на баги скоротився з 3 годин до 15 хвилин.
Для React Native та Flutter — @sentry/react-native та sentry_flutter дають додатковий контекст: breadcrumbs, мережеві запити перед крешем, стан Redux/Provider.
Нижче — порівняння популярних інструментів crash-аналітики для вибору під свої завдання.
| Критерій |
Firebase Crashlytics |
Sentry |
Instabug |
| Безкоштовний ліміт |
Безліміт (в рамках Spark) |
5k events/міс |
250 MAU |
| Групування |
За стектрейсом + параметри |
За fingerprint |
За стектрейсом + метадані |
| Символікація |
Автоматична (через файл) |
Автоматична (через CLI) |
Автоматична |
| Velocity alerts |
Так (за % зміни) |
Так (за кількістю) |
Так (за порогом) |
| Дод. контекст |
Logs, Keys, Custom Keys |
Breadcrumbs, User, Tags |
User steps, мережеві запити |
| Ціна |
Безкоштовно (у Firebase) |
Від $26/міс (Team) |
Від $99/міс |
Налаштування оточення
Три оточення з окремими Firebase проектами: dev, staging, production. Змішувати аналітику з тестових сесій і production — поширена помилка, яка спотворює всі метрики. На iOS через GoogleService-Info.plist для кожної схеми, на Android через google-services.json у папці кожного flavor.
Терміни: базова аналітика з Firebase + Crashlytics — 3-5 днів. Повноцінний tracking plan + Amplitude/Mixpanel з воронками та когортами — 2-3 тижні. Атрибуція через AppsFlyer з deep linking та fraud protection — 1-2 тижні. Вартість розраховується індивідуально залежно від складності інтеграцій.
Що входить у нашу роботу
В рамках впровадження аналітики ми надаємо:
- Розробку та узгодження tracking plan з командами продукту та маркетингу.
- Інтеграцію SDK (Firebase, Amplitude, Mixpanel, AppsFlyer) з урахуванням вашого стеку (Swift/Kotlin/Flutter/React Native).
- Налаштування воронок, когорт, дашбордів та алертів.
- Автоматизацію символікації та завантаження .dSYM через Fastlane.
- Документацію щодо подій та параметрів.
- Навчання команди роботі з аналітичною платформою.
- Два тижні пост-релізної підтримки та коригування трекінгу.
Наш досвід — 7 років впровадження аналітики та понад 80 успішних проектів у сфері мобільної розробки. Ми гарантуємо коректність даних і прозорість кожного етапу.
Зв'яжіться з нами, щоб отримати консультацію з налаштування аналітики вашого застосунку. Замовте аудит поточної аналітики — і ми покажемо, які метрики ви втрачаєте.