12.3 留存与付费的联合分析
12.1 看留存、12.2 看流失,这一节把留存和付费放在一起。用一个潜在活跃度同时驱动留存与付费,先量出「付费玩家 D7 留存更高」的原始溢价,再切活跃度十分位做分组内对照,把溢价里的选择效应分离出来,并给出收入结构与档位留存交叉表,最后讨论这张表怎么用于召回优先级。
category
12.1 看留存、12.2 看流失,这一节把留存和付费放在一起。用一个潜在活跃度同时驱动留存与付费,先量出「付费玩家 D7 留存更高」的原始溢价,再切活跃度十分位做分组内对照,把溢价里的选择效应分离出来,并给出收入结构与档位留存交叉表,最后讨论这张表怎么用于召回优先级。
上一节是事后诊断,这一节做事前预警:用活跃天数、停滞天数、付费额、是否入盟、等级增益五个特征,手写一个纯 Python 逻辑回归,预测谁会在未来 7 天流失;再用规则基线做同口径对照,跑一条 B 层基准,最后把告警量换算成召回活动的成本与回收价值。
《SLG 游戏产品设计》卷二附录 C:把第 1–15 章的核心公式、config 参数与 out 数据集做成可检索索引——公式名、所在节、形式与整数约束,参数名、所在配置文件、键路径、取值与单位,产物路径、产出脚本与对应节,并附一个直接解析本页、断言表里每条路径都真实存在的 S 层校验脚本。
付费点铺好了,还要决定它们什么时候出现,以及怎样不把免费玩家逼走。本节用 config/n09_protection.json 定义免费 / 付费玩家的日产出与内容需求里程碑,用 S 层脚本逐日算免费玩家达成度曲线、定位付费墙出现的天数,并对体验保护门槛做 PASS/WARN 判定与敏感性扫描。
首充、月卡、通行证是 SLG 里最稳定的三类常规付费点,共同点是「高性价比换玩家行为」。本节用 config/pricing.json 的真实参数,逐个算清首充的双倍倍率、月卡的逐日累计与回本天数、通行证的双轨增量价值,并用 P 层 TypeScript 原型做跨语言对照。
付费点不是货架上摆得越多越好。本节先把玩家掏钱的动机拆成进度、竞争、收集、社交、便利五类,再用 config/n09_payment.json 把八个付费点铺到「动机 × 生命周期」两张轴上,用 S 层脚本把每个点归一化成每元玉璧等价,并算出 20 格布局矩阵的覆盖度与缺口。
8.2 让赛季起点收敛了,但赛季内新玩家怎么追?本节跑一个赛季 60 天:老玩家带 2 倍永久领先,新玩家拿 150% 追赶产出、前 72 小时有护盾。结果差距收窄 83% 却填不平,追赶窗口一关只剩固定日产出在慢慢磨,护盾值约 5% 的赛季末指数。
把玩家进度拆成资源、城建、英雄、科技、荣誉五个维度,每季各自成长、赛季边界按 season.json 的重置/继承/压缩处理,跑 10 个赛季看综合指数能否收敛。四种方案对照:无重置发散到 411 万、全额清零塌到 2 万、赛季默认档收敛进健康带、激进压缩偏低。
把「赛季越打越膨胀」从口头抱怨变成可核算的量:无重置、无压缩时,老玩家进度指数跨赛季复利膨胀,跑 10 个赛季量化绝对差距、相对倍数与追赶天数,再用 B 层闭式解与「纯复利」简化模型对照,量出把膨胀当纯复利估会低估多少、代价信号何时亮红灯。
把评分和段位都用上,最后量一件事:按匹配分把玩家配到一起,对局公不公平。扫描 50 到 800 分的配对窗口,band50 平均实力差 66.8、公平率 92.4%,random 对照公平率仅 44.1%;再用 30 个种子的 B 基准证明强者胜率标准差仅 0.77 个百分点。
匹配分是给系统看的,段位是给玩家看的。用百分位把 2000 名玩家切成青铜到钻石五段,实测占比 20/24.85/25.15/20/10 贴合目标,段位边界落在 666/1045/1179/1293/1437 分,并量化「评分分段」与「真实实力分段」29.65% 的错位率。
匹配分是「跟谁打」的度量。用 ELO 与 Glicko 两种模型对同一批 2000 名玩家跑 100 局,看评分离真实实力的 RMSE 从 167 收敛到 55.7(ELO)与 47.8(Glicko),并解释为什么 Glicko 多带一个「不确定度」反而收敛更低。
礼包值不值,不能靠「感觉超值」。本节用 config/pricing.json 里的价值锚点(1 玉璧换 100 资源、60 加速)把每个礼包的内容折算成玉璧等价价值,算出性价比千分比(1000‰ = 与直购玉璧 1:1),再用 S 层脚本跑出一张可排序的性价比表,并给出 d30 / d50 折扣后排序如何翻转。
用 mulberry32 确定性 PRNG 模拟 5 万名玩家「抽到首个 SSR 需要多少抽」,把软保底与硬保底一起跑进分布,得到均值、中位数与 p90/p99,再折算成玉璧与人民币期望成本。用 B 层脚本把模拟均值与闭式期望做对照,用 P 层测试证明 TS 侧与 Python 侧逐位一致。
把《王朝纪元》的抽卡拆成一张可公示的概率表:稀有度分档、单卡概率、限时池与常驻池的差异,以及保底参数如何在池之间继承。用一段 S 层脚本从 config/n06_gacha.json 重算公示概率并校验三档之和恰为 1000‰,再用一段 P 层原型在 TypeScript 侧复刻同一份 mulberry32,验证公示表与随机序列跨语言逐位一致。
把出货抽数当成随机变量:几何分布的解析期望 33.33 抽、方差 1077.78 与仿真的 33.25 / 1071.86 对照。再按体验区间目标判定纯基础与保底两种设计,并用 30 个种子的蒙特卡洛均值偏差做 B 基准,证明仿真无系统性偏。
纯随机没有记忆,长尾会把少数玩家拖到 150 抽以上。用确定性 PRNG 跑 20000 名玩家对比纯基础与软/硬保底:均值从 33.25 抽降到 24.54,p90 从 76 抽压到 44 抽,硬保底命中人数从 3292 人降到 0 人。
掉落表是一张权重表:千分权重让每一项的数字直接就是千分概率。用确定性 PRNG 跑 60000 次抽条对照理论分布,传说项实测 0.4933% 对理论 0.5%,并用 TypeScript 原型验证 Python 与 TS 两侧逐位一致,权重表即唯一真源。
账面组合强度能不能代表真实强弱?本节把六个阵容放进多栈循环赛,用 4.1 的克制矩阵跑模拟,再用 Spearman 排序一致性做 B 基准:解析分与模拟分的一致性只有 -9%,说明加权战力分排不出强弱。另一半基准是平衡迭代——对最强阵容削弱、对最弱增强,胜率极差从 49% 收敛到 15%。
单兵种克制解决不了「几个兵种怎么搭」。本节把阵容加成写成条件规则:三军齐备、单一兵种、骑兵主力、均衡编队,命中即叠加;再用 TypeScript 原型把「命中加成 → 攻击分/防御分 → 组合强度」算成整数,用 node --test 断言三军齐备拿到 5187 分、枪兵方阵拿到 2878 分。