有赞埋点实践

上网导航 2023-10-15 310 0条评论
摘要: 一、前言大数据应用一般会有采集、加工、存储、计算及可视化这几个环节。其中采集做为源头,在确保全面、准确、及时的前提下,最终加工出来的指标结果才是有价值的。...

一、前言

大数据应用一般会有采集、加工、存储、计算及可视化这几个环节。其中采集做为源头,在确保全面、准确、及时的前提下,最终加工出来的指标结果才是有价值的。

而埋点作为一种重要的采集手段,可以将用户行为信息转化为数据资产,为产品分析、业务决策、广告推荐等提供可靠的流量数据支持。

在业务需求少的情况下,可以运用一些简单的方法快速采集用户行为。但如果业务线、终端众多,数据需求多样,就需要设计好埋点模型和采集规范,工具化、平台化、流程化的管理来保证埋点的质量。

二、事件模型

首次需要思考的是,如何描述和记录用户的一次行为。这里我们使用的事件模型,即:

我们设计了可以承载以上信息的日志模型,并保持必要的可扩展性,将数据映射到schema的各个字段中,一次行为便完整的记录下来。

三、采集方式

数据模型设计好后,接下来要考虑的是如何将客户端内的用户行为数据采集到服务端,这里主要依赖于客户端提供的监听能力。

目前有赞支持两种采集方式:

3.1 无痕埋点(或全埋点)

利用浏览器或APP自带的监听方式,对用户的浏览页面、点击等行为进行收集,可以收集到的信息主要有:

无痕埋点的优势有:

但同时也会存在以下问题:

无痕埋点在有赞一般用来做粗粒度的快速业务探索。

3.2 代码埋点

代码埋点是指依赖前端同学,自定义监听和收集处理。代码埋点的优势有:

随之而来的是以下问题:

在业务需求复杂,无痕埋点收集到的信息无法支持分析时,就需要进行代码埋点。

四、埋点sdk

为简化前端同学的埋点开发工作,使其只需要关注于业务本身,并对埋点的一些约定进行必要的约束,有赞开发了多个端(js/小程序/android/ios/java)的埋点sdk。

sdk默认支持以下功能:

前端同学通过sdk提供的接口进行开发,只需要关注:

五、日志中间

数据收集上来后,原始日志还处于非常精简的状态,需要进一步加工成日志中间层,主要有以下几个环节:

实时流中间层是以JSON格式存储在kafka中,并且提供对应的JavaBean类,方便实时任务开发解析处理,并且也可以与streamSql相结合使用。

离线中间层是存储在同一个表中,字段与实时流格式保持一致,以日期和业务作为分区条件,并会自动创建所有业务的视图表,方便中间层的统一调整以及数仓的权限管理。

到这个阶段,有了通用的日志模型和sdk,埋点工作可以标准化的开展起来。但随着承接的业务越来越多,更多的问题在等待着我们。

六、位置追踪规范

在精细化运营及算法推荐等应用场景下,需要非常精确掌握行为发生的位置场所。如果每个业务都自定义一套标识方式,那么每次分析工作都需要重新开发,无法复用逻辑,这将极大的浪费开发资源,因此需要制定出统一的位置规范。

有赞埋点实践

我们将位置分成了四个粒度:

业务 + 页面域 + 组件域 + 展位域 + 页面随机码,可以唯一确定一个访问的位置。基于位置分解出来的维度组合,可以很方便的分析出各个粒度的访问、曝光、点击数据。

类似的还有算法追踪规范,在此不作展开。

七、埋点管理平台

有赞的早期阶段,所有业务的埋点方案都是记录在wiki中。随着业务线和项目的快速增加,wiki记录的弊端也逐渐暴露出来:

基于开发中碰到的各类问题,愈发的让我们意识到平台建设的必要性,主要涉及以下几点能力:

当有了埋点元数据,可以延伸出来更多的操作空间,如:

7.1 埋点元数据管理

根据事件模型及位置追踪规范,我们将元数据的组成分为业务、页面、组件、展位、事件

有赞埋点实践

有赞埋点实践

7.2 项目流程管理

当一个新项目启动时,会有对应的一批埋点需求,为了方便PM管理与追踪进度,以及日后的质量反馈,需要有项目级的管理功能来支持。

埋点项目可以涉及多个业务,由PM/前端/数据/BI/测试等共同参与,并跟踪从立项到评审、设计、开发、联调、上线等各个阶段。埋点项目组织了埋点需求相关的页面、组件、展位和事件。

有赞埋点实践

7.3 埋点测试

上线前的埋点测试直接关系到数据质量,早期测试是使用抓包工具,每个事件肉眼判断,不仅效率低下,而且容易判断错误或遗漏。因此当元数据收集完成之后,为了解决以上问题,我们设计了埋点在线测试功能。

有赞埋点实践

1、测试用户输入项目和用户标识,在线测试模块会将用户标识存储到redis中

2、校验任务消费实时日志,并定时同步埋点元数据和用户标识集合,以此校验日志并收集到埋点平台中

3、将收集到的实时日志返回给用户

4、项目已测试的事件进行汇总,生成概览数据

日志检测项

检测等级分为Warning/Error级别,会有相应的错误信息。

测试结果

有赞埋点实践

使用不同图标来标识检测状态,并且给出本轮测试的汇总数据。

项目测试概览

有赞埋点实践

汇总项目中所有事件的测试状态,并给出失败事件的明细日志。

用户标识

为了方便测试同学快速找到自己的用户标识,平台提供了pc链接、手机扫码、手机号等快捷查找方式。

有赞埋点实践

7.4 质量监控

测试的覆盖面不全,或者系统日常的开发迭代,都有可能会导致线上埋点的质量问题。早期常常会出现这样的场景:

开发同学误修改一段代码,导致线上埋点事件丢失,很长一段时间后,运营同学发现某个指标波动异常,逐层查询,最终定位问题,但这期间的数据已无法恢复。

为了避免这种情况一而再,再而三的发生,就需要对线上的流量日志实时监控起来,并且第一时间反馈到相关负责人。

文章版权及转载声明:

作者:上网导航本文地址:https://www.90xe.com/post/5936.html发布于 2023-10-15
文章转载或复制请以超链接形式并注明出处技术导航

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏