最近一段时间在负责公司AB测试平台的建设过程中,调研了很多竞品的通用做法,其中涉及到的数据整体解决方案,包括AB测试数据采集与数仓模型、AB测试指标建设、AB测试可视化方案等,借此机会我把自己总结下来的经验分享给大家。


01 什么是AB测试


在互联网领域,AB测试常指一种迭代方法,这种方法可以指导如何改进现有产品或者服务。以提高某个产品注册页面转化率为例,AB测试过程中,我们会设计新的注册页面,和原页面相比,展示位置不同。选择用来测试的用户,让一部分用户进入新的注册页面,另一部分用户进入原注册页面。通过比较两个注册页面最终的转化,来判断新的展示位置是否可以提升注册转化率。如果新注册页面转化率高,让所有用户都进入新的注册页面,完成产品注册页面功能的改进。



以上就是一个利用AB测试迭代产品功能的具体应用,总结起来AB测试主要有以下几个步骤:


1)分析业务现状,提出目标。通过分析业务数据,确定当前最关键的改进点,明确改进的目标;

2)设计优化改进方案。设计AB测试方案的产品原型,并完成相关功能的开发和上线;

3)线上控制流量比例。制定每个测试分支的流量比例,按照分流比例开放线上流量进行测试;

4)测试效果评估并决策。AB测试进行一段时间后,通过数据对比,对AB测试分支进行显著性检验,确定最终测试结论。



02 AB测试平台的诞生


一个完整AB测试过程,会涉及产品、开发、数据部门等角色,需要合作的人员较多,环节较复杂。对于一个之前没接触AB测试的人,熟悉其中的原理并完整的实施一个AB测试有比较大的难度。在一个中大型公司,每天进行的AB测试的数量可能达到几百上千个,非常依赖一个AB测试平台,需要平台降低每个AB测试的实施门槛,并通过自动化的工具提升每个步骤的效率。


从平台能力复用的角度分析,一个公司内产品的不同模块可能都会有不同的团队负责,对应不同的工程。每个产品模块进行AB测试,如果能有一个统一的AB测试平台提供能力,可以有效避免各个模块重复建设。


基于提效和复用的目的,一般公司都会组建一个团队,可能是数据团队,也可能是某一个业务团队,负责AB测试平台的建设,支持所有业务的AB测试需求。



03 AB测试平台的功能架构



AB测试平台由三个大的模块构成,包括AB测试配置管理、在线分流服务模块、效果评估模块。


AB测试配置管理后台,主要是用于管理每个AB测试需求,提供操作界面便捷的快速调整每个测试配置。


在线分流服务模块,为每个业务提供基于用户标识进行均匀分流的能力,并完成分流信息的数据采集。


效果评估模块,基于采集的用户行为数据,建设测试指标体系,为业务提供监控预警和数据分析服务。


04 AB测试数据采集


在设计公司内部AB测试平台的数据采集方案时,我们经历过两个阶段,我们将之命名为“客户端埋点”和“服务端埋点”。


我们刚推出AB测试平台时,采用的是客户端埋点。具体方案是让接入平台的业务模块,在上报用户行为埋点时,传入用户AB测试信息。以便在效果评估阶段,根据上报数据统计出不同AB测试分支的行为数据。


因为这种方案需要业务模块一次性从AB测试平台获取所有实验信息,并传入到埋点采集的公参中,对业务有比较大的侵入。


第二个阶段,是我们提出的服务端埋点的解决方案。具体是由AB测试平台完成用户分流日志的采集,业务模块只负责采集用户行为数据。在数仓分析阶段,通过采集的分流日志中用户标识完成数据匹配。这样的好处,是业务模块无需在数据采集时添加AB测试信息。


客户端埋点方案的优点很明显,因为原始日志有AB测试信息,数据清洗统计时比较方便。但是缺点是会增加客户端的工作,在数据上报时需要拼接AB测试信息。线上同时运行的AB测试很多时,拼接上报的埋点数据时,url可能过长,存在被截断的风险。


服务端埋点方案的优点是,AB测试平台和业务客户端各自完成日志上报,且客户端只关心自己命中的策略及业务逻辑处理,与业务无关的事情涉及较少。缺点是原始日志需要进行用户标识进行关联,关联的逻辑不固定,增加了数仓建模的复杂度。


考虑到让平台能够快速推广给业务使用,降低业务接入门槛,我们采用了“服务端埋点”这种方案。


05 AB测试指标体系建设


我们在建设AB测试指标体系时,主要有两种应用场景:AB测试分流均匀性校验和AB测试效果评估。


· 均匀性校验


AB测试是基于用户标识的流量划分,底层原理是通过hash算法进行分流的。


hash(ID,layer)%100


hash算法有2个重要的特性:均匀性和一致性。


均匀性:是指流量唯一标识进行上述取模计算后均匀地落在每个区间。例如,将全站流量分成100份,那么ID%100的值为0~99,必须做到每个值分配的流量几乎相同。


一致性:是指某个流量唯一标识取模的值是一定的。例如某个流量的唯一标识符经过算法模块取模后的值为1,那么下次再经过算法取模的值还是1。


AB测试过程中,分流的目标是确保分流后的不同人群,人群对应的用户属性和用户行为一致。虽然hash算法分流,可以做到尾号号段分布均匀,但实际过程中是不一定能确保用户均匀的。我们经常遇到,因为存在不少异常用户,导致hash分流后,两组人群存在显著差异的场景,最终导致测试结论无法得出,白白浪费了时间。


所以我们的业务在AB测试过程中,会进行均匀性校验。通常的做法,是验证分流人群实验前在业务核心指标上无显著性差异。


针对以上诉求,AB测试平台提供了两个场景下的均匀性校验功能:

  1. AB测试确定分流策略时,计算过去一周每种策略,在选定的核心指标上,是否存在显著差异;

  2. AB测试运行一段时间后,根据每个分支分流的真实用户,计算其在选定的核心指标上,是否存在显著差异。


· 核心指标建设


效果评估指标分为业务核心指标和临时性指标。业务核心指标,指每个AB测试,都需要观察的指标。临时性指标,指当前模块的测试需要观察的指标,其他模块不需要观察。

一个公司的业务很多时,所有的业务核心指标无法都由AB测试平台来建设。这个时候需要联合业务的数据团队一起建设业务核心指标。


作为AB测试平台需要协同指标管理平台、数据开发平台、BI可视化平台为各个业务的数据团队提供核心指标接入的能力。具体功能有以下几个模块:


1)对接指标管理平台,获取业务核心指标范围,及指标元数据(指标名称,业务口径,指标类型,数据源,计算逻辑等信息);

2)对接数据开发平台,根据核心指标计算逻辑,生成计算任务,负责产出每个AB分支核心指标计算结果

3)对接BI可视化平台,将每个AB分支的核心指标结果和显著性等结论呈现出来。


对于用户而言,从AB测试需求的创建到最终效果评估,能在一个平台完成,是一件美妙的事情。



点赞(1027) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部