Faollikni va qatnashish triggerlarini prognoz qilish
1) Vazifa
O’yinchi qachon kirishi mumkinligini (yoki aksincha, «o’chishi» mumkinligini) va halollik va Responsible Gaming (RG) bo’yicha missiya/malaka/turnirda ishtirok etish imkoniyatini qanday rag’batlantirishini oldindan aytish kerak.
Asosiy masalalar:- «U odatda qachon oʻynaydi?» (vaqtinchalik patternlar)
- «Ishtirokni nima boshlaydi?» (kontent, format, mukofot, davomiyligi)
- «Qanday qilib haddan tashqari qizib ketmaslik kerak?» (teginish chastotasi, RG-cheklovlar, iqtisodiy budjet)
2) Ma’lumotlar signallari
Xulq-atvori: kirish ritmi (soat/kun), sessiyalarning uzunligi va sur’ati, tadbirlarda ishtirok etish chastotasi.
Kontent: sevimli provayderlar/janrlar, yangilik, xilma-xillik.
Sanoat iqtisodiyoti: o’tmishdagi bustlarga/mavsumiy tokenlarga/kosmetikaga munosabat.
Sotss-signallar: chat, kliplar, reaksiyalar (agar mavjud bo’lsa).
Kontekst: qurilma, kanal, taym-zona, mahalliy bayramlar/tadbirlar.
RG: vaqt/depozit limitlari, charchoq belgilari, «pauza signallari».
Barcha chichlar - regulyator minimumidan ortiqcha PIIsiz agregatsiyalangan.
3) Fichering (misollar)
Mavsumiylik/ritm: one-hot soat 0-23, hafta kunlari; laglarni avtokorrelyatsiya qilish (ACF/PACF).
4) Model steki
1. Aktiv uchun vaqt seriyasi:- Prophet/NeuralProphet, LSTM/Temporal Fusion Transformer guruh patternlari uchun;
- onlayn uchun oddiy kogor mavsumiy profillar.
- Cox/Weibull/RSF → keyingi sessiyaga qadar vaqt; «so’nish» xavfi (churn-hazard).
- 3. Ishtirok etish propensiti (P (join))
GBDT/TabTransformer: taklifni koʻrsatishda ishtirok etish ehtimoli.
4. Uplift-modellashtirish (CATE):- Two-Model/T-Learner, X-Learner, DR-Learner qaysi trigger/kontentni oshirishni tanlash uchun.
- kontekstli bandit (LinUCB/Thompson) onlayn tanlash uchun kanal × kontent × kaplar ichidagi vaqt.
5) Ishtirok etish triggerlari turlari
Kontent: turnir formati (sprint 20-30 min, marafon), sevimli provayderlar, «haftaning yangiligi».
Vaqtinchalik: «15 daqiqadan so’ng boshlash», «kechki malaka» - kirish oynasiga mos keladi.
Mukofot pullari (kosmetika/tokenlar): pay-to-winsiz; kamdan-kam hollarda - hamma uchun umumiy.
Ijtimoiy: onlayn do’stlar, jamoaning muammosi, ko’p vazifalar (axloqiy, bosimsiz).
Qisqacha missiyalar: qisqa isitish missiyasi → malaka darajasiga kirish.
6) Aloqalarni orkestrlash (kanal × vaqt × chastota)
Kanallar: in-app, push, email, web-inbox; ustuvorlik in-app → push → email.
Vaqtni tanlash: p (keyingi 90-120 daqiqada active) tadbirlarning jadvali bilan kesishish.
Chastota/kapa: N dan ko’p bo’lmagan teginish/hafta, M/kun; triggerlar orasidagi qattiq cooldown.
Tiniq rejim: foydalanuvchining tungi oynalari; ilovadagi «jim» push → inbox-karta.
7) Halollik, komplayens, RG
RTP/imkoniyatlarga hech qanday ta’sir ko’rsatilmaydi. Triggerlar g’alabani kutishdan ko’ra «yo’lni» o’zgartiradilar.
Shaffoflik: «Xabarnomalarni qanday tanlaymiz» sahifasi: faollik oynalari, chastota limitlari, shaxsiylashtirishdan bosh tortish - 1 ta bosish.
RG-gvardlar: charchaganda/chegaralarda - chastotani pasaytiramiz, tanaffus beramiz, uzoq formatlarga chaqirmaymiz.
Javoblar/opt-out: bir zumda hurmat qilinadi; shikoyatdan keyin «aqlli sukut saqlash».
8) Anti-spam va anti-abyuz
Foydalanuvchi va kanal uchun rate limiting.
Ma’noni duplikatsiya qilish: 2 shunga o’xshash sabablarni ketma-ket yubormaslik.
Iqtisodiy budjet: mavsum bo’yicha tokenlar/kosmetika emissiyasiga cap.
Adolat: mukofotning yuqori qiymati bir xil; shaxslashtirish - ahamiyatlilik haqida.
9) KPI va nazorat metriklari
Hit Rate oynalari: Faol sessiyada ± Δ daqiqa davomida teginish ulushi.
Join Uplift: ishtirokning oʻsishi vs nazorat.
Maqsadli kogortlarda D7/D30 Retention uplift.
Fatigue: javoblar/myutlar/shikoyatlar o’sishi; Mute Rate RG-metriklar: ortiqcha uzunlikdagi sessiyalarning kamayishi, yumshoq pauzalar ulushi. Prize ROI/Emission to GGR - reklama iqtisodiyoti barqaror bo’lishi uchun. Incremental Revenue/User-week (agar qo’llash mumkin bo’lsa va tartibga solish mumkin bo’lsa). 10) A/B-patternlar 1. Ogohlantirish oynalari: malaka oshiruvchi boshlanishidan T-30/15/5 daqiqa oldin. 2. Formatning davomiyligi: kechki slotlar uchun sprint 20 min vs 35 min. 3. Kontent turi: sevimli provayder vs «haftaning yangiligi». 4. Kanal: in-app vs push; chuqur havolali push vs. 5. Uplift-siyosat: faqat uplift-ijobiy target vs keng qamrovli. 6. Kombo-trigger: missiya-isitish → turnir vs darhol turnir. 11) JSON namunalari 12) Orkestrning soxta hujjati 13) UX-patternlar Lobbidagi kartochka: «Kechki sprint 20 daqiqa, 15 daqiqada start, kosmetika Rare». Vaqtni baholash: «≈ 20-25 daqiqa» + murakkablik indikatori. Nazorat variantlari: «Keyinroq eslatish», «Bu mavzuni o’tkazib yuborish», «Bir hafta sukut saqlash». Jim VFX: qisqa, invaziv bo’lmagan, obsesif tovushsiz. 14) Joriy etish rejasi 1. MVP (2-4 hafta): Kogor faollik oynalari + oddiy propensiti; bitta kanal (in-app), chastota kapi, shaffoflik ekrani. 2. v0. 9: kirishdan oldingi vaqtning survival-modeli; push + inbox; 2-3 triggerga tayanch uplift. 3. v1. 0: kontekstli bandit, voqealarning to’liq taqvimi, emissiya byudjeti, RG integratsiyasi, halollik hisobotlari. 4. Keyingi: shaxsiy «haftalik jadvallari», kross-missiyalar, geo-eventlar, driftni MLOps-avtomatlashtirish. 15) Chiqarishdan oldin cheklist Faollik va triggerlarni prognoz qilish - bu RG × va halol kontentlar ostida kontent va kanalni × vaqti. Taym-seriyalar va survival «qachon», propensiti va uplift - «nima deyish kerak», bandit - «qanday qilib onlayn moslashtirish kerak». Qat’iy chastotalar, shaffoflik va barqaror byudjetda reklama kamroq shovqin, ko’proq ishtirok etish va mavsumning prognoz qilinadigan iqtisodiyotiga ega bo’ladi.
Aloqa orkestratorining qarori:
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 va chastota cheklovlari if ctx. rg. fatigue or over_frequency_cap(user_id):
schedule_silent_inbox(user_id); exit()
oyna va trigger tanlash 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)