Aktivlik və triggerlərin proqnozlaşdırılması
1) Vəzifə
Yüksək ehtimalla oyunçunun nə vaxt girəcəyini (və ya əksinə, «sönə» bilər) və dürüstlük və Responsible Gaming (RG) ilə missiyada/kvalifikatorda/turnirdə iştirak şansını artıracaq stimul.
Açar suallar:- «Adətən nə vaxt oynayır?» (müvəqqəti nümunələr)
- «Nə iştirak edir?» (məzmun, format, mükafat, müddət)
- «Necə həddindən artıq qızdırmaq deyil?» (toxunma tezliyi, RG məhdudiyyətləri, iqtisadi büdcə)
2) Məlumat siqnalları
Davranış: giriş ritmi (saat/gün), sessiyaların uzunluğu və tempi, tədbirlərdə iştirak tezliyi.
Məzmun: Sevimli provayderlər/janrlar, yenilik, müxtəliflik.
Promo iqtisadiyyatı: keçmiş bustlara/mövsümi tokenlərə/kosmetikaya reaksiya.
Sosial siqnallar: chat, kliplər, reaksiyalar (varsa).
Kontekst: cihaz, kanal, vaxt zonası, yerli bayramlar/hadisələr.
RG: vaxt/depozit limitləri, yorğunluq əlamətləri, «fasilə siqnalları».
Bütün fiçlər - tənzimləmə minimumundan artıq PII olmadan yığılmış.
3) Fiçerinq (nümunələr)
Mövsümlük/ritm: bir-isti saat 0-23, həftənin günləri; laqların avtomatik korrelyasiyası (ACF/PACF).
4) Model yığını
1. Fəaliyyət üçün vaxt seriyası:- Prophet/NeuralProphet, qrup nümunələri üçün LSTM/Temporal Fusion Transformer;
- online üçün sadə dağ mövsümü profilləri.
- Cox/Weibull/RSF → növbəti sessiyaya qədər vaxt; «sönmə» riski (churn-hazard).
- 3. Propensiti iştirak (P (join))
GBDT/TabTransformer: təklifin nümayişində iştirak etmək ehtimalı.
4. Uplift modelləşdirmə (CATE):- Two-Model/T-Learner, X-Learner, DR-Learner hansı trigger/məzmun artım verir seçmək üçün.
- kontekstli quldur (LinUCB/Thompson) online seçim kanal × məzmun × kaps daxilində vaxt.
5) Trigger növləri
Məzmun: turnirin formatı (sprint 20-30 dəqiqə, marafon), sevimli provayderlər, «həftənin yeniliyi».
Müvəqqəti: «15 dəqiqədən sonra start», «axşam seçicisi» - ehtimal olunan giriş pəncərəsi ilə üst-üstə düşür.
Mükafat (kosmetika/tokenlər): ödənişsiz; nadir - hər kəs üçün ümumi.
Sosial: dostlar online, challenge cəmiyyət, co-op vəzifələr (etik, təzyiq olmadan).
Cross-missiyalar: qısa missiya-qızdırma → kvalifikatora giriş.
6) Toxunma orkestri (kanal × vaxt × tezlik)
Kanallar: in-app, push, email, web-inbox; prioritet in-app → push → email.
Vaxt seçimi: tədbirlərin cədvəli ilə p (növbəti 90-120 dəqiqədə active) keçmək.
Tezlik/cap: N-dən çox toxunma/həftə, M/gün; tetik arasında ciddi cooldown.
Sakit rejim: istifadəçinin gecə pəncərələri; app «sakit» push → inbox kartı.
7) Dürüstlük, uyğunluq, RG
RTP/şans heç bir təsir. Tetikləyicilər «yolu» dəyişir, qalib gəlməyi gözləmir.
Şəffaflıq: «Bildirişləri necə seçirik» səhifəsi: fəaliyyət pəncərələri, tezlik limitləri, personalizasiyadan imtina - 1 klik.
RG-qvard: yorğunluqda/limitlərdə - tezliyi aşağı salırıq, fasilə veririk, uzun formatlara çağırmırıq.
Abunələr/opt-out: anında hörmət; şikayətdən sonra «ağıllı sükut».
8) Anti-spam və anti-sui-istifadə
Rate limiting istifadəçi və kanal.
Mənanın təkrarlanması: ardıcıl olaraq 2 oxşar səbəb göndərməyin.
İqtisadi büdcə: mövsüm üçün token/kosmetika emissiyası üçün cap.
Ədalət: mükafatın üst dəyəri eynidir; personalizasiya - müvafiq haqqında.
9) KPI və nəzarət metrləri
Hit Rate Windows: Aktiv sessiyaya daxil olan toxunuşların payı ± Δ dəqiqə.
Join Uplift: artım iştirak vs nəzarət.
Hədəf kohortlarda D7/D30 Retention uplift.
Fatigue: abunə/musiqi/şikayətlərin artması; Mute Rate RG metrik: ultra uzun sessiyaların azaldılması, yumşaq fasilələrin payı. Prize ROI/Emission to GGR - promosyon iqtisadiyyatının sabit olması üçün. Incremental Revenue/User-week (tənzimləyici olaraq tətbiq olunarsa). 10) A/B nümunələri 1. Xatırlatma pəncərələri: kvalifikator başlamazdan əvvəl T-30/15/5 dəq. 2. Format müddəti: axşam slotları üçün sprint 20 dəq vs 35 dəq. 3. Məzmun növü: sevimli provayder vs «həftənin yeniliyi». 4. Kanal: in-app vs push; dərin bağlantıları ilə push vs olmadan. 5. Uplift siyasəti: hədəf yalnız uplift-müsbət vs geniş əhatə edir. 6. Combo-trigger: missiya-qızdırma → turnir vs dərhal turnir. 11) JSON şablonları 12) Orkestrin psevdokodu 13) UX nümunələri Lobbidə kart: «Axşam sprint 20 dəq, başlanğıc 15 dəq, kosmetika Rare». Vaxt qiymətləndirilməsi: «≈ 20-25 dəqiqə» + çətinlik göstəricisi. Nəzarət variantları: «Sonradan xatırlatmaq», «Bu mövzunu qaçırmaq», «Bir həftə susmaq». Sakit VFX: qısa, qeyri-invaziv, heç bir obsesif səs. 14) Tətbiq planı 1. MVP (2-4 həftə): fəaliyyət pəncərələri + sadə propensiti; bir kanal (in-app), cap tezliyi, şəffaflıq ekranı. 2. v0. 9: giriş əvvəl survival-model vaxt; push + inbox; 2-3 trigger üçün əsas uplift. 3. v1. 0: kontekstli quldur, hadisələrin tam təqvimi, emissiya büdcəsi, RG inteqrasiyası, dürüstlük hesabatları. 4. Sonrakı: şəxsi «həftənin cədvəli», xaç missiyaları, geo-tədbirlər, driftin MLOps-avtomatlaşdırılması. 15) Buraxılışdan əvvəl çek siyahısı Aktivlik və tetikleyicilərin proqnozlaşdırılması RG × dürüst konstreynt altında məzmun və kanal × vaxtıdır. Vaxt seriyası və survival «nə vaxt», propensiti və uplift - «nə çağırmaq lazımdır», quldur - «onlayn necə uyğunlaşdırmaq olar». Ciddi tezlik, şəffaflıq və sabit büdcə ilə daha az səs-küy, daha çox iştirak və mövsümün proqnozlaşdırıla bilən iqtisadiyyatı əldə edirik.
Toxunma orkestrinin həlli:
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}
}
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 və tezlik məhdudiyyətləri if ctx. rg. fatigue or over_frequency_cap(user_id):
schedule_silent_inbox(user_id); exit()
pəncərə və tetikleyici seçimi 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)