本文主要介绍用户体验监控的常用基本概念,帮助您理解控制台中的指标、事件与分析能力。
应用与业务系统
业务系统与应用是数据的归属层级:业务系统包含若干应用,应用是数据采集与统计的基本单元,其下产生的会话、页面与事件数据都归属于该应用。
概念 | 说明 |
应用 | 用户体验监控中管理监控数据的基本单元,一个应用对应一个业务入口,例如一个网站、一个小程序或一个移动 App。 |
业务系统 | 用于分类管理应用的容器,不同业务系统之间的监控数据相互隔离,可用于权限管理与分账。 |
会话
会话是串联 Tab、页面与事件的时间容器:用户从进入应用到离开(或超时)的一次完整访问即一个会话,期间发生的页面浏览、交互、错误与性能事件都归属于该会话,并支持跨页面、跨 Tab 串联。会话是分析的核心聚合单元,排查问题时通常先定位到会话,再查看会话内的事件。
各平台会话的分割规则如下(满足任一条件即结束当前会话并开始新会话):
平台 | 会话分割条件 |
Web | 连续空闲超过15分钟,或单会话时长达到60分钟时,分割为新会话;空闲超过5分钟暂停录制。跨页面与跨 Tab 自动延续同一会话。 |
原生微信小程序 | 应用冷启动时生成新会话;切后台超过30分钟再回到前台时,分割为新会话。 |
Android / iOS | 连续20分钟无主动操作(含后台),或单会话时长达到4小时,或应用进程销毁后冷启动时,分割为新会话。 |
Electron | 会话由应用主进程创建,多个窗口与渲染进程共享同一会话;主进程退出(应用退出)即视为会话结束。 |
页面
页面指用户在应用内浏览的一个界面,是路径分析与性能分析的基本单位。一次会话按时间顺序经过多个页面,事件按发生时所处的页面归类,因此页面是“会话 > 页面 > 事件”数据层级的中间层。
页面由页面浏览事件产生,记录页面地址与页面标题。
控制台使用归一化后的页面地址作为页面标识,将带动态参数的同类 URL 归并展示,避免同一页面因参数不同被拆分为多个页面。
小程序中的页面对应页面路由切换;移动应用中的页面对应具体的界面。
Tab
Tab 指 Web 端的浏览器标签页,仅适用于 Web 端(小程序与移动应用不存在多标签页场景)。Web 端一个会话可以同时包含多个 Tab,Web SDK 通过共享的会话标识在新标签页中恢复同一会话,各 Tab 内按时间产生的页面浏览与事件统一归入该会话。
Tab 与页面是两个口径:页面是统计单位,页面数据不按 Tab 拆分统计;Tab 是回放的播放单位,在会话回放播放器的工具栏中按录制流展示该会话包含的 Tab 列表,可切换查看不同 Tab 的回放内容。
事件
事件指一次访问中发生的具体动作或状态,是最细粒度的数据记录,每条事件都归属于其发生时的会话与页面,分为以下六类:
分类 | 说明 | 典型事件 |
错误 | 影响功能可用性的异常事件。 | JS 错误、Promise 错误、接口异常、资源异常、自定义错误、Console 错误、白屏、原生崩溃。 |
行为 | 用户的操作与页面访问事件,包含被判定为挣扎行为的事件。 | 点击、滚动、刷新、页面浏览、输入、页面加载、页面前后台切换、自定义事件,以及愤怒点击、无效点击、错误点击等挣扎行为。 |
网络请求 | 应用发起的网络请求事件。 | XHR 请求、Fetch 请求、API 请求、资源加载、SSE 流式请求等。 |
日志 | SDK 与业务主动打印的日志。 | 控制台日志、自定义日志。 |
性能 | 衡量体验的性能指标事件。 | Web Vitals(LCP、FCP、INP、CLS、TTFB)、页面加载、长任务、卡顿、无响应、小程序启动与路由等。 |
自定义 | 通过自定义上报接口上报的事件。 | 自定义事件、自定义测速。 |
事件明细的常用字段如下:
字段 | 说明 |
事件类型 | 事件所属类别与具体类型,例如 js_error、click。 |
发生时间 | 事件发生的时间点。 |
所在页面 | 事件发生所在的页面地址与页面标题。 |
事件详情 | 事件携带的结构化数据,不同事件类型包含的字段不同。 |
日志级别 | 日志类事件的级别,例如 Log、Info、Warn、Error。 |
请求信息 | 网络请求类事件的请求 URL、状态码与耗时。 |
错误堆栈 | 错误类事件的堆栈信息,上传符号表或 SourceMap 后可查看还原后的结果。 |
Issue
Issue 由错误类事件聚合而来:特征相同的多条错误事件归并为一个问题记录,并关联其发生的会话与页面。SDK 上报异常个例后,服务端提取个例特征,将特征相同的个例聚合为一个 Issue, 并记录个例首现时间与最近一次出现时间,统计影响用户数与发生次数。Issue 支持状态流转,包括未解决、回归、已解决与已忽略,提供堆栈、日志、会话回放、用户行为与标签特征等排障上下文。
支持聚合为 Issue 的问题类型如下:
问题类型 | 说明 |
崩溃 | 原生崩溃、渲染进程退出等导致应用退出的严重问题。 |
ANR | 应用无响应,主线程被长时间阻塞。 |
卡顿 | 主线程执行长耗时任务,超过卡顿阈值(事件循环阻塞)。 |
脚本错误 | JS 错误、Promise 错误等运行时脚本错误。 |
挣扎事件与挣扎评分
挣扎事件是行为类事件中被判定为用户挫败行为的一类,由 SDK 自动检测,包括愤怒点击、无效点击、错误点击、页面加载缓慢、表单未完成、长时间聚焦、表单校验错误、表单来回切换、页面来回跳转等。
挣扎评分是基于挣扎事件计算的量化指标,按“事件 → 会话 → 页面”逐层聚合,分数越高代表用户遇到的阻碍越多。挣扎评分贯穿于用户行为分析的各个环节。
挣扎事件类型与权重
单个挣扎事件的分值由挣扎权重与挣扎严重度相乘得到:
单条挣扎事件分值 = 挣扎权重 × 挣扎严重度
挣扎类型 | 权重 | 严重度 | 单条分值 | 支持平台 |
无效点击 | 5 | 4 | 20 | Web、Electron、原生微信小程序、uni-app、Android、iOS |
错误点击 | 5 | 4 | 20 | Web、Electron、原生微信小程序、uni-app、Android、iOS |
愤怒点击 | 4 | 3 | 12 | Web、Electron、原生微信小程序、uni-app、Android、iOS |
长时间聚焦 | 3 | 2 | 6 | Web、Electron、原生微信小程序、uni-app、Android、iOS |
页面来回跳转 | 3 | 2 | 6 | Web、Electron、原生微信小程序、uni-app、Android、iOS |
自定义挣扎 | 3 | 3 | 9 | Web、Electron、原生微信小程序、uni-app、Android、iOS |
表单校验错误 | 3 | 3 | 9 | Web、Electron、原生微信小程序、uni-app |
页面加载缓慢 | 3 | 3 | 9 | Web、Electron、原生微信小程序、uni-app |
表单来回切换 | 3 | 3 | 9 | Web、Electron、原生微信小程序、uni-app |
表单未完成 | 3 | 3 | 9 | Web、Electron、原生微信小程序、uni-app |
计算与聚合口径
挣扎评分按“单条事件 → 会话 → 页面 → 整体”逐层聚合:
1. 单条挣扎事件分值 = 挣扎权重 × 挣扎严重度,挣扎权重见上表。
2. 会话挣扎分 = 会话内所有挣扎事件分值之和 ÷ 该会话内的有效动作数;有效动作数为 0 时计 0 分。有效动作指用户的正常操作(例如点击、页面浏览),挣扎事件本身不计入有效动作。
3. 页面挣扎分:用户旅程中每个页面节点的挣扎分,为该页面关联会话的挣扎分,口径与会话挣扎分一致。
4. 平均挣扎分:所选范围内全部会话的挣扎分平均值,与会话列表中的挣扎分口径一致。
评级与判定
体验评级:根据会话挣扎分划分为四个等级,用于区分影响程度。
会话挣扎分 | 体验评级 |
< 0.5 | Excellent(优秀) |
< 1.5 | Good(良好) |
< 3.0 | Fair(一般) |
≥ 3.0 | Poor(差) |
有挣扎的会话:会话挣扎分达到1.5及以上(即评级为 Fair 或 Poor)的会话。
挣扎率:有挣扎的会话数占总会话数的比例;在用户旅程中,页面挣扎率为该页面有挣扎的会话数占到达该页面会话数的比例。
会话回放
会话回放是一次会话的可视化还原,按时间顺序串联该会话内的 Tab、页面与事件,支持 Web、原生微信小程序、Android、iOS、Electron 等多平台。各平台按运行环境采用不同的还原方式:
平台 | 还原方式 |
Web 与 Electron | 基于页面结构快照与增量变化还原,可回放鼠标轨迹、点击位置、页面滚动、输入操作与页面变化。 |
原生微信小程序 | 通过小程序回放包还原页面与交互过程。 |
Android 与 iOS | 通过 SDK 采集的录屏视频分段还原。 |
应用评分
应用评分(总分)由应用下的性能与错误类事件汇总计算,是应用维度的整体体验健康度评分,用于快速识别需要优先关注的应用。它与挣扎评分是两个不同维度的指标,请勿混淆:
指标 | 衡量维度 | 衡量内容 | 主要用途 |
应用评分 | 应用 | 页面性能、JS 错误、API 与静态资源的性能及可用性等评分项。各平台计分规则由于性能评估标准不同而有差异,详见控制台:客户端总览 > 评分规则。 | 在客户端总览中横向对比各应用,确定优先优化对象。 |
挣扎评分 | 会话、页面 | 用户在操作过程中遇到的挫败行为及其影响程度。各平台计分规则一致。 | 在用户旅程、会话分析与漏斗分析中定位具体受阻环节。 |
Web Vitals 与指标阈值
Web Vitals 是 Google 提出的网页核心体验指标集合,属于性能类事件中的一组核心指标,包含 LCP、FCP、INP、CLS、TTFB 等,用于衡量加载、交互与视觉稳定性。用户体验监控采用与 Google 一致的采集口径。
Web 端核心指标的参考阈值:
指标 | 良好 | 待改进 | 说明 |
LCP | ≤ 2500 ms | > 4000 ms | 最大内容绘制时间。 |
FCP | ≤ 1800 ms | > 3000 ms | 首次内容绘制时间。 |
INP | ≤ 200 ms | > 500 ms | 交互到下一次绘制的延迟。 |
CLS | ≤ 0.1 | > 0.25 | 累计布局偏移分数。 |
TTFB | ≤ 800 ms | > 1800 ms | 首字节响应时间。 |
小程序端专属指标及参考阈值:
指标 | 良好 | 待改进 | 说明 |
启动耗时 | ≤ 2000 ms | > 4000 ms | 小程序启动总耗时。 |
页面切换 | ≤ 500 ms | > 1500 ms | 路由切换耗时。 |
首次绘制 | ≤ 1000 ms | > 2000 ms | 首次绘制耗时。 |
逻辑层注入 | ≤ 500 ms | > 1500 ms | 逻辑层脚本注入耗时。 |
首屏时间 | ≤ 1500 ms | > 3000 ms | 首屏渲染完成耗时。 |
setData 耗时 | ≤ 50 ms | > 200 ms | 单次 setData 调用耗时。 |
说明:
各平台支持的指标存在差异:Web Vitals 适用于 Web 与小程序;小程序提供上述专属指标;Electron 以渲染进程退出、窗口无响应等桌面端事件为主。此外,LCP、FCP、INP、CLS 在 Web 与小程序间同名同单位,可跨端对比。
自定义上报
自定义上报属于事件中的自定义类,由业务主动调用接口上报,上报的数据与当前会话、页面关联,可在事件明细中查看。
概念 | 说明 |
自定义事件 | 通过 API 上报的业务自定义事件,包含事件名称与自定义属性,用于统计关键业务动作的触发情况。自定义事件也可作为漏斗分析的步骤。 |
自定义测速 | 通过 API 上报的业务关键链路耗时数据,包含测速名称与耗时(毫秒),用于衡量自定义阶段的性能表现。 |
自定义字段 | 上报时携带的自定义维度(键值对),作为事件属性附加在事件上,可在事件详情中查看。 |
用户旅程
用户旅程基于页面浏览事件还原每个会话的页面访问顺序,再按步序聚合为路径图。
概念 | 说明 |
用户旅程 | 以会话为统计单位、以页面为路径节点,展示用户实际访问路径的分析视图,无需预定义步骤即可展示全部路径,包括计划外的访问行为。 |
节点 | 由步序与页面共同确定的路径位置,即“步序:页面”,展示会话数、用户数、占总会话百分比、平均停留时长、挣扎评分、有挣扎会话占比、退出率与退出数。同一页面出现在不同步序时,在路径图中显示为不同节点。 |
连线 | 页面之间的流转方向,展示流转会话数、占源节点流出百分比、流转平均耗时(即用户在源页面的停留时长,以上一个页面浏览到下一个页面浏览的时间间隔计算,退出方向不计)与是否为回退导航。 |
步骤层级 | 用户在一次访问中到达该页面时所处的步序,会话的第一个页面所在层级为第 1 步。 |
开始页面 | 筛选维度之一。设置后只统计访问过该页面的会话,路径从该页面首次出现的位置开始截取,此前的页面不计入路径图。 |
结束页面 | 筛选维度之一。设置后只统计访问过该页面的会话,路径截取到该页面最后一次出现的位置为止,此后的页面不计入路径图,且路径图末列只展示该页面。同时设置开始页面与结束页面时,只统计能按“开始页面 → 结束页面”先后顺序构成路径的会话。 |
焦点页面 | 在路径图中选定并聚焦的页面,用于过滤出经过该页面的上下游路径子图。 |
退出率 | 到达某页面后直接结束旅程的会话数,占到达该页面会话数的比例。 |
有挣扎会话占比 | 某页面上发生挣扎行为的会话数,占到达该页面会话数的比例。 |
平均挣扎分 | 所选范围内会话在该页面上的挣扎分平均值,与会话列表中的挣扎分口径一致。 |
平均旅程深度 | 所选范围内会话访问页面步数的平均值。 |
漏斗
漏斗以会话为统计单位,按预定义的步骤(页面浏览、元素点击等事件)统计各步骤的会话转化情况。
概念 | 说明 |
漏斗 | 由若干预定义步骤组成的转化分析模型,用于分析各步骤的转化率、流失率与转化情况。用户可根据业务目标搭建漏斗,优化转化率。每个步骤由步骤名称、页面匹配模式和匹配值、元素选择器与动作类型(页面浏览、点击等)构成,至少需要 2 个步骤。 |
转化率 | 相邻两个步骤之间的转化比例,即下一环节会话数与当前环节会话数的比值。 |
流失率 | 某一环节中未继续进入下一环节的会话比例。 |