数据埋点方案设计
数据埋点方案设计也是数据分析师的工作内容之一,下面为学习过程记录:
一、数据埋点方式及数据上报技术
1、数据埋点方式
数据埋点方式依据位置不同,可以分为前端埋点和后端埋点。
- 前端埋点通过SDK( Software Development Kit 即 软件开发工具包)方式采集数据,为减少移动端的数据流量,通常对采集到的数据进行压缩、暂存、打包方式上传。对于不需要实时上传的数据,一般在有Wi-Fi时上传,因此会出现数据上报延迟、漏报的情况。
- 后端埋点通过调用API的方式来采集收据,使用内网传输信息,一般不会因为网络问题导致数据漏报情况;只要客户端向服务器发送请求,服务器就能采集到相应数据。
- 差异点:(1)及时性:相较于前端埋点,后端埋点能够实时采集数据,不存在延迟上报;(2)准确性:后端埋点采集数据更加准确,不会因网络问题导致漏报;另外,后端埋点支持用户身份信息与行为属性信息的整合;以及后端埋点新上线或更新时可以即时生效。
2、数据埋点能够采集到哪些用户数据?
- 设备的硬件信息,如设备品牌、型号、主板、CPU、屏幕分辨率
- 软件能力,就算未点击网页或APP,竖屏、横屏、摇一摇的操作也会被记录
- 数据权限,例如相册、通讯录、GPS在注册或登录时会弹出让用户授权,若用户授权就可采集到这些信息
- 用户行为,只要用户对网页或APP进行操作,行为都会被记录下来
3、数据上报技术
- 客户端上报(异步上报),用户在客户端进行操作时,客户端会向服务端发送HTTP请求,同时将数据上报至服务端。(若用户操作一次,客户端上传一次,对服务器的压力是极大的)一般客户端会将用户数据积攒起来,在某个节点客户端会将数据包上报给服务端。
- 服务端获取,当服务器在应答客户端的请求时,也能获取一些基本信息,包括浏览器型号、版本号、IP地址、屏幕分辨率等。
二、数据埋点方案设计步骤
数据分析师为什么要参与埋点呢?埋点是统一数据口径的一个重要环节,例如:
运营:一场“拉新”活动后,运营人员拿着两个团队维护的报表数据来问数据分析人员,为什么两份报表统计出来的DAU不一致呢?
数据:两份报表的统计口径一致吗?最小统计维度一致吗?
数据:DAU是以全局用户唯一编号或设备唯一编号为最小统计维度。而且即使统计口径一致,埋点和数据上报方法也有区别。
后来发现两个团队使用的最小统计维度不一致。
值得注意的是,统计口径的差异不仅仅出现在报表统计阶段,在数据埋点阶段也会出现口径不一致的情况,触发事件的条件、数据埋点的方式、数据上报方式不同都会造成数据不一致的情况。
在数据埋点工作中,数据分析师应立足当前的数据需求,提炼出数据指标方案,并且构思这些数据指标需要哪些数据(这些数据当然也是需要埋点的数据),从而来推动数据产品升级与改善。数据埋点方案设计步骤如下:
1、确定事件与变量
事件:指产品的功能与用户的操作
变量:描述事件的属性或关键指标
确定事件与变量可以通过AARRR模型或UJM模型进行逐步拆解,理清用户生命周期及行为路径,抽象出每个步骤的关键指标。
2、明确事件的触发时机
不同的触发时机代表着不同的事件计算口径,因此触发时机是影响数据准确性的重要因素。
比如,以用户付款为例,是以用户点击付款界面为触发条件呢?还是以成功付款为触发条件呢?两者口径不一样,数据相应会有一定差异。
3、数据上报机制
数据上报机制也是影响数据准确性的关键因素之一。当选择客户端上报数据时(异步上报)时,可能会因为网络问题出现数据包漏传情况,结合实际情况,确定数据是实时上传还是异步上传。
4、统一表结构
统一表结构,可便于内部进行数据管理和提高数据复用性,建议在内部形成一套统一的数据结构规范。
5、统一字段命名规范
建立数据字典,统一命名规范,例如确保同一变量在所有数据表中都使用统一的字段名。
6、明确优先级
数据埋点是为数据应用做铺垫的,可以结合报表的优先级、埋点技术、实现成本及资源的有限性,来确定埋点的优先级。
三、具体实例
以某电商平台的成交为例,来梳理埋点方案设计流程:
(1)确定事件与变量----(2)确定事件触发时机----(3)确定数据上报机制----(4)统一表结构----(5)统一字段命名----(6)明确优先级
使用UJM模型将用户的行为路径分为注册、登录、商品点击、页面详情浏览、加入购物车、生成订单、订单支付等步骤。
根据产品经理的需求,确定每一个步骤需要哪些字段才能实现数据需求。
最终数据埋点文档:
事件名称 | 事件说明 | 所属层级 | 触发条件 | 属性英文变量名 | 事件属性说明 | 属性值类型 | 属性值示例 | 上线版本 | 优先级 |
user_info | 用户基本信息 | user |
事件行为发生时 (用户登录时) |
account_id | 用户id | int | 10001 | AP | P0 |
account_nickname | 用户昵称 | str | 哈哈 | ||||||
region | 地区 | str | CN | ||||||
ip_region | 子地区 | str | BJ | ||||||
device_id | 设备id | str | dect1567 | ||||||
account_level | 用户等级 | int | 4 | ||||||
commodity_exposure | 商品曝光 | action | 商品曝光时 | commodity_id | 商品id | int | 3002 | P2 | |
commodity_name | 商品名称 | str | 铅笔 | ||||||
commodity_price | 商品单价 | int | 5 | ||||||
store_id | 店铺id | int | 2009 | ||||||
position_id | 坑位id | int | 1006 | ||||||
position_num | 坑位位置 | str | 6 | ||||||
commodity_click | 商品点击 | 商品点击时 | commodity_id | 商品id | int | 3002 | P2 | ||
store_id | 店铺id | int | 2009 | ||||||
commodity_name | 商品名称 | str | 铅笔 | ||||||
commodity_browse | 商品详情页浏览 | 商品详情页浏览时 | commodity_id | 商品id | int | 3002 | P1 | ||
store_id | 店铺id | int | 2009 | ||||||
commodity_name | 商品名称 | str | 铅笔 | ||||||
add_to_cart | 加入购物车 | 加入购物车时 | commodity_id | 商品id | int | 3002 | P1 | ||
store_id | 店铺id | int | 2009 | ||||||
commodity_name | 商品名称 | str | 铅笔 |
(转载请注明出处)