1.简介
在此 Codelab 中,您将学习如何使用 A/B Testing 为示例游戏 MechaHamster: Level Up with Firebase Edition 创建 Remote Config 实验,该示例游戏已在使用 Firebase Remote Config 对游戏进行插桩测试中进行了修改。
利用 Remote Config 的 A/B Testing,您可以针对目标受众群体测试对应用界面、功能或互动广告系列的更改,然后再将其发布给更广泛的受众群体。您还可以使用实验结果来:
- 确定哪些参数值变体可以改善收入和留存率等关键指标。
- 了解哪些用户子群体更喜欢哪种款式/规格。
- 收集并存储实验数据,以执行进一步分析,了解设置不同参数值的影响。
这是 A/B Testing 的精髓:通过 A/B Testing,您可以对 Remote Config 进行代码插桩,并根据 Remote Config 条件(包括 Google Analytics 用户属性)、百分比发布、Analytics 转化事件以及这些条件的某些组合,启动实验来控制客户收到的价值。
首先,您需要根据用户操作来设置用户属性,从而实现一个条件,限定哪些用户参与实验。然后,您将创建一项 A/B Testing 实验,使用 Google Analytics 用户属性来确定哪些客户包含在实验中。最后,您可以利用这些数据进一步了解您的受众群体。
学习内容
- 如何使用插桩的 Remote Config 值设置 A/B Testing
- 如何使用 Google Analytics 用户属性作为准入 A/B 测试的条件的一部分
前提条件
您需要满足的条件
- 支持 iOS 和/或 Android 构建的 Unity 2019.1.0f1 或更高版本
2. 启用调试菜单
项目中隐藏了一个调试菜单,游戏中存在用于访问此菜单的按钮,但目前未启用。您必须启用该按钮才能从 MainMenu 预设件访问该按钮。
- 在 Unity 编辑器中,选择 Project 标签页,然后在 Assets 下展开 Hamster >预制件 >Menus(菜单),然后点击 MainMenu。
- 在 Prefab 层次结构中,找到名为 DebugMenuButton 的已停用子对象,然后点击该对象以在 Inspector 标签页中打开它。
- 在 Inspector 标签页中,勾选左上角包含 DebugMenuButton 的文本字段旁边的复选框,以启用该文本字段。
- 保存预设件。
如果您在编辑器或设备上运行游戏,现在应该可以访问菜单。
3. 启用 Remote Config 子菜单
- 从 Unity 编辑器的 Project 标签页中,展开 Assets >仓鼠 >预制件 >Menus 标签页,然后双击 DebugMenu 对象,以在编辑器的 Hierarchy 标签页中将其打开。
- 在 Hierarchy 标签页中,展开层次结构,然后点击 DebugMenu >面板,上面标有 Remote Config 操作。
- 在 Unity Inspector 标签页中,通过选中包含对象名称的文本字段左侧的复选框,启用 Remote Config Actions。
它有两个 GameObject 子级,分别名为 Set Bored Of Subtitle 和 Set Comes Subtitle,它们都配置为调用 DebugMenu.cs
中现有但尚未实现的方法。
4. 将字幕覆盖重置为应用内默认值
在上一个 Codelab 中,您替换了参数的默认值 JSON,并使用条件来提供不同的变体。在此 Codelab 中,您将删除自己创建的条件并重新引入应用内默认设置,您只需使用 A/B Testing 的结果替换它。
如需重新启用应用内默认设置,请执行以下操作:
- 在 Firebase 控制台中打开 Remote Config 页面,然后点击
subtitle_override
参数旁边的铅笔图标以打开修改参数侧边栏。 - 点击条件旁边的 X 图标将其删除。
- 在其余默认值旁边,将使用应用内默认值开关切换到开启状态。
- 点击保存以保存所做更改,然后点击发布更改以发布更改。
5. 在调试函数中设置用户属性
现在,您将在 DebugMenu.cs
(可在“Assets > Hamster > Scripts > State”)中为一些预配置但尚未实现的 Google Analytics 函数编写函数正文。
这些函数用于设置用户属性,这些属性用于描述用户群细分,并用于记录用户对游戏字幕的感受。
如需实现 SetUserBoredOfSubtitle
和 SetUserEnjoysSubtitle
,请在 DebugMenu.cs
中查找它们的现有版本并将它们覆盖,如下所示:
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
如果您的应用正确配置了 Google Analytics,您可以调用下列函数之一,使媒体资源可用于 Remote Config 的条件。如需在移动设备上调用 SetUserBoredOfSubtitle
,请启动游戏并按主菜单中的 Debug Menu 按钮,然后按 Set Bored of Subtitle。
6. 创建自定义维度
接下来,您将为 subtitle_override
设置各种字幕变体,看看哪种字幕效果最好。但是,在 A/B 测试中,您只会向对当前字幕(如 subtitle_sentiment
中所记录)感觉包含“无聊”一词的用户投放这些变体。
您将使用自定义维度来创建和跟踪 Google Analytics 事件的自定义参数。如需了解详情,请参阅自定义维度和指标。
要创建新的自定义维度,请执行以下操作:
- 打开 Firebase 控制台,展开 Analytics(分析)菜单,然后选择自定义设置。
- 在“自定义设置”页面中,点击创建自定义维度。
- 在新建自定义维度窗口中,将维度名称设置为“副标题情感”并从范围下拉菜单中选择用户。
- 对于用户属性字段,选择
subtitle_sentiment.
7. 设置 A/B Testing 实验
接下来,创建一项 A/B Testing 实验,为要相互测试的 subtitle_override
设置不同的值,从而优化两到三天的用户留存率。
- 首先,在 Firebase 控制台的 Remote Config 页面上的
subtitle_override
参数上选择 Edit:
- 在随即显示的修改参数对话框中,点击新增。
- 在随即显示的列表中选择实验。
- 为实验输入名称和说明。
- 接下来,选择定位条件。首先,从下拉列表中选择您的应用。
- 接下来,点击且以添加新条件,然后依次选择用户属性和
subtitle_sentiment
。如果未显示,请手动输入。 - 由于您只想为当前字幕情感包含“无聊”的观看者设置副标题,选择包含并输入
bored
。 - (可选)选择向符合上述条件的受众群体参与测试的百分比。选择 100% 可以避免难以控制的随机性。
- 接下来,选择测试将尽可能提升的目标。选择留存率(2-3 天)。
- 接下来,设置实验参数并制作不同的字幕变体。这些变体是 A/B Testing 将向
subtitle_sentiment
包含“bored”的用户提供的不同值,A/B Testing 将确定哪些变体最适合最大限度提高留存率。 - 为变体 A 输入以下参数值:
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
- 为变体 B 输入以下参数值:
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
- 使用整数设置变体比率,如下所示:
- 基准:1
- 变体 A:100
- 变体 B:100
这些变体表明,在 201 次中,A/B Testing 为无视字幕的用户提供默认总权重,而在 200/201 中,系统将提供两个新值之一,并覆盖标题屏幕。
- 点击启动实验,然后点击确认弹出式窗口中的开始,保存并提交。
8. 运行“设置用户属性”方法并刷新
现在,您已设置用户的各种属性,这些属性可用于指导游戏的逻辑或呈现方式。
如果您之前未运行过 SetUserProperty
方法或已将其设置为 enjoys
,那么在打开游戏时,您应该仍会看到默认副标题。
如果您已在将其设为 bored
(在重新提取之前),您应该会看到其中一个新值呈现的比例约为 50/50。
设备进入 A/B Testing 实验后,从实验中收到的值不会改变,并且每次安装都是永久性的。因此,若要接收其他某个实验值,您必须通过以下方式创建新的安装:将游戏重新安装到同一设备/模拟器,或将游戏安装到新设备/模拟器。
在针对用户群启动的真实 A/B 测试中,您应该为基准组指定与其他变体类似的权重。但在这种情况下,您需要分配非常偏离的概率,以验证实验是否有效。如果(在 1/201 的情况下),您仍然收到默认值,请尝试将游戏重新安装到设备/模拟器上。
这样做的另一个影响是,将用户属性切换回 enjoys
不会将值改回基准,但同样,您可以通过切换到 enjoys
并重新安装来实现这一点。
9. 恭喜!
您已使用 Remote Config A/B Testing 对不同的 Remote Config 值进行了实验,并确定了每个值对 Google Analytics 指标的影响。
所学内容
- 如何使用插桩的 Remote Config 值设置 A/B Testing
- 如何使用 Google Analytics 用户属性作为参与 A/B Testing 实验的条件的一部分
后续步骤
实验结束后,您可以从项目中的实验列表中选择一个实验,决定要如何处理该实验。要选一个作为“获胜者”吗?还是开展更多实验?