Analiza retencji gracza
Analiza retencji gracza
Zatrzymanie jest podstawą gospodarki produktowej: im dłużej gracz pozostaje aktywny, tym wyższy LTV, tym stabilniejszy dochód i tym bardziej przewidywalne planowanie. Poniżej przedstawiono kompletne ramy: od poprawnych definicji po modele przetrwania i obwód reaktywacji.
1) Definicje i jednostki księgowe
Jednostka: odtwarzacz (user/master_id) - domyślnie; w przypadku zadań krótkoterminowych dozwolone jest „konto/urządzenie”, ale zapisz to w paszporcie metrycznym.
Aktywność: kryterium zwrotu (≥ 1 sesja/≥ 1 stopa/≥ 1 depozyt) - rekord.
Retention Dn: odsetek kohorty powracającej w dniu n po dacie odniesienia.
Toczenie/wspornik: Walcowanie D7 (w dowolnym dniu 1-7) vs Exact D7 (w dniu 7).
Churn: brak aktywności przez ≥ T dni (np. 14/30); jest określony jako reguła produktu.
Kohorty: według daty rejestracji/pierwszego depozytu/pierwszej gry - wybierz dla zadania marketingu/produktu.
2) Podstawowe analizy: kohorty i krzywe retencji
Mapy ciepła kohorty: D1/D3/D7/D14/D30/D60; przekątne są porównywalne między zwolnieniami i kampaniami.
Krzywe przeżycia: odsetek aktywnych od dnia 0 do N (krzywa przeżycia).
Geometria krzywej: „kroki” wakacji/zwolnień; wczesny „upadek →” problemy z pokładem, „długi ogon” → rdzeń lojalny.
Pseudo-SQL: kohorta D7
sql
WITH regs AS (
SELECT user_id, DATE_TRUNC('day', ts) AS cohort_day
FROM event_register
),
act AS (
SELECT user_id, DATE_TRUNC('day', ts) AS act_day
FROM event_activity
),
d7 AS (
SELECT r. cohort_day,
COUNT(DISTINCT r. user_id) AS cohort_size,
COUNT(DISTINCT CASE WHEN a. act_day = r. cohort_day + INTERVAL '7 day'
THEN r. user_id END) AS retained_d7
FROM regs r
LEFT JOIN act a ON a. user_id = r. user_id
GROUP BY 1
)
SELECT cohort_day, cohort_size,
retained_d7::decimal / NULLIF(cohort_size,0) AS cr_d7
FROM d7
ORDER BY cohort_day;
3) Modele przeżycia i zagrożenia
Kaplan-Meier: wynik przeżycia niebędący modelem (S (t)); przydatne do „usuwania kształtu” krzywej i mediany życia.
Cox PH/Przyspieszony czas awarii: modele wyjaśniające wpływ cech charakterystycznych (kraj, kanał, platforma, premie, zawartość) na zagrożenie (ryzyko odpływu).
Dyskretne zagrożenie czasowe (dziennik w dzień): elastyczne dla analityki produktów i funkcji kalendarza.
Reaktywacja zdarzenia-Model oddzielnie (konkurencyjne ryzyko) lub jako przejście w łańcuchu Markov.
4) Modele Markov i pół-Markov
Nowy → Aktywny → Uśpiony → Kościół → Reaktywowany.
Przejścia: prawdopodobieństwo na okres (dzień/tydzień).
Wartość: pomnożyć prawdopodobieństwo pozostania w „Aktywnym” przez średnią kontrolę/częstotliwość - uzyskać oczekiwany wkład do LTV.
5) Zatrzymanie pakietów i LTV
LTV, Retention_t × ARPU_t × rabat.
Elastyczność: D7 wzrost o X pp → wzrost LTV o Y% (z historycznych danych/modeli).
Priorytety: Ulepszenia wpływające na wczesne zatrzymywanie (D1-D7) są prawie zawsze najbardziej opłacalne.
6) Segmentacja retencji
Na pokładzie kohorty: pierwsza treść/kategoria gry/wzorzec behawioralny w dniu 0.
Geo/platforma/kanał: UX i oczekiwania różnice; dostosować do kalendarza/wakacji.
Zachowanie/wartość: RFM (Recency-Frequency-Monetary), ryzyko wypływu, rentowność.
Reakcja na zachęty: segmenty dotyczące reakcji na oferty/powiadomienia.
7) Przyczynowość i eksperymenty
A/B: wejście na pokład, samouczki, strategie push; główna metryka - retencja D7/D14/D30, poręcze - skargi, czas reakcji, RG.
Quasi-eksperymenty: DiD/kontrola syntetyczna, gdy randomizacja nie jest możliwa (np. regionalne kickouts).
Modele podwyższenia: docelowe zyski z powrotem, a nie prawdopodobieństwo aktywności; ocenić Qini/AUUC.
8) Reaktywacja: wyzwalacze i polityka
Sygnały: spadek częstotliwości, brak depozytów N dni, nienormalnie niska kontrola, zakończone na pokładzie bez drugiej sesji.
Tabela decyzji (przykład)
Histereza: różne progi wejściowe/wyjściowe sygnałów, aby nie „mrugać”.
Kanały: in-app, push, e-mail, SMS, call center - z limitem stawki i priorytetami.
9) Wskaźniki retencji
D1/D7/D30 (Rolling/Exact), WAU/MAU, lepkość (DAU/MAU).
Mediana przeżycia/kwantyle; zagrożenia w odstępach czasu.
Wskaźnik reaktywacji (R30), udział uśpienia.
Reaktywacja ROMI, NNT (ile kontaktów na 1 zwrot).
Sprawiedliwość: różnice metryczne według kraju/platformy; Wyklucz nieprawidłowe właściwości z zasad.
10) Deski rozdzielcze retencyjne
Mapa ciepła kohorty + linie trendu D1/D7/D30.
Wykresy przeżycia/zagrożenia według segmentów.
Lejek wczesnego życia: zainstalować → reg → KYC → 1 igra → 1 th deposit.
Mapa działania: sygnał → resheniye → kanal → iskhod (konwersja do powrotu).
Poręcze: świeżość danych, zakres zdarzeń, skargi, wskaźniki RG.
11) Dane i jakość
Wydarzenia: schemat kanoniczny (UTC, wersje), idempotencja, deadup.
Tożsamość: użytkownik/urządzenie/e-mail/telefon - mosty i złoty wpis.
Windows i TZ: przechowywanie w UTC + widoki lokalne; pojedynczy kalendarz świąt.
Filtry: boty/QA/oszustwa - wyłączyć z kohorty i działań.
Mierniki wersji: 'RET _ D7 _ vN' z changelogiem.
12) Pseudo-SQL/przepis python
Walcowanie D30 za pomocą kohorty
sql
WITH base 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 d
FROM event_activity
),
roll30 AS (
SELECT b. cohort_day,
COUNT(DISTINCT b. user_id) AS cohort_size,
COUNT(DISTINCT CASE WHEN a. d BETWEEN b. cohort_day AND b. cohort_day + INTERVAL '30 day'
THEN b. user_id END) AS any_1_30
FROM base b LEFT JOIN act a ON a. user_id = b. user_id
GROUP BY 1
)
SELECT cohort_day, any_1_30::decimal/cohort_size AS rolling_d30
FROM roll30;
Kaplan-Meier (szkic)
python t_i - time to outflow or censorship; e_i - event indicator
S(t) = Π_{t_i ≤ t} (1 - d_i / n_i)
Dyskretne zagrożenie (dziennik w dzień)
python
For each user, create records before the event/censorship by day:
target = 1 if there was an outflow on that day; characteristics: calendar, activity, promo, etc.
Training logistic regression/GBM; forecast p_t - probability of outflow on day t.
13) Retencja ukierunkowana na podwyższenie wartości
Strefy: Perswadables (powróci, jeśli skontaktujemy się), Pewne rzeczy (powróci i tak), Utracone przyczyny, Nie-przeszkadzać (kontakt szkodzi).
Metryki: uplift @ k, Qini/AUUC; polityka - kontaktujemy się z top k poprzez podwyższenie budżetu.
Poręcze: czapka na częstotliwość kontaktu, RG/etyka, wyjaśnienie przyczyny kontaktu.
14) Operacja operacyjna
SLO: aktualizacja tablicy retencyjnej ≤ 06:00 blokada; opóźnienie punktacji ryzyka ≤ 300 ms; Decyzja → Działanie ≤ 5 ".
Monitoring: przesunięcia krzywych według segmentów, PSI dryfu funkcji, „break event”.
Runibooks: D1 drop (onboarding/release), D7 drop (content/frequency), lokalne awarie kanału komunikacyjnego.
15) Częste błędy
Wymieszanie jednostek (sessii, polzovateli), TZ, okna aktywności.
Porównanie wskaźników Rolling i Exact równa się.
Ignorowanie botów/oszustw → napompowane D1/D7.
Wnioski dotyczące korelacji bez walidacji przyczynowej.
Brak histerezy/cooldowns → kontakt zmęczenie.
Nie ma linku z LTV - optymalizujemy CR, ale nie wartość.
16) Lista kontrolna pętli retencyjnej przed zwolnieniem
- Paszport metryki (aktywny wyzwalacz, okno, TZ, wersja)
- Raporty kohortowe i przeżycie/zagrożenie według segmentów
- Modele ryzyka wypływu i podwyższenia, kanały kapas i barier ochronnych
- Plan A/B lub quasi-eksperymenty dla interwencji
- Świeżość/zasięg/skargi/panele rozdzielcze RG
- Incydent Runybooks, Histereza i limity stawek w polityce
- Zatrzymanie pakietów z LTV i ROMI; ustalanie priorytetów według wartości oczekiwanej
Razem
Analiza retencji to nie tylko „mapa ciepła kohorty”, ale system zarządzany: prawidłowe definicje, modele przeżycia/zagrożenia, powiązanie z wartością, ukierunkowane i etyczne interwencje, rygorystyczna ocena skutków i operacyjne szyny ochronne. Budujesz „zegarek → zrozumieć → decydować → uczyć się” cykl, który stale zwiększa LTV i zmniejsza odpływ.