Интеграция аналитики данных игр: событийная модель, Firebase, BigQuery
Мы регулярно сталкиваемся с ситуацией, когда Firebase Analytics в Unity подключается за полчаса. Через месяц продакшена Product Manager обнаруживает: конверсия в покупку на Android вдвое ниже, чем на iOS. События логируются с правильными именами, но параметры частично теряются из-за превышения лимита в 25 кастомных параметров на событие. Воронка retention не настроена: session_start и first_open считаются автоматически, а уровни прохождения никто не отправлял. Аналитика — это не «подключить SDK». Это системная работа: проектирование событийной модели, согласованной с геймдизайном и бизнес-метриками. За 5 лет мы выполнили более 50 интеграций — от гиперказуалок до проектов класса AAA. Наш опыт показывает, что правильная архитектура аналитики экономит до 40% времени на интерпретацию данных.
Почему теряются данные?
Неверная событийная таксономия. Firebase ограничивает: 500 уникальных event names на приложение, имена до 40 символов, параметры до 25 на событие, строковые значения до 100 символов. Проекты, которые логируют level_complete_world_1_level_5_stars_3 как имя события — быстро упираются в потолок и теряют историческую гибкость данных. Правильная схема: level_complete как event, world_id, level_id, stars, time_sec, attempts — как параметры. Это позволяет строить срезы в BigQuery без необходимости менять клиентский код.
Sampling в GA4. Firebase Analytics (GA4) применяет sampling при объёмах данных свыше определённого порога в стандартном интерфейсе. Для точных данных нужна интеграция с BigQuery Export — это бесплатно в Firebase, но требует настройки. Без BigQuery воронки на миллионных аудиториях показывают приблизительные цифры. В нашей практике мы сократили погрешность выборки до 1% — для клиента это означало корректировку прогноза выручки на 15%.
Дублирование событий. В Unity при использовании DontDestroyOnLoad для аналитического менеджера легко получить ситуацию, когда после загрузки новой сцены старый инстанс не уничтожен — события отправляются дважды. FirebaseAnalytics.LogEvent() не идемпотентен, дублей в сыром потоке не видно без group by на стороне BigQuery. Мы решаем это через Service Locator и гарантированный singleton — количество дублей падает до нуля.
Как спроектировать событийную модель?
- Определите ключевые воронки: регистрация, прохождение уровней, покупки.
- Назначьте ответственного за таксономию — геймдизайнера или аналитика.
- Зафиксируйте имена событий и параметры в документе до написания кода.
- Убедитесь, что имена событий не превышают 40 символов, а число параметров — 25.
- Протестируйте отправку событий на этапе разработки с помощью DebugView.
Что входит в интеграцию
Проектирование событийной модели — совместно с геймдизайнером и аналитиком заказчика. Определяем: какие события нужны для retention-анализа (D1/D7/D30), для воронки монетизации, для балансировки сложности уровней, для A/B-тестов. Фиксируем в event taxonomy document до написания кода.
Подключение SDK: Firebase Analytics как основа, плюс при необходимости — Amplitude (удобнее для поведенческого анализа), GameAnalytics (бесплатный, хорошо для мобильного гиперкэжуала), или AppsFlyer/Adjust для attribution. Каждый SDK требует отдельной инициализации с учётом GDPR и ATT.
Реализация: пишем абстракцию IAnalyticsService поверх конкретных SDK — это позволяет менять провайдеров без правки игрового кода. AnalyticsManager — синглтон через ServiceLocator, не MonoBehaviour — убирает зависимость от жизненного цикла сцен.
Настройка BigQuery Export из Firebase Console, создание базовых аналитических запросов для отчётности (retention, funnel, revenue по сегментам), опционально — дашборд в Looker Studio.
Пример событийной модели
{
"event": "level_complete",
"parameters": {
"world_id": 3,
"level_id": 15,
"stars": 2,
"time_sec": 120,
"attempts": 4
}
}
Обратите внимание: имя события короткое, все характеристики — в параметрах. Это не расходует лимит имён событий и позволяет гибко анализировать в BigQuery.
Как аналитика помогает зарабатывать?
Remote Config в связке с A/B Testing позволяет не просто собирать данные, но и тестировать гипотезы. Типичный сценарий: изменить сложность третьего уровня для 10% аудитории, замерить разницу в retention D1 и конверсии в покупку. Реализация требует корректной группировки пользователей по FirebaseRemoteConfig.FetchAndActivateAsync() и гарантии, что конфиг применяется до первого отображения контролируемого экрана. Мы настраиваем эту цепочку так, чтобы результаты A/B-тестов были статистически значимы уже при выборке 2000 пользователей. В одном проекте это привело к росту ARPU на $0.75.
Почему BigQuery важен для аналитики?
BigQuery позволяет хранить сырые события без выборки (sampling). Вы можете выполнять точные SQL-запросы к миллиардам записей. Мы видели проекты, где после внедрения BigQuery расходы на аналитическую инфраструктуру снизились на $2,500 в месяц — за счёт отказа от сторонних expensive BI-инструментов.
Сравнение провайдеров аналитики
| Платформа |
Лимиты бесплатного тарифа |
Особенности |
| Firebase Analytics |
500 событий, 25 параметров |
Встроенная связка с Google Ads |
| Amplitude |
10 млн событий/мес |
Поведенческие когорты, удобный UX |
| GameAnalytics |
Неограниченно |
Оптимизирован для игр, низкая задержка |
Сроки
| Масштаб |
Срок |
| Firebase Analytics, базовая событийная модель, одна платформа |
3–7 дней |
| Firebase + BigQuery + attribution SDK |
2–3 недели |
| Полный стек с Remote Config, A/B, дашборды |
4–6 недель |
Стоимость рассчитывается после анализа требований к метрикам и текущего состояния аналитической инфраструктуры. Мы даём фиксированную цену на этапе согласования объёма работ.
Закажите аудит вашей аналитики — мы найдём потери данных и предложим план исправлений. Свяжитесь с нами, чтобы обсудить событийную модель вашей игры.
Монетизация и аналитика
Игра вышла, DAU растёт, но доходы не растут — или приходят, но непонятно откуда. Мы часто видим такую картину: монетизацию и аналитику вшивают постфактум, без системы. Переписывать покупки и события после релиза — дорого и долго. Наша задача — спроектировать эти слои так, чтобы они начали приносить деньги с первого дня, а не превратились в технический долг.
IAP: архитектура внутриигровых покупок
Интеграция Unity IAP выглядит тривиально: SDK, каталог продуктов, колбэк. На практике здесь ломается большинство проектов — дублирование транзакций, потеря покупок, уязвимость к взлому.
Клиентская vs. серверная валидация
Базовая схема с клиентским receipt работает, пока её не вскрывают. Взломщик подменяет ответ магазина и получает предмет бесплатно. Правильное решение — отправлять receipt на ваш бэкенд для верификации через Apple App Store API или Google Play Developer API. Только после этого выдавать товар и сохранять transaction_id. Без серверной валидации любая мягкая валюта или battle pass — мишень для replay-атак.
Типы продуктов
| Тип |
Пример |
Особенности |
| Consumable |
Пачка монет, энергия |
Несколько покупок, каждый раз выдаётся |
| Non-Consumable |
Отключение рекламы, контент |
Один раз, обязательно Restore Purchases на iOS |
| Subscription |
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+ проектах.
Как реклама влияет на ретеншн
Rewarded video — самый щадящий формат: игрок сам решает, смотреть ли ролик за награду. Interstitial между уровнями режет ретеншн, если показывать чаще раза в 3-4 перехода. Новым игрокам в первые 24 часа рекламу не показываем — это снижает Day 1 retention на 15-25%.
Аналитика: архитектура событий
Здесь глубже всего. Большинство команд подключают Firebase Analytics, раскидывают logEvent() и считают, что аналитика готова. Через месяц оказывается, что данных нет или они бесполезны, потому что схема событий не продумана.
Как спроектировать схему событий?
До написания кода определите, на какие вопросы должна отвечать аналитика. Типичные вопросы:
- Где игроки застревают в обучении.
- На каком уровне происходит максимальный отвал.
- Какие источники трафика дают лучший LTV.
- Какие IAP-офферы конвертируются лучше.
Под каждый вопрос — конкретное событие с параметрами.
Пример плохого события:
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.
Облачные сохранения
Игрок, потерявший прогресс при смене устройства, с вероятностью 70% не вернётся. Варианты:
- Unity Cloud Save (UGS) — быстро, key-value, бесплатно до лимита.
- PlayFab Player Data — гибче, сегментация, условный доступ.
- Firebase Firestore — для сложных данных, реалтайм-синхронизация.
Синхронизируйте только критичное: уровень, купленные предметы, настройки. Тяжёлые файлы (replay, скриншоты) храните отдельно.
Что входит в нашу работу
После заключения договора мы:
- Проводим аудит текущей схемы монетизации и аналитики (если игра уже живая) или проектируем с нуля.
- Разрабатываем архитектуру IAP с серверной валидацией и поддержкой подписок.
- Интегрируем медиатор рекламы (IronSource/MAX) и настраиваем аукцион.
- Проектируем схему аналитических событий и подключаем Firebase + GameAnalytics + AppsFlyer.
- Реализуем облачные сохранения и восстановление покупок.
- Предоставляем документацию по событиям и инструкцию для геймдизайнеров.
- Даём 2 недели бесплатной поддержки после релиза.
Почему стоит работать с нами
Более 7 лет настраиваем монетизацию в мобильных играх. Опыт — 30+ проектов, от гиперкежуала до MMORPG. Разработали стандарт событий, который увеличил конверсию в платёж на 20% у одного из клиентов за месяц после внедрения. Гарантируем прозрачность данных — вы всегда видите, какие события идут и сколько приносят.
Сроки ориентировочно
- IAP + серверная валидация: от 5 до 10 рабочих дней.
- Рекламная монетизация с медиатором: от 3 до 7 дней.
- Полный цикл (аналитика + IAP + реклама): от 2 до 4 недель.
Стоимость рассчитывается индивидуально — запросите оценку на почту.
Типичные ошибки, которые мы исправляем
- Отсутствие серверной валидации — уязвимость к взлому.
- События без параметров — данные бесполезны.
- Запуск рекламы в первые 24 часа — убивает ретеншн.
- Прямая интеграция одного рекламного SDK — теряете 30-60% дохода.
Закажите консультацию — разберём ваш проект и предложим план. Свяжитесь с нами через форму обратной связи.