其他分享
首页 > 其他分享> > 数据人该知道的埋点体系(一)

数据人该知道的埋点体系(一)

作者:互联网

作者介绍

杭州@阿坤
母婴电商行业数据分析师兼数据产品经理
致力于研究电商行业的数据驱动增长以及数据产品从0到1的搭建

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



前言


埋点是将用户在App或者网页上各种行为记录下来并且上报的机制。埋点能有效的记录用户各式各样的行为,帮助我们更好的了解用户在我们平台的上行为习惯和使用体验,也能使我们朝着正确的方向迭代产品。本文将向大家介绍埋点的各个核心知识点。


埋点数据流向


5246feb130aa33f03b6f6c6530669105.jpeg

埋点日志数据流向流程图


1.1 SDK 数据采集&上报


我们公司基于阿里云的开源SDK进行了二次开发,以适配与公司的业务情况。SDK的作用是将采集用户行为并且上报的代码进行打包成一个方法,各个埋点都通用采集的数据统一处理,个性化的采集数据进行抽象化。以便于开发能够快速高效的处理埋点任务。目前我们有iOS SDK、 Android SDK 、web SDK、小程序SDK这4个平台的埋点采集SDK。


SDK通用采集的数据主要有:



SDK采集主要就是以上的通用信息以及自定义的埋点信息(比如:页面、行为、用户Id等等)


1.2 日志实时采集与消费(LogHub)


我们使用了阿里云的LogHub服务进行日志采集与消费。LogHub主要功能:



9beb20572651784b050fad141db4dedf.jpeg

LogHub简介


1.3 日志初步清洗(LogHub-etl )


这一步的作用对日志进行一次简单的清洗。主要对加密的日志进行解密处理,变成可阅读的样式。对ip地址进行解析,处理成真正的位置信息。对最外层的json解析成各个字段。


1.4 投递数仓(LogShipper)


数据在日志系统后,我们需要将日志投递至存储系统中,这里我们也采有阿里云的数仓投递服务LogShipper。阿里云LogShipper服务算是一个稳定可靠的日志投递。将日志中枢数据投递至存储类服务进行存储。支持压缩、自定义Partition、以及行列等各种存储方式。


ad37cd6d283b9696837975d13ec80f9c.jpeg


1.5 数仓ODS层


在数仓ODS层中进行针对性的清洗工作,主要清洗步骤如下图所示:


7e117b5c85920efc6dc2fc53b90f9fde.jpeg

ODS层日志清洗流程图


1.6 数仓DW层


在数仓DW层各个业务的数据开发同学基于各个业务的情况处理出一些DW层级的日志表给数据分析的同学进行使用。


1.7 数仓ADS层


数仓的ADS层也就是数据应用层,是数仓中对外展示的部分。也就是运营产品日常工作使用的数据报表或者后台数据看板等等。在这一层也就是基于业务的需要,对用户行为日志进行各种统计汇总成数据指标进行分析。


埋点设计思路


如何利用埋点完整的记录和描述用户的一次行为,我们公司目前采用的事件模型来记录。


2fa5aee8e8918ddda30563ad5f368289.jpeg

埋点事件模型


事件模型的埋点数据结构完整地描述了Who、When、Where、How 和 What 五个要素。

Who、When、How 由一般由埋点 SDK 自动生成,埋点设计人员在绝大多数情况下不必关心这三个要素,因此设计的核心是Where,What。



接下来重点来介绍这些核心参数的含义:


1). Page


Page定义:app 中的各个页面的页面名称



2). Bhv_Type


Bhv_Type定义:具体的用户行为,我们称之为‘事件’,分为:



页面事件和App事件一般比较少,基本上可以枚举。我们重点在来介绍下内容事件。



3). LogTrackInfo


LogTrackInfo定义:是server给出的埋点信息的载体,由参数和参数组组成。主要包括如下部分:



4). LogExtInfo


LogExtInfo定义:包含客户端上传的本地信息。客户端专用参数具有双向唯一性,即Duration只返回时长,返回时长只能用Duration。


以上4个埋点业务自定义内容参数就是埋点设计时核心的设计内容,基本能描述清楚90%以上的用户行为,另外复杂的用户行为还可以增加额外的参数来描述,这边就展开讲解。


下期预告


本次文章分享了埋点体系里的2大块内容,下期还将继续和大家分享埋点系统的另外部分。敬请期待哦!




标签:体系,数仓,人该,用户,埋点,页面,日志,SDK
来源: https://blog.51cto.com/u_13526224/2774962