核心模块(下):从漏斗到 Agent,分析如何变成行动
漏斗、留存、路径的差别不在图表,而在窗口、计数单位与重入;这些默认值决定 AI 给出的是洞察,还是更快的错误。
同一批事件,三家平台可以给出三个不同的注册转化率,而三家都没有算错。差别不在查询引擎,在四个默认值:计数单位(用户、会话还是事件)、时间窗口(从哪一步起算、重复进入是否重置)、属性归属(取事件发生时的值还是用户当前的值)、行动权限(能不能把人群送出去、能不能改实验分组)。
这四件事没有行业标准,只有厂商默认值。迁平台时最先变的不是图表,是漏斗的分母与留存的同期群(cohort);对账时最先对不上的不是转化率,是分子分母。2026 年,这件事变得更贵:计价单位从 MAU 转向事件量,回放从独立品类变成套件标配,实验与 flag 被并进分析平台,AI 从问答走到定时监控与执行动作(Amplitude 定价、Mixpanel 2025 年定价公告、PostHog 定价)。功能清单越来越长,默认值越来越难看见。
判断:分析模块的竞争已经从“能不能算”移到“默认值是否与业务周期一致”。漏斗窗口 7 天还是 30 天,决定了你把谁记为失败;留存 cohort 是新用户还是活跃用户,决定了曲线是升还是降。采购与迁移的第一件事不是比图表,是把这些默认值逐条写进合同附件。
本章把分析拆成五个原语和九个模块,先讲数学假设与产品陷阱,再讲行动层,最后给一张按模块而不是按厂商的选型表。厂商路线差异留给第 2、3 章;这里只关心一件事:这个数字能不能被复核。证据以公开文档完整的四家国际平台为主;中国厂商的模块默认值公开资料少,只能进 POC 与合同,本章按待核实处理。
9.1 分析原语:五个参数决定所有模块#
所有分析模块都是五个原语的组合:计数、去重、窗口、顺序、分配。 事件分析是计数加分组;漏斗是计数加窗口加顺序;留存是去重加周期;路径是顺序加剪枝;归因是分配;人群是去重加规则。看懂这五个原语,功能表上的大多数差异会从“能力有无”变成“参数取值”。
把模块拆成三层,争论会清楚很多。计算层负责扫描、聚合、连接、去重,ClickHouse、Doris、Spark 都能做,差异在性能与成本;语义层负责指标定义、身份解析、会话切分、渠道分类与 cohort 口径,它决定“同一个问题为什么答案不同”;行动层负责人群下发、实验、引导、告警与 Agent,它决定分析能不能变成动作,也决定替换成本。功能清单只覆盖计算层,采购真正要比的是语义层的默认值与行动层的权限模型。
| 契约 | 它决定什么 | 最容易出事的模块 | 改一次会发生什么 |
|---|---|---|---|
| 计数单位 | 一个人、一次会话,还是一条事件算一次 | 漏斗、留存、人群 | 同期的“转化人数”可以差出倍数,历史报表不可比 |
| 时间窗口 | 从哪一步起算、看多久、是否重置 | 漏斗、留存、归因 | 窗口从 7 天改到 30 天,“流失”变“转化” |
| 属性归属 | 取事件发生时的值,还是用户当前的值 | 人群、归因、分组 | 用今天的标签解释去年的行为,人群不可复现 |
| 行动权限 | 能不能写、写给谁、谁批准 | CDP、实验、引导、Agent | 一次误发人群或误改 flag,比一张错报表贵得多 |
四个契约要落地,靠的不是文档,是指标对象。一个可用的指标至少有:ID、名称、定义、事件与过滤、窗口、计数单位、owner、版本、SQL、校验用例。图表引用指标版本,改定义产生新版本,旧报表仍可复现。没有这一层,“转化率”只是三个看板上三个同名的数。指标还要有血缘:它由哪些事件、哪些属性、哪段 SQL 生成;上游事件改名或删除,哪些看板会受影响。没有血缘,治理只能靠人记。
9.2 漏斗:分母、窗口与重入#
漏斗(funnel)的定义只有一句话:一组有序或无序的步骤,加一个转化窗口。 用户从第一步进入,在窗口内完成全部步骤即算转化。设 E 为窗口内进入第一步的人数,C_k 为完成第 k 步的人数,整体转化率是 |C_K|/|E|,相对转化率是 |C_k|/|C_{k-1}|。
这里有一个容易被忽略的数学条件:只有在“单次进入、步骤嵌套、无排除”时,整体转化率才等于各步相对转化率的乘积。一旦允许重入、任意顺序或中途排除,连乘就会高估或低估。多数漏斗截图没有告诉读者它属于哪种情况。
三家的默认值不同,而且都能自洽。Amplitude 按“最长且最早”的转化序列给每个用户计数:先找完成步骤最多的序列,再取其中最早的一条;勾选 hold constant by session 后,统计单位从用户变成“用户 × 会话”(Amplitude 漏斗文档)。Mixpanel 默认 7 天窗口,最长 366 天或 12 个会话;计时从第一次 Step 1 开始,后面重复的 Step 1 不会重置;重入分 default 与 optimized re-entry,计数单位分 Uniques、Totals、Sessions(Mixpanel 漏斗文档)。PostHog 提供 sequential、strict order、any order 三种顺序;排除步骤会把这些人从整个漏斗里剔除,而不只是从某一步剔除(PostHog 漏斗文档)。
| 维度 | Amplitude | Mixpanel | PostHog |
|---|---|---|---|
| 漏斗计入 | 去重用户,按最长且最早的序列 | Uniques / Totals / Sessions | 去重用户(文档以 unique users 示例) |
| 窗口与起算 | 可配置;按会话锁定后单位为用户×会话 | 默认 7 天,最长 366 天或 12 会话;从首次 Step 1 起算 | 按洞察配置,文档未列统一默认值(待核实) |
| 重入 | 取决于计数单位与 hold constant | default 与 optimized re-entry | 文档未强调(待核实) |
| 排除步骤 | 待核实 | 不能放在首尾 | 被排除者从整个漏斗剔除 |
最常见的错误不是算错,是窗口选错。B2B 试用、保险投保、家装决策的周期经常超过 14 天,7 天窗口会把“后来转化”记成“未转化”。举个只用于说明逻辑的例子:某用户 1 月 1 日进入漏斗,1 月 10 日完成最后一步。7 天窗口记为未转化,30 天窗口记为转化;如果他在 1 月 5 日又触发一次第一步,Mixpanel 默认不会重置计时,optimized re-entry 会把第二次进入当成新漏斗。同一个人的结果可能相反,两张报表都没有算错。
还有三个更隐蔽的:分母漂移——日期范围内发生 Step 1、但 Step 2 落在范围外,报表会把后者算成流失;属性归因错位——前端事件有 browser、后端事件没有,按 browser 拆分时默认取 first touchpoint,会把后端步骤的人分到错误桶里;身份未合并——Mixpanel 明确提示 ID Merge 最长需要 24 小时,合并前当天的漏斗可能少算转化(Mixpanel FAQ)。日报里那些“今天转化率掉了”,有一部分只是身份还没合并。
所以顺序不能反:先用路径发现真实序列,再定义漏斗。反过来做,得到的是设计者想象中的流程,不是用户走出来的流程。
9.3 留存:cohort 定义比曲线形状重要#
留存(retention)回答的是:完成某个起始事件的人,在第 n 个周期是否回来完成返回事件。 N-day 留存 R_n = |A_n|/|C|(C 为 cohort 人数),只数第 n 个周期恰好回来的人;滚动或无界留存 U_n = |∪A_m|/|C|(m ≥ n),数第 n 个周期及以后回来过的人。前者可升可降,后者单调不增,两条线不能画在同一张图上比较。
半衰期 h = min{n : U_n ≤ 0.5},比“Day 30 留存”更适合跨产品比较,因为它不依赖某个固定周期。但它不适合回答“第 7 天发生了什么”:前者是生存分析,后者是周期行为,混用会让团队在“留存变好”和“留存变差”之间反复横跳。
cohort 定义比曲线形状重要。Amplitude 默认看新用户,以用户触发起始事件的日期作为入口,Return On or After 指第 7 天及以后回来的人,支持最多 100 个自定义 bracket(Amplitude 留存文档)。Mixpanel 的 cohort 是“在该周期内做过 A 事件的人”,同一个人可以在多个周期里各算一次,默认 On or After,另有 On、On or Before、Streak 三种(Mixpanel 留存文档)。PostHog 提供 first time、first ever occurrence、recurring 三种 cohort 口径,返回口径分 On 与 On or after,均值分 weighted 与 simple(PostHog 留存文档)。同一张留存表,三种入口,三条曲线。
最常见的错误有五个:起始事件选“任意事件”,人人 100% 留存;分母用 DAU 而不是 cohort,把“活跃”混成“留存”;新老用户混算,渠道结构变化被误读成产品改进;右删失——最近的 cohort 还没走完 Day 30 就画曲线,末尾自然下垂;低频产品用日留存。前四个是定义与呈现问题,最后一个是用错周期:先用使用间隔(usage interval)看自然使用周期,再决定看周留存还是月留存。
留存常被当作 product-market fit 的证据,但高留存也可能来自强制使用、合同绑定或推送。判断 PMF 至少要看三件事:自然使用周期内的留存、主动行为的比例、付费或推荐的意愿。单看一条曲线,结论会很脆。
判断:漏斗与留存没有行业标准,只有厂商默认值。迁平台时最先变的不是图表,是这两个数;对账时不要先比转化率,先比分子分母——入口人数、各步人数、窗口内完成人数。分子分母都对上,比率才有意义。
9.4 路径:Sankey 的宽度不是转化率#
路径(path)图把会话内的事件序列聚合成有向图:节点是事件或页面,边是转移,宽度是人数。 路径数量随深度指数增长,所以任何可视化都在做剪枝:只显示 top N、设最小人数、合并通配符、清理动态 URL。PostHog 的 Paths 支持 pageview、screen、自定义事件和 SQL 表达式,也支持 wildcard group、path cleaning、排除事件与最小/最大人数(PostHog Paths);Mixpanel 的 Flows 用 Sankey,默认展示锚点事件之后的 3 步,可向前或向后扩展(Mixpanel Flows)。
读图有三个陷阱。第一,节点高度是人数,不是转化率;没有分母,宽节点只说明“到过的人多”。第二,采样会让长尾路径消失:1% 采样下,真实占比 0.05% 的路径期望只剩零头,“没人走”可能只是没被采到。第三,路径是共现,不是因果;用户先看帮助文档再付费,不等于帮助文档促成付费。
路径图最有价值的用法不是看全图,是看分叉点:在哪个节点分叉、分叉后哪条支路的人更少、少的那条是不是因为缺引导。把它与漏斗的 drop-off 对齐,比盯着一张密不透风的 Sankey 有用。最小可用是一条锚点事件、前后各 3 步、一个最小支持阈值、一套 URL 清洗规则,并在图上注明是否采样。无限下钻的全景路径和“自动发现最佳路径”都是伪需求:前者没人看得完,后者没有对照。
| 原语 | 最小定义 | 最常见错误 | 上线验收 |
|---|---|---|---|
| 漏斗 | 入口事件、2–5 步、转化窗口、计数单位 | 窗口短于决策周期;重入口径不一致;排除被当全局过滤 | 换一种计数单位,结果差异能解释 |
| 留存 | 起始事件、返回事件、周期、cohort 分母 | 起始事件选“任意事件”;右删失未标注;低频产品用日留存 | 最近 cohort 标了“未完成”,分母可复算 |
| 路径 | 锚点事件、前后步数、最小支持阈值 | 把节点宽度当转化率;采样吞掉长尾;把共现当因果 | 图上写明采样率与最小人数 |
9.5 人群与画像:时间语义决定名单#
人群(cohort)是按属性规则或行为规则圈出的用户集合,可用于分析过滤、下发与实验分层。 它看起来只是筛选器,实际上是分析平台里最像承诺的对象:一旦人群被送到广告平台或 CRM,它就不再是一张图,而是一份要花钱的名单。
三种时间语义决定名单。Amplitude 把窗口分为 During(选定日期范围内,滚动更新)、Since(从某天起累计)、Within(每个用户首次使用后的 X 天内)。同一个“过去 30 天活跃”,During 每天漂移,Since 只增不减,Within 对每个用户固定(Amplitude cohort 文档)。选错语义,人群规模会随报表日期变化,而运营看到的只是“人数又变了”。
属性覆盖是第二个坑。Mixpanel 明确写:用户属性只保存最新值,含用户属性的人群条件用“当前值”,即使该值在历史上已经变化。这意味着“2024 年 1 月的上海用户”这类人群,今天重建会得到不同结果;历史属性必须显式加时间与度量,否则不可复现(Mixpanel cohorts)。画像同理:用户表存的是“现在”,分析要的是“当时”;没有版本,画像只能服务当下运营,无法解释历史。
能力差异在计数方式与规则组合上。Amplitude 支持六种计数:次数、相对次数、属性总和、属性去重值、历史次数、区间内次数;Mixpanel 支持行为条件、AND/OR 组合与 CSV 静态导入,CSV 人群不会随时间更新;PostHog 的 cohort 可做漏斗与留存的过滤器,但一次只能用一个 cohort 做漏斗拆分,因为用户可能同时属于多个人群(PostHog 漏斗文档)。
RFM 与 LTV 是最容易被做成“伪精确”的两件事。RFM 的常见做法是把 R、F、M 各分五档,拼成 125 组;分位点必须固定,否则本月的高价值用户到下月会被重新定义。LTV 的简化式是 ARPU × 毛利率 × 平均生命周期,平均生命周期用留存曲线下的面积估计,而不是用 1/churn 拍一个数。预测人群多数是 propensity(会不会发生),不是 uplift(营销带来的增量),两者在投放决策上不能互换。
人群不是标签的容器,是带时间戳的查询结果。 人群太小,广告平台匹配率低;多个人群叠加,重复计数。最小可用是 3–5 条规则、明确时间窗、可保存、可导出、注明更新频率。
9.6 归因:模型是表层,ID 是底层#
归因(attribution)是把一次转化的功劳分配给路径上的触点。 模型决定分配规则,lookback 决定哪些触点有资格,渠道映射决定触点归到哪个桶。五个常见模型在单次转化内的学分之和都是 1,但不同模型之间不可加总——这是归因报表最常被误用的地方。
| 模型 | 分配规则 | 适用 | 主要偏差 | 什么时候会骗你 |
|---|---|---|---|---|
| First-touch | 首个触点 100% | 品牌拉新 | 高估上游,低估转化页 | 自然转化全记在第一次曝光上 |
| Last-touch | 末个触点 100% | 直接响应 | 高估收割渠道 | 品牌词与 direct 抢走全部功劳 |
| Linear | 所有触点均分 | 触点同等重要 | 稀释关键触点 | 长路径上每个触点都显得平庸 |
| Position | 首尾各 40%,中间均分 | 强调开场与收尾 | 中间触点被低估 | 内容与社群渠道长期背锅 |
| Time-decay | 越近权重越高 | 短决策周期 | 忽略早期种草 | 长周期业务里早期触点消失 |
一次转化若有四个触点,linear 每个 25%,position 首尾各 40%、中间各 10%,last-click 全给最后一个。渠道排名通常不同。这是模型差异,两张报表都没有算错。
GA4 的真实产品面比行业印象窄。归因报告只提供三种模型:data-driven、paid and organic last click、Google paid channels last click;除全 direct 路径外,direct 访问不获得归因学分;data-driven 用转化与未转化路径训练,转化后 7 天内可重新归因(GA4 归因说明)。归因设置里的 lookback 对 first_open 与 first_visit 默认 30 天(可改 7 天),其他关键事件默认 90 天(可选 30 或 60 天)(GA4 归因设置)。行业常说“六种模型随便选”,GA4 的产品里并没有这个选项。
Amplitude 的渠道分类器是另一类问题:规则在查询时逐事件执行,不落库,改规则会改历史报表。这意味着“渠道”不是一个稳定维度,而是当前规则对历史的重新解释;做同比前必须先冻结规则版本(Amplitude 营销分析文档)。
移动端的墙更高。ATT 在 iOS 14.5+ 要求授权后才能访问 IDFA,未授权时 IDFA 全零,用哈希邮箱或手机号绕过同样需要授权(Apple ATT)。SKAdNetwork 自 iOS 11.3 起提供安装验证,v4 自 iOS 16.1 起可用;对 App Store 广告,Apple 已要求改用 AdAttributionKit(iOS 17.4+):三次转化窗口、按人群匿名阈值分层、安装转化中最多 5 个非获胜网络的回传,且不含用户级标识(AdAttributionKit、SKAdNetwork)。平台归因与应用内归因因此不可能完全对上。
归因回答“谁拿到了功劳”,增量回答“如果没有这个触点,转化会不会发生”。前者可以用规则算,后者需要对照或因果模型。把归因当增量,最常见的后果是给本来就会转化的人重复发券。六个高频错误:lookback 短于决策周期、把多个广告平台报告的转化直接相加、忽略 direct 与品牌词的蚕食、用 last-click 评估品牌广告、改完渠道分类器直接做同比、把 SKAdNetwork 的转化值当收入。
判断:归因的瓶颈已经从模型转向 ID 与同意。模型选择是治理问题——先冻结 lookback 与渠道分类器版本,再谈 first-touch 还是 data-driven;没有统一 ID 的“全渠道归因”,只是把三份不可加总的报表放进同一个看板。
9.7 回放与热图:默认遮罩就是合规成本#
回放的真实差异不是“能不能录”,是“默认遮住什么”;热图的差异在它依赖哪种采集。 Web 回放记录 DOM 快照与增量变更,在播放器里重建页面;移动端没有 DOM,通常直接录屏或按帧捕获。Mixpanel 明确区分这两件事:Web 采集 DOM 结构与变更,本质是重建;移动端采集实际屏幕像素,包含滚动、轮播、自动滚动(Mixpanel 回放文档)。这个差异决定体积、性能与遮罩方式都不同。
Web 回放的链路是初始化快照、DOM 变更、输入事件、鼠标与滚动、网络请求与控制台,播放器按时间戳重放。任何一个环节采样或丢失,回放就会与事件对不上。移动端按帧捕获,体积更大,通常需要更激进的采样与更长的上传间隔,因此更不适合“全量”。回放也从独立品类变成了套件标配:Amplitude Free 含每月 1 万条回放,Mixpanel Free 同样含每月 1 万条,FullStory Free 给到每月 3 万 sessions(Amplitude 定价、Mixpanel 2025 年定价公告、FullStory Free 计划)。差异化因此转到隐私默认值、移动端采集与采样控制。
| 厂商 | 默认遮什么 | 遮罩边界与灰区 | 保留与采样 |
|---|---|---|---|
| Mixpanel | 所有非输入文本、输入框;图片与视频阻断 | 客户端执行,原文不发送 | 全局采样,或按事件触发采集 |
| Amplitude | Medium 档:表单字段与文本输入 | 其他文本原样采集;alt、title、placeholder、aria-label、value、data-* 等 HTML 属性不遮 | React Native 远程遮罩可能不稳,建议用 AmpMaskView 手动遮 |
| PostHog | 输入框 | 普通文本不遮 | 按 session ID 哈希采样;可按 URL、事件、flag 设触发组 |
| Pendo | 三档 Web、两档移动配置(默认档未列明,待核实) | CSS 选择器仅 Web;移动端需 SDK 3.14.0+ 代码规则 | 默认保留 30 天(可扩 90 天),clip 保留一年 |
这张表最值得看的是“遮罩边界与灰区”那一列。Mixpanel 的默认最保守,所有非输入文本都遮(Mixpanel 隐私控制);Amplitude 的 Medium 是默认级别,HTML 属性不在遮罩范围(Amplitude 隐私设置);PostHog 只遮输入框(PostHog 隐私控制);Pendo 的 Web 与移动是两套规则,移动端要用 SDK 3.14.0+ 的代码级规则,默认保留 30 天(Pendo 隐私文档)。很多页面把订单号、邮箱、地址写进 data-* 或 placeholder,遮了输入框不等于遮了这些字段;Mixpanel 的代价则是回放里看不到正文,排查体验问题时要临时放开。
遮罩在客户端执行,这一点决定合规成本落在哪:服务端遮罩意味着原文已经离开浏览器,客户端遮罩意味着规则写在前端代码里,改一次要发版。采购时问“默认遮什么”比问“能不能遮”有用。
采样也要写清楚。PostHog 按 session ID 哈希确定采样,同一会话的决策稳定;触发组可以按 URL、事件、feature flag 分别设置采样率与最短时长(PostHog 采集控制)。Mixpanel 支持全局采样,也支持“1% 全局加命中 checkout_error 时 100%”这类事件触发采集。回放时间轴与事件时间轴不一致,通常来自时钟、批量上传与 ID merge,不是播放器坏了。
热图(heatmap)的可用性取决于采集前提。PostHog 的 clickmap 依赖 autocapture,scrollmap 依赖 pageleave 事件;免费版只允许采集 3 个页面;热图数据本身不计费,但没有 autocapture 就没有 clickmap(PostHog 热图)。把热图当“用户意图”的证据,是把点击密度当成了注意力。
判断:回放的默认遮罩就是合规成本,采样率就是存储成本。100% 采集与“全量回放”在演示里最好看,在生产里最先撞上隐私审查与账单。回放能指出用户在哪一步停顿,不能解释停顿的原因,更不能证明改版有效。
9.8 告警与异常:先处理季节性,再谈 AI#
告警(alert)是对一个已保存指标的定期检查:静态阈值、相对变化,或异常检测(anomaly detection)。 它看起来是运维功能,实际是分析平台里最容易制造“狼来了”的地方。
检测器要匹配数据形态。计数型指标适合 Poisson 或负二项;连续型且近似正态的适合 Z-score;有离群点的适合 MAD 或 IQR;多维且分布未知的才轮到 Isolation Forest。PostHog 把这几种都摆出来:统计类(Z-score、MAD、IQR、阈值)、机器学习类(Isolation Forest、KNN、LOF、ECOD、COPOD)与集成(AND/OR)。它的 Z-score 与 MAD 默认做一阶差分,目的是把周期性的日、周波动转成变化量,避免把正常高峰当异常;官方建议噪声大的指标把 sensitivity 从 0.9 调到 0.95,并在保存前用模拟器回测(PostHog 告警文档)。
用错检测器,灵敏度调得再细也只是在拟合噪声。低流量指标用 z-score,方差估计不稳,应该用 Poisson、负二项或设最小量;不做季节性差分,周一涨就会被判异常。
根因分析(root cause analysis, RCA)是另一层。Mixpanel 的 RCA 先验证异常:用与时间粒度匹配的基线(小时约 24 小时、天约 14 天、周约 9 周、月约 6 个月)算 z-score,2 以上才认为不是噪声;再做同 weekday、同 hour 的季节性对照;然后由 LLM 选维度、跑拆分、算贡献度。贡献度的定义是“该段变化除以整体变化”,不是因果效应;置信度是 High、Medium、Low 的标签,不是统计区间。RCA 还有配额:Enterprise 300 次/天、Growth 70 次/天、Free 10 次/天(Mixpanel RCA)。
多重比较是最被低估的问题:100 个 5% 阈值的告警,期望有 5 个误报。告警没有 owner 与 runbook,误报就会被静音,静音之后真异常也没人看。最小可用是 3–5 个核心指标、一个静态阈值加一个同比、明确 owner、静默窗口。全指标异常检测与“AI 自动解释”是伪需求:前者制造噪声,后者制造没有复核的结论。
9.9 CDP、实验与应用内引导:最后一公里#
最后一公里由三个模块组成:把人群送出去(CDP)、把改动做成对照(实验)、把提示放到用户面前(引导)。 三者共用一套身份,任何一环对不上,前面的分析就停在看板上。
CDP 做三件事:采集与转发、身份解析、人群与下发。mParticle 的公开结构是 Collect、Validate、Connect,身份用 IDSync,质量用 Data Master,人群用 Audiences,出口用 Firehose(mParticle 文档)。它不提供事件语义治理,也不提供探索式分析;把它当分析平台,会得到一堆没有定义的宽表。分析厂商的“轻 CDP”则有硬限额:Mixpanel 的 Cohort Sync 支持一次性、每小时、每天、实时四种节奏,但每个项目最多 60 个动态同步、每个人群最多 1,000 万用户、只导出 6 个匹配字段(distinct_id、名、姓、partner_user_id、email、phone),且只有付费计划能保存 cohort(Cohort Sync)。这够做“把高价值人群推给 Braze”,不够做企业级 CDP。PostHog 把 CDP 做成 Data pipelines:sources 进、transformations 改、destinations 出(PostHog CDP)。
实验由三段组成:分配(flag 或随机化)、曝光(exposure 事件)、度量(事件、漏斗、仓库表)。2026 年 5 月 5 日,Amplitude 宣布接手 Statsig 的品牌与客户,并继续维护其云版与 warehouse-native 平台;Statsig 团队则在 2025 年 9 月 2 日加入 OpenAI(Amplitude 与 Statsig、Statsig 公告)。实验因此更像分析套件的一层,而不是独立品类。PostHog 的 Experiments 直接复用 flag 与事件,支持 Bayesian 与 frequentist,变体可关联回放(PostHog Experiments)。Amplitude Experiment 用 mSPRT 做序贯检验,允许随时查看结果;但它对 uniques 至少要有 25 个转化、每组 100 个曝光才计算 p 值与置信区间,对 average 与 sum 指标要求每组 100 个曝光(Amplitude 序贯检验文档)。这些是计算门槛,不是功效保证。
实验要先看样本比例失衡(sample ratio mismatch, SRM),再看指标。SRM 的常见原因是分配日志丢失、曝光事件重复、某个变体加载失败。guardrail 指标要提前定,不能等主指标显著后再找补。序贯检验解决的是“可以随时看”,不解决“同时看很多指标”带来的多重比较。
应用内引导的测量偏差更明显。Pendo 把引导分为 overlay 与 embedded:overlay 支持激活条件、排序与节流,embedded 只能随页面展示、不受排序影响;overlay 报告首次与重复查看,embedded 只报告首次查看(Pendo 指南文档)。被引导的人往往是已经活跃的人,没有 holdout 就无法区分“引导有效”与“本来就活跃”。常见错误也集中在这里:把 cohort sync 当实时;实验曝光与转化事件的时区、身份不一致;只看引导点击率不看留存;CDP 人群与仓库人群更新频率不同导致对不上。
9.10 AI 与 Agent:能力阶梯与可验证性#
AI 在产品分析里已经走完“能问答”的阶段,正在进入“能监控、能执行”。 2025 年 6 月 10 日 Amplitude 发布 AI Agents,到 2026 年 Q2 已形成 Global Agent 加四类专用 Agent 的结构(Amplitude 发布、Q2 财报);Mixpanel Agent、Pendo Agent Mode、PostHog AI 也先后落地(Mixpanel Agent、Pendo Agent Mode、PostHog AI)。问题是可验证性没有同步提升。
| 级别 | 能力边界 | 公开代表 | 必要控制 | 采购时问什么 |
|---|---|---|---|---|
| 辅助查询 | 自然语言转查询、生成图表;不解释指标口径 | Amplitude Fast(2–10 秒、2–4 次工具调用)、Mixpanel Agent | 只读;展示查询与口径 | 能不能看到生成的 SQL 与引用的指标版本 |
| 自动洞察 | 多步调查、根因、定时监控与主动推送;结论仍是假设 | Amplitude Investigate(4–5 分钟、10 次以上调用)、专用 Agent 定时跑;Mixpanel RCA | 基线、季节性、贡献度、置信标签;去重与静默 | 异常怎么验证、贡献度是不是因果 |
| 自动行动 | 建人群、发实验、改 flag、提 PR、触发引导 | PostHog AI 建 flag 与 PR;Mixpanel Agent 建人群与报表;Amplitude 专用 Agent | 人工审批、审计日志、回滚路径 | 做错时谁负责、多久能回滚 |
| 自动优化 | 无人值守地调整策略 | 未见公开生产证据 | 目标函数、停止条件、人工兜底 | 有没有可审计的目标函数与停止条件 |
同一个“AI”标签下,四家的写权限差了一个量级。Amplitude 的 Global Agent 提供三种模式:Fast 2–10 秒、2–4 次工具调用;Default 30–60 秒、4–6 次;Investigate 4–5 分钟、10 次以上(Agent Modes)。四类专用 Agent(Dashboard、Session Replay、Website Conversion、Customer Feedback)按计划运行,把结果推到 Agent Inbox、邮件或 Slack;涉及终端用户影响的动作需要人工批准(专用 Agent)。Mixpanel Agent 能建报表、建人群、分析回放、解释实验结果、跑 RCA,并有每日 RCA 配额。Pendo Agent Mode 明确只读、不写环境、不训练模型、不访问原始事件流。PostHog AI 能读项目数据、建看板、告警、flag,连仓库提 PR。神策把 Agent 定义为“L4 级”,但同样需要人设定目标与边界(发布会报道)。
评估至少要六个维度:语义正确、来源可查、可复现、权限一致、成本与延迟、升级路径。一个可执行的评估集是 20 个真实问题,每个问题有标准答案与参考 SQL;记录首次正确率、需要人工修正的比例、平均工具调用次数、平均延迟、权限越界次数;每两周重跑,模型或提示词变更后必须重跑。没有这张表,“AI 很好用”只是演示现场的印象。
PostHog 复盘一年 agent 经验时给了三条反直觉结论:eval 不足以覆盖真实多步任务,需要看生产 trace;把推理过程藏起来会让用户更不信任;顺序任务拆给子 agent 往往更差,因为每层抽象都丢上下文(PostHog 复盘)。这三条对买家同样成立:演示看的是能力上限,生产看的是失败率与可解释性。五个常见错误:用 NLQ 替代指标治理;不展示查询与口径;Agent 有写权限但没有审批与审计;用 LLM 做统计推断;只看 demo,不看真实 trace。
判断:AI 的能力上限由语义层决定。没有指标对象、没有查询溯源、没有权限继承的 Agent,只是把“猜口径”自动化了;它让错误更快抵达决策,而不是让决策更准。
9.11 模块选型:按验收方式,不按功能数量#
模块的成熟度不等于可用性。 到 2026 年,事件分析、漏斗、留存、路径、回放、告警在主流平台上都已商品化,真正的差异在默认值与退出成本;人群、CDP、实验、引导决定分析能不能变成动作;AI 决定这些动作能跑多快、由谁负责。
按验收方式,大部分模块可以归入三类:账本型(事件分析、漏斗、留存)要求可复算,同一查询今天与下周跑出的历史区间一致;证据型(路径、回放、归因、告警与 RCA)要求可追溯,图上写明采样率、遮罩范围与分类器版本;动作型(人群、CDP、实验、引导、AI)要求可回滚,做错时有人负责、有审计、能撤回。这张表给的是动作,不是评分;评分卡与 TCO 在第 11 章。
| 模块 | 要冻结的默认值 | 建议动作 | 失败长什么样 |
|---|---|---|---|
| 事件分析 | 计数单位、属性来源、时区与日界 | 先做指标对象,再买工具 | 两个看板两个数,会上先吵口径 |
| 漏斗 | 窗口起点、重入、排除范围 | 签约前用同一份事件跑三家 | 转化率不可比,迁移后历史作废 |
| 留存 | cohort 定义、返回口径、右删失 | 先测使用间隔再定周期 | 最近 cohort 永远下垂 |
| 路径 | 采样率、最小人数、URL 清洗 | 只看分叉点,不买“全景路径” | 长尾消失被当成“没人走” |
| 人群 | 时间语义、历史属性、更新频率 | 每周复算,先确认下发目的地 | 名单漂移,投放重复 |
| 归因 | lookback、分类器版本、direct 处理 | 冻结版本再做同比 | 渠道排名随规则变化 |
| 回放与热图 | 默认遮罩、采样率、保留期 | 先定遮罩再开录,专用工具即可 | 合规事故,或账单随留存翻倍 |
| 告警与 RCA | 检测器、季节性、owner | 3–5 个指标,先手工后自动 | 告警疲劳,真异常没人看 |
| CDP 下发 | 同步频率、字段、失败重试 | 已有 CDP 就别买轻 CDP | 把小时级同步当实时 |
| 实验 | SRM、guardrail、多重比较 | 套件内够用,统计要求高再单买 | 先看主指标,后找 guardrail |
| 引导 | 曝光口径、holdout、排序 | 归入产品运营工具 | 点击率高,留存没变 |
| AI | 只读/可写、审批、审计 | 只读先行,写权限最后给 | 更快地产生可信的错误 |
自建的顺序由依赖关系决定,不由难度决定:事件模型、事件分析、漏斗、留存、人群、回放、实验、AI。没有事件语义,漏斗与留存只是两段 SQL;没有稳定的人群,实验与引导无法复用;没有回放与事件对齐,AI 看到的“用户行为”只有半张图。AI 放最后,因为它放大的是语义层的能力,也放大语义层的错误。
选型会上最值得问的六个问题:漏斗窗口从哪一步起算、重复进入会不会重置;留存默认 cohort 是新用户还是活跃用户、右删失怎么标;人群用当前属性还是历史属性、窗口是 During、Since 还是 Within;渠道分类器是查询时算还是落库、改规则会不会改历史;回放默认遮哪些字段、HTML 属性与 URL 参数遮不遮;AI 能不能看到查询与口径、动作要不要审批、审计在哪里。六个问题里有两个答不上来,就先别签。
还有一条来自产品边界的经验:Pendo 的 Track Event 上限 5,000 条,看似短板,反而降低了它的语义锁定——上限越低,能沉淀在平台里的自定义事件越少,替换越容易(Pendo Track Events)。反过来,功能最全的平台往往在第三年最难换掉。模块选型的终点不是“功能最多”,是“每个模块都能被单独替换,而语义不必重来”。
判断:分析模块的价值不在“能算”,在“能被复核”。账本型模块要可复算,证据型模块要可追溯,动作型模块要可回滚;三者都过,才轮到 AI 提效。做不到这三件事的平台,功能越多,第三年的迁移成本越高。