Testele A/B ale regulilor de notare
Notarea este inima oricărei gamificări. Exact modul în care sunt numărate punctele determină comportamentul jucătorului, structura de participare și economia (ARPPU, oase bonus). Mai jos este o rețetă practică pentru testarea valabilă a noii reguli a punctelor și asigurarea faptului că creșterea metrică este reală, nu un artefact.
1) Ce anume testăm
Exemple de reguli:- După valoarea pariului: 1 punct pentru fiecare pariu de 1 €.
- Prin multiplicator câștig/miză: puncte = multiplicator ⌊ × k ⌋, cu un plafon per pariu.
- Hibrid: puncte pe cifra de afaceri + impuls pentru „serie” (N rotiri într-un rând), capace pe minut/oră.
- Misiuni: fixați puncte pentru finalizarea sarcinilor (T1...Tn) cu o complexitate crescândă.
Ipoteza (exemplu): „Modelul multiplicator + cap va crește rata de participation_net și de finalizare fără a înrăutăți ARPPU net (după premii/bonusuri)”.
2) Unitate experimentală și randomizare
Unitate: utilizator (nu sesiune, nu dispozitiv).
Distributie: hash static (user_id → galeata) cu saruri fixe; fracții de 50/50 sau 33/33/33 pentru A/B/C.
Stratificare (recomandat): statut plătitor (nou plată/re-plată/neplătire), platformă, geo.
Atribuire lipicioasă: Utilizatorul vede întotdeauna aceeași regulă în timpul testului.
Test SRM (eșantion Raportul nepotrivit) - Verificați acțiunile reale ale grupurilor de zi cu zi față de cele așteptate (chi-pătrat). SRM - semnal de scurgere a traficului, filtrare eronată, bug-uri.
3) Metrica și „pâlnia de puncte”
Activitate și participare
Reach: partajați cine a văzut evenimentul.
Participation_gross: introdus/opțional.
Participation_net: a început progresul/ideal.
Finalizare: finalizat/început.
Calitate și bani
Δ DA/WAU и stickiness (DA/WAU).
Avg Pariuri pe sesiune, Avg Dimensiune pariu.
ARPPU (net) = − ARPPU (premiu + cost bonus per plătitor).
Avg Depozit, Plata Share.
Net Uplift: (venituri suplimentare) − (premii + bonusuri + operare + scurgeri de fraudă).
Gardereils
Reclamații/suport tehnic pentru 1.000 de utilizatori, refuzuri KYC, modele de pariuri anormale, steaguri RG (limite, auto-excludere).
4) Durata, sezonalitatea și noutatea
Minim 2 cicluri complete de activitate (ex. 2 săptămâni pentru a captura week-end).
Luați în considerare efectul de noutate: o stropire a primelor 48-72 de ore. Fixați și analizați în faze (D0-D2, D3-D7, D8 +).
Nu traversați cu promo-uri mari sau planificați „zgomot egal” în grupuri.
5) Capacitatea de eșantionare și volumul (exemplu de calcul)
Scopul: de a detecta diferența de Δ prin media „puncte per utilizator” (sau Net ARPPU).
Formula pentru testul cu două eșantioane t (în mod egal în grupuri):[
n_{\text{na group} =\frac {2, (z_{1-\alpha/2}+z_{1-\beta}) ^ 2 ,\sigma ^ 2} {\Delta ^ 2}
]
Exemplu: vrem să prindem Δ = 5 puncte, σ = 120, α = 0. 05 (pe două fețe), putere 80% (β = 0. 2).
(z_{1-α/2}=1{,}96), (z_{1-β}=0{,}84) → suma 2. 8 → pătrat 7. 84.
(\sigma ^ 2 = 14.400).
(n =\frac {2\times 7 {,} 84\times 14.400} {25 }\approx\frac {225,792} {25 }\approx 9,032) per grup.
6) Reducerea dispersiei: făcând testul „mai ieftin”
CUPED: ajustarea regresiei pentru covariatele pre-testate (de exemplu, puncte/rate pentru ultima săptămână).
Covariabile: pavilion plătitor, log-transformări ale cifrei de afaceri, activitate, platformă, geo.
Clustering de erori: la nivelul utilizatorului (sesiuni repetate în cadrul).
7) Interferențe și „strâmtori”
Regula punctelor poate afecta mai mult decât participanții la teste:- Comparație socială (bord lider comun) → „spillover”.
- Jackpot-uri partajate/misiuni comune → efect transversal.
- Clasamente separate de grup sau normalizarea ascunsă a punctelor.
- Randomizarea clusterelor de trafic/geo (mai scumpă, dar mai curată).
- Testele sensibile per protocol (ITT) +.
8) Antifraudă și gura de reguli
Orice schimbare a ochelarilor stimulează optimizarea: micro-pariuri, botovodstvo, „ferme de ochelari”.
Protecții minime:- Cap puncte pe minut/oră/zi și pentru un pariu.
- Volatilitatea minimă a pariurilor (interzicerea secvențelor „ideale”).
- Detectarea amprentelor digitale fără cap/repetate, proxy.
- Verificarea întârziată a premiilor mari + KYC.
- Analytics: Comparați „puncte/pariuri” și „puncte/min” distribuție, căutați cozi.
9) Schema de evenimente și date (minim)
Evenimente:- 'session _ start {user_id, ts, platform}'
- 'event _ view {user_id, event_id, ts}'
- 'event _ join {user_id, event_id, ts}'
- 'points _ awarded {user_id, event_id, rule_id, source, ts}'
- 'mission _ progress {user_id, mission_id, step, value, ts}'
- 'mission _ complete {user_id, mission_id, ts}'
- 'bet {user_id, game_id, pariu, câștig, ts}'
- 'deposit {user_id, cantitate, ts}'
- 'rule {rule_id, name, params, caps_minute, caps_hour, caps_day, version}'
- 'misiuni {user_id, test_id, grup, assigned_at}'
10) Schițe SQL pentru analiză
Verificarea MUR (alocarea grupurilor):sql
SELECTAȚI GRUPUL, NUMĂRAȚI () CA UTILIZATORI
DIN MISIUNI
WHERE test_id =: test
GRUP PE GRUP;
-- în continuare chi-pătrat față de fracțiile așteptate
Participare/Completare pe grupe:
sql
CU ELIGIBIL AS (
SELECTEAZĂ user_id DE LA UTILIZATORI
UNDE last_active_at> =: START - INTERVALUL '14 zile'
), s-au alăturat AS (
SELECTAȚI user_id DISTINCTE DIN event_join
UNDE event_id =: EVENIMENT ȘI ÎNTRE: START ȘI: end
), a început AS (
SELECTAȚI user_id DISTINCTE DIN mission_progress
UNDE SE AFLĂ ÎNTRE: START ȘI: SFÂRȘITUL ȘI mission_id ÎN (: misiuni)
), completat AS (
SELECTAȚI user_id DISTINCTE DIN mission_complete
UNDE SE AFLĂ ÎNTRE: START ȘI: SFÂRȘITUL ȘI mission_id ÎN (: misiuni)
)
SELECT a. group, COUNT (DISTINCT j. (DISTINCT e. ) AS , COUNT (DISTINCT s. (DISTINCT e. ) AS , COUNT (DISTINCT c
DE LA eligibil e
ALĂTURAȚI-VĂ misiunilor de UTILIZARE (user_id)
STÂNGA ALĂTURAȚI-VĂ j UTILIZAREA (user_id)
LEFT JOIN a început să utilizeze (user_id)
LEFT JOIN completat c USING (user_id)
UNDE a. test_id =: test
GRUP CU UN GRUP;
ARPPU net și valoarea premiilor/bonusurilor:
sql
CU PLĂTITORI AS (
SELECTAȚI user_id DISTINCTE DIN PLĂȚI
ÎN CAZUL ÎN CARE ÎNTRE: START ȘI: end
), rev AS (
SELECTEAZA user_id, SUMA (gr) AS ggr
DIN VENITURI
ÎN CAZUL ÎN CARE ÎNTRE: START ȘI: end
GRUP CU user_id
), costuri AS (
SELECTAȚI user_id, SUMA (premiu + bonus) CA cost
DE LA promo_costs
ÎN CAZUL ÎN CARE ÎNTRE: START ȘI: end
GRUP CU user_id
)
SELECT a. group, AVG (COALESCE (r. ggr, 0) - COALESCE (c. costul, 0)) FILTRU (în cazul în care p. user_id NU ESTE NULL) CA net_arppu
DIN MISIUNI a
LEFT JOIN PAYORS p USING (user_id)
LEFT JOIN rev r USING (user_id)
LEFT JOIN costurile c UTILIZAREA (user_id)
UNDE a. test_id =: test
GRUP CU UN GRUP;
PLAFONAT (exemplu):
sql
-- pre_value: ochelari/venituri pre-test; valoare: în timpul încercării
SELECT group, AVG (valoare - theta pre_value) AS cuped_mean
DE LA (
SELECT a. grup, , x.valoare, , (SELECT (valoare, )/ ()
DE LA x) CA teta
DIN MISIUNI a
JOIN x ON x.user_id = a. user_id
UNDE a. test_id =: test
) t
GRUP PE GRUP;
11) Efecte parțiale și eterogenitate
Verificați efectele HET:- Începători vs core, valoare scăzută vs valoare mare, diferite platforme/geo.
- Uneori, noua formulă de ochelari „aprinde” miezul fără a schimba balenele - acesta este rezultatul dorit.
- Pre-înregistrare segmente pentru a nu prinde „p-hacking”.
12) Capcane frecvente
1. Un consiliu de conducere comun pentru toate grupurile → interferențe.
2. Schimbarea structurii premiului în timpul testului → incomparabilitate.
3. Micro-parierea ochelarilor → ridicare invalidă.
4. SRM și filtre plutitoare în ETL → estimări părtinitoare.
5. Bazați-vă pe „murdar” ARPPU fără a deduce premii/bonusuri.
6. Oprire timpurie din cauza fluctuațiilor fără statistici secvențiale corecte.
13) Bayes vs frecvență și decizii secvențiale
Cadru: Puteți utiliza abordarea bayesiană (diferența posterioară în valori, probabilitatea „B este mai bună decât A”), mai ales atunci când monitorizarea în timp.
Atenție: bandiții pentru regulile ochelarilor sunt adecvați după o ridicare confirmată - în stadiul de funcționare, nu la validarea inițială.
14) Joc responsabil și conformitate
Reguli și capace transparente: jucătorul trebuie să înțeleagă cum câștigă puncte.
Limite de activitate și depozit, „pauze” și solicitări RG.
Fără „penalizări” ascunse pentru stilul de joc.
15) Mini Case (sintetic)
Context: eveniment săptămânal, A = „puncte pentru 1 € pariu”, B = „puncte prin multiplicator câștig/pariu, cap = 50/pariu”.
Dimensiune: 2 × 10.000 de utilizatori, stratificați după statutul de plătitor. SRM - aprox.
Rezultate:- Participation_net: A 17,3% → B 22,1% (+ 4,8 п. п.) .
- Finalizare: A 38,9% → B 44,0% (+ 5,1 п. п.) .
- Net ARPPU: A €41. 2 → B €43. 5 (+ €2. 3) cu Premiu + Bonus pentru fiecare plătitor ≈ €6. 4 (neschimbat).
- Complaints/1k: neschimbat; steaguri de fraudă ↓0,3 pp din cauza capace.
- Concluzie: Regula B - câștigător; ne scalăm cu „coada lungă” a premiilor și salvăm gărzile.
16) Lista de verificare a lansării punctelor A/B
- Unitate = utilizator, lipicios-atribuire, stratificare.
- Plumb separat/normalizare pentru a elimina interferențele.
- Capace clare pentru ochelari, semnale anti-bot, KYC la câștigători majori.
- Preînregistrarea ipotezelor și a metricii (primare/secundare/parapete).
- Capacitatea și planul de durată, sezonalitate luate în considerare.
- CUPED/covariază conectat, conducte SRM-alerte.
- Дашборд „Reach → Participation → Progress → Finalization → Value”.
- Raport: increment în bani după premii/bonusuri, coadă post-efect.
Regula de notare este o pârghie de comportament. Un test A/B proiectat corect (fără SRM, cu antifraudă și covariate) vă permite să creșteți în siguranță participarea, finalizarea și ARPPU net, menținând în același timp încrederea jucătorilor și economia campaniei.