数据上报流程

首先「数据上报」是什么意思?一言蔽之,「数据上报」就是把捕捉到的数据从前端浏览器传输到后端服务器我们在浏览网页的时候,输入网址就可以看到返回的信息,如下:




埋点数据用mongodb存还是其他_服务端


在浏览器输入网址请求页面,大致遵循着这样一个过程:


埋点数据用mongodb存还是其他_数据_02


用户输入网址,浏览器使用HTTP协议,向服务端请求页面,把请求回来的HTML代码解析构建成DOM树(操作DOM实际上就是在操作HTML文档对象(每一个标签)而我们埋点主要就是埋在标签属性里面),通过css计算渲染,形成我们看到的页面。这里插一句,我们请求页面是会出现404、503等错误,如果是5开头的,表名是服务端的错误,如果是4开头表示客户端的错误。 既然浏览器可以通过Http向服务端请求页面,那么,浏览器也可以通过Http向服务器发送数据,服务端收到数据后,只需要向浏览器响应数据是否收到(其实这也是数据API接口),而“上报”其实也是用的这一套。


本公司/待分析产品的数据上报链路

这里使用「谷歌专题页」点击关注事件举例。


埋点数据用mongodb存还是其他_服务器_03

谷歌定制专题页

打开知乎主站,在搜索框内输入「谷歌」关键词,触发谷歌品牌专区广告,点击进入落地页。点击「关注」按钮,此时发生了这些事情:

客户端向服务器发送点击请求-->服务器响应请求并发送埋点信息至埋点服务器-->埋点服务器接收信息-->埋点服务器将信息传输到后续环节。


常见的埋点问题及其产生原因

  • 不同平台采集的同一个属性值口径不一致;
  • 埋点定义不一样,导致数据不准确。例如提交订单,究竟是参照前端埋点,点击提交按钮就触发,还是采取后端上报,订单成功后才触发上报;
  • 采集方式不一样带来的误差,例如全埋点和前端代码埋点会带来5%左右的数据误差。

该如何提升埋点质量

  • 统一埋点规范和口径
  • 根据不同的业务场景选择正确的埋点方案,准确区分常见埋点方式对应买的业务场景;
  • 使用指标字典对埋点进行统一管理