Skip to content
On this page

数据结构

sdk发送给后端的数据格式(上报事件列表时的数据格式)

js
{
  baseInfo: {
    clientHeight: 831,
    clientWidth: 843,
    colorDepth: 30,
    pixelDepth: 30,
    deviceId: "t_134b23d7-a6beebb9-6c837db57a827b43",
    screenWidth: 1728,
    screenHeight: 1117,
    vendor: "Google Inc.",
    platform: "MacIntel",
    userUuid: "init_userUuid",
    sdkUserUuid: "3980225e0947a5f36c57ff63d27ddf65",
    ext: {},
    appName: "cxh",
    appCode: "",
    pageId: "134b23e7-9acc9418-0fa455bf47d76e2b",
    sessionId: "s_134b23e7-948b4e06-7da1d67c851e3138",
    sdkVersion: "1.0.1-beta.0",
    ip: "115.233.220.3",
    sendTime: 1689668599911
  },
  eventInfo: [
    {
      tti: 171.6,
      ready: 373.8,
      loadon: 442.2,
      firstbyte: 24.2,
      ttfb: 15.2,
      trans: 6.2,
      dom: 141.2,
      res: 68.4,
      ssllink: 4.7,
      triggerPageUrl: 'http://localhost:6656/#/event',
      eventType: 'performance',
      eventId: 'page',
      sendTime: 1689668884736
    },
    {
      initiatorType: 'script',
      transferSize: 300,
      encodedBodySize: 78636,
      decodedBodySize: 78636,
      duration: 35.4,
      startTime: 57.2,
      fetchStart: 57.2,
      domainLookupStart: 57.2,
      domainLookupEnd: 57.2,
      connectStart: 57.2,
      connectEnd: 57.2,
      requestStart: 85.6,
      responseStart: 88.9,
      responseEnd: 92.6,
      eventType: 'performance',
      eventId: 'resource',
      requestUrl: 'http://localhost:6656/@vite/client',
      triggerTime: 1689668883347,
      triggerPageUrl: 'http://localhost:6656/#/event',
      sendTime: 1689668884736
    },
    {
      eventType: 'pv',
      eventId: '134b23e7-9b42e328-fd20b4a18a4c46b7',
      triggerPageUrl: 'http://localhost:6656/#/event',
      referer: 'http://localhost:6656/#/event',
      title: 'example-vue2',
      action: 'navigation',
      triggerTime: 1689668883730,
      sendTime: 1689668884736
    }
  ]
}

baseInfo

全局的一些属性,每次上报事件列表都会带上 baseInfo

属性名说明
clientHeight网页可见区高度
clientWidth网页可见区宽度
colorDepth显示屏幕调色板的比特深度
pixelDepth显示屏幕的颜色分辨率
deviceId设备ID
screenWidth显示屏幕的宽度
screenHeight显示屏幕的高度
vendor浏览器名称
platform浏览器平台的环境,不是电脑系统的x64这样的(浏览器平台的环境可能是x32)
userUuid用户ID
sdkUserUuidsdk内部会根据硬件位置等信息生成一个用户ID
ext作为附带对象参数给到服务端
appName应用Name
appCode应用Code
pageId应用ID
sessionId会话ID
sdkVersion插件版本号
ip用户的IP(可能为空)
sendTime发送时间

eventInfo

sdk采集到的事件列表,列表内的事件对象会因为不同的事件类型而拥有不用的属性 (不同类型下的事件对象属性有很大差异)

TIP

对于采集到的事件对象,内部会含有 eventType、eventID 字段,下面对这两个字段进行解释,不同事件类型的数据结构会在对应的目录中展示说明

ts
/**
 * 触发的事件是什么类型 - eventType
 */
export enum SEDNEVENTTYPES {
  PV = 'pv', // 路由
  ERROR = 'error', // 错误
  PERFORMANCE = 'performance', // 资源
  CLICK = 'click', // 点击
  DWELL = 'dwell', // 页面卸载
  CUSTOM = 'custom', // 手动触发事件
  INTERSECTION = 'intersection' // 曝光采集
}

/**
 * 触发的事件id - eventID
 */
export enum SENDID {
  PAGE = 'page', // 页面
  RESOURCE = 'resource', // 资源
  SERVER = 'server', // 请求
  CODE = 'code', // code
  REJECT = 'reject', // reject
  CONSOLEERROR = 'console.error' // console.error

  // target.nodeName ( 元素名 ps:script, 在html元素上发生异常时会作为eventId )
  // pageId ( 在页面跳转时会带上应用ID作为eventId )
}

特殊情况

eventTypedwelleventId是一串根据时间戳计算得来的字符

eventTypeclickeventId的采集顺序为

  1. 从触发的元素向上找其父级元素(直到body之下)的属性,用最先找到的data-warden-event-id属性的值
  2. 与上同理,用最先找到的title属性的值
  3. 与上同理,找到带有data-warden-container属性的元素
    1. 找到的话
    2. 用这个元素属性的data-warden-event-id
    3. 用这个元素属性的title
    4. 都没有的话就用这个元素属性的data-warden-container
    5. 还是没有的话就用触发元素的tagName
  4. 用触发元素的tagName

DANGER

主动调用 tracePageView() 时不能指定 eventType(pv) 以及 eventId(pageId)

主动调用 traceError() 时不能指定 eventType(error) ,可以指定eventId

主动调用 traceCustomEvent() 时不能指定 eventType(custom) ,可以指定eventId

主动调用 tracePerformance() 时不能指定 eventType(performance) ,可以指定eventId