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测试平台提供了两个场景下的均匀性校验功能:
AB测试确定分流策略时,计算过去一周每种策略,在选定的核心指标上,是否存在显著差异;
AB测试运行一段时间后,根据每个分支分流的真实用户,计算其在选定的核心指标上,是否存在显著差异。
核心指标建设
效果评估指标分为业务核心指标和临时性指标。业务核心指标,指每个AB测试,都需要观察的指标。临时性指标,指当前模块的测试需要观察的指标,其他模块不需要观察。
一个公司的业务很多时,所有的业务核心指标无法都由AB测试平台来建设。这个时候需要联合业务的数据团队一起建设业务核心指标。
作为AB测试平台需要协同指标管理平台、数据开发平台、BI可视化平台为各个业务的数据团队提供核心指标接入的能力。具体功能有以下几个模块:
1)对接指标管理平台,获取业务核心指标范围,及指标元数据(指标名称,业务口径,指标类型,数据源,计算逻辑等信息)。
2)对接数据开发平台,根据核心指标计算逻辑,生成计算任务,负责产出每个AB分支核心指标计算结果。
3)对接BI可视化平台,将每个AB分支的核心指标结果和显著性等结论呈现出来。
对于用户而言,从AB测试需求的创建到最终效果评估,能在一个平台完成,是一件美妙的事情。
-END-