GH GambleHub

Когорт талдауы

Когорталық талдау

Когорталық талдау объектілерді (әдетте пайдаланушыларды) бір бастау оқиғасы бойынша топтастырады және олардың қаншалықты белсенді және құнды болып қалатынын салыстырады. Мұндай тәсіл жүйедегі уақыт әсерін (маусымдар, акциялар) когорта жасының әсерінен (басталған сәттен бастап күндер) ажыратады.

1) Базалық анықтамалар

Когорта (cohort): «туу» оқиғасымен біріктірілген көптеген ойыншылар - тіркеу, бірінші депозит, бірінші ойын, бірінші сатып алу.
Күнтізбе білігі (calendar time): нақты күндері (2025-10-01,...).
Когорта жасының осі (cohort age): «туған» сәттен бастап күндер/апталар (D0, D1,...).
Ұстап тұру метрикасы: D1/D7/D30 (Exact және Rolling), WAU/MAU, Stickiness (DAU/MAU).
Монетизация: ARPU/ARPPU, жиынтық LTV (D7/D30/D90).
Есепке алу бірлігі: пайдаланушы (user/master_id) - паспортқа белгілеңіз.

💡 Алтын ереже: туылған оқиғаны, TZ, белсенділік және ерекшеліктер терезесін (боттар/QA/фрод) алдын ала жазыңыз.

2) Когорттардың түрлері және оларды қашан таңдау

Acquisition-когорталар: тіркелген күні/бірінші сапар бойынша - тарту арналары мен онбордингті бағалау.
Activation/Monetization-когорталар: бірінші депозит/сатып алу бойынша - early-monetization бағасы және промо.
Feature-когорталар: фича/ойын санатын бірінші рет пайдалану бойынша - релиздер әсері.
Behavior-когорттар: RFM/бастау үлгісі бойынша (мысалы, «түнгі мобильді»).

3) Біліктер мен торлар: матрицаны қалай қарау керек

Когорт матрицасы: жолдар - когорттар (күнтізбе), бағандар - жасы (D0... D90).
Маусымдық: маусымдық әсерлерді бөлу үшін диагоналдарды салыстыру (бірдей күнтізбелік күн).
Қалыпқа келтіру: салыстырмалы метриктер (CR, үлестер) + кумулятивті (LTV), екеуін де көрсетіңіз.

4) Когорта және метрика паспорты (template)

COHORT: `REG_DAY``FIRST_DEPOSIT_WEEK`
Жас осі: күн (D), көкжиектер D1/D7/D30/D90.
Белсенділігі: ≥ 1 сессия немесе ≥ 1 ставка (белгілеу).
Ерекшеліктер: боттар/фрод/QA/телнұсқалар.
Әдепкі сегменттер: ел, платформа, арна, контент-санат, баға сегменті.
Метриктер: CR, Rolling/Exact retention, кумулятивті LTV, ARPU/ARPPU,% төлеуші.
Нұсқа: 'COHORT _ RET _ v3', иелері, тексеру күні.

5) Псевдо-SQL: матрица retention (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 (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) Когорт LTV және монетизация

Кумулятивті LTV (Dn): Dn-ге когорт пайдаланушысына кіріс сомасы.
ARPU/ARPPU: Dn бойынша төлеушіге/пайдаланушыға кіріс.
Төлеушілер%: Dn-ге ≥ 1 төлеммен үлес.

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) Ұстап қалуға арналған Survival/hazard

Kaplan-Meier: тіршілік етудің үлгісіз қисығы (S (t)) - «ағып кетпегендер» үлесі.
Hazard-модельдер (Сох/логит-күн бойынша): белгілердің (арна, ел, платформа, бонустар, контент) ағып кету тәуекеліне әсері.
Тәжірибе: KM сегменттерін жасаймыз, содан кейін айырмашылықты hazard моделімен түсіндіреміз.

8) Маусымдылық, TZ және күнтізбе

TZ: оқиғаларды UTC-де сақтаңыз, жергілікті TZ нарығында талдаңыз; консистентті болыңыз.
Күнтізбе: мерекелер/жалақы/матчтар/релиздер - жалау сияқты; ұқсас апталардың когорттарын салыстырыңыз.
Жылжымалы терезе: апталық/айлық когорталар үшін - мерекелер мен есептік кезеңдер еселігі.

9) Сегментация және атрибуция

Сегменттер: тарту арнасы, платформа/OS, гео, бірінші контент, баға/лимиттер, төлем әдісі.
Когортаның атрибуциясы: пайдаланушыны «кім әкелді» - алгоритмді белгілеңіз (last non-direct, data-driven).
LTV-өлшеу: тек CR ғана емес, сонымен қатар LTV (D30/D90) арналар/сегменттер бойынша салыстыру.

10) Визуализация

Когорт матрицасының жылу картасы (CR/LTV).
Тренд сызықтары күнтізбе бойынша D1/D7/D30.
Survival/Hazard графикасы.
Bridge «LTV-ді D30-ға өзгерткен»: төлеушілердің салымы, жиілік, орташа чек.

11) Эксперименттер және себептері

A/B: онбординг, туториалдар, paywall, офферлер. Негізгі метрика - D7/D30 retention және LTV (D30).
Квазиэксперименттер: DiD/базарлар бойынша сатып алу үшін синтетикалық бақылау.
Uplift модельдері: қайта белсендіруде (Qini/AUUC, uplift @k) қайтарым өсімін таргеттеңіз.

12) Пайдалану және говернанс

Нұсқалау: 'RET _ D7 _ vN', 'LTV _ D30 _ vN'; changelog белсенділік/валюта анықтамасын ауыстырған кезде.

SLO жаңалық: күнделікті когорттар - 06:00 лок.; 1 сағатқа ≤ деректер қалдығы

Сапасы: оқиғалар coverage, телнұсқа үлесі, когортадан тыс бот/фрод үлесі.
Қолжетімділік: RLS/CLS, PII бүркемелеу; экспорт - тек агрегаттар.
Runbooks: D1 (онбординг), D7 (мазмұн) құлауы, оқиғаларды/сәйкестіктерді бұзу.

13) Жиі қателер (анти-паттерндер)

Осьтерді араластыру: когорттың әртүрлі жасын түзетусіз әртүрлі маусымдарда салыстырады.
Rolling vs Exact: бір нәрсе ретінде түсіндіріледі.
Бірліктерді араластыру: бөлімде сессиялар, алымда пайдаланушылар.
«Орташаларды» біріктіру: алымдарды/бөлімдерді қосу орнына.
Ignor TZ/күнтізбесі: күндер/мерекелер шегінде D1 ығысуы.
Бот/фрод/QA сүзгісі жоқ.
Ескерілмеген қайта өлшеулер: бірдей көпірсіз тіркелгілердің сплит/merge.

14) Когорт есебін жариялау алдындағы чек-парақ

  • Туу оқиғасы, бірлік, TZ, белсенділік терезелері анықталды
  • Алынып тасталды боттар/фрод/QA; сәйкестіктер келтірілген (golden record)
  • CR (Exact/Rolling) және LTV матрицалары D7/D30/D90
  • Күнтізбе/мерекелер ескерілді; арна/платформа/гео бойынша сегменттер
  • survival/hazard-графиктер және bridge LTV қосылды
  • Метрика нұсқалары мен атрибуция алгоритмі құжатталған
  • Бапталған SLO жаңалық, мониторинг coverage/қайталау/қателер
  • Runbooks D1/D7 құлауы мен оқиғалардың үзілуіне дайын

Жиынтығы

Когорт талдауы - бұл екі ось және тәртіп: бекітілген «туу сәті», дұрыс терезелер және TZ, ұстап тұру матрицалары және LTV, сегментация және өзгерістерді себепті тексеру. Бұл тәсіл қисықтарды бақылап қана қоймай, онбордингті қайда жөндеу, қандай арналарды масштабтау, қандай контент пен офферлер ойыншыларды ұзағырақ ұстап, LTV ұлғайту туралы шешім қабылдауға көмектеседі.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.