​作者介绍

@hrd-0.618(栩梵)

新网银行数据分析师。

专注于数据分析、埋点采集及用户行为分析、BI 数据可视化。

“数据人创作者联盟”成员。

 

背景介绍

 

产品的精细化运营、千人千面的个性化推荐等各类业务,均依赖于标准化、高质量的埋点数据。但是,埋点数据的上送、解析、存储、分析的整个流程较长,涉及多团队协作,为了让感兴趣的读者有个整体认识,本节将结合工作实践,重点介绍 H5 埋点数据采集和应用的生命周期。

 

埋点采集内容

 

埋点采集内容主要包括两方面:前端埋点数据采集、后端埋点数据采集。前者主要包括 3 种事件类型:用户事件、页面事件、点击事件。后者主要包括:接口调用事件。事件通过“串联码”关联到一起。数据模型设计也以此 4 种事件为基础。详见下图。

埋点数据采集和应用生命周期_数据分析

 

 

埋点数据流向

 

埋点数据采集和应用生命周期_数据分析_02

 

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.1.1 用户行为查询

根据实时用户宽表,数据写入 Elasticsearch,或者写入数据对外接口,即可查询实时用户行为记录。

 

根据离线用户宽表,数据写入 Elasticsearch,或者写入数据对外接口,即可查询离线用户行为记录。

 

4.1.2 用户行为统计

根据 4 个事件 topic 数据,结合用户行为指标体系,通过聚合统计分析方法,得到不同维度的用户行为指标。

页面级:

    数据日期

    渠道名称

    操作系统

    日期类型:日、7日、30日、总计

    维度类型:页面/环节/渠道

    可视化字段:渠道名称、环节、页面名称、PV、UV、访问用户数、平均停留时长、页面跳出次数、页面跳出率

 

按钮级:

       数据日期

       渠道名称

       操作系统

       日期类型:日、7日、30日、总计

       可视化字段:渠道名称、操作系统、环节、页面名称、点击名称、点击次数、点击用户数

 

4.1.3 用户留存分析

维度:

       数据日期:2021-08-02

       渠道名称:如“xxx”,无汇总

       用户类别:汇总、新用户

       留存类型:产品级、功能级(页面、点击)(可下拉选择某个页面,或者选择某个点击)

       数据类型:留存人数、留存率

 

产品级,且选中留存人数

埋点数据采集和应用生命周期_数据分析_03

   

产品级,且选中留存率 

埋点数据采集和应用生命周期_数据分析_04

 

功能级:比如美团 APP,对使用 “单车” 功能的用户做留存分析。 

埋点数据采集和应用生命周期_数据分析_05

 

4.1.4 用户行为标签和客群筛选

构建用户行为标签,用于筛选目标客群。

 

根据客户实时/离线业务状态,在满足某种行为特征时,筛选出不同的目标客群给业务人员,通过营销平台做不同方式触达。

 

实时行为特征如:时间段内的点击次数、停留时长、页面访问次数等。

 

场景如:分别针对新客户/老客户、有存款客户、有提前支取记录客户,根据不同页面和点击的行为特征,设定不同营销策略。

埋点数据采集和应用生命周期_数据分析_06

 

对于产品品类少的企业,不同场景的客群,实时推送给业务人员,与营销平台联动,进行精准营销。

 

当然,对于产品品类较多的企业,如电商相关的场景,构建基于用户行为的实时推荐系统,是业界主流。

 

4.1.5 基于用户行为的断点触达

可结合实时、离线的用户行为和业务状态,对于存在行为断点的用户进行断点外呼或者其他方式触达。

 

结语

 

本文主要结合实际工作中的一些经历,做了简要概述,埋点采集主要是代码埋点,人工维护成本较大,后续可结合实际场景,采用业界更优的采集技术;用户行为分析也有待逐步完善,欢迎大家批评指正,感兴趣的小伙伴可以联系我,一起探讨。