A/B 测试 哪种广告的效果更好
现状与预期
促销活动的购买率低
通过和其他应用的促销活动相比较,我们发现《黑猫拼图》游戏的促销活动的购买率确实偏低。因此,我们希望能够通过数据分析找出购买率偏低的原因,改善这 种状况。
整理现状和预期
现状: 和其他应用的促销活动相比,《黑猫拼图》的游戏装备促销活动的购买率偏低。
预期: 弄清楚购买率偏低的原因,并确保和其他应用的促销活动有相同的购买率。
发现问题
和其他应用有何不同
为明确现状与预期之间的差距,我们需要从大的视角出发来考虑《黑猫拼图》游戏和其他应用有何不同,并尝试做出假设。
1. 游戏装备促销活动的内容有问题
→ 销售的游戏装备并不是用户需要的
→ 销打折的力度不够,对用户没有太大吸引力
2. 广告的外观展示有问题
通过咨询了游戏的策划部门,并统计了在促销期间出售的游戏装备的使用情况,得到了如下反馈。
游戏装备促销活动中出售的游戏装备或许能够用得上
和其他应用一样,促销时的游戏装备打五折,这从用户的立场来看是很划算的
也就是说,上述第 1 个假设中的问题基本不大。 通过咨询了市场营销部门,得到:
游戏装备大促销的广告都是由各个应用的设计师负责的,所以广告的质量也是参差不齐
《黑猫拼图》游戏的广告的点击率一直比较低(参考下表)
数据的收集和加工
探讨验证方法
问题
→《黑猫拼图》游戏的广告点击率比其他应用低 (事实)
→《黑猫拼图》游戏的广告设计有问题 (假设)
解决方案
→ 用点击率高的广告替换目前所使用的广告 (解决方案)
为了完成上述方案,需要找到哪种广告更容易被点击。但是,在《黑猫拼图》游戏中,之前每月开展的“游戏装备大促销”活动的广告一直都没有变更过,因此我们缺少可供分析的数据。
于是,我们准备了两个不同的广告,通过收集数据来比较哪个广告更容易被用户点击。
如果采用前后比较的方法,则无法排除外部因素的干扰
如下图所示,在前一段时间内投放广告A ,在后一段时间内投放广告B,并比较前后两个时间段广告投放的效果。其思路是“如果继续投放广告A,购买率应该是这样”,然后拿这个值和广告 B 的值进行比较。然而,这种做法却存在外部因素干扰。比如说:A广告投放时间结束后,改投放B广告,在此期间,购买率得到提升,是因为B广告奏效呢?还是A广告效应延迟的结果。这是难以证明的。
采用A/B测试的方法排除外部因素干扰
A/B 测试能够在多个选项中找出那个能够带来最佳结果的选项。例如,如下图所示,我们只要同时投放广告 A 和广告 B,就可以排除之前所说的外部因素的干扰。
A/B 测试虽然在引入时需要较高的开发成本,但是实施成本却相对较低,而且也方便收集统计数据,因而在互联网业界被广泛使用,此外在部分广告业和制造业中也会被采用。
● A/B测试中的用户分组必须遵循随机的原则
要想避免条件性的差异,最简单的一种分组方法就是把用户 ID 对某个数进行取模运算。
● 同时进行多个A/B测试时的陷阱
A/B 测试是将测试对象随机分为 A、 B 两组,然后比较两组之间差异的验证方法,但是有的企业会在同一时间开展多个 A/B 测试。在这种情 况下,就算这些 A/B 测试各自使用了上述方法来对用户进行分组,彼此之间仍有可能相互干扰。如:① 所有的 A/B 测试都采用相同的分组方法;② 各组中参与其他测试的用户比例不同。
利用统计学上的假设检验来过滤
不光是在 A/B 测试中,平时当我们需要判断两组之间是否存在差异时,都可以用到统计学上的“假设检验”。
众所周知,偶然的行为(异常值)在用户数较少的情况下,某一个用户的偶然行为都可能对结果造成较大的影响。但当用户数增多时,这种影响就会逐渐消失。因此,使用假设检验时,人数越多,越容易得出“存在显著性差异”的结论。然而,即使“存在显著性差异”,这种差异在商业领域也未必有意义。尤其是在大数据盛行的现在,由于数据量的增大,假设检验中“用户数较少导致的偏差”已经很小了,因此我们很难再断言“不做假设检验就不知道是否存在显著性差异”的那些差异还有意义。
尽管如此,万一出现了“看上去像是有差异,而实际上不是显著性差异”的情况还是很麻烦的,因此我们需要通过假设检验来过滤出显著性差异。这里并不是说只要“通过假设检验找出差异”就可以了,而是要“先通过假设检验找出有统计意义的差异,再探讨这个差异在商业活动中是否有意义”。
收集和加工验证所需要的数据
A/B测试的日志输出
ab_test_imp(关于广告曝光次数的信息)
ab_test_goal(关于广告点击次数的信息)
查看数据结构并检查是否存在缺失值
分析前的数据加工
● 广告的曝光次数信息和点击次数信息合并起来
● 生成一个新的标志位来标识该条记录是否被点击
数据分析
弄清楚 A 和 B 的点击率是否存在显著性差异
统计一下A和B两个广告的点击率,以确定哪个广告的效果更好。
观察 A 和 B 的点击率,我们发现 A 的点击率为 0.08026,大约是8%,而 B 的点击率为 0.11546,大约是 12%。在探讨这二者的差异之前,首先需要对其进行假设检验。像本例这样,针对两种广告点击情况的差异来进行假设检验,一般采用的是卡方检验。
在本例中,计算出来的结果,卡方值308.38,P值4.93e-69,自由度1;由于 p 值非常接近于 0,因此我们可以说:在将两种广告分为 A 和 B 并同时投放后,所得到的点击率存在显著性差异。
广告 A 和 B 的点击率的时间序列变化的可视化
在确认了二者“存在显著性差异”后,我们再来看这种差异在商业领域里是否有意义。在本例中,原来广告的点击率只有 6%,而其他应用的广告的点击率为12%。为了填补这个差异,我们进行了测试。通过观察结果可以发现广告 B 的点击率达到了大约 12%,基本上达到了我们的目的,因此在商业领域里这也是一个有意义的差异。最后,我们再确认一下点击率的时间序列变化情况。在时间序列图中,如果广告 B 的效果始终都比广告 A 好的话,那就没有问题,但是如果只是在某个时间段内广告 B 的效果更好,那就需要考虑是否存在别的原因了。
通过上图可知,广告 B 的点击率在大多数时候都优于广告 A。所以总的说来,广告 B 的效果始终都比广告 A 好。
解决对策
分析的结果是,广告 B 比广告 A 更容易被用户点击,因此我们需要在《黑猫拼图》游戏里投放广告 B。今后,我们可以继续通过这种 A/B测试的方式来找到最合适的广告。