下载我们的免费电子书43 A / B检测案例研究,从世界领先的公司寻找考试创意和灵感。 现在下载

优化 Blog

构建您的实验计划的提示和技巧



功能卷展栏,您的应用程序有能力同时提供两种不同的体验:一个具有功能,另一个功能关闭。但是你怎么知道哪一个更好?您如何使用数据来确定哪个最适合您的用户和您关心的指标?

一个 A / B测试 指向你的正确方向。通过精确讨论如何,何时和谁接触到不同的特征配置,您可以运行受控产品实验,从使用中获取统计上大量数据,并科学开发适合您用户的功能,而不是依赖于依赖受过教育的猜测。

A / B测试允许您使用客观真理数据来解决组织中的不同选项,加速对客户的了解,以将竞争对手分离,并补充定性数据的定性数据。

但是,您如何确保您配置A / B测试以最大限度地提高学习和影响?我接到你了!在这个博文中,我’LL涵盖5个最佳实践 服务器端A / B测试,如我的免费电子书中所述 自信地船舶随着逐步的交付和实验,确保您获得准确,值得信赖的结果。让’s dive in!

01最佳实践:捕获正确的事件信息,以分析A / B测试

当为A / B测试和跟踪度量进行识别时,重要的是跟踪印象和转换事件,因为每种类型都包含有关实验的关键信息。

印象事件

当将用户分配给A / B测试的变型时,会发生印模事件。对于这些事件,以下信息可用于将作为有效载荷发送给分析系统:用户的标识符,用户暴露于用户的变化的标识符,以及当用户暴露于变化时的时间戳。使用此信息作为分析系统中的事件,您可以将用户所需的所有后续操作(或转换事件)归因于暴露于该特定变型。

当使用实验平台如优化时,在提供A / B测试的体验时,此印模事件将自动发送。

转换事件

转换事件对应于实验的期望结果。查看上面的示例指标,当用户共享产品时,您可以具有转换事件,当用户共享产品时,仪表板加载的时间或在使用产品时发生错误时。通过转换事件,以下信息可用作分析系统的有效载荷:用户的标识符,发生的事件类型的标识符(例如:注册,共享等)和时间戳。

当使用实验平台如优化时,您可以使用现有的分析工具进行跟踪调用或转发事件进行实验分析。

02最佳实践:确定性实验铲斗 散列在math.random()

如果您正在构建一个实验平台,您可能会旨在依赖像Math.Random()等内置函数到随机存储桶用户变化。但是,一旦铲斗,用户应该只能看到它们的实验寿命的分配变化。否则,它’不可能知道它们的后续行为是否可以统计上归因于该特定变化。

由于math.random()返回每个调用的每次单一时间(即,math.random()是不确定性的)’D必须存储所产生的变化,以便维持特定用户的变化分配。

但不幸的是,存储铲斗决策的结果迫使您的平台保持成状态。与Math.Random()中的不确定函数在Codebase中仍然会使您的应用程序努力成为手动或自动测试的特定状态。

更好的方法是使用散列作为铲斗用户的随机但确定性和无状态的方式。为了可视化散列如何用于铲除,让我们将其应用于应用程序的流量为0到10,000。

对于两种变体的实验,每个50%的实验,您的数字线的前5000个数字可以对应于将获得变化A的流量的50%,而第二个5,000个数字可以对应于您的流量的50%接收变异B.

铲斗过程被简化为为每个用户分配0到10,000之间的数字。使用散列函数作为输入的用户ID(例如:User123)和实验ID(例如:主页_Periment)并输出0到10,000之间的数字,可以实现用于分配变体的编号分配:

hash(‘user123’, ‘homepage_experiment’) -> 6756 // variation B

由于良好的哈希函数的属性,您始终保证给出了相同的输入,因此提供了相同的输入,这为您提供了几个优势:

  • 您的应用程序可预测可预测给定用户
  • 自动化测试可预测可预测,因为可以控制输入
  • 你的 逐步交付实验平台 通过在任何时间重新评估散列函数而不是存储结果,是无状态
  • 像0到10,000的大型散列范围允许以0.01%的精细增量分配交通粒度
  • 相同的伪随机铲斗可随机使用 分阶段推出
  • 您可以通过排除散列范围的一部分来排除从实验中的百分比流量

03最佳实践:使用A / B测试对特定度量的洞察力

A / B测试 当您想要测试不同的假设以改善特定度量标准时,最有意义。以下是允许您运行统计上有效的A / B测试的度量类型的示例。

产品指标:用于产品的改进

登陆页面注册

曾经想知道哪些着陆页将导致您的产品最多的注册?在2008年总统竞选期间, 巴拉克奥巴马的优化团队跑了几个/ b测试 确定奥巴马的最佳形象和相应的按钮文本,以便放在活动网站的着陆页面上。这些A / B测试的调整增加了注册,并导致其网站的6000万美元额外捐款。

通过股票推荐注册

想知道哪个推荐计划将通过分享最具成本有效地增加产品的病毒性? 乘车分享 像Lyft,Uber和Didi这样的服务经常试验奖励用户为他们的平台带来其他用户的金额(例如:给朋友20美元并自己获得20美元)。重要的是要获得这笔款项,因此长期增长的成本不会对您的业务产生负面影响。

操作指标:用于基础设施改进

潜伏& throughput

如果工程师正在辩论哪个实施将在现实世界的条件下表现最佳,则可以收集统计显着性 解决方案更加性能 使用吞吐量和延迟等度量。

错误率

如果您的团队正在研究平台或语言转移,并且具有一个理论,您的应用程序将导致更改后的错误更少,则错误率可以作为指标来确定哪个平台更稳定。

04最佳实践:A / B / N测试超出了测试功能配置的两个变体

一个简单的 功能旗帜 只是一个开关的开关,它对应于A和B变体 A / B测试。但是,当您不仅启用该功能时,特征标志可能会更强大,但也可以如何配置该功能。

例如,如果您正在构建用于电子邮件应用程序的新仪表板功能,则可以公开一个整数变量,一次控制仪表板中的电子邮件数量的时间,这是一个欺骗变量,该变量确定您是否显示每个电子邮件的预览在仪表板列表中,或控制按钮文本以从仪表板列表中删除电子邮件的字符串变量。

通过将功能配置曝光为遥控器 变量,您可以启用只有两个变体的A / B测试。在仪表板示例中,您可以不仅可以在打开或关闭仪表板上进行实验,还可以使用不同版本的仪表板本身。您可以看到电子邮件预览和屏幕上的电子邮件更少,请使用户更快地通过电子邮件

05最佳实践:避免常见的实验分析陷阱

一旦您拥有上述事件,您就可以运行实验分析以比较每个变体中的转换事件数量,并确定哪一个统计上更强大。

但是,实验分析并不总是直截了当。最好咨询数据科学家或训练有素的统计学家,以帮助确保正确完成实验分析。虽然这本书没有深入潜入 统计数据,你应该对这些普通陷阱进行注意。

多重比较

创造太多的变体或评估太多指标将增加偶然看到假阳性的可能性。为避免这种结果,确保您的实验的变化由有意义的假设或 使用提供虚假发现速率控制的统计平台。

小样本大小

如果你 计算A / B测试的结果 当只有少数用户接触到实验时,结果可能是由于随机的机会而不是变化之间的差异。确保您的样本大小足以让您想要的统计信心。

偷看结果

在进行任何统计分析之前,应建立古典实验并在完成任何统计分析以确定哪种变化是胜利者之前。这被称为 固定地平线测试 。允许实验者在实验达到其样本量之前偷看结果,增加了看到误报的可能性,并根据实验制定错误的决定。但是,在现代数字世界中,采用解决方案 顺序测试 可以允许分析在实验过程中实时完成。 

让我知道你的想法!

您的团队跟随的其他服务器侧是否最佳实践?给我留言 松弛社区 或者在推特上找到我 @Asametrical..

这是一系列最佳实践的一部分,以帮助您的公司成功实施 逐步交付 和实验充满信心地发货。

如果您喜欢此内容,请查看我的免费电子书: 自信地船舶随着逐步的交付和实验 从刚开始缩放这些技术宽的速度开始提供更多最佳实践。

如果您正在寻找要开始的平台,请退房 优化’s free offering。谢谢!

优化 X