GH GambleHub

Analiza cohortei

Analiza cohortei

Grupurile de analiză cohortă obiectează (de obicei utilizatorii) printr-un singur eveniment de pornire și compară cum și pentru cât timp rămân active și valoroase. Această abordare separă efectul timpului în sistem (sezoane, stocuri) de efectul vârstei cohortei (zile de la început).

1) Definiții de bază

Cohortă: mulți jucători uniți de evenimentul „naștere” - înregistrare, primul depozit, primul joc, prima achiziție.
Axa calendarului: date reale (2025-10-01,...).
Axa de vârstă a cohortei: zile/săptămâni de la naștere (D0, D1,...).
Valori de retenție: D1/D7/D30 (Exact și Rolling), WAU/MAU, Stickiness (DA/MAU).
Monetizare: ARPU/ARPPU, cumulativ LTV (pe D7/D30/D90).
Unitatea de contabilitate: utilizator (user/master_id) - înregistrare în pașaport.

💡 Regula de aur: Eveniment de naștere pre-înregistrare, TZ, fereastră de activitate și excepții (boti/QA/fraudă).

2) Tipuri de cohorte și când să le alegeți

Cohorte de achizitie: dupa data inscrierii/primei vizite - evaluarea canalelor de recrutare si onboarding.
Activare/Monetizare-cohorte: prin primul depozit/achiziție - evaluare monetizare timpurie și promo.
Cohorte de caracteristici: pentru prima utilizare a categoriei de caracteristici/jocuri - efectul lansărilor.
Cohorte de comportament: prin model RFM/start (de exemplu, „mobil de noapte”).

3) Axe și grile: cum să urmăriți matricea

Matrice cohortă: rânduri - cohorte (calendar), coloane - vârstă (D0... D90).
Sezonalitate: Comparați diagonalele (aceeași zi calendaristică) cu efectele sezoniere separate.
Normalizare: valori relative (CR, fracții) + cumulative (LTV), arată ambele.

4) Pașaport de cohortă și măsurători (șablon)

COHORT: 'REG _ DAY''FIRST _ DEPOSIT _ WEEK'
Axa de vârstă: zi (D), orizonturi D1/D7/D30/D90.
Activitate: ≥1 sesiune sau rata de ≥1 (fix).
Excepții: boți/fraude/QA/duplicate.
Segmente implicite: țară, platformă, canal, categorie de conținut, segment de preț.
Valori: CR, Rolling/Exact retention, cumulativ LTV, ARPU/ARPPU,% paying.
Versiune: 'COHORT _ RET _ v3', proprietari, data reviziei.

5) Pseudo-SQL: matrice de retenție (Exact Dn)

sql
WITH regs AS (
SELECT user_id, DATE_TRUNC('day', MIN(ts)) AS cohort_day
FROM event_register
GROUP BY 1
),
act AS (
SELECT user_id, DATE_TRUNC('day', ts) AS act_day
FROM event_activity
),
ages AS (
SELECT r. user_id, r. cohort_day, a. act_day,
(a. act_day - r. cohort_day) AS age_days
FROM regs r
JOIN act a ON a. user_id = r. user_id
),
exact AS (
SELECT cohort_day,
age_days,
COUNT(DISTINCT user_id) AS users_active
FROM ages
GROUP BY 1,2
),
coh_size AS (
SELECT cohort_day, COUNT(DISTINCT user_id) AS cohort_size
FROM regs GROUP BY 1
)
SELECT e. cohort_day,
e. age_days,
e. users_active::decimal / NULLIF(c. cohort_size,0) AS exact_retention
FROM exact e
JOIN coh_size c USING (cohort_day)
WHERE age_days IN (1,7,30,90)
ORDER BY cohort_day, age_days;

Rolling Dn (activitate în ziua 1... n)

sql
WITH days AS (... as above...),
roll AS (
SELECT cohort_day,
CASE WHEN age_days BETWEEN 1 AND 7 THEN 7
WHEN age_days BETWEEN 1 AND 30 THEN 30 END AS bucket,
COUNT(DISTINCT user_id) AS any_active
FROM days
WHERE age_days BETWEEN 1 AND 30
GROUP BY 1,2
)
SELECT r. cohort_day, r. bucket AS Dn,
r. any_active::decimal / s. cohort_size AS rolling_retention
FROM roll r
JOIN (SELECT cohort_day, COUNT(DISTINCT user_id) cohort_size FROM regs GROUP BY 1) s USING (cohort_day)
ORDER BY cohort_day, Dn;

6) Cohorta LTV și monetizarea

Cumulativ LTV (Dn): suma veniturilor per utilizator de cohortă de către Dn.
ARPU/ARPPU: venituri per utilizator/per plătitor Dn.
% plata: cota cu plata ≥1 către Dn.

sql
WITH reg AS (
SELECT user_id, DATE_TRUNC('day', MIN(ts)) AS cohort_day
FROM event_register GROUP BY 1
),
pay AS (
SELECT user_id, amount, DATE_TRUNC('day', ts) AS pay_day
FROM fact_payments
),
ltv AS (
SELECT r. cohort_day,
(pay_day - r. cohort_day) AS age_days,
SUM(amount) AS rev
FROM reg r JOIN pay p USING (user_id)
WHERE pay_day >= r. cohort_day
GROUP BY 1,2
),
cum AS (
SELECT cohort_day, age_days,
SUM(rev) OVER (PARTITION BY cohort_day ORDER BY age_days ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS rev_cum
FROM ltv
)
SELECT c. cohort_day, c. age_days,
c. rev_cum::decimal / NULLIF(sz. cohort_size,0) AS ltv_per_user
FROM cum c
JOIN (SELECT cohort_day, COUNT(DISTINCT user_id) cohort_size FROM reg GROUP BY 1) sz USING (cohort_day)
WHERE age_days IN (7,30,90)
ORDER BY cohort_day, age_days;

7) Supraviețuirea/riscul de retenție

Kaplan-Meier: curba de supraviețuire non-model (S (t)) - proporția nu este „drenată”.
Modele de pericol: influența caracteristicilor (canal, țară, platformă, bonusuri, conținut) asupra riscului de ieșire.
Practică: construim KM pe segmente, apoi explicăm diferența cu modelul de pericol.

8) Sezonalitate, TZ și calendar

TZ: magazin evenimente în UTC, analiza în TZ locale ale pieței; să fie consecventă.
Calendar: sărbători/salariu/meciuri/lansări - ca steaguri; comparați cohortele de săptămâni similare.
Fereastră glisantă: pentru cohortele săptămânale/lunare - multiplicitatea sărbătorilor și perioadele de raportare.

9) Segmentarea și atribuirea

Segmente: canal de atractie, platforma/sistem de operare, geo, primul continut, pret/limite, metoda de plata.
Atribuirea cohortei: „cine a adus” utilizatorul - fixați algoritmul (ultimul non-direct, bazat pe date).
Ponderare LTV: comparați nu numai CR, ci și LTV (D30/D90) pe canal/segment.

10) Vizualizare

Harta de căldură a matricei cohortei (CR/LTV).
Linii de trend D1/D7/D30 după calendar.
Diagrame de supraviețuire/hazard.
Punte „ce a schimbat LTV la D30”: contribuția plătitorului, frecvența, verificarea medie.

11) Experimente și cauzalitate

A/B: onboarding, tutoriale, paywall, oferte. Principala metrică este retenția D7/D30 și LTV (D30).
Cvasi-experimente: DiD/control sintetic pentru lansare pe piețe.
Modele Uplift: țintiți câștigul de returnare în reactivare (Qini/AUUC, uplift @ k).

12) Funcționarea și guvernanța

Versioning: 'RET _ D7 _ vN', 'LTV _ D30 _ vN'; changelog atunci când se schimbă activitatea/definiția monedei.
Prospețime SLO: cohorte zilnice - disponibilitate până la 06:00 blocare.; jurnalul de date ≤ 1 oră.
Calitate: acoperirea evenimentelor, proporția duplicatelor, proporția boților/fraudei în afara cohortelor.
Acces: RLS/CLS, mascare PII; export - numai agregate.
Runbooks: D1 drop (onboarding), D7 (conținut), eveniment/identitate de casare.

13) Erori frecvente (anti-modele)

Amestecarea axelor: Comparați diferite vârste de cohorte în diferite anotimpuri fără ajustare.
Rolling vs Exact: tratat ca același lucru.
Unități de amestecare: sesiuni în numitor, utilizatori în numărător.
Agregarea „mijloacelor”: în loc să însumeze numărătorii/numitorii.
Ignorarea TZ/calendar: D1 compensat la limitele de zi/vacanță.
Nu există filtru bot/fraudă/QA.
Reporniri necontabilizate: împărțiți/îmbinați conturile fără punți de identitate.

14) Lista de verificare înainte de publicarea raportului de cohortă

  • Eveniment de naștere, unitate, TZ, ferestre de activitate definite
  • boți excluși/fraudă/QA; identități mixte (înregistrare de aur)
  • Construit CR (Exact/Rolling) și matrice LTV pentru D7/D30/D90
  • Calendar/sărbători luate în considerare; segmente după canal/platformă/geo
  • A fost adăugată grafica de supraviețuire/pericol și podul LTV
  • Versiuni metrice documentate și algoritm de atribuire
  • SLO-uri proaspete configurate, monitorizare acoperire/duplicat/eroare
  • Gata runbooks pentru D1/D7 picături și pauze de eveniment

Total

Analizele de cohortă sunt două axe și disciplină: „momentul nașterii” fix, ferestrele corecte și TZ, matricele de retenție și LTV, segmentarea și verificarea cauzală a schimbării. Această abordare ajută nu numai la observarea curbelor, ci și la luarea deciziilor: unde să fixați onboarding-ul, ce canale să scalați, ce conținut și ce oferte mențin jucătorii mai mult și cresc LTV.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Telegram
@Gamble_GC
Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.