分析 · 回放 · 功能开关

看用户做了什么,看会话回放。 一键切换开关。

你的分析栈,是内置的 —— 不是后装上去的。产品分析、会话回放、功能开关和网站分析以四个第一方 SDK 的形式提供,gzip 压缩后 1.9 到 6.6 KB,每个都是一个脚本标签。而且因为它们写入的是和你的收入、反馈同一条主线,每个事件落地时就已经关联到它来自的客户账户。

不需要标签管理器,不采样,不需要额外的供应商。

使用情况的每个角度

你的产品是怎么被使用的,每个角度都能看到

产品分析和网站分析,第一方采集 —— 由你自己的 SDK 采集,并关联到 360。点一下切换角度。

产品分析

第一方产品分析

  • 来自你自己 SDK 的事件、功能和活跃用户
  • 单页应用屏幕自动采集 —— 路径分析不需要按路由写代码
  • 按账户关联到 360

示例数据

漏斗

按收入加权的漏斗

  • 每一步都带着其中账户的 MRR
  • 每个流失点停留的是金额,不只是百分比

留存

净收入留存

  • 在用户数留存和 MRR 留存之间切换群组视角
  • 留下来的收入 —— 区分币种

网站分析

网站分析,做得更深

  • 页面浏览、来源和 UTM 活动
  • Core Web Vitals + 无需埋点的点击自动采集
  • 隐私优先,第一方采集

受众

谁、在哪、用什么

  • 地理位置、设备、浏览器和语言细分
  • 在接入时由第一方信号解析得出

热图

他们到底点在哪里

  • 每个页面的点击热图
  • 把死区和真正的行动号召都看清楚

产品分析

每个事件落地时,就已经知道是谁发出的。

调用一次 identify(),事件就不再是匿名的噪音。同一个访客在注册前后是同一个人 —— 他注册前的页面浏览和注册后的产品事件会在主线上统一,关联到他所属的公司账户。

  • 已识别事件

    identify() 把事件绑定到真实用户;一旦登录,匿名会话就会拼接到同一个人身上。你这边不需要任何身份粘合代码。

  • 无埋点自动采集

    通用点击自动采集(Heap 风格)和单页应用屏幕跟踪默认开启 —— 路由变化和点击自动变成事件,不需要按元素或按路由写代码。可以按界面单独关闭。

  • 趋势、漏斗与路径

    按功能和群组划分的事件趋势,加上最近 30 天的漏斗、留存和产品路径 —— 就在这些用户所代表的收入旁边。

  • 带硬性保证的接入

    批量接入:每批最多 50 个事件 / 32 KB,按事件 ID 去重;一个 localStorage 队列会把页面离开本会丢失的事件重新补发,所以繁忙会话的尾部数据永远不会丢。

漏斗 · 留存 · 结果

百分比背后的真金白银。

每个漏斗环节和每个留存群组,都带着其背后账户的实时 MRR —— 因为行为和收入之间只隔着同一条记录上的两跳,不是靠夜间导出拼在一起的两个工具。于是「哪里在丢钱」变成了一次查询,而不是一个季度的项目。

  • 用金额表示的漏斗

    每一步都显示其中不同账户的 MRR —— 进入 4.8 万欧元 → 转化 1.2 万欧元,3.1 万欧元的 MRR 卡在流失点上。这些金额和你的收入总览是对得上的:同样的账户,同样的筛选条件。

  • 净收入留存

    群组可以在按用户数留存和按 MRR 留存之间切换,让你看到留下来的收入 —— 不只是留下来的公司数。区分币种;从不把欧元和美元混在一起。

  • 产品路径与 Sankey 图

    用户在产品里真实走过的路线 —— 分支点和死路,全部来自你自己的事件,不是抽样估计。

  • 「这个功能有效吗?」

    上线一个功能,它的任务卡会自己给出答案:活跃账户里的采用情况、采用了它的 MRR,以及相比未采用者的留存提升 —— 一个结论(有效、结果不一、没有信号),不是一个还要你自己去看的仪表盘。

你的 AI 可以通过 MCP 问同样这些按收入加权的问题 —— analyze_funnel, get_retention, analyze_paths.

会话回放

出问题的时候,直接看它怎么出的问题。

用户说「导出没成功」—— 打开他的会话,看他到底看到了什么。DOM 级别的真实会话录制,按最新排序,已识别用户和匿名访客都一样能看。

  • 核心 SDK 一直保持在 6.6 KB(gzip 后) —— 回放录制器是一个独立的约 57 KB gzip 代码块,只有在你调用 init({ replay: true }) 时才会加载。关掉回放,访客就永远不用为这些字节买单。
  • 每个会话都带着自己的生命周期 —— 开始、结束、时长 —— 代码块在上传时按去重处理,所以不稳定的网络连接永远不会毁掉一段录制。
  • 已识别的会话会显示是谁;匿名会话会拿到一个稳定的会话 ID,等他们注册后你就能对上号。

已录制的会话 · 最新在前

  • alice@fernwood.co 已识别 · 已结束 4:32
  • anon-7f3a2c 匿名 · 超时 1:08
  • theo@fernwood.co 已识别 · 已结束 2:47

示例数据

功能开关

藏在开关后面上线,一键关掉。

创建带定向规则和百分比灰度发布的开关,在仪表盘上实时切换,在你的应用里用一次 SDK 调用读取它们 —— 不需要单独的开关供应商,不需要额外的包体积。

  • 客户端评估的定向规则

    SDK 根据用户属性来判断开关状态 —— 套餐、角色,或任何你传进去的字段 —— 所以一个开关可以对一个群组开着,对其他人都关着。

  • 自动上报的曝光事件

    开关第一次被读取时,SDK 会发出一个曝光事件。你不只是知道开关开着 —— 你能确切知道是谁真正看到了这个版本。

  • 仪表盘就是那个紧急开关

    灰度发布可以设为 0%、50%、100% —— 一次切换就能把一个行为异常的功能从生产环境里拿掉。开关内置在 6.6 KB 的产品分析 SDK 里,最后一次的值会被缓存,所以受开关控制的界面在首次渲染时永远不会闪一下。

已经在用 LaunchDarkly 或 Statsig?两个连接器都已上线 —— 把那些开关和实验镜像到主线上,让整个团队都能看到。

网站分析

官网的数据,不用 Cookie。

你官网上的一个 5.8 KB 脚本,就能采集页面浏览、流量来源、访问最多的路径、外链点击、404、自定义事件、Core Web Vitals(LCP、CLS、INP、TTFB),以及无需埋点的点击自动采集。不用 Cookie —— 匿名访客画像来自每天轮换的哈希设备指纹。

  • 页面浏览、来源和访问最多的路径 —— 不需要标签管理器,也不采样。
  • 404 和外链点击默认就会被追踪,坏链接自己就会暴露出来。
  • 读过你定价页面的那个访客,和后来注册的那个用户,是同一条记录 —— 主线把他的前后连在了一起。

安装 · 一个脚本标签

<script
  src="https://platform.aioproductos.com/sdk/productos.js"
  data-product-key="pk_live_e_…"
></script>

这就是全部的安装过程。零代码初始化会读取 data-* 属性 —— 不需要额外代码片段,不需要配置对象。5.8 KB(gzip 压缩后,实测)。

这些 SDK

四个 SDK,1.9 到 6.6 KB,每个一个脚本标签。

真实、实测的 gzip 压缩体积 —— 你的页面速度根本感觉不到我们的存在。每个 SDK 都活在自己的全局命名空间里,所以这四个可以在同一页面上运行而不会冲突。

  • 网站分析 页面浏览、来源、外链点击、404、Core Web Vitals,以及无需埋点的点击自动采集。 5.8 KB
  • 产品分析 已识别事件、单页应用屏幕自动采集和功能开关;会话回放和应用内引导则以独立的按需代码块加载。 6.6 KB
  • 客服聊天 一个聊天气泡,其对话会变成主线上的产品反馈。 5.9 KB
  • 预约排期 预约页面会把会面直接落到客户记录上。 1.9 KB

全部由 platform.aioproductos.com/sdk 提供 —— 每个 SDK 有一个稳定的 URL,通过 data-* 属性自动初始化,批量接入并按事件 ID 去重。

为什么选我们,而不是一个单点工具

写入的那一刻,就已经关联到账户。

独立的分析工具只会让你导出、匹配、然后祈祷对得上。这里,身份拼接器会按邮箱域名自动把用户匹配到他们的公司账户 —— alice@fernwood.co 会自动落到 Fernwood 账户上 —— 每一行事件都带着它所属的账户和终端用户。

  • 写入时就已关联,不是查询时才关联

    账户 ID 和终端用户 ID 会在每个事件被接入的那一刻就写进去。「这个账户最近 30 天的事件」是一次带索引的查找 —— 不是一次扇出联表。

  • 有审计轨迹,不是魔法

    每一次身份匹配都会记录在一张你可以查看的身份映射表里 —— 按邮箱域名自动匹配,或者你自己打标签手动匹配。

  • 使用情况就在收入旁边

    使用某个功能的群组,和他们付的钱,放在同一条记录上 —— 于是「这个功能还值得保留吗」变成了一次查找,不是一个研究项目。

观看:事件、回放、功能开关 —— 都在一个界面里 · 示例数据

诚实的边界:事件从第一次写入开始就带着账户信息;客户 360 里的使用情况面板会随着每个连接器的关联关系落地而依次点亮。

隐私

隐私优先是默认设置,不是一个选项。

这套分析可以在欧盟直接跑起来,不用陷入一轮法务审查。这些 SDK 默认就是尊重隐私的。

  • 初始化时就遵循 DNT 和 GPC —— 浏览器说「不要追踪」,就不会被追踪。不存在覆盖这个设置的开关。
  • 一次退出,全部静音 —— 一次 optOut() 调用会设置一个标志,页面上每个 ProductOS SDK 都会遵守它。所有追踪都会悄无声息地停止。
  • 接入时按区域强制生效,欧盟或美国 —— 在注册时选定,在每个事件接入端点上按接入密钥强制执行。你的数据会落在你说好的地方。

边界在哪里——说清楚

  • v1 版本只支持网页端。 移动端和服务端 SDK 还在路线图上,尚未发布。如果你的产品是原生应用,我们暂时还不是你的分析工具。
  • 净收入留存目前是相关性分析,不是快照式的。 留存和功能效果提升是用实时 MRR 比较采用者和未采用者得出的;我们暂时还没有按账户快照 MRR 历史,所以原地扩容的部分还没有被单独区分出来。

早期访问

接入一个脚本标签,就能在主线上看到你的用户。

我们现在正在为设计合伙人做接入。几分钟内接好你的网站,就能看到页面浏览、会话和功能开关关联到真实客户账户落地。

FAQ

常见问题

分析模块里包含什么?

同一条主线上的四种第一方能力:带已识别事件的产品分析、会话回放、带定向规则和曝光事件的功能开关,以及无需 Cookie 的网站分析。每一种都只是一个脚本标签,每个事件在写入时就会关联到客户账户。

这些追踪脚本会不会很重?

很轻 —— 四个网页 SDK gzip 压缩后是 1.9 到 6.6 KB,每个都只是一个脚本标签。它们都是第一方的,所以不会有第三方标签拖慢你的页面速度。

网站分析是不是无 Cookie 且注重隐私?

是的 —— 网站分析不使用 Cookie 运行,这些 SDK 遵循 Do Not Track 和 Global Privacy Control,并且只需一次退出操作。你还可以选择数据区域,欧盟或美国,在接入时强制生效。

分析数据存在哪里?

存在你自己的 AIOProductOS 主线上,写入时关联到对应的客户账户 —— 不会和其他公司的数据混在一起,也不会被转售。这和付费客户拿到的第一方数据路径完全一样。

数据是绑定在客户记录上的,还是各自孤立的?

是绑定的。每一个事件 —— 产品、回放、开关曝光、页面浏览 —— 写入时都会关联到客户账户,所以分析和反馈、收入、工作都在同一条主线上,而不是在一个孤立的工具里。

有没有漏斗和留存?

有 —— 而且是按收入加权的。每个漏斗环节和每个留存群组都带着其背后账户的实时 MRR,所以你看到的是卡在流失点或留在群组里的实际金额,不只是百分比。产品路径和 Sankey 视图也都有,而且这三个都可以通过 MCP 让你的 AI 调用(analyze_funnel、get_retention、analyze_paths)。

是不是每个事件都要手动埋点?

不需要。网站分析默认就包含无需埋点的点击自动采集和 Core Web Vitals,产品分析默认也会自动采集单页应用的屏幕切换 —— 所以路径分析和漏斗分析不需要按路由或按元素写代码。你仍然可以在需要精确度的地方发送明确的事件,也可以按界面单独关闭自动采集。