Розробка AI-системи передбачення відтоку гравців

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка AI-системи передбачення відтоку гравців
Середній
~1-2 тижні
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1197
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Розробка AI-системи передбачення відтоку гравців

Churn prediction в ігровій промисловості - фундамент retention-маркетингу. Мобільна гра втрачає 70% нових гравців у перші 7 днів. Правильна модель дозволяє виявити гравців на порозі відтік до того, як вони видалили програму, і повернути їх через персоналізовані retention заходи.

Специфіка ігрового churn

Визначення відтоку: В іграх немає "контракту". Чорно-біла мітка "пішов/залишився" визначається через поріг неактивності:

  • Мобільні ігри: 7-14 днів без логіну
  • MMORPG: 30 днів без входу
  • Казуальні ігри: 3-5 днів

Вибір порога впливає на баланс класів і timely intervention.

Ранній та пізній відтік:

  • Early churn (D1-D7): проблеми з онбордингом, складність tutorial, невідповідність очікуванням
  • Середньостроковий відтік (D7-D30): падіння інтересу до контенту, порушення прогресу
  • Late churn (D30+): вичерпання контенту, burnout, поява конкурентної гри

Кожен тип потребує різної стратегії повернення.

Feature Engineering з ігрових логів

Залученість:

функції_залучення = {
    'sessions_last_7d': кількість_сесій_7д,
    'avg_session_length_min': середня_тривалість_сеансу,
    'тренд_частоти_сесій': сесії_останні_3дні / сесії_попередні_3дні,
    'днів_з_останнього_сеансу': давність,
    'total_days_played': частота,
    'total_revenue': грошовий, # RFM

    # Ігровий прогрес
    'рівень_гравця': поточний_рівень,
    'level_progression_rate': рівні, отримані за день,
    'progression_delta': рівень_зараз - рівень_7д_тому,
    'features_unlocked': кількість(розблоковані_функції),

    # Соціальні
    'членство_гільдії': bool,
    'friends_count': розмір_списку_друзів,
    'pvp_matches_7d': кількість pvp,
    'chat_messages_7d': кількість_повідомлень
}

Монетизація:

функції_монетизації = {
    'payer_flag': коли-небудь платив,
    'днів_з_останньої_покупки': нещодавність_покупки,
    'ltv_to_date': загальний_дохід,
    'purchase_count': загальна кількість транзакцій,
    'avg_purchase_value': середнє(значення_транзакцій),
    'subscription_active': bool,
    'ad_views_7d': rewarded_ad_count # для безкоштовної гри
}

Моделі за сегментами

Не одна модель для всіх — різні для різних сегментів:

  • Payers (платять): найцінніший сегмент. XGBoost із фінансовими фічами. Threshold нижче - не можемо дозволити втрачати.
  • High-engagement non-payers: потенційні конверсії. LightGBM з engagement фічі.
  • Casual players: більшість. Більш проста модель, висока recall.

Cohort-aware модель: Поведінка гравця на D7 нормалізуємо до когорти (середній D7 для даного acquisition channel, дати запуску):

функції['d7_sessions_normalized'] = player_d7_sessions / cohort_avg_d7_sessions

Це прибирає сезонність та відмінності між когортами.

Survival Analysis для ігор

Альтернативна постановка: чи не "піде протягом 14 днів", а "кільки днів до відтоку":

з імпорту рятувальних ліній WeibullAFTFitter

# AFT model: прискорений час життя
aft = WeibullAFTFitter()
aft.fit(player_data, duration_col='days_until_churn', event_col='churned')

Медіанський час до відтоку для конкретного гравця
predicted_retention = aft.predict_median(функції_гравця)

Це дає більш нюансований сигнал: не просто ризик, а очікуваний час життя.

Дії щодо утримання

D0-D3 — Втручання інструктора: Якщо tutorial completion < 80% → push-notification зі спрощеною допомогою.

D1-D7 - Progression intervention: Якщо прогрес нижчий за медіану когорти → тимчасовий buff або подарунок ресурсів.

D7-D30 - Engagement intervention:

  • High-risk платить: персональний email від "розробників" з унікальним бонусом
  • High-risk freemium: рекламна кампанія retargeting із deep link у гру

Win-back (після догляду):

  • Email/push через 3/7/14/30 днів неактивності
  • Спеціальні "Ми скучили!" пропозиції
  • Анонс нового контенту через push

Вимірювання зростання та A/B

# Тест на поступовість
лікування = гравці_високого_ризику.зразок(фракція=0.5)
control = high_risk_players.drop(лікування.індекс)

# Через 14 днів
лікування_утримання = лікування[лікування.активне_14_пізніше].форма[0] / довжина(лікування)
control_retention = control[control.is_active_14d_later].shape[0] / len(control)

підвищення = утримання_в_лікуванні - утримання_в_контролі
print(f&quot;Підвищення утримання внаслідок втручання: {підвищення: 0,1%}&quot;)

Терміни: базова churn модель з логами (LightGBM) - 3-4 тижні. Повноцінна система з cohort-aware підходом, segmented models, survival analysis та A/B measurement - 3-4 місяці.