在介绍埋点管理系统之前,我们来回顾下,之前的埋点工作是怎么做的。
协作流程0.1版本:
上图是刚成立之初,在人员紧缺,数据开发的工程环境几乎为0的情况下,整个团队的协作流程:
我们可以看到能否把5出现的问题,尽可能的提前,这样可以避免走完所有的开发流程后,才发现问题,导致弥补成本很高。于是我们改进下
协作流程0.2版本:
我们引入了评审数据需求这个环节,将所有数据需求,所用到的数据,提前进行评审,确保数据需求,所需的基础数据,都能在业务开发完成后。一切看起来又向高效美好的工作方向靠近。但是随着公司团队规模的扩大,新的问题又来了。
从上图我们可以看到,随着产品人员的增多,需求的增多,各个团队都会遇到一些问题,总结起来,有如下三个主要问题:
除了上面三个共性问题外。对于非业务开发人员,例如数据研发,还都会关注数据质量,这方面主要会包括下面的俩点:
基于上面的所罗列的问题,我们也整理了一套的解决方案。
首先统一了埋点文档的标准,解决回溯困难,如下图:
{
"app_id": "xxx", // 产品id
"app_version": "4.5.8", //软件版本号
"app_platform": "ANDROID", // 软件平台 (微信小程序,H5,IPHONE,ANDROID)
"event_id": "bd0ebac0-e04e-49a5-b984-899cc23593f7", //事件id
"event_ts": 1587435557503, //事件发生的时间戳
"event_type": "learning_report_bottom_feedback", //事件标签名称
"sink_ts": 1587435557503, //记录该日志的时间戳
"user_id": 1, //用户的id
"side": "server", //对应埋点来源(客户端,服务端)
"session_id": “xxxxx”, //session_id, 服务端需要客户端回传下session_id,
“live_session_id”:”xxxxx”,//服务端需要客户端回传下这个ID,标
“first_login_time”:””,//注册日期
"params": {
"question_level": "A1", //A1,A2......,题目对应的等级
"question_type": "词汇题", //词汇题,语法题......,题目对应的题型
}
}
通过定义统一个埋点上报规范,我们有做数据校验的基础,在数据采集的时候,我们可以根据上面的JSON-Schema,去检查整个JSON是否符合规范,JSON的字段是否都按照既定的格式进行上报,不同埋点的JSON是否都已经上报,来保证数据质量。
整个的埋点工作的协作流程变为:
流程看起还不错,产品经理只输出功能需求和最终的数据需求,数据产品或者分析梳理基础业务数据或者埋点需求,埋点需求放到一个统一目录下,业务开发拿到功能开发需求和埋点需求各自开发,数据开发拿到数据产品进行评审和开发。
每个岗位各司其职,一切好像都运行得很流畅,但是在实际的操作中,当埋点的需求变多,埋点的文档将会快速膨胀,后续在查找相关的埋点也会很困难,如果埋点梳理的统一接收口人,也出现多个的情况,极大概率可能因为梳理的需求工作有重叠,也会导致,错漏埋。 如何根本上解决埋点的问题?我们认为要是需要有一个类似地图一样的工具用于替换目前的输出的word/excel/原型文档,来标识产品上各个功能页面的埋点信息,既有埋点信息的说明,又有类似axure原型的直观展现效果。通过这个地图工具,我们可以快速查看各个功能页面上缺漏的埋点。数据产品/分析在梳理埋点的时候,可以快速浏览相关功能下的埋点,防止错埋、漏埋。所有数据产品/分析人员的操作都是基于这个地图来梳理埋点,也可以从根本上解决重复埋的问题。业务在开发的时候拿到埋点需求的时候,也可以根据这个地图,开发相关的埋点,防止埋点埋错位置。后续数据在开发和分析的时候,也可以根据这个地图快速拿到各个埋点的信息和业务含义,进行快速开发和分析以及复盘。基于这样的一个地图我们将所有的埋点进行统一管理,也从根本上避免埋点“垃圾”的产生。
于是我们开发了自己的埋点地图和埋点需求管理工具。
如果要梳理一个埋点地图出来,就需要有一个能够完整刻画产品功能之前的关系。我们认为一个产品功能目录树是最为直观的表达方式。下面是我们产品功能目录的整体界面图
整个产品分为四个功能:
其中:
上级目录:表示能跳转到该页面的前置功能。
页面类型:分为主页和跳转页。有些页面具有多个前置功能,即有多个入口都能到达该页,在我们录入一个页面后,后续还遇到相同的页面,只是前置功能不同的话,为了防止信息的重复录入,就可以将后续的相同页面定义为跳转页,每个跳转都会被映射到最初的定义那个唯一主页。这里跳转页里面不能录入后续的一些埋点信息,所有信息只能在主页类型页面进行录入。例如2中的,重点词汇下的词汇学习(跳转页)对应的就是主页就是视屏结束后练习的词汇练习。
下面是有埋点事件地图的功能界面
点击图上左边的功能,在右边的列表信息框会列出该功能下所有埋点信息信息。图左边功能名称旁边的数字表示该功能有多少个埋点。
图右边的列表有如下字段:
点击新增按钮,我们会弹出相关埋点录入功能,如下图
其中埋点需求原型图,我们支持保存在内存中的图片直接黏贴上去。换句话说用户可以直接Ctrl+C和Ctrl+V直接上传图片。
埋点事件,这里我们支持一个原型图,录入多个埋点,点击图最下面的新增,即可实现新增。
在实际工作中,一个需求往往涉及多个页面,为了快速查看、管理多个页面的埋点,我们提供了一个扁平化的管理功能,即“有埋点事件全量管理”
从上图我们可以看到,这里集成了很多功能
如果要批量修改埋点信息,直接操作表格,如图上标识13。
用户可以根据时间,自由查看不同时间点的上报情况
埋点的统计信息,可以快速获取