跳转至

跟踪用户操作

浏览器监控会自动检测用户的交互行为,并深入了解用户的行为,而无需您手动检测应用程序中的每次点击。

您可以实现以下目标:

  • 了解关键交互的性能(例如,单击某个操作按钮)
  • 量化功能采用情况
  • 确定某个浏览器错误的步骤

控制是否开启 Action 采集

trackUserInteractions 初始化参数可以收集应用中的用户点击,这意味着页面中包含的敏感和私有数据可能会被包含在内,以识别用户与之交互的元素。

window.DATAFLUX_RUM &&
  window.DATAFLUX_RUM.init({
    // 其他初始化配置
    trackUserInteractions: true
  })

跟踪用户交互

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

<button type="button" data-guance-action-name="提交订单">提交订单</button>

使用 actionNameAttribute 初始化参数,可以为元素添加自定义属性来指定操作的名称。

初始化时指定属性名:

window.DATAFLUX_RUM &&
  window.DATAFLUX_RUM.init({
    // 其他初始化配置
    trackUserInteractions: true,
    actionNameAttribute: "data-custom-name"
  })

在可点击元素或其父元素上设置对应属性:

<button type="button" data-custom-name="提交订单">提交订单</button>

当元素上同时存在内置属性和 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 配置自定义命名属性:

<div data-guance-action-name="打开付款单" role="button">
  <!-- 付款单内容 -->
</div>

该限制只应用于跨越 Shadow DOM 边界的自动 Action 命名,普通 DOM 保持原有命名策略。

Closed Shadow DOM(mode: "closed")不会向外部脚本暴露内部节点,因此只能按浏览器事件提供的 Shadow Host 信息采集,无法保证获得内部元素的名称和定位信息。

自定义 Action

无法通过点击表达的业务操作,请使用 addAction API 创建自定义 Action

验证接入

  1. 点击带有明确名称的按钮。
  2. 在浏览器 Network 中确认存在 /v1/write/rum 上报请求。
  3. 在对应 Web 应用的 Action 查看器中检查 Action 名称、持续时间以及关联的 Resource 和 Error 数量。

如果没有 Action,依次确认 trackUserInteractions 是否为 true、当前 Session 是否命中采样,以及点击后是否发生了可归因的页面活动。

文档评价

文档内容是否对您有帮助?