在移动设备上进行A / B测试有什么好的策略吗?

时间:2013-11-30 14:24:32

标签: testing mobile optimization frameworks ab-testing

根据我所知,A / B测试框架适用于网站。例如,您想知道"购买"的哪种蓝/红色。按钮将鼓励用户点击它。

由于用户界面的网站信息来自服务器,并且浏览器显示它,因此可以进行A / B测试。但是,由于移动应用程序的用户界面是原生的和静态的,因此无法以相同的方式实施A / B测试(如果我没有弄错的话)。

所以,我的问题是如何从数据库/服务一直到本机移动应用程序实现A / B测试框架。

任何建议都将不胜感激。感谢。

6 个答案:

答案 0 :(得分:5)

与网络不同,更改移动应用上的内容是一个更复杂的过程。具体而言:您的应用的所有代码更新都必须经Apple / Google批准。

输入Leanplum等服务。 Leanplum允许其客户以三种主要方式测试其应用的几乎每个方面:

  1. Visual Interface Editor:这不需要编码,Leanplum会自动检测元素并允许您更改它们。无需工程师或应用商店重新提交。
  2. 内容管理系统:对应用程序进行更细粒度的更改。
  3. 移动营销自动化:一种全方位服务解决方案,向您的用户发送的每封邮件和通知(无论是应用内,推送,电子邮件还是新闻Feed)均可进行A / B测试和个性化。
  4. 有关移动A / B测试最佳做法的详细信息,请查看此Leanplum blog post

    要了解详情,请访问我们的网站leanplum.com。我们为我们的平台提供30天免费试用,因此您可以尝试与客户建立更好的品牌关系,而无需任何承诺。

    (免责声明:我是Leanplum的工程师。)

答案 1 :(得分:4)

移动的A / B测试与网站的不同主要有两点:

  • 网站始终连接到互联网。原生移动应用程序就像90年代的Windows应用程序:它并不总是具有可靠的互联网连接
  • 网络比手机更成熟。现代Web A / B测试工具可以完全控制网页上的所有元素。

基本的事情是创建客户端 - 服务器架构: client server

手动标记要在应用中测试的元素

您将手动标记您想要进行A / B测试的元素,并且您的框架将向服务器询问要显示的元素。 (变体存储在服务器端)。例如,可以从服务器检索按钮的颜色,并在显示按钮时在运行时设置。原生移动接口是静态的并不完全正确。它们可以在运行时以编程方式进行修改。

将事件发送到您的服务器

第二步是在查看变体和转换成功时向您的服务器发送事件。

潜在问题

通过使用这种简单的架构,您将遇到以下问题:

始终展示

当应显示按钮时,移动设备可能根本没有互联网连接。如果没有互联网连接,您仍需要向用户事件显示内容。解决方案是显示默认值。

存储活动

执行目标时(例如单击某个按钮)并且如果移动设备处于脱机状态,该事件将被删除,您将以错误的统计信息结束。解决方案是在本地保存您的事件,并在以后将其发送到服务器(当互联网连接恢复时)。

永远不要等待变化

如果只在需要时从服务器询问变体,那么应用程序将非常慢(这是不可接受的)。您需要在应用程序中尽快检索变体数据。

应构建移动框架以永不阻止应用程序。这是移动设备的黄金法则。

保存变体归因

服务器应保存已为设备分配的变体以获得可靠的结果。

技术堆栈

操作系统/编程语言

您可以选择任何技术堆栈。只需确保您的服务器端可以处理负载。如果您的移动应用有很多用户,您的服务器上会收到很多请求。您可能需要在Web服务器之间安装负载平衡器。如果您选择非免费技术,请注意许可成本,因为高负载意味着高成本。

<强>数据库

您可能还有数百万的数据库记录。生成报告可能并不像从数据库表中执行“SELECT COUNT(*)”那样容易出现性能问题。如果您选择非自由技术,请务必小心。

免责声明:我是Arise.io

的首席技术官

答案 2 :(得分:4)

过去一个月,移动工程师在FacebookLinkedIn撰写了一些内部A / B测试框架。但如果您正在精益求精并且不想重新发明轮子,请查看上面列出的解决方案之一(披露:我为Splitforce工作)。

工作原理

对于移动应用程序,A / B测试基本上可以通过用可以从远程服务器控制的动态对象替换静态的硬编码对象来实现。

此方法会引发潜在的性能问题:如果最终用户的设备未连接到正在测试的对象的拉配置数据,该怎么办?

我们已经构建了Splitforce以降低此类性能风险。在第一个应用程序启动时,移动应用程序从服务器请求配置数据,然后在设备上本地缓存该数据。这既可以确保在后续应用启动时获得一致的用户体验,也可以通过保证转换事件准确归因于变体来防止损坏的测试结果。

如果最终用户的连接失败或在第一次应用启动时超时,则库会显示硬编码的“默认”变体。为了确保在你上线之前一切都看起来很好,我们在调试模式中构建了一个“摇动预览”,它就是这样: - )

一旦集成了SDK和实验,非技术产品或营销人员就可以即时设置新测试或调整现有测试,而无需重新提交到应用商店或麻烦工程师。

一旦使用Splitforce部署应用程序,事件数据将被存储在本地并发送回网站,以便针对每个变化进行显示,同时测量观察到的改进和统计信心。

如何使用?

我们已经看到Splitforce用于A / B测试:

  • UI元素+布局(颜色,文字,图片,广告/菜单展示位置)
  • 用户体验工作流程
  • 游戏动态+规则
  • 价格+促销

我们还看到了用于远程调试和重新配置应用的工具,主要是将测试主题的一个变体设置为100%。

答案 3 :(得分:3)

在这个问题的another answer中,poiuytrez概述了滚动自己的移动A / B测试框架所涉及的考虑因素。由于礼仪使他无法提及现成的解决方案,因为他参与了空间产品,为了完整起见,我想建议任何想要实施移动A / B测试的人都应该考虑利用现有的解决方案,特别是因为问题有助于框架与​​主题应用程序的合理自然分离。

商业A / B测试框架

将A / B测试与主题应用程序有效分离的能力,加上可立即衡量收入改善的可能性,导致了针对应用程序的移动A / B测试中的一系列商业活动:

免费A / B测试框架

亚马逊有Amazon A/B Testing Service用于应用内实验。

开源A / B测试框架

如果上述解决方案都不适合您的目的,那么通过利用开源移动A / B测试框架,仍然可以避免完全从头开始构建:

免责声明:我在移动A / B测试中没有产品,我在这个问题上赞助了赏金,所以我没有资格获得该奖项。

答案 4 :(得分:1)

前几次我为Android应用程序编写了简单的A / B测试库。 要收集数据,您可以选择mixpanel,kissmetrics或您自己的服务器。您可以在此处找到有关此库的更多信息:

答案 5 :(得分:0)

有关在移动应用上运行A / B测试的总体概述,这里有一篇包含10个步骤的博文:http://www.andrewthompson.co/2013/12/running-ab-tests-on-mobile-apps.html