如何做设计数据埋点方案
设计一个完整的数据埋点方案应该包含事件设计,属性设计、确定埋点数据采集方式以及确定数据上报机制四个方面
一、事件设计
1.常用的埋点事件
(1)点击事件
用户点击一次页面上的一个按钮就计一次数据,无论点击的反馈结果是否成功。例如用户购物车点击“去结算”一次,就记录一次点击数据,无论点击是否跳至订单结算页。
(2)曝光事件
用户成功加载进入一个页面并停留一定时间记录一次数据,具体停留多少时间记录一次需求根据需求自定义,例如可以定义为成功加载出来就记录一次,无论停留时间多短,此时定义的停留时间是0S。
(3)页面停留时长(Time on Page),简称Tp
用来记录用户在某一个页面的停留时间,一般是通过进入下一个页面的时间或退出需要统计的页面的时间减去需要统计的页面的进入时间。如t1时刻通过京东APP首页点击排行榜进入排行榜页,t2时刻由排行榜页点击某一个商品进入商品详情页,那么排行榜页的页面停留时间等于t2-t1。计算页面停留时间有很多需要注意的细节,在此不做讨论。
(3)APP启动、退出
2、事件抽象
事件是指追踪或记录的用户行为或业务过程,包含操作、属性和属性值,比如小王购买某一个商品这个事件,那么购买就是操作,与购买这个操作有关的人(小王)、事物(商品)以及她们的特征如小王的姓名、年龄、性别,购买的时间、地点,商品的名称、类型、数量等就是这个事件的属性,属性值比如年龄的取值,如25岁,地点为商场等。
按照事件的三要素要求,我们可以根据业务场景和用户行为去定义每个事件。在上一部分我们梳理了产品的逻辑和业务流程,可以抽象出以下事件:
(1).用户在京东APP首页点击排行榜
(2)用户从点击排行榜分享链接
(3)用户浏览排行榜
(4)用户点击活动banner
(6)用户分享排行榜
(7)用户浏览商品详情页
(8)用户加入商品至购物车
(9)………………
以用户在某一个页面的每一个操作去定义事件。由于每个行为作为一个事件,如果一个个列出来,看起来毫无逻辑,一般同种属性的多个事件命名成一个埋点事件,不同属性的事件尽量命名为多个埋点事件,比如上面的有点击和曝光事件的类型,可命名为为click和open两个事件,同时将点击的每个页面作为点击事件的属性。总之,需要对事件进行结构化的分类,使之更好的管理和查询。
二、属性设计
事件的属性设计可参考4W1H的方法来分析,将每个事件按照who,when,what,where,How等维度来记录。
以用户从排行榜页点击某一个事件为例分析事件的属性:
Who:即参与此事件的用户有哪些属性,如用户ID,操作系统,应用版本等。同一用户以不同的身份状态在不同的操作端登录时均可以识别,需要一整套的用户标识原理及用户标识方案
When:即事件发生的时间;即事件的时间属性。
What:描述一个事件具体是什么。明确事件的范围,此事件中具体是商品的点击;
How:用户如何实现这个事件的,指的是用户从事此事件的方式,关联与事件强相关的属性,如用户商品,包含商品的摆放排名,商品类目,商品的价格等等;
Where:IP,国家,省,市,区等用户的操作属性
每个事件均涉及到用户属性,时间属性,商品属性,操作属性,可将这些属性统一为公共属性处理。
属性的取值可以分为自定义取值与固定取值。如时间戳的属性为固定取值,用户类型属性的取值,可以自定义,如可以分为高水平用户和低水平用户,以消费金额达300元以上为高水平用户,否则为低水平用户。
三、确定埋点数据采集方式
1.常见的埋点方式:
按照埋点的地点可分为:前端埋点和后端埋点。从埋点方式还可分为:代码埋点、可视化埋点、全埋点:
四、数据上报机制
前端触发上报:如业务方想了解用户的支付意愿,点击“去支付”按钮就触发
前端获取后端结果后上报:这种方式除了要获取用户操作的结果,如支付,需要拿到后端结果判断用户是否支付成功以及支付失败的原因;
后端触发就上报:后端处理后直接上报,优点是不会漏报,但是获取不到前端用户的设备终端及软硬件环境属性
后端获取前端属性且触发后上报:这种情况是为了解决后端埋点的软硬件环境属性问题。如用户点击去支付,后端获取前端用户的软硬件环境属性,后端发生支付成功后,带上前端用户的软硬件环境属性一并上报,这种方式优势是准确定较高,缺点是前后端接口均需变更,成本较高。
五、埋点的误区
1.埋点简单设计即可:埋点的数据采集合理性,完整性直接影响到数据的完整性,准确性,进而影响数据分析的结果,切不可简单粗暴。
2.全部采用一种埋点方式:应当根据业务目标,合理选择埋点方式,对于需要频繁上线更新运营活动的情况,选择可视化埋点或者无埋点更合适,对于产品较为复杂,需要满足不同业务需求的情况,更适合选择代码埋点。
3.埋点越多越好:梳理埋点需求时可以做加法,但是埋点设计时,应当适当做减法,充分分析埋点的必要性,尽量用最少的埋点采集达到业务数据需求及分析的目的。
4.埋点过于追求准确性:充分考虑埋点的成本和系统适用的情况,对于一些数据精确度要求不那么严格的需求,可考虑放弃一些精确度而选择较为方便的埋点方式。