作者介绍
@hrd-0.618(栩梵)
新网银行数据分析师。
专注于数据分析、埋点采集及用户行为分析、BI 数据可视化。
“数据人创作者联盟”成员。
1 背景介绍
产品的精细化运营、千人千面的个性化推荐等各类业务,均依赖于标准化、高质量的埋点数据。但是,埋点数据的上送、解析、存储、分析的整个流程较长,涉及多团队协作,为了让感兴趣的读者有个整体认识,本节将结合工作实践,重点介绍 H5 埋点数据采集和应用的生命周期。
2 埋点采集内容
埋点采集内容主要包括两方面:前端埋点数据采集、后端埋点数据采集。前者主要包括 3 种事件类型:用户事件、页面事件、点击事件。后者主要包括:接口调用事件。事件通过“串联码”关联到一起。数据模型设计也以此 4 种事件为基础。详见下图。
3 埋点数据流向
3.1数据上送至日志采集服务
前端+后端——>日志采集服务
前、后端数据以类 json 的格式,实时异步送行为事件到日志采集服务进行解析。
3.1.1 用户事件:user
{
data:[{
userid:用户唯一标识ID
,equipment:{ //header中获取,包括浏览器、设备、网络等
equipment_os:操作系统
, equipment_os_version:操作系统版本
, equipment_brand:品牌
…
}
,location:{
gps:{
gps_lon:经度
,gps_lat:维度
,gps_country:gps国家
,gps_province:gps省
,gps_city:gps市
,gps_district:gps区
}
,ip:{
…
}
}
}]
,time:时间
,cookie:串联码
,event_type:user
,from:{
channel:渠道
,product:产品
}
}
3.1.2 页面事件:page
{
data:[{
page_id:页面ID
,page_name:页面名称
,page_url:页面url
,src_page_url:来源页url
}]
,time:时间
,cookie:串联码
,event_type:page
,from:{
channel:渠道
,product:产品
}
}
3.1.3 点击事件:click
{
data:[{
click_id:点击ID
,click_name:点击名称
,click_other_attr:{
remarks:备注
…
}
}]
,time:时间
,cookie:串联码
,event_type:click
,from:{
channel:渠道
,product:产品
}
}
3.1.4 接口事件:interface
{
data:[{
interface_id:接口ID
,interface_name:接口名称
,result:接口调用结果
,result_remarks:接口调用说明
,response_time:接口响应时长
}]
,start_time:接口调用开始时间
,end_time:接口调用结束时间
,cookie:串联码
,event_type:interface
,from:{
channel:渠道
,product:产品
}
}
3.2实时数仓建模
日志采集服务——>实时数仓(kafka)
3.2.1 基础字段处理
a. 将日志采集服务采集到的 4 种事件的 json 数据进行解析,得到 4 个事件的基础字段,并实时写入 kafka 消息队列的 4 个 topic 中。
b. 通过 Flink/StreamSQL,实时或者微批消费 4 个 topic 数据,存储至 4 张 Hbase 表中。
3.2.2 用户事件关联至行为事件
消费 user 事件 topic,根据串联码 cookie,将用户信息关联至行为信息,构建实时用户行为宽表。
3.3离线数仓建模
3.3.1 贴源层
通过 ETL 抽取 4 个事件 HBase 表。
3.3.2 模型层
根据贴源层 4 个事件的串联码 cookie,将用户信息关联至行为信息,构建离线用户行为宽表。
4 埋点数据应用
4.1.1 用户行为查询
根据实时用户宽表,数据写入 Elasticsearch,或者写入数据对外接口,即可查询实时用户行为记录。
根据离线用户宽表,数据写入 Elasticsearch,或者写入数据对外接口,即可查询离线用户行为记录。
4.1.2 用户行为统计
根据 4 个事件 topic 数据,结合用户行为指标体系,通过聚合统计分析方法,得到不同维度的用户行为指标。
页面级:
数据日期
渠道名称
操作系统
日期类型:日、7日、30日、总计
维度类型:页面/环节/渠道
可视化字段:渠道名称、环节、页面名称、PV、UV、访问用户数、平均停留时长、页面跳出次数、页面跳出率
按钮级:
数据日期
渠道名称
操作系统
日期类型:日、7日、30日、总计
可视化字段:渠道名称、操作系统、环节、页面名称、点击名称、点击次数、点击用户数
4.1.3 用户留存分析
维度:
数据日期:2021-08-02
渠道名称:如“xxx”,无汇总
用户类别:汇总、新用户
留存类型:产品级、功能级(页面、点击)(可下拉选择某个页面,或者选择某个点击)
数据类型:留存人数、留存率
产品级,且选中留存人数
产品级,且选中留存率
功能级:比如美团 APP,对使用 “单车” 功能的用户做留存分析。
4.1.4 用户行为标签和客群筛选
构建用户行为标签,用于筛选目标客群。
根据客户实时/离线业务状态,在满足某种行为特征时,筛选出不同的目标客群给业务人员,通过营销平台做不同方式触达。
实时行为特征如:时间段内的点击次数、停留时长、页面访问次数等。
场景如:分别针对新客户/老客户、有存款客户、有提前支取记录客户,根据不同页面和点击的行为特征,设定不同营销策略。
对于产品品类少的企业,不同场景的客群,实时推送给业务人员,与营销平台联动,进行精准营销。
当然,对于产品品类较多的企业,如电商相关的场景,构建基于用户行为的实时推荐系统,是业界主流。
4.1.5 基于用户行为的断点触达
可结合实时、离线的用户行为和业务状态,对于存在行为断点的用户进行断点外呼或者其他方式触达。
5 结语
本文主要结合实际工作中的一些经历,做了简要概述,埋点采集主要是代码埋点,人工维护成本较大,后续可结合实际场景,采用业界更优的采集技术;用户行为分析也有待逐步完善,欢迎大家批评指正,感兴趣的小伙伴可以联系我,一起探讨。
网友评论