Please enable Javascript to view the contents

GrowingIO 数据采集字段分析

 ·  ☕ 2 分钟

1. 字段含义

1.1 u, 用户ID

1
2
3
4
5
6
if cookie.has(gr_user_id){
    //使用 cookie 中的 gr_user_id 有效期十年
}
else {
    //按照 "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 格式,随机生成一个 gr_user_id
}

1.2 s,会话ID

1
2
3
4
5
6
7
if cookie.has(gr_session_id_){
    //使用 cookie 中的 gr_session_id_
    //gr_session_id_,的有效期为 100 分钟
}
else {
    //按照 "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 格式,随机生成一个 gr_session_id_
}

1.3 t,事件类型

  • imp,显示
  • vst,访问
  • clck,点击
  • chng,变更
  • sbmt,提交

1.4 tm,当前时间

1
+Date.now()

数据发出时,浏览器当前时间。

1.5 ptm,页面加载时间

1
+Date.now()

当前页面加载时,浏览器当前时间。跳转或刷新时,刷新。

1.6 d,当前域名

1
window.location.host

1.7 p,当前相对路径

去掉域名和参数部分的 URI,不包含 ? 的内容

1.8 rf, 访问来源

1
document.referrer

1.9 sh,屏幕高度

1
window.screen.height

1.10 sw,屏幕宽度

1
window.screen.width

1.11 l,浏览器语言

1
zh-cn

1.12 e,触发的事件

  • e.x ,xpath
  • e.h,href
  • e.v,元素文本内容

2. 原理简介

原始的 http://dn-growing.qbox.me/vds-gate.js ,采集的数据并不可读。这是因为在发送采集数据之前,vds-gate.js 对数据进行了编码。阅读代码之前,必须先去掉编码处理。

MutationObserver:Mutation Observer(变动观察器)是监视DOM变动的接口。当DOM对象树发生任何变动时,Mutation Observer会得到通知。

事件主要分为两类:

  • DOM变更:GrowingIO 采集 JS 中引入了 Google 实现的 MutationObserver 封装。提供对 DOM 变动时,数据的采集。
  • 行为触发:主要是页面的 visit、impression、click、submit等。

首次访问时,API 返回应用和用户设备相关的信息,产生 visit 和 页面加载时 DOM 变化的 Event 事件流数据。会有两次数据采集:

  • 第一次,采集设备相关的信息。客户端、屏幕大小、语言等。
  • 第二次,采集页面加载时,DOM 变化的事件流。

在不刷新页面的前提下,当前页面每次 DOM 发生变化,每次点击等行为,都会有数据的提交。

点击等行为、数据采集的格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[
  {
    "u": "7ddbc39e-8861-482d-bba6-b9e00f4607e7", 
    "s": "da237b25-6a7f-4e37-beba-5d1e7255ff88",
    "t": "clck",
    "tm": 1502335934576,
    "ptm": 1502335904058,
    "d": "domain.com",
    "p": "/overview",
    "e": [
      {
        "v": "2016",
        "x": "/div#wrapper/div#page-wrapper.page-wrapper/div.content"
      }
    ]
  }
]

3. 参考


微信公众号
作者
微信公众号