跟踪用户操作¶
浏览器监控会自动检测用户的交互行为,并深入了解用户的行为,而无需您手动检测应用程序中的每次点击。
您可以实现以下目标:
- 了解关键交互的性能(例如,单击某个操作按钮)
- 量化功能采用情况
- 确定某个浏览器错误的步骤
控制是否开启 Action 采集¶
trackUserInteractions 初始化参数可以收集应用中的用户点击,这意味着页面中包含的敏感和私有数据可能会被包含在内,以识别用户与之交互的元素。
跟踪用户交互¶
RUM SDK 自动跟踪点击次数。 如果满足以下所有条件,则会创建点击操作:
- 检测到点击后的活动,即页面活动状态;
- 单击不会导致加载新页面,在这种情况下,RUM SDK 会生成另一个 RUM View 事件;
- 能够获取到 Action 名称。
Action 指标¶
| 指标 | 类型 | 描述 |
|---|---|---|
action.duration |
number(ns) | 动作的加载时间。 |
action.action_long_task_count |
number | 为此操作收集的所有长任务的计数。 |
action.action_resource_count |
number | 为此操作收集的所有资源的计数。 |
action.action_error_count |
number | 为此操作收集的所有错误的计数。 |
RUM SDK 通过监听每次点击后的页面活动来计算操作加载时间。当页面不再有活动时,操作被视为完成。
Action 属性¶
| 属性 | 类型 | 描述 |
|---|---|---|
action.action_id |
String | 用户操作的 UUID |
action.action_type |
String | 用户操作的类型。对于自定义用户操作,设置为 custom |
action.action_target |
String | 用户与之交互的元素。仅适用于自动收集的操作 |
action.action_name |
String | 创建用户友好的名称(例如“Click on #checkout”)。 对于自定义用户操作,API 调用中给出的操作名称 |
Action 操作的名称¶
RUM SDK 会根据可点击元素及其父元素推断 Action 名称。如果自动生成的名称不够稳定,可以使用内置属性显式命名。
在可点击元素或其父元素上添加 data-guance-action-name:
使用 actionNameAttribute 初始化参数,可以为元素添加自定义属性来指定操作的名称。
初始化时指定属性名:
window.DATAFLUX_RUM &&
window.DATAFLUX_RUM.init({
// 其他初始化配置
trackUserInteractions: true,
actionNameAttribute: "data-custom-name"
})
在可点击元素或其父元素上设置对应属性:
当元素上同时存在内置属性和 actionNameAttribute 配置的自定义属性时,内置属性优先。
Shadow DOM 中的 Action¶
RUM SDK 支持自动采集开放 Shadow DOM(mode: "open")内部的点击操作:
- 根据事件的实际点击元素生成 Action 名称和包含 Shadow 边界的定位信息;
- 支持由 iframe 的 JavaScript realm 创建、再挂载到 ShadowRoot 的元素,例如无界微前端渲染的按钮;
- 支持从同一 ShadowRoot 内的
aria-labelledby关联元素获取名称; - 支持单层及多层嵌套的开放 ShadowRoot。
跨越 Shadow DOM 边界时,自动 Action 名称只使用显式命名属性,或按钮、链接、ARIA 等具有明确语义的交互
元素,不会将任意文本节点、表格行或卡片容器的聚合文本作为名称。对于没有原生交互语义的自定义容器,
请在点击元素或其祖先上添加 data-guance-action-name,或通过 actionNameAttribute 配置自定义命名属性:
该限制只应用于跨越 Shadow DOM 边界的自动 Action 命名,普通 DOM 保持原有命名策略。
Closed Shadow DOM(mode: "closed")不会向外部脚本暴露内部节点,因此只能按浏览器事件提供的 Shadow Host
信息采集,无法保证获得内部元素的名称和定位信息。
自定义 Action¶
无法通过点击表达的业务操作,请使用 addAction API 创建自定义 Action。
验证接入¶
- 点击带有明确名称的按钮。
- 在浏览器 Network 中确认存在
/v1/write/rum上报请求。 - 在对应 Web 应用的 Action 查看器中检查 Action 名称、持续时间以及关联的 Resource 和 Error 数量。
如果没有 Action,依次确认 trackUserInteractions 是否为 true、当前 Session 是否命中采样,以及点击后是否发生了可归因的页面活动。