Интеграция миссий с бонусной системой и CRM
Миссии работают только тогда, когда награда начисляется предсказуемо и коммуникация ведёт игрока от шага к шагу. Значит, ядро — это связка Mission Engine ↔ Bonus/Wallet ↔ CRM/CDP, плюс RG/KYC и антифрод. Ниже — готовая схема интеграции с шаблонами данных и проверенными практиками.
1) Цели интеграции
Рост вовлечения и ARPPU (net): миссии → прогресс → награды → повторные сессии/депозиты.
Контроль маржи: бюджет-пулы, капы, «стоимость бонуса» на активного/платящего.
Персонализация: миссии и награды по сегментам CRM/CDP.
Комплаенс: KYC/RG-гейты, гео-правила, аудит.
Измеримость: A/B, пост-эффект, каннибализация.
2) Архитектура потока
1. Event Ingest: `bet`, `win`, `deposit`, `mission_progress`, `mission_complete`.
2. Mission Engine: проверка условий, подсчёт очков/статусов, триггеры наград.
3. Reward Orchestrator: бюджет-чек, RG/KYC, создание `reward_task`.
4. Bonus/Wallet: кэш, бонус-кэш (вейджер), фриспины, купоны; вебхуки/SDK.
5. CRM/CDP: сегменты, триггерные кампании, частотные лимиты, suppression-листы.
6. Analytics/DWH: сырые события, витрины, инкремент, дашборды.
7. Anti-Fraud & RG: капы, эвристики/ML, hold-and-review.
3) Модель данных и события
События (минимум):- `mission_view / join / progress / complete`
- `points_awarded {rule_id, amount, caps}`
- `reward_task.created / succeeded / failed / held`
- `wallet_credit / bonus_issued / freespins_issued`
- `kyc_status_changed / rg_event`
- `crm_send / crm_open / crm_click / crm_unsub`
json
{
"event": "mission_complete", "ts": "2025-10-24T10:17:12Z", "user": {"id":"u_123", "geo":"TR", "platform":"ios", "payer_flag":true}, "mission": {"id":"m_4521", "type":"turnover", "segment":"mid_core"}, "progress": {"value": 1000, "window":"2025-10-24"}, "context": {"session_id":"s_778"}
}
4) Карта наград: миссии → бонусная система
Правило выбора: массовые миссии — недорогие награды (FS/бонус-кэш), «финишеры»/глубокие цепочки — часть безвейджерного кэша для доверия.
5) Reward Orchestrator: бюджет, RG/KYC, идемпотентность
Идемпотентность: ключ `reward_task_id` + `X-Request-Id` для внешних вызовов.
Бюджеты: пулы `season_sprint`, `onboarding`, `reengage`; soft/hard cap; circuit-breaker 90%.
KYC/RG-гейты: кэш > €X — только L2+, при активном `cool_off` награды в `held`.
Аудит: WORM-журнал исходящих тел.
Пример `reward_task.created`:json
{
"type":"reward_task.created", "reward_task_id":"rt_9a7", "user_id":"u_123", "origin":{"mission_id":"m_4521","threshold":"final"}, "reward":{"type":"bonus_cash","amount":5,"currency":"EUR","wagering":15,"expiry":"2025-10-27T00:00:00Z"}, "pool_id":"season_sprint", "status":"pending"
}
6) Интеграция с кошельком/бонус-сервисом
Исходящий вебхук (пример):
POST /wallet/bonus.issue
X-Request-Id: rid_7f5...
X-Timestamp: 1730061700
X-Signature: sha256=...
{
"user_id":"u_123", "bonus": {"type":"bonus_cash","amount":5,"currency":"EUR","wagering":15,"expiry":"2025-10-27T00:00:00Z"}, "reason":"mission:m_4521"
}
Ответ партнёра: `200 { "bonus_id":"b_331", "status":"issued" }` → `reward_task.succeeded`.
Ошибки 5xx → ретраи с тем же `X-Request-Id`; 4xx → DLQ + ручная обработка.
7) Связка с CRM/CDP
7.1. Сегментация
Stage: D0–D7 (онбординг), R7–R30 (ре-энгейдж), Core P30.
Монетизация: неплатящие / NPP / RPP / high-value.
Поведение: завершители T1/T2/T3, «застрявшие», «почти-достиг».
Риск: RG-флаги, KYC-статус.
7.2. Триггеры кампаний
On-mission: «осталось 120 очков», «+2 позиции» — in-app/push.
Post-mission: «бонус активирован / истекает через 12 ч».
Winback: не начинал миссию 48 ч → персональное предложение (если разрешено).
Suppression: при `cool_off`/self-exclusion никаких промо.
7.3. Правила частоты
Max 1 push/4 ч, 1 email/24 ч на миссию; capping по каналу и в целом.
Quiet hours по локальному времени, двойная опта-ин/аут.
8) Пайплайн данных в CRM
CDP-витрина `mission_funnel_daily`:- `eligible`, `viewed`, `joined`, `started`, `t1..tn`, `completed`, `rewarded`.
- Времена до T1/T2/…; статус бонуса; `cost_eur`; `net_arppu`.
sql
SELECT user_id
FROM mission_funnel_daily
WHERE mission_id =:m
AND started = true
AND completed = false
AND points_to_next <= 150
AND last_seen_at > now() - interval '24 hour'
AND rg_ok = true;
9) Антифрод и “fair play”
Капы: очки/ставку, очки/мин/час/день; лимит повторяющихся микроставок.
Тех-сигналы: headless, прокси, дубликаты `device_fp`.
Поведенческие фильтры: минимальная дисперсия ставок; «идеальные» паттерны → hold.
Призы: >€X и топ-позиции — отложенная выдача до KYC.
CRM-ограничения: не стимулировать «фермеров очков»; suppression по fraud-score.
10) Экономика наград и контроль маржи
Ключевые показатели:- `Prize & Bonus Cost per Active` / `per Payor`
- `ΔARPPU (net)` = ARPPU − (Prize+Bonus per payor)
- `Net Uplift` = Инкрементальная выручка − Стоимость (призы+операции+фрод)
sql
SELECT pool_id, SUM(value) AS spent, MAX(budget) AS limit, SUM(value)/MAX(budget) AS fill
FROM reward_ledger
WHERE date(created_at)=current_date
GROUP BY pool_id;
11) A/B-тесты интеграции
Единица: пользователь, sticky-assignment, стратификация (payer/geo/platform).
Primary: participation_net, completion, `ΔARPPU (net)`.
Guardrails: жалобы/1k, fraud-flags, RG-срабатывания, SRM-алерты.
CUPED: pre-value (ARPPU/очки за прошлую неделю) для снижения дисперсии.
Интерференция: раздельные лидерборды/нормализация очков.
12) UX-паттерны, которые «вяжут» миссии, бонусы и CRM
Один экран — одна цель: чёткие правила, видимый прогресс.
Немедленная обратная связь: «+10 очков» и бейдж прогресса.
Видимость наград: что уже получено, что сгорит, что дальше.
Гайдлайн по копирайту: «приглашаем» к участию, не давим на депозит.
Локализация: тексты, валюты, сроки, юрисдикции.
13) Дашборды (ежедневно)
1. Воронка миссий: Reach → Join → Start → T1/T2/… → Complete → Rewarded.
2. Коммуникации: send/open/click, opt-out, per-channel capping.
3. Монетизация: ΔARPPU (net), Avg Deposit, Paying Share.
4. Стоимость: Prize/Bonus Cost%, Net Uplift, бюджет-пулы.
5. Качество: DLQ, ретраи, HMAC-ошибки, latency p95, фрод-флаги, RG-триггеры.
6. Сегменты: новичок / mid-core / high-value; web/iOS/Android; гео.
14) Чек-лист запуска
- Схема событий, versioning, контракты вебхуков (HMAC, TTL, идемпотентность).
- Маппинг миссий → типы наград + бюджеты/каперы.
- KYC/RG-гейты, hold-and-review крупных призов.
- Интеграция кошелька/бонус-сервиса (sandbox → prod), ретраи/DLQ.
- Сегменты CRM/CDP, триггеры и suppression-правила, частотные лимиты.
- Дашборды SLO и экономики; алерты SRM/DLQ/бюджет.
- A/B-план, CUPED, раздельные лидерборды.
- Runbook инцидентов: переигровка событий, ручная выдача, «заморозка» правил.
15) Мини-кейс (синтетический)
Запущены: «Онбординг 7 дней», «Выходные спринты», «Ретёрн 14 дней».
Награды: T1/T2 — FS/бонус-кэш; финишеры — часть безвейджерного кэша.
CRM: триггеры «почти-достиг», «истекает бонус», quiet-hours, capping.
6 недель, 2 бренда, holdout 15%.
Результаты: participation_net 24% → 33% (+9 п.п.), completion 42% → 56% (+14 п.п.), ΔARPPU (net) +€2,8; Prize&Bonus/Active +€0,8; DLQ <0,07%; fraud-flags <1% PF.
Решение: масштабирование, увеличение «длинного хвоста» микропризов и локальные тексты в CRM.
Интеграция миссий с бонусной системой и CRM — это единая машина: события и правила, бюджет-контроль, кошелёк/бонусы, персонализация и безопасные коммуникации. Постройте её на идемпотентности, KYC/RG-гейтах, сегментах CRM и прозрачной экономике — и миссии будут стабильно приносить нетто-инкремент, а не «съедать» маржу.