前端数据埋点
数据埋点,是一种常用的数据采集方法。埋点是数据的来源,采集的数据可以帮助业务人员分析网站或者App的使用情况、用户行为习惯等,是后续建立用户画像、用户行为路径等数据产品的基础。
前端的埋点方式主要分为代码埋点、可视化埋点、无埋点三种。
1.代码埋点
代码埋点主要由App研发工程师手工在程序中写代码实现,通过触发某个动作后程序自动发送数据。优点:具有很强的灵活性,可以控制发送的时机和发送方式等。缺点:人力成本较高,需要研发工程师手工开发程序,有时候还要依赖App发版来生效。
要实现在不修改代码的前提下新增埋点,我们调研了可视化埋点和无埋点两种方式。
2.无埋点
无埋点绑定页面的各个控件,当事件触发时就会调用相关的接口上报数据。优点:不需要埋点,方便、快捷、省事。缺点:传输数据量比较大,需要消耗一定的数据存储资源。
其中,无埋点(又称全埋点)会收集用户在应用里的所有行为,并上报所有相关的数据,由此产生大量无用数据。
3.可视化埋点
而可视化埋点的方式为:通过埋点平台圈选所需埋点的页面元素,进行埋点上报属性的配置与发布,由采集 SDK 同步埋点配置,并根据配置自动进行用户行为数据的采集和发送。
可视化埋点的基本思路:以点击事件为例,Web 可视化埋点一般会提供一个 SDK,SDK 会在 document 上面监听 click 事件,借助于事件委托的特性,可以捕获到页面上任意元素的 click 事件及元素的信息。同时 Web 可视化埋点会提供一个平台,该平台通过 iframe 嵌入需要进行埋点配置的网页,然后通过 postMessage 来进行平台与目标页面的通信。
当然,可视化埋点也并不是无所不能,也存在一些局限性:业务属性数据,例如,订单号、金额、商品数据量等,通常要调用后台的接口,可视化埋点在这方面的支持有限;
就目前技术来讲,可视化埋点并不能使数据采集达到最完美的状态;虽然它可以提升效率,但满足不了所有场景的数据采集。从使用角度来说,如果是急于需要使用数据,人力资源又紧张的情况下,可视化埋点就是最后的选择。如果紧急度不高,且人手充足的情况下,则可考虑代码埋点。