当您接触用户或开始新的营销活动时,您需要确保做对了。 A/B 测试可以通过测试用户群的选定部分的消息变体来帮助您找到最佳的措辞和呈现方式。无论您的目标是更好地保留还是转换报价,A/B 测试都可以执行统计分析以确定消息变体是否优于您所选目标的基线。
要使用基线对功能变体进行 A/B 测试,请执行以下操作:
- 创建您的实验。
- 在测试设备上验证您的实验。
- 管理您的实验。
创建实验
使用 Firebase 应用内消息的实验可让您评估单个应用内消息的多个变体。
登录到Firebase 控制台并验证您的项目中是否启用了 Google Analytics,以便实验可以访问 Analytics 数据。
如果您在创建项目时未启用 Google Analytics,则可以在集成选项卡上启用它,您可以使用Firebase 控制台中的 >项目设置访问该选项卡。
在Firebase 控制台导航栏的参与部分中,单击A/B 测试。
单击创建实验,然后在系统提示您选择要试验的服务时选择应用程序内消息。
或者,在Firebase 控制台导航栏上,展开Engage ,然后单击In-App Messaging 。然后点击新建实验。
为您的实验输入名称和可选的描述,然后单击下一步。
填写定位字段,首先选择使用您的实验的应用程序。您还可以通过选择包括以下内容的选项来定位一部分用户参与您的实验:
- 版本:您应用的一个或多个版本
- 用户受众:用于定位可能包含在实验中的用户的分析受众
- 用户属性:一个或多个 Analytics 用户属性,用于选择可能包含在实验中的用户
- 国家/地区:一个或多个国家或地区,用于选择可能包含在实验中的用户
- 设备语言:一种或多种语言和区域设置,用于选择可能包含在实验中的用户
- 首次打开:根据用户第一次打开您的应用来定位用户
- 上次应用互动:根据用户上次与您的应用互动的时间来定位用户
设置目标用户百分比:选择您的应用程序用户群中与目标用户下设置的条件相匹配的百分比,您希望将其平均分配给实验中的基线和一个或多个变体。这可以是 0.01% 到 100% 之间的任何百分比。每个实验的百分比随机重新分配给用户,包括重复实验。
在“变体”部分中,使用您用于普通应用程序内消息传递活动的消息设计界面,配置基准应用程序内消息以发送到基准组。
要向您的实验添加变体,请点击添加变体。默认情况下,实验有一个基线和一个变体。
(可选)为实验中的每个变体输入一个名称,以替换名称Variant A 、 Variant B等。
(可选)在Variants部分的顶部,单击Compare variants按钮以将一个消息变体与基线消息并排比较。
为您的实验定义一个目标指标,以在评估实验变体时使用,以及下拉列表中的任何所需的其他指标。这些指标包括内置目标(参与度、购买量、收入、保留率等)、分析转化事件和其他分析事件。
配置实验的调度:
- 为实验设置开始和结束日期。
- 设置如何在所有变体中触发应用内消息。
单击查看以保存您的实验。
每个项目最多允许 300 个实验,其中最多可包含 24 个正在运行的实验,其余为草稿或已完成。
在测试设备上验证您的实验
对于每个 Firebase 安装,您都可以检索与其关联的安装授权令牌。您可以使用此令牌在安装了您的应用程序的测试设备上测试特定的实验变体。要在测试设备上验证您的实验,请执行以下操作:
- 获取安装授权令牌如下:
迅速
Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in if let error = error { print("Error fetching token: \(error)") return } guard let result = result else { return } print("Installation auth token: \(result.authToken)") })
目标-C
[[FIRInstallations installations] authTokenForcingRefresh:true completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation token %@", error); return; } NSLog(@"Installation auth token: %@", [result authToken]); }];
Java
FirebaseInstallations.getInstance().getToken(/* forceRefresh */true) .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() { @Override public void onComplete(@NonNull Task<InstallationTokenResult> task) { if (task.isSuccessful() && task.getResult() != null) { Log.d("Installations", "Installation auth token: " + task.getResult().getToken()); } else { Log.e("Installations", "Unable to get Installation auth token"); } } });
Kotlin+KTX
FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation auth token: " + task.result?.token) } else { Log.e("Installations", "Unable to get Installation auth token") } }
- 在Firebase 控制台导航栏上,单击A/B 测试。
- 单击Draft (和/或Running for Remote Config experiments),将鼠标悬停在您的实验上,单击上下文菜单 ( more_vert ),然后单击Manage test devices 。
- 输入测试设备的安装授权令牌,然后选择要发送到该测试设备的实验变体。
- 运行应用程序并确认所选变体正在测试设备上接收。
要了解有关 Firebase 安装的更多信息,请参阅管理 Firebase 安装。
管理您的实验
无论您是使用 Remote Config、Notifications composer 还是 Firebase In-App Messaging 创建实验,您都可以随后验证并开始实验,在实验运行时监控实验,并增加运行实验中包含的用户数量。
实验完成后,您可以记下获胜变体使用的设置,然后将这些设置推广给所有用户。或者,您可以运行另一个实验。
开始实验
- 在Firebase 控制台导航栏的参与部分中,单击A/B 测试。
- 单击草稿,然后单击您的实验的标题。
- 要验证您的应用程序是否有将包含在您的实验中的用户,请展开草稿详细信息并检查定位和分布部分中大于0%的数字(例如, 1% 的用户符合条件)。
- 要更改您的实验,请点击编辑。
- 要开始您的实验,请点击Start Experiment 。每个项目一次最多可以运行 24 个实验。
监控实验
实验运行一段时间后,您可以检查其进度并查看到目前为止已参与实验的用户的结果。
- 在Firebase 控制台导航栏的参与部分中,单击A/B 测试。
单击Running ,然后单击或搜索实验的标题。在此页面上,您可以查看有关正在运行的实验的各种观察和建模统计信息,包括以下内容:
- 与基线的差异百分比:衡量给定变体的指标相对于基线的改进程度。通过比较变体的值范围与基线的值范围来计算。
- 击败基线的概率:给定变体击败所选指标的基线的估计概率。
- observed_metric per user :根据实验结果,这是指标值随时间落入的预测范围。
- Total observed_metric :基线或变体的观察到的累积值。该值用于衡量每个实验变体的执行情况,并用于计算Improvement 、 Value range 、 Probability to beat baseline和Probability to be the best variant 。根据测量的指标,此列可能会标记为“每个用户的持续时间”、“每个用户的收入”、“保留率”或“转化率”。
在您的实验运行一段时间后(FCM 和应用内消息传递至少 7 天,远程配置至少 14 天),此页面上的数据表明哪个变体(如果有)是“领导者”。一些测量伴随着条形图,以可视化格式显示数据。
向所有用户推出实验
在实验运行足够长的时间以至于您有一个“领导者”或获胜变体作为您的目标指标后,您可以将实验推广到 100% 的用户。这允许您选择一个变体以发布给所有用户。即使您的实验没有产生明显的赢家,您仍然可以选择向所有用户推出一个变体。
- 在Firebase 控制台导航栏的参与部分中,单击A/B 测试。
- 单击已完成或正在运行,单击要向所有用户推出的实验,单击上下文菜单 ( more_vert ),然后单击推出变体。
通过执行以下操作之一向所有用户推出您的实验:
- 对于使用Notifications composer的实验,使用Roll out message对话框将消息发送给未参与实验的其余目标用户。
- 对于远程配置实验,选择一个变体以确定要更新的远程配置参数值。创建实验时定义的目标条件将作为新条件添加到您的模板中,以确保推出仅影响实验所针对的用户。单击Remote Config 中的 Review查看更改后,单击Publish changes完成部署。
- 对于应用内消息实验,使用对话框确定需要将哪个变体作为独立的应用内消息活动推出。选择后,您将被重定向到 FIAM 撰写屏幕,以便在发布前进行任何更改(如果需要)。
展开实验
如果您发现实验没有为 A/B 测试带来足够的用户来宣布领导者,您可以增加实验的分布以覆盖更大比例的应用用户群。
- 在Firebase 控制台导航栏的参与部分中,单击A/B 测试。
- 选择要编辑的正在运行的实验。
- 在Experiment overview中,单击上下文菜单 ( more_vert ),然后单击Edit running experiment 。
- Targeting对话框显示一个选项,用于增加当前正在运行的实验中的用户百分比。选择一个大于当前百分比的数字并单击Publish 。实验将被推送到您指定的用户百分比。
复制或停止实验
- 在Firebase 控制台导航栏的参与部分中,单击A/B 测试。
- 单击已完成或正在运行,将鼠标悬停在您的实验上,单击上下文菜单 ( more_vert ),然后单击复制实验或停止实验。
用户定位
您可以使用以下用户定位条件来定位要包含在您的实验中的用户。
定位条件 | 操作员 | 值 | 笔记 |
---|---|---|---|
版本 | 包含, 不含, 完全匹配, 包含正则表达式 | 为您要包含在实验中的一个或多个应用程序版本输入一个值。 | 当使用任何contains 、 does not contain或matches exactly operators 时,您可以提供以逗号分隔的值列表。 使用包含正则表达式运算符时,您可以创建RE2格式的正则表达式。您的正则表达式可以匹配全部或部分目标版本字符串。您还可以使用^和$锚点来匹配目标字符串的开头、结尾或整个内容。 |
用户受众 | 包括所有, 至少包括以下一项, 不包括所有, 至少不包括以下一项 | 选择一个或多个 Analytics 受众以定位可能包含在您的实验中的用户。 | 一些针对 Google Analytics 受众的实验可能需要几天时间来积累数据,因为它们受 Analytics数据处理延迟的影响。对于新用户,您最有可能遇到这种延迟,他们通常在创建后 24-48 小时内注册到符合条件的受众群体中,或者对于最近创建的受众群体。 |
用户属性 | 对于文本: 包含, 不含, 完全匹配, 包含正则表达式 对于数字: <、≤、=、≥、> | Analytics 用户属性用于选择可能包含在实验中的用户,并提供一系列用于选择用户属性值的选项。 在客户端上,您只能为用户属性设置字符串值。对于使用数字运算符的条件,远程配置服务会将相应用户属性的值转换为整数/浮点数。 | 使用包含正则表达式运算符时,您可以创建RE2格式的正则表达式。您的正则表达式可以匹配全部或部分目标版本字符串。您还可以使用^和$锚点来匹配目标字符串的开头、结尾或整个内容。 |
国家/地区 | 不适用 | 一个或多个国家或地区用于选择可能包含在实验中的用户。 | |
语言 | 不适用 | 一种或多种语言和区域设置用于选择可能包含在实验中的用户。 | |
先开 | 多于 少于 之间 | 根据用户第一次打开您的应用程序的时间来定位用户,以天为单位指定。 | |
上次应用互动 | 多于 少于 之间 | 根据用户上次与您的应用互动的时间(以天为单位指定)来定位用户。 |
A/B 测试指标
创建实验时,您可以选择一个主要指标或目标指标,用于确定获胜变体。您还应该跟踪其他指标,以帮助您更好地了解每个实验变体的性能,并跟踪可能因每个变体而异的重要趋势,例如用户保留率、应用稳定性和应用内购买收入。您最多可以在实验中跟踪五个非目标指标。
例如,假设您已将新的应用内购买添加到您的应用中,并且想要比较两种不同的“微调”消息的有效性。在这种情况下,您可能决定选择将购买收入设置为您的目标指标,因为您希望获胜变体代表导致最高应用内购买收入的通知。并且因为您还想跟踪哪个变体导致了更多的未来转化和留存用户,您可以在要跟踪的其他指标中添加以下内容:- 估计总收入,以查看您的应用内购买和广告收入的总和在两种变体之间有何不同
- Retention (1 day) , Retention (2-3 days) , Retention (4-7 days)以跟踪您的每日/每周用户保留
下表提供了有关如何计算目标指标和其他指标的详细信息。
目标指标
公制 | 描述 |
---|---|
无崩溃用户 | 在实验期间 Firebase Crashlytics SDK 检测到的未在您的应用中遇到错误的用户百分比。 |
预计广告收入 | 预计广告收入。 |
预计总收入 | 合并购买价值和估计的广告收入。 |
采购收入 | 所有purchase 和in_app_purchase 事件的总价值。 |
保留(1 天) | 每天返回您的应用的用户数量。 |
保留(2-3 天) | 在 2-3 天内返回您的应用的用户数量。 |
保留(4-7 天) | 在 4-7 天内返回您的应用的用户数量。 |
保留(8-14 天) | 在 8-14 天内返回您的应用的用户数量。 |
保留(15 天以上) | 在上次使用您的应用 15 天或更长时间后返回您的应用的用户数量。 |
首先打开 | 当用户在安装或重新安装应用程序后首次打开应用程序时触发的 Analytics 事件。用作转化漏斗的一部分。 |
其他指标
公制 | 描述 |
---|---|
notification_dismiss 通知 | 当通知编辑器发送的通知被取消时触发的 Analytics 事件(仅限 Android)。 |
通知接收 | 当应用程序处于后台时收到通知编辑器发送的通知时触发的 Analytics 事件(仅限 Android)。 |
操作系统更新 | 跟踪设备操作系统何时更新到新版本的 Analytics 事件。要了解更多信息,请参阅自动收集的事件。 |
屏幕视图 | 跟踪在您的应用程序中查看的屏幕的 Analytics 事件。要了解更多信息,请参阅跟踪屏幕浏览量。 |
session_start | 统计应用中用户会话的 Analytics 事件。要了解更多信息,请参阅自动收集的事件。 |