作者|栩梵

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 结语

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

-END-

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。