[关闭]
@no13bus 2017-08-01T10:48:05.000000Z 字数 2674 阅读 709

(1)格式协议
前端上传的数据格式:
首先生成一个唯一id的cookie,标识用户uuid。

针对页面浏览形的数据,数据格式如下:

  1. {
  2. "system":"ios",
  3. "user_agenet":"",
  4. "browser_type":"chrome",
  5. "browser_version":"24.01",
  6. "refer":"www.baidu.com",
  7. "refer_params":{"a":1,"b":2},
  8. "uuid": "2b8c376e-bd20-11e6-9ebf-525499b45be6",
  9. "event_time": "2016-12-08T18:08:12",
  10. "page": "www.example.com/poster.html",
  11. "page_params": {
  12. "id": "123"
  13. },
  14. "user_agent": "Mozilla",
  15. "ip": "59.174.196.123",(根据ip库可以推算出访客的城市)
  16. "event_type": 0,(浏览/点击/退出)
  17. "stay_times":120(页面停留时长)
  18. "event_id": 12(用来后期给运营看报表的时候看的)
  19. "event_name": "注册页面浏览"
  20. "refer":"页面的上一级refer"
  21. }

然后传到后端api接口的时候,再加上几个其他的参数,如下:

  1. {
  2. "uid":1
  3. }

另一个数据格式:点击事件。数据格式如下:

  1. {
  2. "system":"ios",
  3. "user_agenet":"",
  4. "browser_type":"chrome",
  5. "browser_version":"24.01",
  6. "refer":"www.baidu.com",
  7. "refer_params":{"a":1,"b":2},
  8. "uuid": "2b8c376e-bd20-11e6-9ebf-525499b45be6",
  9. "event_time": "2016-12-08T18:08:12",
  10. "page": "www.example.com/poster.html",(当前浏览页面)
  11. "page_params": {
  12. "title": "test",
  13. "user_id": 1234
  14. },
  15. "element": "register",
  16. "relationData":[
  17. {"r_ask_element":"answer", "r_ask_text":"hahaha"}
  18. {"r_my_element":"my", "r_my_text":"wwwww"}
  19. ],
  20. "coordinate":"123,1333"(点击时的坐标),
  21. "screen_scale":"100,200"(窗口长高)
  22. "user_agent": "Mozilla",
  23. "ip": "59.174.196.123",
  24. "client_type": 0,(Web/Android/IOS)
  25. "event_type": 1,(浏览/点击)
  26. "event_id": 13(用来后期给运营看报表的时候看的)
  27. "event_name": "提交注册",
  28. "refer":"页面的上一级refer"
  29. }

在底层绑定了一个cick事件,只要有click就上报。传递到后端的时候,数据格式如下:

  1. {
  2. "uid":1
  3. }

此外说明:
页面停留时长的计算方法:
页面加载事件(跟pv有关) 设置一个cookie: uuid.页面id.页面开始访问时间.页面离开时间(开始访问和离开时间均相同)
页面离开事件(统计页面停留时间) 更新这个cookie: uuid.页面id.页面开始访问时间.页面离开时间(更新离开时间)

(2) 可以实现的需求
1. pv
2. uv
3. 转化率(关键路径的漏斗模型)
4. 页面停留时长
5. 用户分布
6. 页面热图分析(需求记录所以点击事件,是否需要??)
7. 页面访问来源分析
8. 推广渠道的访问率

(3) 前端采集伪代码:
html:

  1. <div>
  2. <div>
  3. <textarea id="answer" cols="30" rows="10" user_action_relation="answer-submit"></textarea>
  4. </div>
  5. <button user_action_id="answer-submit">提 交</button>
  6. </div>

js:

  1. $(d).ready(function() {
  2. // 页面浏览上报
  3. pvUpload({page: getPageUrl()},
  4. $.extend({title: getTitle()}, getUrlParams()));
  5. // 绑定点击事件
  6. $(d).bind('click', function(event) {
  7. var $target = $(event.target);
  8. // 查找是否是需要上报的元素
  9. var $ua = $target.closest('[user_action_id]');
  10. if ($ua.length > 0) {
  11. var userActionId = $ua.attr('user_action_id');
  12. var userActionRelation = $("[user_action_relation=" + userActionId + "]");
  13. var relationData = [];
  14. // 查找相关联的元素的数据信息
  15. if (userActionRelation.length > 0) {
  16. userActionRelation.each(function() {
  17. var jsonStr = JSON.stringify({
  18. "r_placeholder_element": $(this).get(0).tagName,
  19. 'r_placeholder_text': $(this).text()
  20. });
  21. jsonStr = jsonStr.replace(/\placeholder/g, $(this).attr('id'));
  22. jsonStr = JSON.parse(jsonStr);
  23. relationData.push(jsonStr);
  24. });
  25. }
  26. // 点击事件上报
  27. clickUpload({page: getPageUrl(), element: userActionId},
  28. $.extend({title: getTitle()}, getUrlParams(), relationData));
  29. }
  30. });
  31. // 页面跳转/跳出/计算页面停留时长
  32. windows.ubload(function(){
  33. pvUpload({page: getPageUrl(), stay_times:120},
  34. $.extend({title: getTitle()}, getUrlParams()));
  35. })
  36. });

(4)流程图
屏幕快照 2017-08-01 下午6.47.20.png

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注