1、数据埋点的重要性

   在现实工作中,数据的整体流程为:数据生产-数据采集-数据处理-数据分析和挖掘-数据可视化,其中,数据采集是很重要的一个环节,数据采集得全不全、对不对,直接决定数据广度和质量,影响后续所有的环节。如果采集的数据维度很少,那我们想要进行深入分析的时候就会显得无处着手,比如我们想要分析某个APP某个功能的使用情况,但是却根本没有采集相关的数据,那我们也不能进行后续的分析了。如果数据采集是错误的,如漏报、误报等,那这肯定是很致命的,会误导我们基于数据的决策。

   在互联网行业,数据采集的方式根据采集数据端的不同,主要分为网页数据采集、APP数据采集。网页数据的采集主要是使用JS采集,常用的数据分析工具主要是Google Analytics,APP数据采集主要是通过埋点采集,主要有前端埋点和后端埋点之分,相应的移动端数据分析厂商也很多。随着越来越多的用户倾向于在移动端上网和使用APP,APP数据采集就显得更加重要。

2、数据埋点是什么

   要做好APP的数据分析,让数据支撑决策、产品和运营,首先是要有数据,就像做饭需要米一样,而要采集用户数据就要进行APP数据埋点。产品人员在产品规划时就要思考数据埋点问题,如果在产品外发后再考虑怎么埋点,就会导致前期版本用户的数据无法收集,想要看某个数据时就无可奈何,只有等到新版本完善来弥补。思考要埋哪些点的时候,要紧密结合产品、运营需求,并跟数据分析、ETL人员等进行充分沟通,例如需要监控哪些指标、需要通过哪些埋点来实现、怎样埋点更能符合统计的需求,这是一个集思广益的过程。

   数据埋点包括客户端前端埋点和服务端后端埋点,客户端前端埋点是用户在客户端上的操作记录,服务端后端埋点是用户在线请求服务器的日志,两者各有优劣,最好两者都埋点,可以相互补充。

   数据埋点其实就是在产品功能代码后面加上统计代码,记录用户操作行为,当用户进行某个操作时,如点击某个按钮、呈现某个页面等,开发会在相应地方加上统计代码,埋点会生成一条log记录。

3、怎样数据埋点

3.1、数据埋点技术

   现在业界客户端埋点一般都是采取key-value的形式,key代表某个事件,value代表相应的参数值,埋点逻辑大概为:用户产生点击行为,生成一个点击事件,当有页面呈现在屏幕前时,生成一个页面事件。

   现在SDK上报埋点事件主要分为两类:1)点击事件,主要描述用户在应用内的点击行为,如点击tab、点击按钮等,同时一些参数事件也被归类为点击事件,如页面描述、试听时长等,把这些参数事件归类为点击事件主要是方便页面事件计算用户应用使用时长;2)页面事件,主要描述用户浏览过的页面,如首页、详情页等,同时通过页面停留时长计算用户应用使用时长。

  常见的有三种埋点技术:

  代码埋点:控件操作发生时通过预先写好的代码来发送数据。优点:控制发送数据时间,事件自定义属性详细记录;缺点:时间、人力成本大,数据传输的时效性。

  可视化埋点:利用可视化交互手段,通过可视化界面配置控件操作与事件操作发生关系,通过后台截屏的方式采集数据。优点:成本低,速度快;缺点:行为记录信息少,支持的分析方式少。

  无埋点:用户展现界面元素时,通过控件绑定触发事件,事件被触发的时候系统会有相应的接口让开发者处理这些行为。现在市面上主流无埋点做法有两种,一种是预先跟踪所有的渲染信息,一种是滞后跟踪的渲染信息。优点:无需埋点,方便快捷;缺点:行为记录信息少,传输压力大。

3.2、数据埋点优缺点

3.2.1、客户端埋点的优缺点

   APP客户端埋点的好处是:

   1)能够搜集更加全面的用户数据,可以对客户端各个点击、页面埋点;

   2)可以收集不需要请求服务器的数据,如音乐的本地播放、页面停留时长等。

   APP客户端数据埋点存在问题主要有:

   1)数据上报时需手机联网,如果用户手机未联网,则会延迟上报数据,同时数据上报一般有相应的规则,不会实时上报,一般存在15%左右的延迟上报和漏报;

   2)如果用户删除自己的APP操作记录,则没有上报的记录。

   3)当需要改变埋点时,需要更新版本才行,但是会存在有些用户不更新版本情况,影响数据质量。

3.2.2、服务端埋点的优缺点

   APP服务端后端埋点的优点是:

   1)实时收集,数据很准确,不存在延时上报;

   2)当要改变埋点时,只要改变,上报数据就会改变;

   3)能够收集不在APP内发生的行为,只要请求服务器就行,而客户端只能收集在客户端中的操作行为,如统计从其他APP引流的安装量。

   服务端后端埋点缺点是:

   1)不能收集不需要请求服务器的数据;

   2)用户没联网的时候不能够采集数据。

3.2.3、服务端和客户端的结合

   结合客户端前端埋点和服务端后端埋点的优缺点,服务端数据实时性高、很准确,最好用户需要请求服务器的关键业务量均使用服务器后端埋点,如在线播放、游戏安装等,在统计中奖用户这些,显然服务端数据更合理,客户端数据可能会漏掉部分中奖用户,导致用户投诉;客户端数据很全,记录了用户绝大多数操作行为,其它非关键业务量或者不需要请求服务器的行为使用后客户端前端埋点。服务端埋点和客户端埋点各有优劣,应该两种数据同时都存在,可以相互印证,当一方数据发生重大问题时可以通过另一方发现,同时,数据也能互补,如数据采集突然有问题了,可以用另一方数据替代。

3.3、数据埋点内容

   数据埋点主要是为了采集用户行为数据,根据用户应用使用行为,各应用埋点主要包括以下几个方面:

3.3.1、功能按钮埋点

   功能按钮的埋点主要是为了解用户对应用中的按钮、功能、入口等的使用,从而洞察用户内容偏好、功能偏好、使用路径等。主要包括以下几个方面:

   1)用户对应用顶部tab、底部tab、内容筛选tab等的点击,了解用户对应用各个板块的喜好和内容偏好等;

   2)用户对应用内各入口、频道的点击,了解用户的内容偏好、产品使用路径等;

   3)用户对应用中具体内容的点击,如点击某款游戏、某个商品、某个视频等,了解用户内容偏好、产品使用路径等;

   4)用户对应用设置中选项的点击,如是否打开push开关,了解用户应用的基本设置情况。

   5)用户对其它功能按钮的点击,如音乐播放器中暂停、下一首等按钮的点击。

3.3.2、主要行为埋点

   用户应用主要行为埋点主要是为了解用户应用内使用行为,从而洞察用户内容偏好、产品使用习惯、用户忠诚度、用户活跃度等,用户应用中主要行为包括:

   1)用户核心行为,包括下载、安装、试听、播放、阅读等,各业务根据其产品性质的不同,有不同的核心业务行为,如视频的播放、音乐的试听,可以了解用户的内容偏好、业务活跃度等

   2)用户其它行为,包括评论、分享、点赞、回复、收藏、订阅等,对内容型业务基本是通用的,可以了解用户的内容偏好、使用习惯、业务忠诚度等;

3.3.3、主要页面埋点

   页面埋点是为了解用户对应用各页面的浏览情况,从而知道各页面的浏览量、用户使用路径、使用时长等。主要包括应用首页、个人中心页、各一级页面、各二级页面等,原则是只要应用呈现在屏幕前的页面都需要相应的埋点,这样才能较准确的计算应用使用时长,同时能够评估各页面价值。

3.3.4、支付流程埋点

   支付流程的埋点是为了解用户整个支付流程是否使用顺畅,是否有优化的空间,便于进行漏斗分析,对有支付流程的应用是至关重要的。主要包括点击支付、选择支付方式、点击下一步、确认支付(或取消支付)、支付结果等步骤,了解各个步骤的转化率,优化有问题的支付环节。

3.3.5、搜索流程埋点

   搜索是应用一个很重要的功能,大多数目的明确的用户都会使用搜索功能,搜索的埋点能够了解用户的搜索行为、内容偏好、搜索热点等。主要包括点击搜索、输入关键词、点击推荐热词、点击推荐联想关键词、点击搜索结果等,洞察用户是怎样进行搜索的、当前搜索热点是什么、搜索推荐算法的效果等。