Интеграция GameAnalytics для мобильной игры
GameAnalytics — узкоспециализированная аналитическая платформа для игр. В отличие от Firebase или Amplitude, здесь изначально заложена игровая модель данных: progression события (старт/провал/завершение уровня), resource события (начисление/трата внутриигровой валюты), design события (произвольные метрики геймплея). Это избавляет от необходимости проектировать схему событий с нуля.
Подключение SDK
Поддерживаются Unity, iOS (Swift/ObjC), Android (Kotlin/Java), React Native. Для Unity — через Package Manager или .unitypackage:
using GameAnalyticsSDK;
public class GameManager : MonoBehaviour
{
void Awake()
{
GameAnalytics.Initialize();
}
}
Перед вызовом Initialize() компонент GameAnalytics должен быть в сцене с заполненными Game Key и Secret Key из дашборда.
На iOS нативно:
import GameAnalytics
GameAnalytics.configureBuild("1.0.0")
GameAnalytics.initialize(withGameKey: "GAME_KEY", gameSecret: "SECRET_KEY")
Ключевые типы событий
Progression — прохождение уровней:
// Начало уровня
GameAnalytics.NewProgressionEvent(
GAProgressionStatus.Start,
"world_1", "level_05"
);
// Провал с очками
GameAnalytics.NewProgressionEvent(
GAProgressionStatus.Fail,
"world_1", "level_05",
score: 1240
);
По этим событиям GameAnalytics автоматически строит funnel прохождения — видно, на каком уровне теряется больше всего игроков.
Resource — экономика:
GameAnalytics.NewResourceEvent(
GAResourceFlowType.Source,
"gold",
500,
"reward",
"daily_bonus"
);
GameAnalytics.NewResourceEvent(
GAResourceFlowType.Sink,
"gold",
200,
"upgrade",
"sword_level2"
);
Source — приход валюты, Sink — трата. Дашборд строит баланс экономики: если Sink значительно опережает Source, игроки быстро беднеют и уходят.
Design — всё остальное:
GameAnalytics.NewDesignEvent("Boss:Defeated:DragonKing", 1);
GameAnalytics.NewDesignEvent("Settings:SoundToggle", 0); // 0 = выключено
Автоматические метрики
GameAnalytics без дополнительного кода собирает DAU/MAU, retention (Day 1, Day 7, Day 30), session length и crash reports (через интеграцию с нативными краш-обработчиками). Для iOS 14+ автоматически включается SKAdNetwork-поддержка.
Важные нюансы реализации
Именование событий типа Design. Строка события разделяется двоеточиями — это уровни иерархии в дашборде. Boss:Defeated:DragonKing создаёт ветку Boss → Defeated → DragonKing. Максимум 5 уровней. Если не соблюдать структуру с самого начала, дашборд превратится в плоский список из сотен строк.
Валидация session end. GameAnalytics автоматически закрывает сессию при уходе приложения в фон — через OnApplicationPause. На Android это работает надёжно. На iOS при определённых сценариях (VoIP, Background Fetch) сессия может не закрыться. Следует добавить явный вызов:
void OnApplicationPause(bool paused)
{
if (paused) GameAnalytics.StopSession();
else GameAnalytics.StartSession();
}
Бесплатный план. GameAnalytics бесплатен для большинства инди-игр — ограничения по событиям достаточно высокие (500 млн событий в месяц). Это делает его привлекательным для проектов без бюджета на Amplitude или Mixpanel.
Что входит в работу
- Подключение SDK (Unity / iOS / Android)
- Настройка progression событий для каждого игрового мира и уровня
- Настройка resource событий для всех источников и трат валюты
- Design события для ключевых механик (боссы, предметы, настройки)
- Проверка данных в GameAnalytics Dashboard
Сроки
Подключение с базовыми типами событий: 0,5–1 день. Стоимость рассчитывается индивидуально.







