Churn prediction в игровой индустрии — фундамент retention-маркетинга. Мобильная игра теряет 70% новых игроков в первые 7 дней. Правильная модель позволяет выявить игроков на пороге оттока до того, как они удалили приложение, и вернуть их через персонализированные retention-мероприятия. Мы разрабатываем такие системы под ключ: от анализа игровых логов до внедрения моделей в продакшн. Наш опыт — более 5 лет и 20+ проектов в геймдеве, включая мобильные, MMORPG и казуальные игры. Гарантируем повышение retention на 15-25% при условии качественных данных.
Как предсказание оттока игроков улучшает retention?
Точное предсказание оттока позволяет вовремя вмешаться. Раннее выявление (first 3-7 days) снижает затраты на возврат на 40% по сравнению с поздними кампаниями. Анализ игровых логов даёт сотни признаков: частоту сессий, прогрессию, социальную активность, монетизацию. Мы преобразуем их в сигналы для моделей, которые на порядок точнее правил (rule-based). Например, XGBoost даёт прирост F1 в 1.2 раза по сравнению с логистической регрессией на платящем сегменте.
Почему early churn отличается от late churn?
Early churn (D1-D7) вызван проблемами онбординга, сложностью туториала или несоответствием ожиданиям. Mid-term churn (D7-D30) — падение интереса к контенту, нарушение прогрессии. Late churn (D30+) — исчерпание контента, burnout или появление конкурента. Каждый тип требует разной стратегии возврата: для early — упрощение первых шагов, для late — анонс нового контента.
Как выбрать порог неактивности?
Порог оттока определяет, когда игрок считается ушедшим. Ниже — таблица типовых порогов по жанрам:
| Жанр игры | Порог неактивности |
|---|---|
| Мобильные | 7-14 дней |
| MMORPG | 30 дней |
| Казуальные | 3-5 дней |
Выбор порога влияет на balance классов и своевременность интервенций. Заниженный порог даёт много ложных срабатываний, завышенный — запаздывание реакции.
Feature Engineering из игровых логов
Мы извлекаем признаки, отражающие вовлечённость, прогрессию и монетизацию. Пример набора:
engagement_features = { 'sessions_last_7d': session_count_7d, 'avg_session_length_min': avg_session_duration, 'session_frequency_trend': sessions_last_3d / sessions_prev_3d, 'days_since_last_session': recency, 'total_days_played': frequency, 'total_revenue': monetary, # RFM # Игровой прогресс 'player_level': current_level, 'level_progression_rate': levels_gained_per_day, 'progression_delta': level_now - level_7d_ago, 'features_unlocked': count(unlocked_features), # Социальные 'guild_membership': bool, 'friends_count': friend_list_size, 'pvp_matches_7d': pvp_count, 'chat_messages_7d': messages_count } monetization_features = { 'payer_flag': has_ever_paid, 'days_since_last_purchase': recency_purchase, 'ltv_to_date': total_revenue, 'purchase_count': total_transactions, 'avg_purchase_value': mean(transaction_values), 'subscription_active': bool, 'ad_views_7d': rewarded_ad_count # для free-to-play } Важно нормализовать признаки по когорте, чтобы устранить сезонность.
Модели по сегментам
Не одна модель для всех — разные для разных сегментов:
- Payers (платящие): XGBoost с финансовыми фичами. Порог ниже — не можем терять.
- High-engagement non-payers: LightGBM с engagement-фичами, возможны конверсии.
- Casual players: простая модель, высокий recall.
Cohort-aware модель нормализует поведение игрока на D7 к среднему по когорте:
features['d7_sessions_normalized'] = player_d7_sessions / cohort_avg_d7_sessions XGBoost для платящих на 10% точнее логистической регрессии по F1-мере.
Survival Analysis для игр
Вместо бинарного предсказания "уйдёт или нет" можно предсказывать время до оттока:
from lifelines import WeibullAFTFitter aft = WeibullAFTFitter() aft.fit(player_data, duration_col='days_until_churn', event_col='churned') predicted_retention = aft.predict_median(player_features) Это даёт оценку ожидаемого времени жизни игрока, что позволяет точнее расставлять интервенции во времени.
Сравнение моделей: XGBoost vs Logistic Regression
| Модель | F1 на платящем сегменте | Время обучения (100k записей) | Интерпретируемость |
|---|---|---|---|
| XGBoost | 0.85 | 45 с | Низкая (нужен SHAP) |
| Logistic Regression | 0.77 | 2 с | Высокая |
| LightGBM | 0.84 | 30 с | Средняя |
XGBoost даёт выигрыш в F1 в 1.1 раза по сравнению с логистической регрессией, что критично для удержания платящих игроков.
Retention Actions
Интервенции по времени и риску:
- D0-D3: если tutorial completion < 80% → push-уведомление с помощью.
- D1-D7: если прогресс ниже медианы когорты → временный buff или подарок.
- D7-D30: платящему — персональный email от "разработчиков" с бонусом; freemium — retargeting с deep link.
- Win-back: push/email через 3, 7, 14, 30 дней неактивности с предложением нового контента.
Lift Measurement и A/B
treatment = high_risk_players.sample(frac=0.5) control = high_risk_players.drop(treatment.index) treatment_retention = treatment[treatment.is_active_14d_later].shape[0] / len(treatment) control_retention = control[control.is_active_14d_later].shape[0] / len(control) uplift = treatment_retention - control_retention print(f"Retention uplift from intervention: {uplift:.1%}") Что входит в разработку
- Анализ игровых логов и EDA.
- Feature engineering и отбор признаков.
- Построение segmented моделей (XGBoost, LightGBM, survival).
- Подготовка дашбордов для мониторинга.
- Интеграция с CRM/Push-системами.
- Документация и обучение команды.
- Поддержка на этапе пилота (1 месяц).
Сроки и стоимость
Базовая модель (LightGBM) — от 3 до 4 недель. Полноценная система с cohort-aware подходом, survival и A/B — от 3 до 4 месяцев. Стоимость рассчитывается индивидуально, зависит от объёма данных и числа когорт. Затраты на внедрение окупаются за 2-3 месяца за счёт снижения оттока.
Наш опыт
Более 5 лет в игровой аналитике, 20+ проектов, включая мобильные и онлайн-игры. Сертифицированные инженеры по ML и MLOps. Гарантируем качество — каждый этап проходит code-review и validation.
Свяжитесь с нами для оценки проекта. Получите консультацию по выбору модели и подхода для вашей игры. Закажите разработку системы под ключ.







