球员保留分析
玩家保留分析
保留是产品经济的核心:玩家保持活跃的时间越长,LTV越高,收入就越稳定,规划就越可预测。下面是一个完整的框架:从正确的定义到生存模型和重新激活回路。
1)会计定义和单位
单位:玩家(user/master_id)-默认值;对于短期任务,可以使用"帐户/设备",但是将其固定在指标护照上。
活动:返回标准(≥1会议/≥1利率/≥1存款)-记录。
重组Dn:参考日期后第n天返回的队列比例。
滚动/碎片:滚动D7(在1-7的任何一天)vs Exact D7(恰好在第7天)。
丘恩(流出):≥T天无活动(例如14/30);指定为产品规则。
队列:按注册日期/首次存款/第一场比赛-选择市场营销/产品任务。
2)基本分析: 队列和回归曲线
队列热卡:D1/D3/D7/D14/D30/D60;发行版和广告系列之间的对角线是可比的。
存活曲线:从白天0到N(生存曲线)的活动比例。
曲线几何形状:假期/发行版的"垫脚石";早期的"崩溃"→爬坡问题,"长尾巴"→忠诚者的核心。
Pseudo-SQL: 队列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)存活率和危险模型
Kaplan-Meier:非模型生存评估(S(t));对于曲线和生命中位数的"消除形状"有用。
Cox PH/加速失败时间:可解释的特征影响模型(国家,频道,平台,奖金,内容)对hazard(流出风险)的影响。
Discrete-time hazard(按天数排列):灵活地进行杂货分析,并使用日历。
"重新激活"事件:分别建模(匹配风险)或作为马尔可夫链中的过渡。
4)马尔可夫和半马尔卡模型
状态:New → Active → Dormant → Churned → Reactivated。
过渡:期间(天/周)的概率。
价值:将"Active"中停留的可能性乘以平均支票/频率-获得对LTV的预期贡献。
5)保留韧带和LTV
LTV ≈ Σ (Retention_t × ARPU_t ×折扣)。
弹性:D7增加X个百分点→ LTV增加Y%(来自历史数据/模型)。
优先级:影响早期保留(D1-D7)的改进几乎总是收入最高的。
6)保留细分
追逐队列:第0天的第一个内容/游戏类别/行为模式。
地理/平台/频道:UX和期望的差异;调整日历/假期。
行为/价值:RFM (Recency-Frequency-Monetary),流出风险,盈利能力。
对刺激的反应:对离子/符号化的uplift反应段。
7)因果关系和实验
A/B:bording,tutorial,push策略;主要指标是重新D7/D14/D30,guardrails是投诉,响应时间,RG。
准实验:DiD/合成控制,当随机化是不可能的(例如区域性拔出)。
Uplift模型:针对收益增加而不是活动概率;评估Qini/AUUC。
8)重新激活: 触发器和策略
信号:频率下降,没有N日存款,支票异常低,没有第二届会议就完成了划船。
决策表(示例)
磁滞:信号的输入/输出阈值不同,以免出现"闪烁"。
频道:应用程序,push, e-mail, SMS,呼叫中心-具有极限和优先级。
9)保留度量
D1/D7/D30 (Rolling/Exact), WAU/MAU, Stickiness (DAU/MAU).
生存中位数/分位数;间隔的危险。
Reactivation rate (R30), Dormancy share.
ROMI重新激活,NNT(每1次返回有多少个联系人)。
公平:按国家/平台划分的指标差异;从策略中排除无效特征。
10)Dashbords保留
队列热卡+趋势线D1/D7/D30。
生存/危险图形按细分。
早期生活漏斗:install→reg→KYC→1-我igra→1存款。
操作图:signal→resheniye→kanal→iskhod(转换为返回)。
Guardrails:数据新鲜度、覆盖事件、投诉、RG指标。
11)数据和质量
事件:规范方案(UTC,版本),等效性,滞后性。
身份:用户/设备/电子邮件/电话-桥梁和金条目。
窗口和TZ:存储在UTC+本地视图中;一个假期日历。
过滤器:机器人/QA/frod-排除队列和活动。
测试指标:"RET_D7_vN"与changelog。
12) Pseudo-SQL/蟒蛇食谱
滚动D30队列
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(草图)
python t_i - time to outflow or censorship; e_i - event indicator
S(t) = Π_{t_i ≤ t} (1 - d_i / n_i)
Discrete-hazard(按日计)
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) Uplift定向保持
区域:Persuadables(如果我们接触,将返回),Sure things(返回等),Lost causes,Do-not-disturb(接触会伤害)。
度量:uplift@k,Qini/AUUC;政治-按预算联系前K。
Guardrails: cap to contact频率,RG/道德,可解释联系原因。
14)操作操作
SLO: 重建达什堡更新≤ 06:00 lock。后期风险评分≤ 300毫秒;Decision→Action ≤ 5 с.
监视:沿段移动曲线,特征漂移PSI,"事件悬崖"。
Runibuki:D1(提取/发布)下降,D7(内容/频率)下降,本地通信渠道中断。
15)经常出错
单位(sessii↔polzovateli),TZ,活动窗口的混合。
Rolling和Exact指标之间的比较相等。
忽略机器人/朋友→夸大的D1/D7。
关于无因果关系的结论。
缺乏滞后/放电→接触疲劳。
没有与LTV的结合-我们优化CR,但没有价值。
16)保留路径发布前的支票清单
- 护照指标(活动触发器,窗口,TZ,版本)
- 按部门分列的队列报告和生存/危险报告
- 通道流出和uplift、caps和guardrail风险模型
- A/B和/或准实验干预计划
- Dashbords 新鲜/覆盖/投诉/RG
- Runibuki事件、滞后和政策中的限制性
- 与LTV和ROMI的固定韧带;按预期价值排列优先顺序
底线
保留分析不仅是"热卡队列",而且是可管理的系统:正确的定义,生存/危险模型,价值关系,定向和道德干预,严格的效果评估和操作护卫。你建立了一个"观察→理解→决定→行动→学习"的循环,稳步提高LTV并减少流出。