埋点实践系列NO.1—常见埋点方式

写在前面

总结这个系列前,先问自己一个问题吧:就是我们为什么要进行埋点工作呢?

在产品成长的过程中,需要有数据去支撑:业务发展、产品迭代、异常分析等等。(例如1.用户行为习惯、2.掌握产品动态(用户规模、质量、产品生命周期)、3.支持产品决策(新功能上线、旧功能的优化迭代)、4.新版本的复盘等)。

数据生产的整个流程如下:数据生产—数据采集—数据处理—数据分析与挖掘—数据驱动/用户反馈-产品优化/迭代。其中埋点就是数据采集的过程,通过埋点技术可以获取产品的用户行为日志。埋点遵循5W2H规则,即what、who、when、where、how,简单的讲埋点就是获取谁在什么时间什么地点通过什么样的方式完成了什么操作的数据。

一、什么是埋点

首先,埋点是数据采集的一种方式,包括两种:(1)前端埋点(2)服务器端埋点

前端埋点:通过在嵌入SDK等方式实现对获取用户基本信息、行为以及跟踪产品在用户端的使用情况,并以监控数据为基础,指明产品优化的方向。前端监控可以分为三类:数据监控、性能监控和异常监控。

数据监控:指基于业务需求指标的数据采集用户行为信息数据;性能监控:指对用户在产品端的体验进行监听(例如:首屏加载时间、http响应时间、页面渲染时间等从而确定前端优化方向。);异常监控:由于产品的前端代码在执行过程中也会发生异常,因此需要引入异常监控。及时的上报异常情况,可以避免线上故障的发上。

通俗的说,前端埋点就是将页面或者客户端需要的收集的事件整理出来,并发送给后台。前端埋点主要可以分为三种:代码埋点、可视化埋点、全埋点(无埋点),在第二部分会详细介绍。

服务器端埋点:指将与服务器端有交互的进行交互的数据采集上报,例如关注成功、发布成功等。

前后端埋点对比:前端埋点能够实现对不与服务器端交互的数据进行监控,例如曝光、点击、停留时长等数据。但是它也存在一些缺陷,例如更新埋点策略、增加埋点字段需要更新客服端新版本,前端埋点会增加客户端数据传输压力,前端埋点还会存在漏报、数据丢失等问题。然而服务器端埋点是服务器端向服务器传输数据,是基于内网进行的。服务器端埋点不基于客户端进行,更改埋点策略时,不需要等待产品迭代,更新版本。同时基于内网传输,基本不存在数据丢失的问题。

在日常埋点需求中,前端和后端埋点都是相结合进行。需要采集精确数据时,尽量采用后端埋点,在后端埋点无法实现时采用前端埋点。

二、常见的前端埋点方式

1.代码埋点

代码埋点:我们根据对业务指标数据的梳理,在需要数据的地方植入代码,统计用户行为。例如需要统计某个活动页面的打开次数、某个按钮的点击次数。直接将采集SDK集成在终端,然后不断在此基础上添加调整采集方案,是目前主流的埋点采集方案。

1.1优缺点

优点:高度定制、控制精准、采集的数据丰富准确

1.可以精确控制什么时间传输什么数据;2.可以自定义事件、属性,传递比较丰富的数据到服务器端。

缺点:首先是每当有采集需求,需要开发人员不断添加采集代码,工作量大;(需要开发人员参与才能完成且工作量大)

其次变更采集策略,需要发布新版本,代价巨大,存在滞后效应;(新增埋点或修改埋点方案需要发布新版本,而且可能部分用户数据获取不到,如果他没有更新版本的话)

最后由于采集代码常驻终端,不断将采集的用户行为数据进行记录和上报,对于终端尤其是移动终端来说还有耗电、消耗数据流量等负载,此外在数据上报传输的过程中也存在丢失数据的风险。(频繁的数据上报造成客户端负载以及可能存在数据丢失,但是代码埋点的SDK较小,一般不会影响用户体验,全埋点会影响到用户体验。)

1.2适用场景

1.采集数据的同时不会降低用户体验

2.不希望采集到海量无用数据

3.希望采集的数据:粒度更细,维度更多,数据分析的准确性更高

考虑以上三点,从业务增长的长远价值考虑,选择代码埋点。

2.可视化埋点

既然代码埋点代价比较大,每一个埋点都需要写代码,那就使用可视化交互手段代替写代码;既然每次代码埋点都需要更新,可视化埋点把核心代码和配置、资源分开,每次用户启动app的时候通过网络更新配置和资源。可视化埋点的理念是降低实施埋点的门槛,以此来提升原工作流程的效率。实施埋点时,无需研发人员介入,产品运营可以直接在网站或移动应用的真实界面上操作埋点,而且埋点之后立即可以验证埋点是否正确,并且,埋点部署到所有客户端也是几乎实时生效的。

2.1优缺点

优点:可视化买点解决了代码埋点埋点代价大和更新代价大两个问题。即配置文件放置在服务器端,更新埋点时无需等待客服端版本更新、以及无需技术人员的参与。

缺点:可视化埋点能够覆盖的功能有限,目前并不是所有的控件操作都可以通过这种方案进行定制;

2.2适用场景

1、短平快的数据采集方式:活动/H5等简单页面,业务人员可直接圈选,操作无门槛,减少技术人员的介入,此种数据采集方式,方便业务人员尽快掌握页面中关键节点的转化情况,但是对用户行为数据的应用较浅,无法支持更深度的分析;

2、若页面临时调整,可灵活的追加埋点,可作为代码埋点的补充,以便及时增加采集数据

3.全埋点(无埋点)

通过SDK,收集页面所有控件操作数据,通过“统计数据筛”,配置待处理的数据的特征。可视化埋点先通过界面配置哪些控件的操作数据需要收集;“无埋点”则是先尽可能收集所有控件的操作数据,然后再通过界面配置哪些数据需要在系统里面进行分析,“无埋点”也就是“全埋点”的意思。

3.1优缺点

优势:一切操作皆埋点,简单、快捷,无需埋点统计数据按需处理

劣势:数据上传消耗流量大,数据维度单一(仅点击、加载、刷新);影响用户使用体验——用户使用过程中容易出现卡顿,严重影响用户体验;噪点多,数据准确性不高,容易产生干扰;不能自定义埋点收集信息。

3.2适用场景

主要应用于简单页面,比如:短期活动中的落地页/专题页中,需要快速衡量点击分布等效果。

三、埋点方式对比分析总结

埋点实践系列NO.1—常见埋点方式_第1张图片
埋点方式对比

整体来说,需要根据实际的需求采用合理的埋点方式来进行数据采集工作,例如在短期活动的H5页面可以采用全埋点的方式来埋点。对业务导向,需要精细数据支撑的产品,采用代码埋点方式(前端+服务器端埋点)。

参考:

【用户行为采集】(一)常见埋点方式及对比 https://www.jianshu.com/p/6f5d60b04b93

如何做好数据埋点  https://www.jianshu.com/p/745b2957449f

前端监控和前端埋点方案概述  https://www.jianshu.com/p/a1c7a8c3f07a

小谈前端埋点  https://www.jianshu.com/p/645a26619508

数据埋点之认识埋点  https://www.jianshu.com/p/e3a315b8849e

客户端埋点?这可能是全网最实用的深度解析   https://zhuanlan.zhihu.com/p/41084975

你可能感兴趣的:(埋点实践系列NO.1—常见埋点方式)