Прогнозирование активности и триггеров участия
1) Задача
Нужно предсказать когда игрок с высокой вероятностью зайдёт (или, наоборот, может «потухнуть») и какой стимул повысит шанс участия в миссии/квалификаторе/турнире при соблюдении честности и Responsible Gaming (RG).
Ключевые вопросы:- «Когда он обычно играет?» (временные паттерны)
- «Что запускает участие?» (контент, формат, награда, длительность)
- «Как не перегреть?» (частота касаний, RG-ограничения, экономический бюджет)
2) Сигналы данных
Поведение: ритм входов (часы/дни), длина и темп сессий, частота участия в ивентах.
Контент: любимые провайдеры/жанры, новизна, разнообразие.
Экономика промо: реакция на прошлые бусты/сезонные токены/косметику.
Соц-сигналы: чат, клипы, реакции (если есть).
Контекст: устройство, канал, тайм-зона, локальные праздники/события.
RG: лимиты времени/депозитов, признаки усталости, «сигналы пауз».
Все фичи — агрегированные, без PII сверх регуляторного минимума.
3) Фичеринг (примеры)
Сезонность/ритм: one-hot часы 0–23, дни недели; автокорреляция лагов (ACF/PACF).
4) Модельный стек
1. Тайм-серии для активности:- Prophet/NeuralProphet, LSTM/Temporal Fusion Transformer для групповых паттернов;
- простые когорные сезонные профили для онлайна.
- Cox/Weibull/RSF → время до следующей сессии; риск «потухания» (churn-hazard).
- 3. Пропенсити участия (P(join))
GBDT/TabTransformer: вероятность принять участие при показе предложения.
4. Uplift-моделирование (CATE):- Two-Model/T-Learner, X-Learner, DR-Learner для выбора какой триггер/контент даёт прирост.
- контекстный бандит (LinUCB/Thompson) для онлайн-подбора канал×контент×время внутри капов.
5) Типы триггеров участия
Контентные: формат турнира (спринт 20–30 мин, марафон), любимые провайдеры, «новинка недели».
Временные: «старт через 15 мин», «вечерний квалификатор» — совпадение с вероятным окном входа.
Наградные (косметика/токены): без pay-to-win; редкости — общие для всех.
Социальные: друзья онлайн, челлендж комьюнити, ко-оп задачи (этично, без давления).
Кросс-миссии: короткая миссия-разогрев → вход в квалификатор.
6) Оркестрация касаний (канал×время×частота)
Каналы: in-app, пуш, email, web-inbox; приоритет in-app → пуш → email.
Выбор времени: пересечение p(active в следующие 90–120 мин) с расписанием ивентов.
Частота/кап: не более N касаний/неделя, M/день; строгое cooldown между триггерами.
Тихий режим: ночные окна пользователя; «тихий» пуш → inbox-карту в приложении.
7) Честность, комплаенс, RG
Никакого влияния на RTP/шансы. Триггеры меняют «путь», а не матожидание выигрыша.
Прозрачность: страница «Как мы подбираем уведомления»: окна активности, частотные лимиты, отказ от персонализации — 1 клик.
RG-гварды: при усталости/лимитах — снижаем частоту, предлагаем паузу, не зовём на длинные форматы.
Отписки/opt-out: уважаются мгновенно; «умное молчание» после жалобы.
8) Анти-спам и анти-абьюз
Rate limiting на пользователя и канал.
Дедупликация смысла: не слать 2 похожих повода подряд.
Экономический бюджет: cap на эмиссию токенов/косметики по сезону.
Справедливость: верхняя ценность награды одинакова; персонализация — про релевантность.
9) KPI и контрольные метрики
Hit Rate окна: доля касаний, попавших в активную сессию ±Δ минут.
Join Uplift: прирост участия vs контроль.
D7/D30 Retention uplift у целевых когорт.
Fatigue: рост отписок/мьютов/жалоб; Mute Rate < целевого порога.
RG-метрики: снижение сверхдлинных сессий, доля мягких пауз.
Prize ROI / Emission to GGR — чтобы промо-экономика была устойчива.
Incremental Revenue / User-week (если применимо и допустимо регуляторно).
10) A/B-паттерны
1. Окна напоминаний: T–30/15/5 мин до старта квалификатора.
2. Длительность формата: спринт 20 мин vs 35 мин для вечерних слотов.
3. Тип контента: любимый провайдер vs «новинка недели».
4. Канал: in-app vs пуш; пуш с глубокими ссылками vs без.
5. Uplift-политика: таргет только uplift-положительных vs широкое покрытие.
6. Комбо-триггер: миссия-разогрев → турнир vs сразу турнир.
11) JSON-шаблоны
Профиль предсказаний по игроку:json
{
"user_id": "u_29104", "next_active_window": {"start": "2025-10-24T17:00:00Z", "end": "2025-10-24T19:00:00Z", "p_active": 0.72}, "p_join_by_trigger": {
"sprint_20min": 0.41, "marathon_60min": 0.18, "new_provider_event": 0.36
}, "uplift_by_trigger": {
"sprint_20min": 0.12, "new_provider_event": 0.07
}, "rg_flags": {"fatigue": false, "limit_time": false}, "cooldowns": {"push": true, "in_app": false}
}
Решение оркестратора касаний:
json
{
"decision_id": "dec_2025_10_24_1630", "user_id": "u_29104", "touch": {
"channel": "in_app", "time": "2025-10-24T17:05:00Z", "trigger": "sprint_20min", "creative": "evening_sprint_card_v3"
}, "fairness": {"reward_cap_equivalent": true}, "rg": {"suggest_break": false}
}
12) Псевдокод оркестрации
python ctx = build_context(user_id)
p_active = activity_model.predict_window(ctx, horizon_hours=4)
p_join = propensity_model.score_triggers(ctx)
uplift = uplift_model.estimate(ctx, triggers=p_join.keys())
RG и частотные ограничения if ctx.rg.fatigue or over_frequency_cap(user_id):
schedule_silent_inbox(user_id); exit()
выбор окна и триггера win = best_time_window(p_active, events_schedule)
trigger = argmax(uplift, mask=channel_caps(user_id))
touch = compose_touch(user_id, channel="in_app", window=win, trigger=trigger)
if economy_budget_ok(trigger) and not in_quiet_hours(user_id, touch.time):
deliver(touch); log(touch)
13) UX-паттерны
Карточка в лобби: «Вечерний спринт 20 мин, старт через 15 мин, косметика Rare».
Оценка времени: «≈20–25 минут» + индикатор сложности.
Опции контроля: «Напомнить позже», «Пропустить эту тему», «Молчать неделю».
Тихие VFX: краткие, неинвазивные, без навязчивого звука.
14) План внедрения
1. MVP (2–4 недели): когорные окна активности + простая пропенсити; один канал (in-app), кап частоты, экран прозрачности.
2. v0.9: survival-модель времени до входа; пуш + inbox; базовый uplift на 2–3 триггера.
3. v1.0: контекстный бандит, полноценный календарь событий, бюджет эмиссии, RG-интеграция, отчёты честности.
4. Дальше: персональные «расписания недели», кросс-миссии, гео-ивенты, MLOps-автоматизация дрейфа.
15) Чеклист перед релизом
- Нет влияния на RTP/шансы; потолок ценности наград одинаков.
- Частотные лимиты и «тихий режим» включены.
- RG-гварды активны; есть быстрый opt-out.
- Экономический бюджет подтверждён; анти-спам работает.
- A/B-план и KPI-порог успеха определены.
- Экран «Как это работает» и лог-аудит решений готовы.
Прогнозирование активности и триггеров — это время×контент×канал под RG-и честностными констрейнтами. Тайм-серии и survival дают «когда», пропенсити и uplift — «чем звать», бандит — «как адаптировать онлайн». При строгих капах частоты, прозрачности и устойчивом бюджете промо получаем меньше шума, больше участия и предсказуемую экономику сезона.