数据产品实战(二):ABTest平台
1、背景
数据驱动增长的方法论,帮助Facebook、Google等如此大体量的公司继续保持高效的业务增长,在国内字节跳动是最重视的数据驱动的公司,也因此获取了巨大的成功。在互联网圈,通过数据手段来驱动业务增长已经达成了共识,数据已经成为公司发展不可缺少的可靠手段。其中A/B测试坐班数据取驱动增长的核心方法,可以有效的提升流量的转化效率和产研的迭代效率。目前公司进行A/B实验已经比较多,手动实验的方式效率比较低,因此尝试搭建了ABTest平台。
二、A/B测试简介
A/B 测试是一种对比分析方法,通过对流量进行细分和随机实验,排除了其它因数的干扰;并监控和跟踪实验效果,来判断实验所代表的策略的可行性和有效性。
- 对比:通过对流量的随机细分,来进行有效的独立随机实验,可以排除外在条件的影响,因此更加科学。
- 分析:通过跟踪和分析实验的事实效果数据,来判断实验的可行性和有效性,因此更加精确。
下图为简单A/B测试的流程示意图:
将目前人群随机分成2部分,其中一份用户对其展示A页面,另外一份用户展示B页面。然后通过观察其人群最终的转化率,来判断哪种形式比较好。下图可以明显的发现A页面的转化率高于B页面。因此最终我们将对全量用户采用A页面的方案。
A/B测试流程示意图
应用场景
A/B 测试解决的是策略优化的问题,即从多个可选策略里找出最优策略。常见的应用场景包括:
- 灰度发布:技术&算法迭代
- 功能优化:界面模块、样式风格、交互方式等
- 内容优化:推广海报、落地页、内容模块、文案等
- 运营优化:运营策略、沟通话术等
核心概念-流量切分
主要参考了Google、美团、有赞等公司的流量使用规则,设计了符合我们公司现在阶段的流量切分规则。
引入流量域和流量层2个概率
- 流量域:流量域之间的流量是独立,相互之间永远不相交
- 流量层:流量层之间的流量是正交,同级的流量层之间都是同一份流量,只是在进入另一层的时候会随机打散,以此来保证流量的正交。
- 流量域和流量层可以相互嵌套,最终达到了流量的切分的目的
流量切分规则介绍
如上图所示:
域A占比80%,域B占比20%,这两部分流量是独立的,一个用户只会在某一个域中。
层1、层2、层3、层4都是同一份流量,只是被随机打乱过,4个流量层的排序是不同。实验A是采用层1的流量来进行测试,层2进行实验的话,流量是被打乱进入层2,这时候层2中的每一个实验组都会同等比例进行实验A的测试,如果2个实验作用于同一个结果的话,是会被干扰的。但是因此个实验组的干扰的结果是同等比例,因此结果结果依旧有效,但是这样就无法得出准确的定量分析结果,只能等到准确的定性结论。
实验H是测试是在域B中进行的,这部分流量是纯独立,没有进行任何确其他实验,因此实验H得到的结论是一个准确的定量分析结果。
实验E和实验D是在层4中的域A3和域A2中进行,因此这个2个实验的流量是完全独立的,这2个实验组结果是互不干扰的。但是这2个实验都会受到层1、层2、层3中的实验组的结果。
流量域和流量层是可以无限嵌套的,如果你的流量足够大,就可以无限的进行切分,以适应复杂业务的大量的AB测试。这个部分就是ABTest平台最核心的流量切分规则。
因此大家可以根据对应的业务情况,选择对应的流量域和流量层的流量进行AB测试,以达到有效A/B测试的目的,最终能输出准确的AB测试结论,帮助业务找到正确的前进方向,真正做到数据驱动增长。
三、ABTest技术方案
AB测试系统技术方案
如上图所示,AB测试系统从首先从web后台页面进行实验的配置,然后中台server进行流量分配,接下来存储记录行为操作,然后给业务层提供实验配置以及流量切分服务,最后客户端请求业务最终展示给用户。
数据回收:客户度将用户行为日志上报给loghub,在odps记录日志数据,然后对数据指标进行计算,最后把数据回流到数据报表中,展示到AB测试平台中。
数据流
数据流负责收集ABTest系统相关的日志并且产出离线的数据报表,如下图
核心记录埋点信息
- 实验状态:expStatus;枚举值:待上线0 删除1 上线2 下线3 全量4
- 控制类型:expControlType;枚举值:客户端1 服务端2
- 实验ID:expId;AB实验的唯一标记
- 实验组状态:expGroupStatus;枚举值:上线0 下线1 删除2
- 实验组ID:expGroupId;AB实验的某个实验组唯一标记
- 分组依据:expReqGroupType;基于用户ID、设备ID、手机号的分类依据
- 实验对象ID:expReqGroupId;用户ID或者设备 ID
根据这些埋点信息就能自动追踪每个实验的每个实验组、对照组的数据情况。一般包括曝光点击、活跃、回访、加购、支付等。
四、解决的痛点
- 流量的的隔离、复用以及细分。
- 实验组定向条件复杂,数据分析和server需要重复圈选用户,还容易造成偏差。
- 节省线下沟通成本,PM可以自行控制流量,减少出错的概率。
- 可视化配置后台,简单的数据直接自助回收。
- 所有业务AB实验汇总,实验周期有冲突时可以错峰进行。
五、展望
1.事件分析系统能接入ABTest系统,实现ABTest数据的自助分析和数据洞察,帮助业务方更好的理解数据并优化实验。
2.更丰富的个性化转化目标,包括与埋点系统打通以及支持自定义转化目标等;自动进行实验显著性的校验
3.上线评测报告功能,通过自动化产出实验评测报告,来给场景实验做全面充分的评价。
4.接入用户分群功能,直接实现用户条件的圈选,这样ABTest能实现AB测试全流程的一条龙服务。
5.提升ABTest系统在公司的影响力,让所有业务的AB测试接入系统进行,提升AB测试的效率。