技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

产品增长中最为经典的模型为 AARRR 漏斗模型,该模型追求最大化拉新,第一步“获客”(Acquisition)环节最为受到重视,而后在“激活、留存、营收、推荐”环节中不断优化转化率,实现用户增长。

但当流量红利见顶,用户拉新难度和成本倍速上升时,RARRA 模型适时出现,新的模型将“用户留存” (Retention) 视为了第一关注点,用户留存在产品增长中的重要性上愈加凸显。留存高,说明产品更能真正满足用户需求,当红利时代过去后,在好产品的基础上做拉新才有意义。

本文将围绕“提升新用户”留存这一关键点展开,以视频 APP 优化的真实故事为例,讲述字节的产品团队如何使用 A/B 测试产品 DataTester 设计 A/B 实验,并显著提升了该 APP 的新用户留存。本案例也是字节跳动在多年的 A/B 实验历程中,一个具有故事性的案例。

读完全文你将可以知晓:一个 A/B 实验的全生命周期是什么样的,以及如何设计和评估一个 A/B 实验。

第一轮 A/B 实验:理想很丰满,结果却很骨感

整个案例由针对该 APP 新人引导环节的两轮 A/B 实验组成,第一轮 A/B 实验以“失败”告终;在第一轮实验的基础上,字节跳动的产品团队又进行了第二轮实验,最终获得了成功,显著提升了新用户的留存。

该视频 APP 的使用方式与抖音类似,用户在使用该视频 App 时,可以通过在屏幕上进行[上滑]操作,来让当前视频跳转至下一视频。在这过程中,新用户会看到一个「上滑引导」的指示,该引导的主要作用是告知新用户:可以通过「上滑」方式跳转至下个视频。

由于当前的上滑引导由静态的手指图片及提示文案组成,展现时间比较短,整体上并且没有呈现出很明显的“提示上滑”的效果。这就意味着因新用户很可能看不懂这个提示,进而并没有学会如何使用该 APP,也就无法体验到产品的核心价值,最终流失。

初始引导式样如下图所示:

引导样式 1

因此产品团队希望能够通过 A/B 实验,优化“手指上滑”动作在产品界面中的引导。

他们认为,如果让更多新用户用户在初次使用 APP 时就看懂提示,学会正确地「上滑」,预期对新用户的留存会有提升。因此,该产品设计了新的「上滑引导」方式,并通过 A/B 实验对新方案的效果进行评估。

实验方案设计:半动态式的引导样式

在明确了产品目前的问题和改进的方向之后,该产品设计了一版改进方案,可以看到,为了加强引导效果,这一版本的「上滑引导」采用了半动态的方式:基础提示文案固定,屏幕最底端的指示条呈现出自下而上“滚动渐变”的动效。

引导样式 2(产品界面里为动态指示)

为了验证新方案的效果,该产品团队制定了在 DataTester 上开设 A/B 实验的方案,并明确了实验中需要关注的指标和预期值。

目标人群:

针对 APP 版本号最新的用户开启实验。

实验变量:

  • 对照组 A:线上版本,即实验背景中所提及的引导样式 1;

  • 实验组 B:采用新样式,即引导样式 2。

指标及预期:

实验开启前,实验者需选定关注的指标,并确定这部分指标变化的预期值,这对于确定实验所需的进组流量以及后续分析实验效果,都有着至关重要的意义。

在本实验中,「是否学会切换至下一视频的正确姿势」对「新用户是否留存」有直接或间接影响,因此,将「新用户留存」作为评判本次实验是否成功的核心指标。该产品希望:经由版本改动,新用户留存可提升 0.5%且显著;同时,该产品的其他核心指标需无显著负向表现。

除此之外,由于「上滑引导」改动会直接影响新用户尝试切换视频的操作方式,因此,将新用户「正确进行上滑操作」的渗透率和「错误操作」(如进行了下拉刷新、点击首页/推荐按钮等)的渗透率作为评估实验效果的直接指标。预期正确操作渗透率提升 1%且显著;错误操作渗透率降低 1%且显著。

流量与周期:

本次 AB 实验,产品组在 DataTester 中设置了 10%的线上流量,对照组和实验组各占 5%。实验周期为 1 个月。

实验结果分析:功能渗透率呈负向

实验运行了一段时间后,在 DataTester 的界面中,可以看到实时的实验数据分析。从指标表现来看:

  1. 衡量实验是否成功的核心指标——新用户留存,未见显著提升;

(*虚拟数据)

  1. 直接效果指标:

  • 新用户进组当日「正确操作-上滑」的渗透率下降约为 1%且显著,与预期不符;

  • 新用户进组当日「错误操作-下拉刷新」的渗透率下降约为 1%且显著,符合预期;

  • 新用户进组当日「错误操作-点击推荐/首页」的渗透率提升约为 1.5%且显著,与预期不符;

随后,数据分析师对指标表现进行了进一步分析:

  1. 对「正常操作-上滑」影响:将「上滑操作渗透率」按地区进行多维下钻后,分析师发现,经济发达地区用户的渗透率普遍更低,对「上滑引导」的理解更差。这听起来很奇怪,经过分析师的推断,导致这一现象的原因可能有两点:

  • 经济发达地区用户互联网更发达,对观看新用户引导的耐心更低,导致对上滑引导的理解更差;

  • 经济发达地区用户受常用 APP 操作习惯影响大,对新的操作方式不能很快适应,因此渗透率普遍更低;

2.分析「错误操作」的影响:

  • 经用户行为分析,「错误操作-点击推荐/首页」显著提升,原因是用户未能理解「上滑引导」中所提示的操作,反而去尝试了点击推荐/首页 Tab。

第一轮 A/B 实验结论:本次改动无显著收益

经由上述分析,字节跳动的实验团队得出结论:

  • 核心指标没有显著收益,关闭实验,功能下线;

  • 直接效果指标负向,此次实验中上线的功能并没有达到预期收益,许多新用户对于这一功能仍旧存在理解障碍,需要探索更好的引导样式。

第二轮 A/B 实验:进化和迭代

实验方案设计:全动态引导样式

由于上一次的 A/B 测试结果并不理想,字节跳动的产品团队基于上次实验结论,又进行了详细的调研分析,再次设计了全新的「上滑引导」样式。

新的「上滑引导」使用了动态引导的方式,并且对文案进行了优化。引导方式从第一版实验中的半动态指示条,改为一段悬浮于屏幕之上的动画,动画中直接演示出上滑屏幕这一动作;同时,文案也由前一版的“向上滑动查看其他视频”更改为“向上滑动以获取更多视频”。

引导样式 3(产品界面里为动态指示)

字节跳动的产品团队在 DataTester 中配置了新的 A/B 实验。

  • 对照组 A:当前线上版本,即实验背景中所提及的引导样式 1;

  • 实验组 B:采用新样式,即引导样式 3;

在指标与预期、流量与实验周期方面,第二轮与第一轮保持了一致。

实验结果分析:指标正向收益明显

在实验运行了一段时间后,他们再次来到 DataTester 的数据分析界面,查看实时的指标表现情况:

分析两组实验发现,新的方案——实验组 B 对比对照组 A,在人均使用时长、人均视频播放量上,有了非常显著的提升!

  1. 实验成功指标——新用户留存提升约 1%-1.8%,且指标结果呈显著,符合预期;

(*虚拟数据)

  1. 其他核心指标:人均时长、人均视频播放量均有提升,且呈显著;

  2. 直接效果指标:新用户进组当日「正确操作-上滑」的渗透率提升且显著,幅度约为 1.5%,符合预期;同时实验证明了:教会新用户上滑操作对新用户留存有明确的收益;

  3. 分地区多维分析:鉴于初次实验发现发达地区用户对上滑教育的理解度更差,因此需要进一步分地区分析用户对于实验组策略的理解;
  4. 经济发达地区:上滑功能渗透率提升且呈显著,新用户留存提升且呈显著,幅度约 2%,比实验组平均水平提示更为明显。说明新引导功能的教育作用有明显的收益;
  5. 经济非发达地区:上滑渗透率无显著提升,新用户留存无显著提升。

第二轮 A/B 实验结论:收益显著 全量上线

在第二轮 A/B 测试结束后,新的方案在该 APP 上全量上线了。后续字节跳动的产品团队观察发现,仍有一定比例的新用户看过视频但没有进行上滑操作。经进一步的下钻分析,他们发现经济发达地区这类用户占比更高,后续将对这部分用户行为进行持续观察,挖掘是否有进一步教育的空间。

上方的案例为大家展示了一个完整 A/B 测试生命周期的全过程,实际上,该实验也是字节跳动在众多的 A/B 测试中比较有代表性的案例。

DataTester 产品介绍

案例中使用到的 A/B 实验平台 DataTester ,是字节跳动自研的 AB 实验平台。截至 2022 年 8 月,DataTester 已在字节跳动内部累计完成 150 万次 A/B 测试。DataTester 集成了字节内部丰富的业务场景中的 A/B 测试经验,并已通过火山引擎,面向外部企业客户开放服务支持。

点击跳转,立即试用火山引擎 DataTester

如何利用 A/B 实验提升产品用户留存? 看字节实战案例给你答案!的更多相关文章

  1. 提升网站用户体验—WebP 图片的高效使用

    一.WebP 的由来 现代图像压缩技术对我们的生活方式影响很大.数码相机能将上千张高质量图片存储到一张内存卡里.智能手机可以与邻近设备快速分享高分辨率的图片.网站与手机等移动设备能快速展示各种富媒体. ...

  2. APP开发中,如何从UI设计上提升APP用户体验

    设计中有很多细微的东西要注意,就如UI设计中,元素的统一性,图标风格.段落的排版等等,只有能注意这些细节,你的 APP UI 才算合格. 干货君总结了17个提升用户体验的 UI 设计小技巧,也是我们日 ...

  3. ZWS物联网云平台为电器设备智能化,提升产品竞争力

    从目前的消费趋势来看,家居电器设备的消费发力点在于年轻人.他们基本由"80"."90后"组成,对于消费理念更加的新颖,对于新产品与新观念更加容易接受.不过相对的 ...

  4. Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互

    框架的东西太复杂也难以讲通,直接上代码: 一.首先得配置环境 和导入必要的jar包 有一些重要的如下: Filter文件夹下的SafetyFilter.java   model文件夹下的 Global ...

  5. Spring Boot中利用递归算法查询到所有下级用户,并手动进行分页

    Spring Boot中利用递归算法查询到所有下级用户,并手动进行分页 前提:语言用的是kotlin(和Java一样,但更简洁),写下这篇文章用来记录编程过程中遇到的一些难点 1.功能需求 前端用户A ...

  6. 利用方法HttpUtility.HtmlEncode来预处理用户输入

    利用方法HttpUtility.HtmlEncode来预处理用户输入.这样能阻止用户用链接注入JavaScript代码或HTML标记,比如//Store/Broswe?Genre=<script ...

  7. 利用expect交互批量修改普通用户过期密码

    利用expect交互批量修改普通用户过期密码 因为公司接了一个密码托管的活,有10000多台机器,系统有 openSUSE,SUSE,Ubuntu,centos,Oracle-Linux, 而且什么版 ...

  8. 一个AI产品经理怎么看AI的发展

    一个AI产品经理怎么看AI的发展 https://www.jianshu.com/p/bed6b22ae837 最近一直在思考这个问题,人工智能接下来的几年会有什么样的发展,是否真的能够在很多工作岗位 ...

  9. Linux企业生产环境用户权限集中管理项目方案案例

    企业生产环境用户权限集中管理项目方案案例: 1 问题现状 当前我们公司里服务器上百台,各个服务器上的管理人员很多(开发+运维+架构+DBA+产品+市场),在大家登录使用Linux服务器时,不同职能的员 ...

  10. 客户流失?来看看大厂如何基于spark+机器学习构建千万数据规模上的用户留存模型 ⛵

    作者:韩信子@ShowMeAI 大数据技术 ◉ 技能提升系列:https://www.showmeai.tech/tutorials/84 行业名企应用系列:https://www.showmeai. ...

随机推荐

  1. cannot import name '_BindParamClause' from 'sqlalchemy.sql.expression'

    python3.8 安装环境组件正常安装 运行 flask db init 报错 cannot import name '_BindParamClause' from 'sqlalchemy.sql. ...

  2. Navicat Premium破解工具及教程

    使用Navicat_Keygen_Patch5破解Navicat Premium 更新:2019-06-11 10:16 使用Navicat_Keygen_Patch_v5.0_By_DFoX破解Na ...

  3. 【MISC】[MoeCTF 2022]cccrrc --crc32爆破

    附件下载下来为压缩包,需要密码,查看该压缩包的内容 此处发现里面四个txt文件均已被加密,但是每个txt的内容都只有四个字节,符合crc32爆破条件,直接上脚本: import binascii im ...

  4. 当代免疫学小史-第一章(根据讲谈社Blue Backs系列2009年第一版第三次印刷版本翻译)

    作者 -岸本忠三:前大阪大学校长.IL-6发现人 -中嶋彰:科普作家 第1章 石坂往事 巴尔的摩的大雪 1970年匆匆而过,这一年举行了大阪世博会,三岛由纪夫也是在这一年切腹自杀的.1971年新年第一 ...

  5. 简单地聊一聊Spring Boot的构架

    本文由葡萄城技术团队发布.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 本文小编将详细解析Spring Boot框架,并通过代码举例说明每个层的作用 ...

  6. 你真的了解@Async吗?

    使用场景: 开发中会碰到一些耗时较长或者不需要立即得到执行结果的逻辑,比如消息推送.商品同步等都可以使用异步方法,这时我们可以用到@Async.但是直接使用 @Async 会有风险,当我们没有指定线程 ...

  7. Android RTL 语言适配

    RTL 语言,即 right to left language,也就是右对齐的语言,与一般语言按照左对齐的方式不同,需要进行特别适配. AndroidManifest.xml 文件中,增加 andro ...

  8. Java多线程消费消息

    多线程消费消息 关键词:Java,多线程,消息队列,rocketmq 多线程一个用例之一就是消息的快速消费,比如我们有一个消息队列我们希望以更快的速度消费消息,假如我们用的是rocketmq,我们从中 ...

  9. Modbus通用串口转PROFINET IO网关TS-180 在锅炉厂智能温湿度监控系统中的应用

    背景: 现代科学技术和工业的迅速发展,不断促进着自动化控制技术及设备通信技术的创新和发展.当前,PLC.DCS.智能仪表等已广泛应用到现场生产控制系统中,本应用案例是在锅炉行业的温湿度监控系统中,西门 ...

  10. 神经网络入门篇之深层神经网络:详解前向传播和反向传播(Forward and backward propagation)

    深层神经网络(Deep L-layer neural network) 复习下前面的内容: 1.逻辑回归,结构如下图左边.一个隐藏层的神经网络,结构下图右边: 注意,神经网络的层数是这么定义的:从左到 ...