发布于 

埋点初探

前言

这半年中,从线下走到线上,接触到了许多不一样的内容,从以往的进销存数据,到电商行业的UV、转化率,再到目前的用户行为数据,接触数据的面在不断的扩张,然而深度却还仅仅停留在浅尝辄止的程度,所以我计划每周一篇相关的文章,以此不断加深深度。

一、为什么要埋点?

做一件事情肯定要有目的,那么埋点的目的是什么?不同的角色可能有不同的目的,比如对于投放人员而言,他们希望能够看到投放渠道的效果,以此评估改善投放策略;对于产品来说,他们希望对比不同版本的数据,来评估当前产品改版的情况;对于数据部门而言,埋点的作用就是数据采集,这是一切数据分析的前提,埋点更精确的说,是对用户行为数据的采集。笔者所在的行业是电商,用户行为分析是非常重要的一块,对用户行为分析的前提,就是采集到用户所做的相应的行为数据,比如什么样的用户做了什么动作,多少人浏览了某某商品,多少人浏览了某某页面。

二、埋点主要采集什么数据?

埋点是为数据分析做准备的,按照我目前的理解,埋点采集的数据主要就是用户相关的数据,一句话概括就是“哪些用户做了什么动作”。这些数据可以分为两块,一块是用户的基本属性信息,主要包括:城市、地址、年龄、性别、经纬度、账号类型、运营商、网络、设备等等,一块是用户的行为信息,即用户的点击行为和浏览行为,在什么时间,哪个用户点击了哪个按钮,浏览了哪个页面,浏览时长等等的数据。
更加精细一点,就是5W1H模型进行数据的采集,who、when、where、what、how、why。

三、埋点的几种方案和类型

埋点方案:
目前的埋点方案有三种,分别是自埋点、第三方数据平台以及两者混合的埋点方式,对于初创企业来说,主流的方案是使用第三方数据平台,例如Talkingdata、友盟、神策、诸葛IO、Dataeye等,这种方式的有点在于平台有成熟的解决方案,能够减少很多的开发工作量,并且实现成本较低。自埋点适合于大型产品,自埋点采集到的数据更符合产品本身,结构清晰,易于修改,可定制化开发。
埋点类型:
就埋点而言,可分为前端埋点、后端埋点,后端埋点又可以拆分为日志数据及后台数据传输,前端埋点可拆分为代码埋点、可视化埋点、无埋点三种解决方案,各有各的优缺点。目前我们使用的主要是代码埋点,在指定控件位置加入代码采集相关数据。

四、埋点设计的过程

目前主流的埋点方案是基于事件的埋点方案,核心是将用户的行为抽象为一个个事件,比如,在电商中的商品详情页浏览事件,视频网站中的评论事件,阅读网站中的点赞事件。
埋点之初,必须考虑到用户的主行为链路是什么,这是埋点的核心,用户的一切浏览行为应当都囊括在主行为链路中。以一个电商的核心流程为例,启动 App - 浏览首页 - 浏览商品详情页 - 加入购物车 - 提交订单 - 支付订单,这样就拆分出来了6个主链路流程,接下来的埋点都需要基于该链路进行埋点。

0.明确分析目的

做埋点之前务必先明白的一件事就是埋点是为了什么?埋点的主要目的是为后续的数据分析采集数据,那么在埋点之前,你首先要明白你是为了分析什么,通过你要分析的内容倒推所需要的数据,再根据所需数据来设计埋点方案。
举个例子,假设新上线了一个活动,并为这个活动新建立了一个活动页,活动页内包含了多个商品,
img
那么我为了评估这个新上线活动的效果,肯定要从流量、转化率、销售金额、停留时长、跳出率、退出率等多个指标进行衡量,并且需要了解这个页面的用户都来源于哪里,所以,我们需要的数据是以下几个:
- 流量,有多少人进来浏览了这个页面
- 流量来源,这些人是从哪里来的
- 转化率,这些人有多少人购买了活动商品
- 销售金额,这些人总计买了多少钱的活动商品
根据以上需要的数据我们再设计埋点方案。

1.明确采集的目标行为

埋点,首先是需要根据业务分析需求明确采集的目标行为,再进一步搞清楚应该在哪些地方埋什么样的点。比如,如果想分析电商平台某个新上线活动页面的效果,那么我们要采集的就是用户在这个页面的访问及购买情况,再进一步拆分就是哪些用户通过哪些渠道访问了这个页面,最终有哪些用户成功购买了页面商品,我们只需要针对这个过程设计埋点。

2.确认事件和变量

当采集的目标行为确定之后,我们就需要对这个过程设计埋点了。还是针对新上线活动页面的效果进行埋点,电商的主行为链路为浏览页面-加购物车-提交订单-支付订单-评价商品,针对这条主行为链路,我们可以抽象出几个主要事件,分别是浏览活动页面、浏览商品页面、加购物车、提交订单、支付订单、评价商品,在这些事件中,还需要进一步拆分每个事件的具体变量,比如,浏览商品页面,我们需要知道浏览的是哪个商品的页面,所以还需要对该事件加入一个变量叫做商品名称,你可能还想知道用户进入到该页面的来源,那么可能还需要添加一个页面来源的变量。这样,一个完整的事件就设计好了,事件叫做浏览商品页面,包含两个变量,分别是商品名称、页面来源,之后交由技术人员实现即可。

3.明确事件的触发时机

事件的触发时机,往往是影响数据准确性的重要因素。以「加入购物车」事件为例,触发时机是点击这个按钮时,还是加入购物车成功时呢?并且由于页面来源存在多个,所以要采用MECE原则,即相互独立,完全穷尽,不要重复列举,但要包含所有入口。

4.规范命名

埋点的命名主要涉及到两部分,其一是埋点的事件名,其二是事件中携带的变量命名

(1)事件命名

针对事件的命名,应当遵循见名知意的原则,一般使用动词+名词的原则,比如加入购物车事件可命名为add_shaoppingcart,比如浏览商品详情页可命名为view_commoditydetails,按照这种原则进行事件的命名即可。值得注意的是,在整个产品的生命周期中,所要进行埋点的事件肯定不是一成不变的,后续还会进行各种各样的更新,所以,在事件名的基础上,还需要加入事件编号以及事件日期。

(2)参数命名

这里的参数指的是埋点事件所携带的变量,对于这种变量命名同样应当遵循见名知意的原则。
比如,页面来源使用source参数,还有一点,在给到source传递参数的过程中,也应当对传递的参数规则化命名,采用日期+渠道来源的方式。

五、结尾

接触埋点到现在也不过2个月的时间,有太多的内容还没有接触到,比如session是什么,怎么设置切割时间,怎么通过session切割计算跳出率和退出率,后续针对埋点这块儿还会继续更新。