AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

独角兽 Duolingo 是如何用 A/B 测试增长到 2 亿用户的?(一)

  • 2020-04-05
  • 本文字数:1536 字

    阅读完需:约 5 分钟

独角兽Duolingo是如何用A/B测试增长到2亿用户的?(一)

Duolingo(多邻国)是一个免费为全球用户提供外语教育的公司,至今他们已有 2 亿活跃用户,提供超过 40 种语言的教育课程。通常情况下,负责 Duolingo 增长的副总裁 Gotthilf 的团队至少有 5 个以上的 A/B 测试实验在 App 中同时进行。通过不断对 App 的前端展示,消息通知以及文案进行 A/B 测试,Gotthilf 见证了 Duolingo 的用户数从 3 百万到 20 亿的增长全过程。本文会分享 Duolingo 做过的 4 个关键的 A/B 测试,以及 Duolingo 在进行 A/B 测试过程中的经验。

1:延迟注册

问题


几年前,多邻国开始解决一个对于初创 App 最为生死攸关的问题:是什么引起了漏斗模型中最顶层的用户流失(例如注册环节)?该如何阻止这一情况?


实验


“我们发现,下载、访问多邻国 App 的用户中,成为注册用户的数量大幅下降。很明显,用户的注册是很重要的行为——这说明他们将会再次回访 App,而且这个动作也表明我们有机会将一次访问转化成持续的、有价值的体验,”Gotthilf 说到。“这意味着我们可以向他们发送通知和邮件。所以,我们开始思考做些什么可以提升注册转化率”。


在 App 最初设计中,要求用户必须先注册才能体验多邻国的产品功能。如果把延迟用户注册的时机,让用户先体验一些核心产品功能,等到用户对 App 产生兴趣之后再让用户注册,是否能提升注册转化率呢?


“我们设计了一个简单的引导课程,让用户可以看到自己的基础技能如何,这样有些用户无需注册就可以先体验多邻国的产品,我们的注册指标获得了显著提升。” Gotthilf 说,“只是简单的将注册页面延后了几步,就让 DAU(日活跃用户数)提升了 20%。”


2:迭代优化

迭代优化是 A/B 测试中另一个关键点,Duolingo 并没有止步于这个 A/B 测试,他们在此基础上进行了新一组 A/B 测试,目标是将 DAU 进一步提升。他们自己提出了几个问题:“用户应该在什么时间注册?是在一个引导流程的中间还是结束时?用户应该怎么完成注册?”


他们也在观察页面本身的设计。“在某一刻我们想过,‘好吧,除了拿着这个界面走来走去,我们还能做些什么?’”。Gotthilf 说“在屏幕的底部有一个大大的红色按钮,文案写着‘放弃我的进度(Discard my progress)’”——基本意味着就是不要注册。’”’他们假设很多用户具有一种行为习惯:毫不思考的点击页面中最显著的按钮,在这种假设下,多邻国正在失去很多本来对产品有兴趣的用户。果然如此,通过把这个按钮换成一个更小的按钮设计,并将文案修改为“稍后(Later)”之后,改变发生了。


这一变化带来了“软墙(soft walls)”页面——这些页面会让用户完成注册,同时也允许用户继续浏览,点击“Later”按钮后,稍后再注册——此时,会打开一个新的页面或者区域,让用户继续体验。“现在,我们有 3 个软墙”,Gotthilf 说,“最终,在几个连续的引导流程之后,用户会抵达硬墙(hard wall)页面,在硬墙页面,如果你想继续使用产品,必须完成注册才可以”。这里有一个关键点:如果没有这些软墙,而只有硬墙,最终的数据表现会明显更差。”


通过优化软墙和硬墙来延迟注册,这些细微的改变一起将 DAU 再一次提升了 8.2%。“第一个试验是大约三年前开始的,现在我们的用户基础比之前更大。这一数字结果也已经是非常显著的”。

经验总结

01 第一步先观察用户的注册数据,发现注册转化率有提升的空间


02 第二步提出假设:延迟用户注册的时机,让用户先体验产品,看是否能提升注册转化率和 DAU


03 第三步做 A/B 测试,让一小部分用户先体验新的版本:即先体验产品功能、延迟注册时机,对比新老版本的注册转化率和 DAU,发现新版本有 20%提升之后,发布新版本至所有用户


04 第四步做更多的 A/B 测试:在新版本中设置 3 个产品试用环节,让用户有 3 次机会体验新产品之后再注册,测试之后发现新版本将注册转化率和 DAU 进一步提升 8.2%


2020-04-05 16:54964

评论

发布
暂无评论
发现更多内容

并发王者课-黄金2:行稳致远-如何让你的线程免于死锁

MetaThoughts

Java 多线程 并发

架构师实战营 模块六作业(拆分电商系统为微服务)

代廉洁

架构实战营

立flag(第………………次)

凯迪

随笔杂谈

未来,能源枯竭可以逆转吗?

脑极体

HTTP 长连接和短连接

看山

TCP/IP HTTP协议 6月日更

JAVA设计模式系列--单例模式

加百利

Java 后端 设计模式 单例模式 6月日更

一文带你深入了解 Java 字节码

mghio

技术 后端 Java 25 周年 基础

话题讨论|如何看待腾讯试点强制6点下班

石云升

话题讨论 加班文化 6月日更

策略模式怎么玩?

卢卡多多

设计模式 策略模式 6月日更

Java语言概述以及环境搭建

若尘

java编程 6月日更

【通俗易懂】虚拟DOM,如何更高效DIFF

蛋先生DX

Diff 6月日更

未来,能源枯竭可以逆转吗?

白洞计划

TempDB 的使用和性能问题

悟空聊架构

sql 性能调优 6月日更 TempDB

【21-5】Grafana 时间Panel 如何使用

耳东@Erdong

Grafana 6月日更 panel clock

贪心算法最优装载问题(Java代码实现)

若尘

数据结构 贪心算法 6月日更

网络攻防学习笔记 Day43

穿过生命散发芬芳

网络攻防 6月日更

【LeetCode】重复的DNA序列Java题解

Albert

算法 LeetCode 6月日更

redis分布式锁原理

Skysper

redis 分布式锁

SpringCloud Gateway 路由数量对性能的影响研究

黄仲辉

性能优化 动态路由 SpringCloud Gateway JMH性能基准测试

SpringCloud Gateway 路由转发性能优化

黄仲辉

性能优化 动态路由 SpringCloud Gateway JMH性能基准测试

内卷的出路是躺平?

Qien Z.

创新 内卷 6月日更 躺平

【Vue2.x 源码学习】第十二篇 - 生成 ast 语法树-流程说明

Brave

源码 vue2 6月日更

Python——数值列表

在即

6月日更

Scrum Patterns : MetaScrum(译)

Bruce Talk

敏捷开发 译文 Agile Scrum Patterns

模块六作业 - 拆分电商系统为微服务

张大彪

【LeetCode】第一个错误的版本Java题解

Albert

算法 LeetCode 6月日更

Windows 10 如何设置网络属性为私有

HoneyMoose

架构实战营-作业六

大可

【Flutter 专题】105 图解自定义 ACEPageMenu 滑动菜单 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

架构师实战营 模块六总结

代廉洁

Single-Spa构建第一个微前端项目

devpoint

Vue 大前端 6月日更

独角兽Duolingo是如何用A/B测试增长到2亿用户的?(一)_文化 & 方法_云测数据_InfoQ精选文章