埋点梳理

埋点梳理

Tags
前端
开发记录
Published
February 10, 2021
Author
LIAOKUN
随着日常开发工作推进,接触到了集团中各个前端团队的工程,发现不同团队对于埋点开发都基于不同的埋点规范封装了各自的方法,甚至同个团队内部还存在多个埋点工具;这不利于新人快速上手埋点开发,而且多套埋点规范也不利于业务埋点的维护:产品和数据开发在进行跨项目埋点制定时需要对照多套埋点规范制定埋点。 因此本双月的技术目标就定在统一集团的埋点规范,等规范制定完成之后开发通用的埋点SDK替代使用的多套埋点工具库。

埋点的基本组成

整理埋点规范之前需要了解现有埋点的组成。 通过查看现有几套埋点可以发现一个埋点往往由以下几方面组成** **(重要,之后的埋点SDK时基于该思想开发):
  • *基础字段:**所有埋点都会包含的字段,比如时间戳,页面ID,页面url等;
  • *交互场景字段:**在特定的交互场景下都会打的字段,比如点击埋点都有的 {type: 'click'} ,曝光埋点都有的 {type: 'exposure} 等;
以上两个字段可以抽象为埋点通用字段
  • *具体的业务字段:**用于标示具体埋点场景/位置的字段,比如我们通过 location 字段区分不同的组件,那么每个埋点的 location 字段就会不同,比如我们期望在用户点击下单按钮时发送的埋点带上接口返回的订单id orderId 字段等
这个字段和具体的业务场景直接关联,需要在不同的业务逻辑里直接填入

跨部门协作

组内制定一项新规范并推行是一件比较容易的事,就像给一个新项目引入ESLint,没有历史包袱也没有协作上的困难;但对于埋点规范这种运行在多条业务线的多个部门,每个部门还都不一样的规范来说要统一起来并不是件容易的事。 跨部门协作的一个难点在于我们团队的工作目标不一定是别的部门的工作目标,因此外部团队不一定会给出资源花费时间来配合工作。这就要求我们在推动协作之前把需要外部团队配合的工作内容考虑得非常仔细,并且这项工作一定是得能为外部团队产生价值的。 具体到本次的埋点规范统一,对于定义、管理埋点的产品经理和数据开发来说规范的统一能够提升埋点体系的统一性,避免出现不同项目/业务使用各自的埋点体系导致埋点混乱的情况,有了确定的规范新人也能更快地进行埋点开发工作;而数据开发正好计划增加埋点字段,也可以借着这个机会把计划落实了;对于开发埋点的前端来说,完成规范统一之后我们会开发一套更友好的埋点工具库,提供更简洁的api进行高效的埋点开发。 这些改进点都是能切实地为各个团队产生提升作用的,因此在向外部团队要资源的时候大家都比较乐意参与到这次的工作中。

规范制定

整个集团现存有三四套埋点规范,开发、产品、数据都苦恼于规范杂乱不好维护,因此大家一商讨决定保留使用最多的两套规范(最理想的是大家全部使用一套规范,但目前历史包袱比较重不能把别的完全废弃因此保留了两套),废弃别的规范,并且规定落地页相关的埋点全部使用 location 规范,弹层/弹窗相关的埋点全部使用 dpm 规范,在埋点定义时就规定应该使用的规范。 而之后的埋点工具库也会基于这两套规范开发,实现这两套规范并提供更友好的使用方式。