《无埋点实现监测的真相——革新还是噱头?》是迄今为止我看到过的关于埋点解释的文章中最为清晰最容易理解的一篇文章。
文章来源:网站分析在中国
链接:http://www.chinawebanalytics.cn/auto-event-tracking-good-bad-ugly/
这篇文章对埋点的解释足够清晰,也很容易让不懂技术的人理解,在此整理一下关于数据采集和埋点的笔记。
1、检测代码/SDK/埋点(英文名:event tracking)
(1)监测代码与SDK
为了监测网站上用户的行为,或者app上用户的行为,需要在网站的每一页或者app中加上一些程序代码(这里就不考虑日志分析这种方法了)。这样的程序代码,在网站上叫监测代码,在app中叫SDK(Software Development Kit)。
(2)基础代码
为了收集数据必须要加的监测代码,叫做基础代码。基础代码不能不加。
(3)什么是event(事件)
在网页上,那些非http类型的交互:JavaScript的、Flash的、Silverlight的、AJAX的、各种页面插件的交互等等;在app上,包含用户点击在内的所有交互。
一个规律:凡是遵守http协议的交互(最典型的就是网页的链接),皆是可以由基础监测代码直接监测到数据的,但非http类型的用户交互,基础监测代码都无能为力。因为app不遵循http协议,所以app上的所有可点击交互都是event,基础监测代码对它们都无效。
(4)埋点
每一个需要我们监测的event互动,都被称为一个“监测点”。为了让这些监测点上的用户互动行为数据被我们收集到,我们必须在这些监测点上部署上专用的事件监测代码(即event tracking code),这些代码需要手工一个一个添加在想要获取数据的监测点上。这个过程被形象化的称为埋点。
又一个规律:事件监测(埋点)只有在基础代码工作的情况下才能发挥作用,并且各家数据监测工具的基础代码只能用它们自家的event监测。
2、无埋点与全埋点
无埋点,大家称它为“可视化事件监测部署”,或者“所见即所得的监测部署”。
无埋点的几个缺陷:
(1)用户的交互行为,如果没有具体的“地点”,无埋点方法不适用。
(2)可视化的无埋点部署,能够为交互行为设置的属性是非常有限的。
(3)行为数据的分类汇总。
1.无埋点不是不加代码。
2.埋点这种传统方法仍然具有很多优势,无埋点不能完全取代埋点。至少现在不可以。
3.无埋点的真正准确说法,应该是:可视化事件监测部署。
3、前端埋点技术介绍
目前常见的前端埋点技术,有三类:
(1)在某个控件操作发生时通过预先写好的代码来发数据的代码埋点;
(2)通过可视化界面配置控件操作与事件发生关系的可视化埋点;
(3)先收集所有数据再在后端筛选需要分析的对象的“无埋点”。
4、网站分析(web)常见的数据获取方式
四种主要的捕获点击流数据的方式:
(1)网站日志文件(Log Files)
(2)Web Beacons(俗称打点)
(3)JS页面标记(JavaScript Tags)——又称“埋码技术”
(4)包嗅探器
5、用户行为数据采集核心思维(APP、web数据采集/埋点)
关于数据采集(也就是所谓的埋点),有很多中形式,或者说方法。所有的数据采集都时围绕一个核心的三个点来做区别的处理。
数据采集核心思维三个点:
(1)、对象;
要采集谁,一个页面、一个按钮,页面或者按钮,就是我们要采集数据的对象,对象是个结果,数据采集代码/埋点,首先就是要完成定位的功能;
(2)、动作/条件;
用户触发什么动作、发生什么事件,完成什么条件,也就是触发做数据采集的引线;
(3)、数据;
在特定的对象上,触发了需要监控的动作,需要记录那些数据,来表示用户这个行为的东西/字段,统称为数据。
在当理解了这三个点,再去理解现在所谓的,可视化埋点、无埋点、GTM标签管理工具,就简单很多了。
可视化埋点
对象:运营人员在后端,设置需要采集那个点;
动作:点击;
数据:点击的位置信息/按钮名称;
无埋点
对象:任何位置;
动作:点击;
数据:点击的位置信息
无埋点/可视化埋点的共同点:都是把数据采集三要素中的(动作/条件),都固定为点击,采集的(数据)都是用户点击的位置,或者是按钮的名称;
无埋点/可视化埋点区别:(对象)不同;无埋点对对象的筛选/定位,在接收服务器端做,可视化埋点对对象的筛选/定位,在用户端实现。
标签管理工具
主流的标签管理工具,像Google的DTM,Adobe的DTM,在数据采集功能(埋点)上(注:标签管理工具里面还有很多非数据采集的功能点),都是把对象、动作/条件、数据,这三点,区分在不同的功能模块中,在埋点时,一步一步的完成这三个流程,来实现数据采集(埋点)。
以GTM为例:
GTM里面有触发器、代码、变量三块,他们分别的对应关系如下:
触发器,就是完成数据采集中,(动作/条件)的这个点
代码,主要就是控制我们需要传输的字段(数据)以及,把数据采集三个核心点串联起来;
变量,是数据采集中的(对象);
当我们遇到问题(数据采集不到,不知道怎么采集数据)可以把问题分拆成上述三部分,重新整理思路,找到问题点。
参考文章: