关于数据埋点,你需要知道的技术方案和规范流程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于数据埋点,你需要知道的技术方案和规范流程相关的知识,希望对你有一定的参考价值。
参考技术A 埋点是数据采集的专用术语,在数据驱动型业务中,如营销策略、产品迭代、业务分析、用户画像等,都依赖于数据提供决策支持,希望通过数据来捕捉特定的用户行为,如按钮点击量、阅读时长等统计信息。因此,数据埋点可以简单理解为:针对特定业务场景进行数据采集和上报的技术方案。数据埋点非常看重两件事,一个是数据记录的准确性,另一个则是数据记录的完备性。
先讲数据的准确性。数据埋点非常强调规范和流程,因为参数的规范与合法,将直接影响到数据分析的准确性,如果准确性得不到保障,那么所有基于埋点得出的结论,都是不可信的。辛辛苦苦做了很久的方案,一旦因为一个疏忽的小问题,导致下游集中投诉,其实非常划不来。
道理每个人都懂,但现实情况中,数据埋点所面对的客观环境,其实非常复杂,例如:
因此本文有非常长的篇幅来写流程问题,其实是非常有必要的。
再讲数据的完备性。因为埋点主要是面向分析使用,对用户而言是个额外的功能,因此埋点的业务侵入性很强,很容易对用户体验造成影响。别的不说,仅仅是流量的消耗,就很容被用户喷。因此,要提前想清楚,我们要采集哪些东西,因为修改方案的成本,是伤不起的。
通常情况下,我们需要记录用户在使用产品过程中的操作行为,通过4W1H模型可以比较好的保障信息是完备的。4W1H包括:
规定好记录信息的基本方法之后,按照固定的频率,如每小时、每天,或者是固定的数量,比如多少条日志,或者是网络环境,比如在Wifi下上传,我们就可以开心的把埋点数据用起来了。
当然,数据记录的时效性也比较重要,但因为埋点数据通常量级会比较大,且各个端数据回传的时间不同,因此想做到实时统计,还是需要分场景来展开。在Flink技术日渐成熟的今天,全链路的实时采集与统计,已经不是什么难题。
在埋点的技术方案中,首先要重视的,是用户唯一标识的建设。如果做不到对用户的唯一识别,那么基础的UV统计,都将是错误的。
因此,在数据埋点方案中,有两个信息是一定要记录的,即设备ID+用户ID。设备ID代表用户使用哪个设备,如安卓的android_ID/IMEI,ios中的IDFA/UDID,浏览器的Cookie,小程序的OpenID等。用户ID,代表用户在产品中所注册的账号,通常是手机号,也可以是邮箱等其他格式。
当这两个信息能够获得时,不论是用户更换设备,或者是同一台设备不同账号登录,我们都能够根据这两个ID,来识别出谁在对设备做操作。
其次,我们来看一下Web的数据采集技术。Web端数据采集主要通过三种方式实现:服务器日志、URL解析及JS回传。
浏览器的日志采集种类又可以分为两大类:页面浏览日志和页面交互日志。
除此之外,还有一些针对特定场合统计的日志,例如页面曝光时长日志、用户在线操作监控等,但原理都基于上述两类日志,只是在统计上有所区分。
再次,我们来看下客户端的数据采集。与网页日志对应的,是手机应用为基础的客户端日志,由于早期手机网络通讯能力较差,因而SDK往往采用延迟发送日志的方式,也就是先将日志统计在本地,然后选择在Wifi环境下上传,因而往往会出现统计数据延迟的情况。现如今网络环境好了很多,4G、5G流量充足,尤其是视频类APP基本上都是一直联网,因而很多统计能够做到实时统计。
客户端的日志统计主要通过SDK来完成,根据不同的用户行为分成不同的事件,“事件”是客户端日志行为的最小单位,根据类型的不同,可以分为页面事件(类比页面浏览)和控件点击事件(类比页面交互)。对于页面事件,不同的SDK有不同的方式,主要区别为是在页面创建时发送日志,还是在页面浏览结束后发送日志,区别在于业务统计是否需要采集用户的页面停留时长。
页面事件的统计主要统计如下三类信息:
埋点其实还需要考虑数据上传的方案,批量的数据可以通过Flume直接上报,流式的可以写到Kafka,或者直接使用Flink来处理。这些框架相关的内容不是本文考虑的重点,有兴趣的可以自行查阅资料。
有了指导思路和技术方案后,我们就可以着手制定相应的数据埋点流程规范了。
笼统上,流程规范会分成五个步骤,即需求评审、埋点申请、技术开发、埋点验证、发布上线。
第一步,需求评审。
前文提到过,数据埋点的方案一旦确定,返工和排查问题的成本都很高,但数据埋点之后的分析工作,又涉及到了PD、BI、算法、数据等多个角色。因此非常有必要,将需求内容和数据口径统一收口,所有人在一套口径下,将需求定义出来,随后业务侧再介入,进行埋点方案的设计和开发。
以前文提到的4W1H模型为例,常见的记录内容如下:
最后我们统计时,按照上述约定,统计用户在某个时间和地点中,看到了哪些信息,并完成了怎样的动作。上下游的相关人员,在使用这份数据时,产生的歧义或者是分歧,会小很多。
第二步,埋点申请
当下的热门应用,大多是以超级APP的形式出现,比如微信、淘宝、支付宝、抖音,超级APP会承载非常多的业务,因此技术方案上会十分统一。
因此,当我们的技术方案确定后,通常要在相应的埋点平台上,进行埋点申请。申请的内容包括分配的SPM、SCM码是什么,涉及到的平台是哪些,等等。SPM、SCM是什么,有什么用,同样可以自行查阅。
第三步,技术开发
当需求确定、申请通过后,我们就可以开始开发动作了,这里基本上是对研发同学进行约束。埋点的开发,简单讲,是分成行为埋点和事件埋点两个大类,每一类根据端的不同进行相应的开发。具体的技术方案详见前文01章节。
详细的设计规范,是需要留文档的,因为代码不能反应业务的真实意图,而不论是事后复盘与业务交接,都需要完整的文档来阐述设计思路。
第四步,埋点验证
埋点的验证很关键,如果上线后才发现问题,那么 历史 数据是无法追溯的。
验证有两种方式,一种是实时的功能验证,一种是离线的日志验证。
实时功能验证,指功能开发好后,在灰度环境上测试相应的埋点功能是否正常,比如点击相应的业务模块,日志是否会正确的打印出来。通常而言,我们需要验证如下三个类型的问题:
除去实时验证,我们也需要把日志写到测试环境中,查看数据上报的过程是否正确,以及对上报后的数据进行统计,侧面验证记录的准确性,如统计基本的PV、UV,行为、事件的发生数量。
很多时候,数据是需要多方验证的,存在一定的上下游信息不同步问题,比如对某个默认值的定义有歧义,日志统计会有效的发现这类问题。
第五步,发布上线。
应用的发布上线通常会有不同的周期,例如移动端会有统一的发版时间,而网页版只需要根据自己的节奏走,因此数据开始统计的时间是不同的。最后,应用应当对所有已发布的埋点数据,有统一的管理方法。
大多数时候,数据埋点的技术方案,只需要设计一次,但数据准确性的验证,却需要随着产品的生命周期持续下去,因此仅仅依靠人肉来准确性验证是不够的,我们需要平台来支持自动化的工作。埋点的准确性,大体有两种方法保障:一种是灰度环境下验证真实用户数据的准确性;另一种则是在线上环境中,验证全量数据的准确性。因此,发布上线之后,后续的管理动作,应该是对现有流程的自动化管理,因为团队大了,需要埋点的东西多种多样,让平台自己测试、自动化测试,就是很多测试团队必须走的路
你不得不知道的流程规范@多方配合的需求质量控制
一、抛出问题:
测试同学经常会面对一些大型的、需要多方配合的需求/测试任务。这类项目往往周期长,需求变更和试验偏多,充满了不可预见性,因此对需求端的管理比通常的版本迭代项目更加困难、更加复杂。那么如何应对难题,从上游开始质量把控,就需要相对应的流程规范。
经历过一个多方配合的项目--XXXX项目,商业的同学和客户(比如汽车厂商)商谈合作后,细化厂商的广告需求,融入到输入法产品中进行广告推广,涉及到商业、运营、数据部门、产品、开发、测试等多个部门。
二、容易出现问题的点:
①需求信息传递:因为涉及到IOS和Android两个客户端的开发,还有两个服务器组的模板和数据支持,需求审核通过后向后端支持团队传达时务必需要做到每个团队都对自己的任务清晰明了,对需求理解无误。
②需求变更后的同步:如果上游团队有变更而没有及时通知到所有人时,测试做为最下游的团队会存在需求和预期不符的情况。
③联调测试:如果上游四个开发团队没有联调通过或提测delay,都会影响到测试团队的正常测试,甚至影响到项目进度。
三、如何形成流程规范
当我们预见到上述的一些问题,形成问题list(实际上因为上游催的急,小编是还没有形成相关流程前就介入了测试,掉到坑里后痛定思痛形成了现实中的问题list…),按照下图开始思考流程的形成,最终的目的是为了解决项目进行中的问题,让测试效率和质量达到最高。
四、流程规范产出
根据上述的问题点,并结合上边的流程图,我们形成相对应的流程:
五、具体操作
建立专项邮件组
因为涉及到多个项目, 建议在先期就维护好一个邮件组,用于本项目的专项邮件沟通。
需求提出规范
1.邮件标题规范
提测邮件标题:【商业广告需求提出】*****,方便过滤,发送专项邮件组。即上述流程的源头:广告模板提测,就需要按照本需求提出规范进行。
2.邮件内容明确
(1)需求的预期结果明确
(2)上线时间点明确
(3)对应负责人明确
(4)其他需要明确的点
需求变更规范
1.邮件标题规范
需求变更邮件标题:【商业广告需求提出-需求变更】*****,发送专项邮件组。
2.邮件内容明确
同需求提出规范中的要求,需要补充变更后的改动范围,方便测试同学评估回归内容。
邮件公示
在形成上述规范后,并与组内讨论,与配合的相关团队进行沟通确认(确认方式不定,可以是会议,可以是口头沟通),然后将相关的规范进行公示、试运行。
测试完毕后的通知
测试完毕确认信是一个项目的闭环环节,用于通知测试结论、通知相关团队准备上线,如图:
最后,在流程试运行的过程中,可能还会出现一些问题,那么按照行程流程规范的方法,记录问题后,进行优化。
转自:公众号 搜狗测试
以上是关于关于数据埋点,你需要知道的技术方案和规范流程的主要内容,如果未能解决你的问题,请参考以下文章