原作者做最大:原文链接
数据的重要性不言而喻,好的数据分析可以使我们的产品不偏离正确的轨道,做好数据分析的第一步就是做好数据埋点,现在多种埋点方式各有千秋,我们应该如何选择最优的方案呢?接下来,我们将介绍各类埋点技术,分析他们的优劣势。这些技术大体上可以分为三类
1.代码埋点:在需要埋点的节点调用接口直接上传埋点数据,一些第三方数据分析平台大都采用这种技术比如神策,友盟,百度统计等等。
2.可视化埋点:即在可视环境下配置采集节点,前端自动解析上报埋点数据。Mixpanel,腾讯MTA开发了类似功能。
3.无埋点:即全埋点,前端自动采集上报全部事件的埋点数据,后端在计算数据时按需过滤出有效数据。代表方案有GrowingIO
代码埋点
所谓代码埋点就是在你需要统计数据的地方植入代码,统计用户的关键行为。例如:程序员们在首页这个btn进行了埋点操作,植入了统计代码。当用户点击了“首页”10次,那后端统计服务就会记录为用户点击了10次这个功能。
在代码埋点中程序员可以精准选择发送数据的时间,比较方便地设置自定义的属性,事件。上传丰富的,多维度的数据到服务端,但是相应的,代码埋点的“代价”也比较大,这里说两个主要的弊端,由于每个功能点都需要添加对应的代码,不仅工作量大,而且限制了使用者的身份,必须得是技术人员。在每一次的更新迭代中,都需要更新埋点方案,如果有的用户不更新app,那么就无法获取这批用户的数据。
可视化埋点
在介绍可视化埋点之前,先给大家看一篇相关文章:https://zhuanlan.zhihu.com/p/27358319【重磅】腾讯移动分析MTA首推可视化埋点,助力移动APP数据运营
看完这篇文章,大家对于可视化埋点应该有些许的了解,简而言之,可视化埋点就是固化相应代码做为SDK,直接调用,在可视化环境中,进行自由埋点操作。
(图片来自腾讯MTA)
可视化埋点的出现,瞄准代码埋点“高代价”的弊端进行了一些优化,最直接体现在不需要依赖技术人员就可以随时添加,修改埋点。针对代码埋点更新代价大这个问题,可视化埋点的技术实现方式把核心代码和配置、资源分开,每次用户启动app的时候通过网络更新配置和资源,但由于目前可视化埋点能够覆盖的功能有限,所以并不是所有的控件都可以通过这种方法操作。
无埋点
无埋点,也可以理解为“全埋点”。对比“代码埋点”和“可视化埋点”通过配置控件确定哪些操作数据需要收集,“无埋点”则是尽可能收集全部的数据,再根据使用人的意愿配置哪些数据需要进行分析。为了更好的理解他们的区别,我把“代码埋点”和“可视化埋点”统分为“半自动埋点”,“无埋点”划分为全自动埋点。好比一个按钮,“半自动埋点”只有在按下这个按钮之后才会采集数据,而“全自动埋点”在这个按钮诞生的时候就在源源不断的收集数据。根据这个特性,数据“回溯”的问题将被非常完美的解决。例如,某天产品突然想增加某个节点的点击热力分析,如果是“可视化埋点”方案,只能收集往后的数据,而如果是“无埋点”方案,在部署SDK时,数据就一直都在收集了。既然所有的数据都被收集了,使用人则拥有数据全局观,可以通过不同数据间的对比选择大概率点击元素,或者重要的元素进行深入分析。
当然,与可视化埋点一样,无埋点依然有自身的问题,例如传输时效性和数据可靠性欠佳,服务器和网络传输经常过载。其中最主要的问题还是不能灵活地自定义属性。无埋点只适合标准化的数据采集,无法深入到更细、更深的维度。例如,用户清理垃圾时勾选了几种类型的垃圾,正常埋点记录这个事件时会加一条list类型的属性,目的是分析各选项的使用频率,自动埋点是记录不到这条属性的,因为程序不会知道哪些元素会成为哪个事件的特有属性。再如用户上滑屏幕,底部瀑布流加载,这类自定义行为无法被自动采集。
小结
这三种埋点技术,是一个慢慢演变的过程,有时候我们也会想,是不是可以找到一个数据种类最全,维度最多,最安全可靠的数据采集方式呢?其实没有十全十美的办法,实际情况中我们需要根据产品量级去选择。产品量级小的公司没有成本配置专门的部门进行数据采集分析,一般可以选择接入第三方的大数据平台,因为产品量级小,可以采用“无埋点”技术尽情的收集,回溯数据。产品量级较大的公司,有相应的人员配备后,则可以采用“代码埋点”,或者是“无埋点”+“代码埋点”进行数据分析,这两种方式结合可以取长补短,无埋点技术分析不到的地方可以用代码埋点技术去弥补。可视化埋点可以方便非技术人员进行埋点操作。最后不得不提的是现在越来越多的大数据分析平台支持为用户事件添加自定义属性,这样则能大大提高分析的效能。虽不敢说取代传统的代码埋点,但是很有可能会成为一种业界主流的趋势。