Authored by 周奇琪

add some vid content

Showing 1 changed file with 231 additions and 224 deletions
1 -网页端数据采集的设计思路和规范  
2 --------------  
3 -### 项目命名  
4 -  
5 -YAS (YOHO! Acquisition System) YOHO!采集系统的前端js的开发包,用于在网页端采集信息(应用信息,用户信息,用户行为信息,浏览器及其系统信息)。  
6 -  
7 -### 概述  
8 -  
9 -浏览器端的数据采集的嵌码,主要是两种:一种是通过JS生成cookies作为访客唯一标示,通过JS的能力获取网页端的一些数据,定时发起Ajax请求或者img图片,异步发送数据到服务端,在一些不支持JS的客户端采用嵌入一个透明1像素图片,在打开图片时被动的发起获取图片的HTTP请求(中间可以加一些http的传参)。  
10 -  
11 -> 第一种方式:可以通过JS采集的内容和频次较为丰富和灵活。  
12 -  
13 -> 第二种方式:只能通过图片的请求在服务端进行对HTTP的解析获取有限的内容。  
14 -  
15 -  
16 -### 使用场景  
17 -  
18 -这两种的使用场景:分别是浏览器和不解析JS的邮件客户端。  
19 -  
20 -### 关于嵌入图片  
21 -  
22 -图片采集方式:客户端实现较为简单,只需要嵌入一个 `<img src="http://a.yoho.cn/a.gif"/>` 即可,不在本项目重点实现的内容,需要服务端获取get请求的自定义参数以及http headers,按照一定格式存储即可。  
23 -  
24 -### JS嵌码部分,百度和谷歌传参规范  
25 -  
26 -> 百度:http://hm.baidu.com/hm.gif?cc=1&ck=1&cl=24-bit&ds=1920x1080&ep=55400151%2C12430&et=3&fl=16.0&ja=1&ln=zh-CN&lo=0&lt=1421118345&nv=0&rnd=110278964&si=c816cea5705c8a8d992e813549e4780f&st=4&v=1.0.75&lv=2&u=http%3A%2F%2Fwww.yohoboys.com%2Fwhatever-cn-zh-hk-web.html  
27 -  
28 -```  
29 -cc:1  
30 -  
31 -ck:1//是否支持cookies  
32 -  
33 -cl:24-bit //色彩深度  
34 -  
35 -ds:1920x1080 //屏幕尺寸  
36 -  
37 -ep:55400151,12430 //页面载入时长  
38 -  
39 -et:3  
40 -  
41 -fl:16.0//flash版本  
42 -  
43 -ja:1  
44 -  
45 -ln:zh-CN //语言  
46 -  
47 -lo:0  
48 -  
49 -lt:1421118345//首次访问时间  
50 -  
51 -nv:0  
52 -  
53 -rnd:110278964//随机数  
54 -  
55 -si:c816cea5705c8a8d992e813549e4780f//统计ID  
56 -  
57 -st:4  
58 -  
59 -v:1.0.75//监控代码版本  
60 -  
61 -lv:2  
62 -  
63 -u:http://www.yohoboys.com/whatever-cn-zh-hk-web.html//url  
64 -  
65 -```  
66 -  
67 -> GA:http://www.google-analytics.com/r/collect?v=1&_v=j32&a=842371998&t=pageview&_s=1&dl=http%3A%2F%2Fwww.yohoboys.com%2Fwhatever-cn-zh-hk-web.html&ul=zh-cn&de=UTF-8&dt=Yoho!Boys%20%7C%20We%20love%20to%20Play%20%26%20Learn&sd=24-bit&sr=1920x1080&vp=1903x955&je=1&fl=16.0%20r0&_u=MACAAEQBI~&jid=2128925385&cid=1603005881.1414387412&tid=UA-52595809-1&_r=1&z=1237056998  
68 -  
69 -```  
70 -v:1  
71 -  
72 -_v:j32  
73 -  
74 -a:842371998  
75 -  
76 -t:pageview//跟踪类型  
77 -  
78 -_s:  
79 -  
80 -dl:http://www.yohoboys.com/whatever-cn-zh-hk-web.html//url  
81 -  
82 -ul:zh-cn//语言  
83 -  
84 -de:UTF-8 //编码  
85 -  
86 -dt:Yoho!Boys | We love to Play & Learn //title  
87 -  
88 -sd:24-bit //屏幕色彩深度  
89 -  
90 -sr:1920x1080 //屏幕尺寸  
91 -  
92 -vp:1903x955 //实际可视尺寸  
93 -  
94 -je:1  
95 -  
96 -fl:16.0 r0//flash版本  
97 -  
98 -_u:MACAAEQBI~  
99 -  
100 -jid:2128925385  
101 -  
102 -cid:1603005881.1414387412//统计访客ID  
103 -  
104 -tid:UA-52595809-1//跟踪ID  
105 -  
106 -_r:1  
107 -  
108 -z:1237056998  
109 -  
110 -```  
111 -  
112 -### 根据现有数据分析嵌码,我们需要实现什么?  
113 -  
114 -这个SDK主要用于web页面的浏览器或客户端的数据采集,包含应用信息,用户信息,浏览器及其系统信息  
115 -  
116 -#### 应用数据(Appliaction Info)可以采集的项:  
117 -  
118 ----------------  
119 -| **名称** | **说明** | **缩写** |  
120 -|----|----|----|  
121 -| host | 主机名 | h |  
122 -| port | 端口 | p |  
123 -| url |链接 | u |  
124 -| anchor | 锚点 | a|  
125 -| code | 编码 | c |  
126 -| loadFinishTime | 加载时长 | ft|  
127 -| title |标题 | dt|  
128 -  
129 -#### 用户信息(Customer Info)可以采集的项:  
130 -  
131 ----------------  
132 -| **名称** | **说明** | **缩写** |  
133 -|----|----|----|  
134 -| client_id | 访客唯一标示 | cd  
135 -| uid | 会员ID | ud |  
136 -| referer | 来源 |rf|  
137 -| lasttime|上次访问时间|lt |  
138 -| mousePosition | 鼠标位置 | mp |  
139 -| event | 用户页面事件 | ev |  
140 -| scrollTop | 页面滚动 | st |  
141 -  
142 -#### 浏览器信息(Browser Info)  
143 -  
144 ----------------  
145 -| **名称** | **说明** | **缩写** |  
146 -|----|----|----|  
147 -| screenWidthxscreenHeight | 屏幕宽度x屏幕高度 | sr |  
148 -| windowWidthxwindowHeight | 窗口宽度x窗口高度 | wr|  
149 -| screenDepth | 屏幕色深 | sd |  
150 -| language | 语言 | ln |  
151 -| browserVersion | 浏览器信息| bv |  
152 -| systemInfo |操作系统信息|sy|  
153 -| cookiesEnabled |cookies是否启用|ce|  
154 -| flashVersion | flash版本 | fv|  
155 -  
156 -  
157 -  
158 -### 自定义跟踪  
159 -  
160 -主要有两种方式:自定义调用方法和自定义页面元素标志属性  
161 -  
162 -自定义调用方法传参列表` _yas.add('event/page','type/url','action','label','value') `  
163 -  
164 -----  
165 -| **参数名** | **说明** | **范例** |  
166 -|----|----|----|  
167 -| trackType | 跟踪类型;event页面事件,page页面点击| event|  
168 -| input | 输入类型,如果是event,设置类型,如果是page则是点击的链接或者标示输入| nav|  
169 -| action | 动作| click|  
170 -| label | 设置标签,统计维度 | show|  
171 -| value | 标签数值,统计值 | prize|  
172 -  
173 -  
174 -### 配置参数  
175 -  
176 -主要参数有:定时采集频次,SDK版本信息,采集应用跟踪编码  
177 -  
178 -```javascript  
179 -(  
180 - function(w,d,s,j)  
181 - {  
182 - var a=d.createElement(s),  
183 - var m=d.getElementsByTagName(s)[0];  
184 - a.async=1;  
185 - a.src=j;  
186 - m.parentNode.insertBefore(a,m);  
187 - }  
188 - )(window,document,'script','//ya.yoho.cn/ya.js');  
189 -  
190 -_yas(45,'1.0','ds6das2kkj');  
191 -  
192 -```  
193 -  
194 -  
195 -### 发送采集数据的方式:  
196 -  
197 -Ajax方式和img标签方式,Ajax主要用于用户行为数据收集,img方式的第一次记录应用信息,访客标示,浏览器信息。  
198 -  
199 -一次性发送信息:浏览器信息(Browser Info),应用数据(Appliaction Info),  
200 -部分用户信息  
201 -  
202 -> 1. client_id(访客唯一标示)  
203 -> 2. uid(会员ID)  
204 -> 3. referer(来源)  
205 -> 4. lasttime(上次访问时间)  
206 -  
207 -定时发送信息:  
208 -  
209 -自定义跟踪信息,部分用户信息  
210 -  
211 -> 5. mousePosition(鼠标位置)  
212 -> 6. event(用户页面事件)  
213 -> 7. scrollTop(页面滚动)  
214 -  
215 -  
216 -### 定时采集频次  
217 -  
218 -1. 默认30s发送一次用户数据  
219 -2. 当用户打开页面发送一次请求,同时记录用户数据  
220 -3. 当用户关闭浏览器,在浏览器端记录持久化,下次打开页面一并发送  
221 -  
222 -### 关于session需要在服务端进行维护和记录  
223 -  
224 -服务端根据客户端记录的访客标示,生成一个session会话,用于记录访问时长。 1 +网页端数据采集的设计思路和规范
  2 +-------------
  3 +### 项目命名
  4 +
  5 +YAS (YOHO! Acquisition System) YOHO!采集系统的前端js的开发包,用于在网页端采集信息(应用信息,用户信息,用户行为信息,浏览器及其系统信息)。
  6 +
  7 +### 概述
  8 +
  9 +浏览器端的数据采集的嵌码,主要是两种:一种是通过JS生成cookies作为访客唯一标示,通过JS的能力获取网页端的一些数据,定时发起Ajax请求或者img图片,异步发送数据到服务端,在一些不支持JS的客户端采用嵌入一个透明1像素图片,在打开图片时被动的发起获取图片的HTTP请求(中间可以加一些http的传参)。
  10 +
  11 +> 第一种方式:可以通过JS采集的内容和频次较为丰富和灵活。
  12 +
  13 +> 第二种方式:只能通过图片的请求在服务端进行对HTTP的解析获取有限的内容。
  14 +
  15 +
  16 +### 使用场景
  17 +
  18 +这两种的使用场景:分别是浏览器和不解析JS的邮件客户端。
  19 +
  20 +### 关于嵌入图片
  21 +
  22 +图片采集方式:客户端实现较为简单,只需要嵌入一个 `<img src="http://a.yoho.cn/a.gif"/>` 即可,不在本项目重点实现的内容,需要服务端获取get请求的自定义参数以及http headers,按照一定格式存储即可。
  23 +
  24 +### JS嵌码部分,百度和谷歌传参规范
  25 +
  26 +> 百度:http://hm.baidu.com/hm.gif?cc=1&ck=1&cl=24-bit&ds=1920x1080&ep=55400151%2C12430&et=3&fl=16.0&ja=1&ln=zh-CN&lo=0&lt=1421118345&nv=0&rnd=110278964&si=c816cea5705c8a8d992e813549e4780f&st=4&v=1.0.75&lv=2&u=http%3A%2F%2Fwww.yohoboys.com%2Fwhatever-cn-zh-hk-web.html
  27 +
  28 +```
  29 +cc:1
  30 +
  31 +ck:1//是否支持cookies
  32 +
  33 +cl:24-bit //色彩深度
  34 +
  35 +ds:1920x1080 //屏幕尺寸
  36 +
  37 +ep:55400151,12430 //页面载入时长
  38 +
  39 +et:3
  40 +
  41 +fl:16.0//flash版本
  42 +
  43 +ja:1
  44 +
  45 +ln:zh-CN //语言
  46 +
  47 +lo:0
  48 +
  49 +lt:1421118345//首次访问时间
  50 +
  51 +nv:0
  52 +
  53 +rnd:110278964//随机数
  54 +
  55 +si:c816cea5705c8a8d992e813549e4780f//统计ID
  56 +
  57 +st:4
  58 +
  59 +v:1.0.75//监控代码版本
  60 +
  61 +lv:2
  62 +
  63 +u:http://www.yohoboys.com/whatever-cn-zh-hk-web.html//url
  64 +
  65 +```
  66 +
  67 +> GA:http://www.google-analytics.com/r/collect?v=1&_v=j32&a=842371998&t=pageview&_s=1&dl=http%3A%2F%2Fwww.yohoboys.com%2Fwhatever-cn-zh-hk-web.html&ul=zh-cn&de=UTF-8&dt=Yoho!Boys%20%7C%20We%20love%20to%20Play%20%26%20Learn&sd=24-bit&sr=1920x1080&vp=1903x955&je=1&fl=16.0%20r0&_u=MACAAEQBI~&jid=2128925385&cid=1603005881.1414387412&tid=UA-52595809-1&_r=1&z=1237056998
  68 +
  69 +```
  70 +v:1
  71 +
  72 +_v:j32
  73 +
  74 +a:842371998
  75 +
  76 +t:pageview//跟踪类型
  77 +
  78 +_s:
  79 +
  80 +dl:http://www.yohoboys.com/whatever-cn-zh-hk-web.html//url
  81 +
  82 +ul:zh-cn//语言
  83 +
  84 +de:UTF-8 //编码
  85 +
  86 +dt:Yoho!Boys | We love to Play & Learn //title
  87 +
  88 +sd:24-bit //屏幕色彩深度
  89 +
  90 +sr:1920x1080 //屏幕尺寸
  91 +
  92 +vp:1903x955 //实际可视尺寸
  93 +
  94 +je:1
  95 +
  96 +fl:16.0 r0//flash版本
  97 +
  98 +_u:MACAAEQBI~
  99 +
  100 +jid:2128925385
  101 +
  102 +cid:1603005881.1414387412//统计访客ID
  103 +
  104 +tid:UA-52595809-1//跟踪ID
  105 +
  106 +_r:1
  107 +
  108 +z:1237056998
  109 +
  110 +```
  111 +
  112 +### 根据现有数据分析嵌码,我们需要实现什么?
  113 +
  114 +这个SDK主要用于web页面的浏览器或客户端的数据采集,包含应用信息,用户信息,浏览器及其系统信息
  115 +
  116 +#### 应用数据(Appliaction Info)可以采集的项:
  117 +
  118 +---------------
  119 +| **名称** | **说明** | **缩写** |
  120 +|----|----|----|
  121 +| tid|跟踪ID|td|
  122 +| vid|访问ID|vd|
  123 +| host | 主机名 | h |
  124 +| port | 端口 | p |
  125 +| url |链接 | u |
  126 +| anchor | 锚点 | a|
  127 +| code | 编码 | c |
  128 +| loadFinishTime | 加载时长 | ft|
  129 +| title |标题 | dt|
  130 +
  131 +#### 用户信息(Customer Info)可以采集的项:
  132 +
  133 +---------------
  134 +| **名称** | **说明** | **缩写** |
  135 +|----|----|----|
  136 +| client_id | 访客唯一标示 | cd
  137 +| uid | 会员ID | ud |
  138 +| referer | 来源 |rf|
  139 +| lasttime|上次访问时间|lt |
  140 +| mousePosition | 鼠标位置 | mp |
  141 +| event | 用户页面事件 | ev |
  142 +| scrollTop | 页面滚动 | st |
  143 +
  144 +#### 浏览器信息(Browser Info)
  145 +
  146 +---------------
  147 +| **名称** | **说明** | **缩写** |
  148 +|----|----|----|
  149 +| screenWidthxscreenHeight | 屏幕宽度x屏幕高度 | sr |
  150 +| windowWidthxwindowHeight | 窗口宽度x窗口高度 | wr|
  151 +| screenDepth | 屏幕色深 | sd |
  152 +| language | 语言 | ln |
  153 +| browserVersion | 浏览器信息| bv |
  154 +| systemInfo |操作系统信息|sy|
  155 +| cookiesEnabled |cookies是否启用|ce|
  156 +| flashVersion | flash版本 | fv|
  157 +
  158 +
  159 +
  160 +### 自定义跟踪
  161 +
  162 +主要有两种方式:自定义调用方法和自定义页面元素标志属性
  163 +
  164 +自定义调用方法传参列表`<a href='aa' onclick="_yas.add('event/page','type/url','action','label','value')" > index </a> `
  165 +
  166 +自定义页面元素标志属性`<a href='aa' _yas_trackType='event' _yas_input='nav' _yas_action='click' _yas_label='show' _yas_val='prize' >index</a>`
  167 +
  168 +----
  169 +| **参数名** | **说明** | **范例** |
  170 +|----|----|----|
  171 +| trackType | 跟踪类型;event页面事件,page页面点击| event|
  172 +| input | 输入类型,如果是event,设置类型,如果是page则是点击的链接或者标示输入| nav|
  173 +| action | 动作| click|
  174 +| label | 设置标签,统计维度 | show|
  175 +| value | 标签数值,统计值 | prize|
  176 +
  177 +
  178 +### 配置参数
  179 +
  180 +主要参数有:定时采集频次,SDK版本信息,采集应用跟踪编码
  181 +
  182 +```javascript
  183 +(
  184 + function(w,d,s,j)
  185 + {
  186 + var a=d.createElement(s),
  187 + var m=d.getElementsByTagName(s)[0];
  188 + a.async=1;
  189 + a.src=j;
  190 + m.parentNode.insertBefore(a,m);
  191 + }
  192 + )(window,document,'script','//ya.yoho.cn/ya.js');
  193 +
  194 +_yas(45,'1.0','ds6das2kkj');
  195 +
  196 +```
  197 +
  198 +
  199 +### 发送采集数据的方式:
  200 +
  201 +Ajax方式和img标签方式,Ajax主要用于用户行为数据收集,img方式的第一次记录应用信息,访客标示,浏览器信息。
  202 +
  203 +一次性发送信息:浏览器信息(Browser Info),应用数据(Appliaction Info),
  204 +部分用户信息
  205 +
  206 +
  207 +> * viewId(当次访问页面的ID)
  208 +> 1. client_id(访客唯一标示)
  209 +> 2. uid(会员ID)
  210 +> 3. referer(来源)
  211 +> 4. lasttime(上次访问时间)
  212 +
  213 +定时发送信息:
  214 +
  215 +自定义跟踪信息,部分用户信息
  216 +
  217 +> * viewId(当次访问页面的ID)
  218 +> 5. mousePosition(鼠标位置)
  219 +> 6. event(用户页面事件)
  220 +> 7. scrollTop(页面滚动)
  221 +
  222 +
  223 +### 定时采集频次
  224 +
  225 +1. 默认30s发送一次用户数据
  226 +2. 当用户打开页面发送一次请求,同时记录用户数据
  227 +3. 当用户关闭浏览器,在浏览器端记录持久化,下次打开页面一并发送
  228 +
  229 +### 关于session需要在服务端进行维护和记录
  230 +
  231 +服务端根据客户端记录的访客标示,生成一个session会话,用于记录访问时长。