GH GambleHub

კოჰორტის ანალიზი

კოჰორტის ანალიზი

კოჰორტის ანალიზი აერთიანებს ობიექტებს (ჩვეულებრივ მომხმარებლებს) დაწყების ერთ მოვლენაზე და ადარებს, თუ როგორ და რამდენ ხანს რჩება ისინი აქტიური და ღირებული. ეს მიდგომა ჰყოფს სისტემაში დროის ეფექტს (სეზონები, მოქმედებები) კოჰორტის ასაკის ეფექტისგან (დაწყების დღიდან დღეები).

1) ძირითადი განმარტებები

კოჰორტი (კოჰორტი): მრავალი მოთამაშე, რომლებიც გაერთიანებულია „დაბადების“ ღონისძიებით - რეგისტრაცია, პირველი ანაბარი, პირველი თამაში, პირველი შესყიდვა.
კალენდრის ღერძი (კალენდარის დრო): ფაქტობრივი თარიღები (2025-10-01,...).
კოჰორტის ასაკის ღერძი: დღეები/კვირა „დაბადების“ დღიდან (D0, D1,...).
შემაკავებელი მეტრიკა: D1/D7/D30 (Exact და Rolling), WAU/MAU, Stickness (DAU/MAU).
მონეტიზაცია: ARPU/ARPPU, კუმულაციური LTV (D7/D30/D90).
ბუღალტრული ერთეული: მომხმარებელი (მომხმარებელი/სამაგისტრო _ id) - ჩაწერეთ პასპორტში.

💡 ოქროს წესი: წინასწარ დააფიქსირეთ დაბადების მოვლენა, TZ, საქმიანობის ფანჯარა და გამონაკლისი (ბოტები/QA/frode).

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/ARPU: მომხმარებლის შემოსავალი/გადახდა Dn.
გადამხდელთა%: წილი 1-დან 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) Survival/hazard შესანარჩუნებლად

Kaplan-Meier: გადარჩენის უნებლიე მრუდი (S (t)) - წილი არ არის „გაძარცული“.
Hazard მოდელები (Soh/Logit): ნიშნების გავლენა (არხი, ქვეყანა, პლატფორმა, პრემია, შინაარსი) გადინების რისკზე.
პრაქტიკა: ჩვენ ვაშენებთ KM სეგმენტებს, შემდეგ კი სხვაობას ავუხსნით ჰაზარდის მოდელს.

8) სეზონურობა, TZ და კალენდარი

TZ: შეინახეთ მოვლენები UTC- ში, გაანალიზეთ ადგილობრივ TZ ბაზარზე; იყავით თანმიმდევრული.
კალენდარი: არდადეგები/ხელფასები/მატჩები/გამოშვებები - დროშების მსგავსად; შეადარეთ მსგავსი კვირის კოჰორტები.
მოცურების ფანჯარა: ყოველკვირეული/ყოველთვიური კოჰორტებისთვის - არდადეგების და საანგარიშო პერიოდების სიმრავლე.

9) სეგმენტი და ატრიბუტი

სეგმენტები: მოზიდვის არხი, პლატფორმა/OS, გეო, პირველი შინაარსი, ფასი/ლიმიტები, გადახდის მეთოდი.
კოჰორტის ატრიბუტი: „ვინ მოიყვანა“ მომხმარებელი - დააფიქსირეთ ალგორითმი (ბოლო პირდაპირი, მონაცემთა წამყვანი).
LTV წონა: შეადარეთ არა მხოლოდ CR, არამედ LTV (D30/D90) არხებით/სეგმენტებით.

10) ვიზუალიზაცია

კოჰორტის მატრიქსის სითბოს კარტი (CR/LTV).
ტენდენციის ხაზები D1/D7/D30 კალენდრის მიხედვით.
Survival/Hazard გრაფიკა.
Bridge „რამაც LTV შეცვალა D30“: გადახდის, სიხშირის, საშუალო შემოწმების წვლილი.

11) ექსპერიმენტები და მიზეზები

A/B: Onboarding, tutorials, paywall, offers. მთავარი მეტრიკა არის D7/D30 retention და LTV (D30).
კვაზიექსპერიმენტები: DiD/სინთეზური კონტროლი ბაზარზე გასვლისთვის.
Uplift მოდელები: მიზნობრივი გაზრდა re- გააქტიურებაში (Qini/AUUC, uplift @ k).

12) ოპერაცია და ჰოვერნანსი

ვერსია: 'RET _ D7 _ vN', 'LTV _ D30 _ vN'; changelog აქტივობის/ვალუტის განსაზღვრის შეცვლისას.

SLO სიახლის: ყოველდღიური კოჰორტები - მზადყოფნა 06:00 სთ.; მონაცემთა ბლოკი 1:
  • ხარისხი: შეკუმშვის მოვლენები, დუბლიკატების წილი, ბოტების/ფროდის წილი კოჰორტების გარეთ.
  • წვდომა: RLS/CLS, შენიღბვა PII; ექსპორტი მხოლოდ ერთეულებია.
  • Runbooks: D1 (onboarding), D7 (შინაარსი), მოვლენების/იდენტურობის დაშლა.

13) ხშირი შეცდომები (ანტი-ნიმუშები)

ღერძების ნაზავი: სხვადასხვა ასაკის კოჰორტის შედარება სხვადასხვა სეზონში ცვლილებების გარეშე.
Rolling vs Exact: ინტერპრეტაცია, როგორც იგივე.
ერთეულების ნაზავი: სესიები მნიშვნელში, მომხმარებლები მრიცხველში.
„საშუალო საშუალო“ შეჯამება: მრიცხველების/მნიშვნელთა შეჯამების ნაცვლად.
TZ/კალენდრის უგულებელყოფა: D1 ოფსეტური დღის/არდადეგების საზღვრებში.
არ არსებობს ბოტების/frode/QA ფილტრი.
მიუწვდომელი რესტრუქტურიზაცია: სპლიტ/მერჯე ანგარიშები პირადობის ხიდების გარეშე.

14) ჩეკის სია კოჰორტის მოხსენების გამოქვეყნებამდე

  • განისაზღვრება დაბადების მოვლენა, ერთეული, TZ, საქმიანობის ფანჯრები
  • ბოტები/frode/QA გამორიცხულია; იდენტურობა (golden record)
  • აშენდა მატრიცები CR (Exact/Rolling) და LTV in 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 არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.