想象你在老街口开了一家“暖心咖啡屋”。每天都有新面孔推门进来,但真正隔一周又出现的熟客,只有一小撮。你开始猜:是招牌不够亮?拿铁太苦?还是店员没记住老顾客?这些猜测都太模糊了。AI产品留存分析,就是用数据把“猜”变成“看见”。你会先给“熟客”下定义(留存率),把从进门、点单、喝完第一杯到再次进店画成一级级台阶(留存漏斗),再用智能摄像头回放每个客人的动线(AI行为数据定位),找到大家在哪一级台阶转身离开(流失点诊断),然后用一张“好久不见”的券请他们回来(召回策略),最后用A/B店实验验证哪种方法真有效(留存实验与AB测试),让数据牵着产品一步步变好。

岗位关联

学会留存分析,你就能用数据说清“用户为什么留、为什么走”,让产品迭代从拍脑袋变成可验证的实验,这是AI产品经理、运营和数据分析师的核心竞争力。

目录
  1. 可视化演示
  2. 留存率计算:先给熟客定标准
  3. 留存漏斗搭建:画出从进门到爱上的台阶
  4. AI行为数据定位:用行为轨迹找流失点
  5. 流失点诊断:找到用户放下杯子的地方
  6. 召回策略设计:把流失用户请回来
  7. 留存实验与AB测试:用对照实验验证方案
  8. 数据驱动迭代优化:让留存分析成为习惯
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

通过令牌桶模型演示限流核心机制:以固定速率生成令牌,请求消耗令牌,桶满则丢弃多余令牌,桶空则拒绝请求。

本节配有交互动效(进入视口后自动加载,约 3KB)。

令牌桶限流机制 令牌以固定速率生成并放入桶中,桶满后新令牌被丢弃 请求到达时消耗一个令牌,有令牌则通过 桶中无令牌时请求被拒绝,实现限流保护 通过率 = min(1, 令牌生成速率 / 请求到达速率)

留存率计算:先给熟客定标准

要衡量暖心咖啡屋的熟客率,得先定义什么叫熟客:是进过门就算,还是一个月来三次?如果你把“今天推门进来的所有人”都当成熟客,那熟客率永远会被游客灌水。于是你定下规则:某天第一次来的客人,7天之内再出现一次,就算熟客。

产品也是同理。“注册用户”不等于“留存用户”,真正重要的是一个新增用户在未来某天是否还在用产品。看留存率,通常选三个时间点:次日留存(D1)、7日留存(D7)、30日留存(D30)。D1反映第一印象,D7反映是否形成轻度习惯,D30反映真实粘性。

把某一天新增的用户人数记为 \(N_0\),到第 \(t\) 天仍然活跃的用户数为 \(A_t\),那么第 \(t\) 天留存率就是:

\[

\displaystyle R_t = \frac{A_t}{N_0} \times 100\%

\]

1. N₀ — 同批新客底池:分母必须是同一天第一次来的那批人,不能换成当天总活跃用户。

2. A_t — 回头客人数:分子是这批新客里,第 \(t\) 天仍然回来的人。

3. 分数 — 算出留存比例:用回头客除以底池,得到这批次用户的留存占比。

4. 乘上100% — 转成百分比:把小数结果变成更直观的百分比。

这样一来,你就不会把“今天店里人多”误当成熟客多。再进一步做群组分析:把每天的新客分成不同批次,比较它们的留存曲线。如果上周新客7日留存是30%,这周只剩20%,说明最近某个改动很可能伤到了体验。

N0N_0
AtA_t
AtN0\frac{A_t}{N_0}
×100%\times 100\%

留存漏斗搭建:画出从进门到爱上的台阶

咖啡屋里,客人会从门前经过、推门、点单、喝完第一杯,最后决定下次再来。每一级台阶都会有人留下,也会有人离开。想找到最痛的那级台阶,你就要把这条动线画出来。

在AI产品里,这条动线就是“留存漏斗”。它不需要事无巨细地把所有行为都塞进去,只挑与“再次回来”强相关的关键动作。比如:新用户进入产品 → 完成首次核心行为 → 次日再次使用 → 第7日再次使用。对AI产品来说,“首次核心行为”可能是第一次生成图片、第一次输完一句话并得到答案,这个时刻也叫Aha moment。

漏斗每一层之间都可以算转化率。假设第 \(i\) 步的人数是 \(N_i\),下一步人数是 \(N_{i+1}\),那么这一步的转化率是:

\[

\displaystyle C_i = \frac{N_{i+1}}{N_i} \times 100\%

\]

1. N_{i+1} — 走到下一级的人数:这是“活下来”的客人。

2. N_i — 当前一级的人数:这是上一级台阶“出发”的客人。

3. 相除后乘100% — 计算台阶通过率:结果越低,说明这一级台阶越容易让人转身离开。

举例:1000人注册,600人完成首次AI对话,300人次日回来,150人第7日回来。各步转化率就是60%、50%、50%。哪一步明显低于预期,哪一步就是最需要修复的“台阶断裂处”。

Ni+1N_{i+1}
NiN_i
Ni+1Ni×100%\frac{N_{i+1}}{N_i} \times 100\%

AI行为数据定位:用行为轨迹找流失点

你给咖啡屋装了智能摄像头和会员卡,王阿姨走到吧台前犹豫了多久、最后有没有离开,都会被记录下来。有了这些轨迹,你不再只看到冰冷的汇总数字,而是能看到“每个人在哪个节点停下”。

AI产品每天也会产生海量行为日志:点击、滑动、调用AI、停留时长、退出页面。把这些行为整理成可分析的事件流,就叫行为埋点采集。基于这些数据,你可以给用户分群画像:把新用户、活跃用户、沉默用户区分开;再做路径聚类分析,找到流失用户最常见的行动路线。

为了不淹没在几百个行为里,可以用一个“信号强度”来排序:某个行为出现时用户的流失率,除以全体用户平均流失率。比值越高,说明这个行为和流失越相关。

\[

\displaystyle L_A = \frac{P(\text{流失} \mid A)}{P(\text{流失})}

\]

1. P(流失|A) — 条件流失率:出现过行为A的用户里,有多少人最终流失。

2. P(流失) — 平均流失率:全体用户的平均流失水平。

3. 两者相除 — 得到风险倍数:如果 \(L_A > 1.2\),说明行为A是高流失信号,值得优先排查。

比如你发现“第一次生成失败后直接退出”这个路径的 \(L_A\) 特别高,那接下来的重点就不是改按钮颜色,而是先把AI生成的成功率提上去。这就是用行为数据,而不是拍脑袋,定位流失点。

P(流失∣A)P(\text{流失} \mid A)
P(流失)P(\text{流失})
P(流失∣A)P(流失)\frac{P(\text{流失} \mid A)}{P(\text{流失})}

流失点诊断:找到用户放下杯子的地方

客人不会平白无故消失。有的人第一次来就找不到座位,有的人喝了一口觉得太苦,还有的人只是连续几周太忙忘了来。你要做的,是把“消失原因”拆成可验证的信号。

对AI产品来说,常见流失点有四类。第一是首次体验卡点:新用户点开产品后看不懂、加载慢、引导太长,导致还没碰到核心价值就走人。第二是功能使用深度:用户虽然登录了,但没用过核心功能,留存自然低。第三是活跃频次衰减:用户每周来三次,慢慢变成每周一次,再变成一个月一次。第四是卸载和沉默信号:用户卸载App,或者连续很久不打开。

判断“沉默”需要一条时间线。假设当前时刻是 \(t_{\text{now}}\),用户最后一次核心行为发生时间是 \(t_{\text{last}}\),那么沉默间隔就是:

\[

\displaystyle \Delta t = t_{\text{now}} - t_{\text{last}}

\]

1. t_now — 当前时间:你观察用户状态的那一刻。

2. t_last — 最后核心行为时间:用户最后一次真正使用产品价值的时间。

3. 相减 — 得到沉默间隔:当 \(\Delta t\) 超过产品设定的阈值(如7天或14天),就把用户放入召回池。

诊断流失点,不是在找“谁的错”,而是在找“用户价值断在哪里”。如果核心功能没有被体验过,问题在首次引导;如果核心功能用过但很快不再来,问题可能在内容新鲜度、推送价值或竞品替代。

tnowt_{\text{now}}
tlastt_{\text{last}}
Δt=tnow−tlast\Delta t = t_{\text{now}} - t_{\text{last}}

召回策略设计:把流失用户请回来

发现王阿姨三周没来,你决定做一次召回:给她发一张“你最爱的拿铁买一送一”的券,而不是给所有路人发传单。精准的召回,比大喇叭广播更有效,也更省钱。

召回策略设计要分四步走。第一步是生命周期触达:区分新用户、活跃用户、沉默用户和已流失用户,不同阶段用不同话术。第二步是个性化推送文案:根据用户历史行为,提到他曾经用过的功能,比如“你上周生成的周报模板还在,要不要继续编辑?”第三步是权益激励设计:给沉默用户一张会员体验券,但一定要引导他回到核心功能,而不是只领福利。第四步是召回效果评估:不能只看推送打开率,要看召回后是否真的回访和使用。

召回到底成不成功,需要一个明确指标。假设被触达的沉默用户数是 \(U_{\text{touched}}\),触达后7天内回访的人数是 \(U_{\text{return}}\),那么召回转化率是:

\[

\displaystyle CR_{\text{recall}} = \frac{U_{\text{return}}}{U_{\text{touched}}} \times 100\%

\]

1. U_return — 真正回来的人:分母不是打开推送的人,而是回来后真正活跃的人。

2. U_touched — 被触达的人:所有收到召回消息的沉默用户。

3. 相除乘100% — 召回效果量化:这个值越高,说明内容和激励越对路。

要小心一种假象:用户被大额券吸引回来,领完福利又走了。真正的召回,是让用户重新体验核心价值,而不是用补贴买一次虚假回访。

UreturnU_{\text{return}}
UtouchedU_{\text{touched}}
UreturnUtouched×100%\frac{U_{\text{return}}}{U_{\text{touched}}} \times 100\%

留存实验与AB测试:用对照实验验证方案

你想到一个新主意:把咖啡屋的菜单改成“每日手冲限定”,也许熟客会更多。但你不确定这是不是真的好,于是决定把两周的客人随机分成两组:一组看到新菜单,另一组维持老菜单。两周后对比谁的回头率高。

这就是留存实验与AB测试。先写实验假设,比如“精简后的新手引导能把7日留存从12%提升到16%”。然后把用户随机分成实验组和对照组,两组同时跑。实验组看到新版本,对照组保持原样。最后比较核心指标,而不是只看点击率、满意度这些表面数据。

假设实验组的7日留存率是 \(R_{\text{experiment}}\),对照组是 \(R_{\text{control}}\),那么留存提升量是:

\[

\displaystyle \Delta R = R_{\text{experiment}} - R_{\text{control}}

\]

1. R_experiment — 实验组留存率:体验新方案的那批用户。

2. R_control — 对照组留存率:使用原方案的那批用户。

3. 相减 — 得到净提升:正数代表新方案可能更优,但还要看差异是否显著。

只看数字高还不够。要保证样本量足够,还要看置信区间是否横跨0。这就像试营业三天客人多,不代表新菜单真的好;你需要排除“新鲜感”和“偶然波动”,再决定是否全量上线。

RexperimentR_{\text{experiment}}
RcontrolR_{\text{control}}
ΔR=Rexperiment−Rcontrol\Delta R = R_{\text{experiment}} - R_{\text{control}}

数据驱动迭代优化:让留存分析成为习惯

留存分析不是一次性的调研,而是咖啡屋每天打烊后都要做的复盘:今天谁来了?谁走了?为什么?明天要改什么?只有这样,熟客率才会一点点涨起来。

团队应该把留存分析变成固定机制。第一是留存指标监控:把D1、D7、D30和关键漏斗步骤放进自动化报表。第二是每周留存复盘:产品、运营、数据分析师坐在一起,对着曲线找异常。第三是优化方案排期:从流失点诊断结果中挑出影响最大的问题,排进下一迭代。第四是持续提升用户粘性:每一次改动都用AB测试验证,形成“发现-假设-实验-复盘”的循环。

量化一次优化的效果,可以用相对提升率。假设优化前基线7日留存率是 \(R_{\text{baseline}}\),优化后是 \(R_{\text{new}}\),则相对提升为:

\[

\displaystyle I = \frac{R_{\text{new}} - R_{\text{baseline}}}{R_{\text{baseline}}} \times 100\%

\]

1. R_new — 优化后留存率:新方案上线后的留存表现。

2. R_baseline — 基线留存率:改动之前的留存水平。

3. 差值除以基线再乘100%:得到“相对提升多少”,方便不同实验之间横向比较。

数据不是用来证明“我做得对”的,而是用来发现“下一步该怎么做”的。当留存分析变成团队习惯,产品就不再靠运气留住用户,而是靠一套持续运转的数据飞轮。

RnewR_{\text{new}}
RbaselineR_{\text{baseline}}
Rnew−RbaselineRbaseline×100%\frac{R_{\text{new}} - R_{\text{baseline}}}{R_{\text{baseline}}} \times 100\%

AI 应用场景

AI产品经理做新手引导改版

阶段:数据诊断与产品迭代

解决的问题:传统方式靠访谈和猜测,不知道新用户卡在哪。用留存漏斗和AI行为数据,可以定位“注册后没有完成首次核心行为”的流失环节。

具体案例:某AI绘画App发现新用户7日留存只有12%,漏斗里“首次生成”一步转化率只有40%。产品经理把引导步骤从5步精简到2步,并增加默认模板,AB测试后7日留存提升到17%。

运营做沉默用户召回

阶段:用户触达与召回运营

解决的问题:群发短信打扰所有人,召回效果差。用行为数据圈定“用过3次以上但14天没活跃”的用户,按历史偏好设计文案和权益。

具体案例:智能写作工具运营商,对“写过周报但3周没回来”的用户推送“一键生成周报模板”,附带3天会员。召回后7日回访率提升6%。

数据分析师搭建留存监控

阶段:指标监控与数据分析

解决的问题:手工报表滞后,无法及时发现留存恶化。自动按新增批次计算D1/D7/D30留存,输出漏斗转化和流失信号清单。

具体案例:数据分析师搭建周报后,发现最近一次版本更新让7日留存下降4个百分点,定位到“首次打开加载时间超过3秒”的路径,推动技术优化后留存回升。

Python 演示

python61 行
# -*- coding: utf-8 -*-from collections import defaultdict  def load_records():    # 每条记录表示 (用户ID, 活跃日期)    records = [        ("u001", 0), ("u001", 1), ("u001", 7),        ("u002", 0), ("u002", 1),        ("u003", 0),        ("u004", 1), ("u004", 8),        ("u005", 1),    ]    return records  def build_active_map(records):    active = defaultdict(set)    for uid, day in records:        active[day].add(uid)    return active  def compute_retention(records, target_days):    first_active = {}    for uid, day in records:        if uid not in first_active or day < first_active[uid]:            first_active[uid] = day     cohorts = defaultdict(set)    for uid, day in first_active.items():        cohorts[day].add(uid)     active = build_active_map(records)    result = []    for day in sorted(cohorts):        new_users = cohorts[day]        row = {"cohort": day, "new_users": len(new_users)}        for t in target_days:            ret = len(new_users & active.get(day + t, set()))            row["D%d" % t] = ret            row["R%d" % t] = ret / len(new_users)        result.append(row)    return result  def funnel_conversion(steps):    result = []    for i in range(len(steps) - 1):        conv = steps[i + 1][1] / steps[i][1]        result.append((steps[i][0] + " -> " + steps[i + 1][0], round(conv, 2)))    return result  if __name__ == "__main__":    retention = compute_retention(load_records(), [1, 7])    for row in retention:        print(row)    steps = [("曝光", 1000), ("注册", 800), ("首用", 450), ("第7日留存", 120)]    for item in funnel_conversion(steps):        print(item)
目的:用一份极简的用户活跃日志计算D1/D7留存率,并计算留存漏斗相邻步骤转化率,帮你快速复现文中提到的留存分析方法。
  1. active[day].add(uid)把每天出现的用户登记到一张“到店表”中,方便之后取交集。
  2. first_active[uid] = day记录用户第一次出现的日子,也就是“新客入伙日”。
  3. cohorts[day].add(uid)按首次出现日给用户分组,形成同批新客名单。
  4. ret = len(new_users & active.get(day + t, set()))求“同批新客”和“目标日活跃用户”的交集人数,这是留存率的核心。
  5. conv = steps[i + 1][1] / steps[i][1]计算漏斗相邻两步的转化率,哪一级台阶断了,一目了然。

常见误区

误区我常把次日留存率算成“次日活跃用户数 / 当天总活跃用户数”,这样数字看起来很高,数据也容易取得。

正解留存必须盯住同一批新用户。咖啡店熟客率是“上周新客人这周又来的比例”,而不是今天店里所有客人里有多少熟面孔。如果把当日DAU当分母,就会被老用户和渠道投放稀释,看不出真正的新用户留存。

为何常见:DAU数据现成且和留存率都带“活跃”二字,初学者很容易混淆“存量”和“队列”。

误区我要把点击、滑动、停留、退出全部塞进漏斗,觉得步骤越多越能定位问题。

正解漏斗每一级台阶必须是对留存有决定意义的动作。暖心咖啡屋不会把“掏手机、扫码、选杯型”都当成独立台阶,而是看“点单完成率”。步骤过多会把关键流失淹没在噪音里,反而看不清主矛盾。

为何常见:数据越全越让人有掌控感,但留存分析追求的是“少而准”的可行动指标。

误区用户不来就发大额券,发得越多,回来薅羊毛的人越多,召回率看起来爆表。

正解召回要按生命周期和偏好分批触达,并评估“召回后7日真实回访”,而不是只看首日打开。被券引回来却不使用核心功能的用户,只是把下次流失推迟了一点。

为何常见:把召回等同于促销活动,忽略了留存的本质是让用户重新体验核心价值。

误区实验组7日留存比对照组高1个百分点,我马上全量发布,生怕晚一天就少赚一天。

正解需要先确认差异是否显著、样本量是否足够,还要排除新奇效应。就像试营业三天客人多,不代表新菜单真的好;要同时观察新老客,去掉首周新鲜感再看30日留存。

为何常见:人脑天然爱看数值大小,容易忽略波动、置信区间和对照组缺失带来的判断偏差。

面试题

Q1. 某日新增1000个用户,第二天仍然活跃的有300人,次日留存率是多少?

单选题 · easy

  • A.30%← 正确答案
  • B.3%
  • C.300%
  • D.70%

答案:A。次日留存率=300/1000=30%,分母必须是同一天新增的这批用户。3%是小数点算错,300%是分子分母颠倒,70%计算的是“次日依然活跃的比例”而非留存队列占比。

Q2. 在留存漏斗中,计算某一步的转化率时,分母应该用哪个数?

单选题 · easy

  • A.上一步人数← 正确答案
  • B.累计注册人数
  • C.当日活跃人数
  • D.全部目标用户

答案:A。漏斗转化率是相邻步骤的比值。就像问“从点单到付款的转化”,分母是点单人数,而不是累计会员或当日活跃人数,否则会把不同人群混在一起,看不出真实流失。

Q3. 次日留存率最合适的分母是?

单选题 · easy

  • A.当日新增用户← 正确答案
  • B.当日活跃用户
  • C.累计注册用户
  • D.历史流失用户

答案:A。只有盯住“同一天第一次来的那批人”,才能知道这批人被留下了多少。当日活跃用户是存量,累计注册用户包含大量沉默用户,历史流失用户更是完全不同的群体。

Q4. 对AI产品来说,最适合作为"Aha moment"的行为是?

单选题 · mid

  • A.完成第一次AI生成← 正确答案
  • B.完成手机号注册
  • C.打开产品首页
  • D.点击广告位

答案:A。Aha moment是用户第一次感受到产品核心价值的时刻。对AI产品来说,第一次成功生成内容才是价值兑现;注册、打开首页、点广告都只是前置步骤。

Q5. 下列哪些属于用户流失风险信号?

多选题 · mid

  • A.连续7天未登录← 正确答案
  • B.核心功能使用次数下降← 正确答案
  • C.卸载应用← 正确答案
  • D.生日当天登录

答案:ABC。未登录、核心使用下降、卸载都是沉默或流失信号。生日当天登录反而说明用户有一定情感连接,属于正面信号,不应被当成流失预警。

Q6. 设计召回策略时,最合理的起点是?

单选题 · mid

  • A.给全体沉默用户发券
  • B.按行为和偏好分批次触达← 正确答案
  • C.每天更换文案
  • D.只拉新不召回

答案:B。精细化召回要先按生命周期和用户偏好分组,再决定渠道、文案和权益。全体发券成本高且会伤害品牌感知;只拉新更不是召回策略。

Q7. 关于留存AB测试,下列说法正确的是?

多选题 · hard

  • A.用户应随机分组← 正确答案
  • B.实验组和对照组同时进行← 正确答案
  • C.只观察实验组前后变化即可
  • D.需要结合置信区间判断← 正确答案

答案:ABD。随机分组和同时运行能排除时间偏差;只看实验组前后变化会混入大盘波动,所以必须有对照组;置信区间能帮我们判断差异是否只是随机噪声。

Q8. 某留存实验显示实验组7日留存15%、对照组12%,样本量充足且p值小于0.05,最合理的结论是?

单选题 · hard

  • A.新方案有效,可考虑上线← 正确答案
  • B.新方案完全无效
  • C.数据不足以判断
  • D.必须立即回滚

答案:A。在样本量充足、p值小于0.05的情况下,可以认为实验组留存显著高于对照组,新方案值得继续放量验证。回滚和“完全无效”都忽略了显著性结果。

Q9. 留存曲线主要用于观察什么?

单选题 · mid

  • A.同一批用户随时间留存变化← 正确答案
  • B.不同广告渠道点击率
  • C.当天新增用户总数
  • D.用户付费金额排行

答案:A。留存曲线横轴是时间,纵轴是留存率,展示同一新增批次用户的人数衰减过程。它不回答渠道点击、新增数量或付费排行的问题。

Q10. 数据分析师在留存诊断中应产出哪些内容?

多选题 · hard

  • A.定位流失发生环节← 正确答案
  • B.提出召回策略建议← 正确答案
  • C.设计AB实验验证← 正确答案
  • D.消灭所有用户流失

答案:ABC。有效诊断要能定位流失点、给出召回假设并设计实验验证。消灭所有用户流失既不现实也不是单一分析师能承诺的目标,留存分析追求的是持续优化。