写点什么

独角兽 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:54838

评论

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

建立对分布式锁的系统认知-从Redlock开始

刘绍

程序员 分布式 分布式锁 RedLock redisson

带你换个角度理解图卷积网络

华为云开发者联盟

神经网络 卷积神经网络 图神经网络 卷积 图网络

What's JVM-垃圾收集器与内存分配策略

CodeWithBuff

Java JVM 垃圾回收机制

ARTS 打卡计划-1

语霖

什么是网络单纯型算法

华为云开发者联盟

算法 线性规划 网络单纯型 计算矩阵

对产品来说,颜值、体验是不是很重要?

石云升

用户体验 职场经验 7月日更

Vue进阶(幺捌伍):动态设置系统字体

No Silver Bullet

Vue 7月日更 字体设置

微信架构图

Geek_36d3e5

【Flutter 专题】86 初识状态管理 Bloc (一)

阿策小和尚

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

图解堆排序,带你彻底了解清楚!

程序员的时光

Java 面试 算法 排序算法 堆排序

EasyRecovery深度扫描以恢复桌面遗失数据的方法

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

Rust从0到1-并发-线程

rust 线程 并发 Thread Concurrency

一脚踢你进Go语言大门!入门者必看,万字长文,建议收藏!

微客鸟窝

Go 语言

Python OpenCV 霍夫(Hough Transform)直线变换检测应用

梦想橡皮擦

7月日更

工业互联网赋能 浪潮云洲助力区域品牌“走出去”

工业互联网

Jira 要停售本地私有化部署的版本了,这对国产项目管理软件是机会吗?

万事ONES

项目管理 Atlassian Jira ONES

在线标准程序员计算器

入门小站

工具

模块八:课后作业

菲尼克斯

架构实战营

Vue进阶(幺零六):子组件处理父组件异步值传递给子组件处理

No Silver Bullet

Vue 组件 监听 7月日更

手写QuickSort算法

实力程序员

程序员 算法 成长 C语言

架构训练营模块8作业

Neil43

架构训练营

字节跳动Go 网络库netpoll源码解析

xumc

字节跳动 Go 语言

如何打造高效好用的终端?拿来吧你!

童欧巴

大前端 iterm2 Oh My Zsh

作业表设计

大肚皮狒狒

悟了!树,二叉树,哈夫曼树...

Ayue、

数据结构

【LeetCode】减小和重新排列数组后的最大元素Java题解

Albert

算法 LeetCode 7月日更

怎么借助Camtasia给电脑游戏录屏

淋雨

视频剪辑 Camtasia 录屏

索信达首席科学家张磊:以AI创新技术满足金融场景的“私人定制”

索信达控股

大数据 数字化转型 银行数字化转型

深入学习WebSockets概念和实践

devpoint

socket websocket 7月日更

牙膏踩爆!Intel 5nm工艺曝光:直逼IBM 2nm

E科讯

架构之:REST和RESTful

程序那些事

微服务 软件架构 程序那些事

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