一、为什么企业需要一套完善的用户行为埋点和分析平台
产品初创期间,需要分析天使用户的行为来改进产品,甚至从用户行为中得到新的思路或发现来调整产品方向;产品成长过程,通过对用户行为的多角度(多维)分析、对用户群体的划分以及相应行为特征的分析和比较,来指导产品设计、运营活动,并对市场渠道效果进行评估。
配合上A/B试验平台,可以加速产品的迭代,更快得到用户的真实反馈。同时,这些数据沉淀下来,对业务的数据仓库建设、数据智能应用等方面也能起到促进作用,比如做实时推荐,需要能更快获得用户尽可能多且明细的行为数据;做用户分类、意愿预测等机器学习业务,需要清洗过的规范化、结构化的数据做 训练。
要想做用户行为的分析,就需要有一套用户行为数据采集、传输、处理、分析的基础设施,而埋点和分析平台就是在做这件事。业界大多产品都是通过嵌入到多个终端的 SDK 来采集用户行为数据,而后续的传输、处理等过程对需求方是透明的,这样可以以很低的成本,完成数据的采集、清洗、沉淀工作,为企业节省成本,提升数据驱动的效率。
在分析平台上,用户的行为定义会通过特定事件来标识,比如 “buttonClick”,“playMusic” 等。通常这些事件是开发人员通过调用 SDK 提供的API来设置的,除了确定事件的名称外,还可以加入分析需要的自定义参数和取值,这个过程就是“埋点”工作。当然,还有一些工具/产品支持可视化埋点,这种方式不需要开发介入埋点,SDK会自动采集用户在各个终端上的行为。
二、代码埋点、可视化埋点和无埋点有哪些区别,在使用过程中该如何选择?
可视化埋点是指开发人员除集成采集SDK外,不需要额外去写埋点代码,而是由业务人员通过访问分析平台的圈选功能来“圈”出需要对用户行为进行捕捉的控件,并给出事件命名。圈选完毕后,这些配置会同步到各个用户的终端上,由采集SDK按照圈选的配置自动进行用户行为数据的采集和发送。
无埋点是指开发人员集成采集SDK后,SDK便直接开始捕捉和监测用户在应用里的所有行为,并全部发送到分析平台,不需要开发人员添加额外代码。在分析时,业务人员通过分析平台的圈选功能来选出自己关注的用户行为,并给出事件命名。之后便可以对特定用户行为(事件)进行多维分析了。
可视化埋点和无埋点比较像,都不需要开发人员手工加代码,也都需要业务人员进行所关注的用户行为的圈选。两者最大的不同是在用户终端的表现上,可视化埋点只采集业务人员关注的用户行为数据,而无埋点是会采集所有用户的行为数据,通常情况下数据量后者比前者大很多。
也正是由于无埋点默认采集所有用户行为数据,它能够做到事件的回溯分析,即在业务人员新定义(圈选)事件后,就能去分析这个事件在前面一两个月的数据情况,这也是可视化、代码埋点支持不了的。但带来的问题就是采集所有数据对应用的侵入会比较大,也会增大用户端采集的数据量。当然,这可以通过一些策略,比如Wi-Fi下才发来缓解这些问题。
无埋点和可视化埋点都存在一个较大的缺陷,它们都是通过采集SDK去监测应用上控件的触发事件(用户对控件的操作),当产品UI在版本升级过程中发生变动,或者产品做了大的改版,一些行为的“埋点”会发生丢失。如控件ID发生变化,而圈选的配置没变,导致数据采集不到;或者和业务的实际需要发生不一致的变动,比如圈选控件的作用发生了变化,但圈选配置没改;这些问题会导致对产品某些方面的分析出现差错,往往查起来还比较麻烦,在技术上完全解决也比较困难。
另外,可视化埋点和无埋点都针对的是客户端数据采集,一些用户行为数据在客户端是采集不到的,或者客户端采集的精准度不够,比如支付,因为支付成功的判断绝大多数场景都是在服务端做的,所以在客户端做支付行为的埋点,误差很大,这个时候就需要在服务端进行埋点。
在业务选择时,建议在产品初期,产品形态还不太稳定、分析的复杂度还比较低的阶段,采用无埋点或者可视化埋点,更快去做埋点,否则频繁的产品改动,会让开发人员大量时间花在琐碎的埋点代码维护上面。产品进入稳定期后,尽量采用代码埋点方式,可以保证事件模型是稳定的,便于长期的数据监控、分析和数据沉淀。
三、实践中做了些工作,来促进埋点工作的落地以便更好的维护和管理?
产品业务数据驱动的 workflow 往往是这样的:
1、定义产品的阶段性目标;
2、规划和定义指标,包括产品、运营、市场的各项目标;
3、产品、运营等业务人员确定数据埋点需求;
4、开发人员进行埋点以及数据的上报等开发工作;
5、数据开发人员进行数据的清洗、宽表建设、指标计算等工作;
6、业务人员分析数据、发现产品问题或潜在机会;
7、继续下一阶段的产品、运营、市场等的改进工作。