金融支付行业埋点治理实践

一、背景

笔者在国内某金融支付平台大数据部门做埋点管理工作,主要对App产品以及集成的众多业务线应用做埋点需求对接、埋点方案设计以及测试验证等工作。在工作期间中,经历了埋点粗放式管理到标准化治理的全过程,今天和大家做一下分享,希望对奋战在埋点工作一线的同学们有帮助。

二、现行埋点系统

公司内部使用神策分析系统进行埋点管理和数据分析。神策分析系统的系统架构图如下所示:

神策分析系统的埋点管理功能,主要采用“事件”模型,主要管理事件、事件属性、用户属性等元数据,这种方式无法满足我们的埋点工作要求,主要体现在三个方面:

首先是元信息追溯能力,即业务方无法回溯埋点元数据的变更,只能查询当前最新的埋点元数据信息。

其次是需求管控的能力,即当业务部门进行版本迭代时,可以设计和管控当前版本需要的埋点元信息,由此可以了解到不同版本下新增、修改、删除了哪些埋点。这样对于增量埋点,就可以做元数据层面的管控。

最后是埋点的验收与保障,由于初期以功能开发为主,埋点比较混乱,很多情况都是端上开发自行埋点,并且由于历史原因埋点已没有归属,存在僵尸埋点,而增量埋点质量也没有良好的测试。

三、埋点工作面临的问题

随着业务和应用越来越多,埋点规模越来越大,原有的埋点管理功能,渐渐不能适应多产品多业务的规范化集中管理,开始出现一些问题:

1、采集数据不规范,各业务部门自由定义,不利于统一分析。

自定义的埋点事件、事件属性和用户属性,是各产品部门自己维护的,但由于缺乏通用的埋点规范,各部门定义的字段规则不一致,同名不同义、同意不同名等问题频繁发生,导致数据质量很差,尤其是做联合分析时,计算口径经常对不上。

2、缺乏模板和规范,开发埋点容易出错

开发的同学往往对采集SDK的学习和使用不太上心,导致经常出现埋点错误、触发时机不对等问题,有时需要反复修改,开发效率很低。

3、对埋点进行测试比较麻烦,缺乏相关工具

神策分析系统虽然提供了埋点调试工具,但主要是给开发人员自测用的。产品进入到测试阶段时,通常对埋点的测试采用抓包和查数据库两种方式,但无论哪种方式,需要人工去核对校验埋点数据的错埋、漏埋、重埋等问题,效率极低且容易出错。

4、埋点从定义、开发、验证到上线的流程缺乏

通常完整的埋点工作流程包括:埋点需求对接、埋点方案设计、插码开发、埋点验证以及上线。但整个过程目前是通过产品侧同学发起,大数据部门、研发部、测试部配合,期间需要反复开会沟通,成本很高。缺乏一套标准规范化的流程来约束和简化沟通协作。

5、埋点上线后,数据出现异常发现不及时

埋点上线后,也经常会出现数据异常波动以及数据字段不合法的情况,这些问题往往在使用时才能发现,缺乏一种监控预警机制,能够尽快发现问题,通知相关人员解决。

6、埋点方案文档维护,不利于统一管理和追溯

埋点工作的核心产出“埋点设计方案”,之前是各部门用文档的形式进行维护。随着产品版本的迭代升级,同一个业务产品往往会有很多埋点设计方案,从这些文档中查询历史埋点的定义会非常麻烦。

7、埋点方案文档维护,不利于统一管理和追溯

四、埋点治理实践

为了解决上述问题,我们从两个方面进行改进:制定埋点规范和借助平台工具。

(一)制定埋点规范

1、埋点命名规范

之前埋点管理采用神策的“事件”模型,就是用户+物品+事件的集合体,这也是神策分析底层的数据模型:user+item+event模型。

具体来讲,what代表的是event,where代表位置,在app的初始阶段,我们可能只需要关注到页面粒度,即event发生在某个page,但是随着业务的发展以及对精细化分析能力的要求,where的关注粒度可能需要进一步下沉,在app上,体现的就是不仅仅要知道event发生的page,还要细化到改page下具体的楼层和具体的点位,也就是具体的评估指标从页面级精细化到楼层和坑位级别。

因此,我们在事件模型的基础上,采用了类似阿里的SPM模型(Super Position Model),从站点、业务、页面、区块、展位多个层级定位埋点。

  • 站点:对应神策分析系统中的一个项目;
  • 业务:对应不同的业务应用;
  • 页面:指应用下的原生或Web页面,其下面可以包含区块、展位和埋点
  • 区块(全局区块):一个页面上的区域或多个页面的全局区域,其下可以包含展位和埋点;
  • 展位:区块下面的具体的埋点位置,比如一个区块下的某个按钮,其下可以包含埋点;
  • 埋点:对应实际开发的埋点定义,包括事件类型和其他各类属性字段。每一个埋点有一个唯一的埋点标识ID区分,埋点标识ID的格式定义如下:a<业务码>.b<页面ID>.c<区块ID >.d<展位ID>_<埋点ID>.<事件类型>,其对应的埋点全称格式为:业务名称-页面名称-区块名称-展位名称_埋点名称-事件类型

2、埋点事件类型管理

由大数据部门统一管理维护所有的埋点事件类型,不再由各部门自己维护。各部门设计埋点时,尽量从已有的事件类型中选择。如果确实需要自定义事件类型,则需要申请创建新的事件类型,由大数据部门审批通过后上线。

3、埋点属性管理

由大数据部门统一管理维护所有的埋点属性,不再由各部门自己维护。埋点属性可以设置严格的验证规则,比如:长度验证、数值范围验证、枚举值验证等,对埋点属性值进行规范。

埋点属性分为SDK内置属性、平台内置属性、全局属性和事件关联属性四类。其中,SDK内置属性是神策采集SDK内置的事件属性和用户属性;平台内置属性是埋点标识、页面、区块、展位等SPM信息相关的属性;全局属性是所有的事件类型都可以使用的属性;事件关联属性是只有特定事件才能使用的属性。

各部门设计埋点时,尽量从已有的属性中选择。如果确实需要自定义属性,则需要申请创建新的属性,由大数据部门审批通过后上线。

(二)埋点管理平台建设

我们希望应用工具去做SPM模型支持、规范化业务流程以及提升开发测试的效率,内部开发了一款埋点管理工具,从规范埋点工作流程、埋点设计版本管理、埋点方案自动生成、埋点测试和埋点监控等方面,帮助提升埋点工作的质量和效率。

1、规范埋点工作流程

我们制定了一套埋点工作流程,并固化在埋点管理平台上。工作流程图如下:

  • 埋点需求pm

负责提出并且设计埋点需求、并且测试验收要求:具备基本的数据分析思维,了解埋点设计,了解埋点数据如何应用。

  •    业务需求对接人

负责该业务板块的埋点审核统筹工作要求:原则上由事业群数据人员担任。具备完整的埋点设计、分析思维,了解埋点开发原理,了解业务需求。

  •  大数据审核

大数据部门从数据规范角度审核埋点需求是否合规,此步骤非必需。

  • 开发人员

负责实施埋点采集工作要求:了解埋点采集开发原理、了解数据上报机制、能够自查埋点数据上报

  • 测试人员

负责测试埋点数据是否符合需求要求:了解埋点需求、了解埋点数据流程。

除此之外,维护埋点管理平台还有两个角色:

  • 大数据管理员

负责埋点管理平台和行为分析平台的运营配置;负责埋点指导文档的更新和宣讲;负责业务、站点的划分规则,属性、事件类型、事业群、用户角色等管理工作;负责指导事业群埋点全流程工作

  • 技术部SDK管理员

负责更新维护sdk使用文档;负责对接开发人员的使用咨询及排障;负责采集相关规则的优化等工作

2、埋点设计版本管理

通过在埋点管理平台上创建埋点需求来进行埋点设计。埋点需求通常对应埋点设计方案,每个埋点需求对应一个埋点版本。新的埋点需求在历史埋点需求基础上,进行具体的埋点设计和定义。

http://docs.eship.com.cn/assets/images/tracking-requirement-3_2-c3f588564b8a930c7feb78c1c7d64407.png

埋点设计过程中,支持设置公共属性、从其他需求复制埋点等方式,来提升埋点设计工作的效率。

对于上线的埋点需求,可以通过埋点管理平台追溯任意历史埋点需求的埋点,查找非常方便。

http://docs.eship.com.cn/assets/images/tracking-map-2_3-e6820e3a4456e905a85db5002b445d03.png

3、埋点方案自动生成

根据产品同学设计的埋点需求,可以通过平台自动生成埋点开发方案,即针对埋点需求中每个埋点生成开发指导文档,包括:埋点位置、埋点时机、示例代码、注意事项等。开发的同学不用了解SDK,按照说明拷贝代码,做一些简单修改就可以了。

4、埋点测试工具

为了让上报变得更准确,平台提供埋点测试工具,埋点测试的时候能够快速精准、半自动甚至是全自动能够发现业务上报的问题点在什么地方。

在埋点设计的时候,根据业务的需求抽象为埋点定义,这部分会录入到结构化的埋点管理工具当中,埋点管理工具去生成测试校验的规则,比如枚举空值、默认值以及值范围等等。

除了对当前埋点需求做测试,也支持对以前的重要埋点做回归测试,确保本次埋点工作不影响之前的埋点。

5、埋点监控

通过增量埋点和存量埋点的监控能力,可以了解埋点的情况和趋势,及时发现数据异常。通过实时监控,可以对埋点的数据质量进行可视化呈现。

现在的埋点依赖于神策服务,对于梳理出来的一些无效埋点,通常可以直接在最前端拒绝掉,或是反馈给业务,让业务做处理。

五、未来展望

通过制定埋点规范和推行埋点管理平台,让我们的埋点工作相比以前更加有序和高效,数据质量也有了很大的提升。后续我们计划推进如下两方面的工作:

  • 存量埋点改造

由于历史问题,还有很多存量埋点需要使用旧的管理方式,后续将通过对埋点分级,分阶段完成存量埋点的改造。

  • 采集SDK能力升级

目前神策采集SDK虽然能满足我们大部分场景的采集需求,但还是有一些特定事件和属性的采集,是各部门开发同学自行实现的,我们计划将具有普遍性的采集需求,封装到采集SDK中,便于在各部门之间规范和重用。比如:页面前向三级来源、页面停留事件、App压后台事件、App返前台事件等。

本文由网舟科技提供发布支持,转载请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值