1. 简介
在本 Codelab 中,您将学习如何使用 A/B 测试为示例游戏 MechaHamster:Level Up with Firebase 版(您在使用 Firebase Remote Config 插桩游戏中对其进行了修改)创建 Remote Config 实验。
借助结合使用 Remote Config 的 A/B Testing,您可以在面向目标受众群体测试对应用界面、功能或互动广告系列所做的更改,然后再面向更广泛的受众群体发布这些更改。您还可以使用实验结果:
- 确定哪些参数值变体可以提升收入和留存率等关键指标。
- 了解哪些用户子群体更喜欢哪些变体。
- 收集和存储实验数据,以便对设置不同参数值的影响进行进一步分析。
这就是 A/B Testing 的核心:借助 A/B Testing,您可以使用为 Remote Config 插桩的代码,并启动实验来控制客户端收到的值,具体取决于 Remote Config 条件(包括 Google Analytics [分析] 用户属性)、百分比发布范围、Google Analytics [分析] 转化事件以及这些条件的组合。
首先,您将实现一个条件,通过根据用户操作设置用户属性来控制哪些用户可以参与实验。然后,您将创建一项 A/B Testing 实验,该实验将使用 Google Analytics 用户属性来确定哪些客户将纳入实验范围。最后,您将使用这些数据来进一步了解观众。
学习内容
- 如何使用插桩 Remote Config 值设置 A/B 测试
- 如何将 Google Analytics 用户属性用作 A/B 测试的准入条件
前提条件
您需要满足的条件
- 支持 iOS 和/或 Android build 的 Unity 2019.1.0f1 或更高版本
2. 启用调试菜单
项目中隐藏了一个调试菜单,游戏中存在用于访问此菜单的按钮,但目前未启用。您必须启用该按钮,才能从 MainMenu 预制模块中访问它。
- 在 Unity 编辑器中,选择 Project(项目)标签页,然后在 Assets(资源)下,依次展开 Hamster > Prefabs > Menus,然后点击 MainMenu。
- 在预制体层次结构中,找到名为 DebugMenuButton 的停用子对象,然后点击该对象以在检查器标签页中打开它。
- 在 Inspector 标签页中,选中左上角包含 DebugMenuButton 的文本字段旁边的复选框,以启用该按钮。
- 保存预制模块。
如果您在编辑器中或在设备上运行游戏,现在应该可以访问该菜单了。
3. 启用 Remote Config 子菜单
- 在 Unity 编辑器的 Project(项目)标签页中,依次展开 Assets(资源)> Hamster > Prefabs(预制对象)> Menus(菜单),然后双击 DebugMenu 对象,以在编辑器的 Hierarchy(层次结构)标签页中打开该对象。
- 在层次结构标签页中,展开层次结构,然后点击 DebugMenu > Panel 下的子对象(标签为Remote Config Actions)。
- 在 Unity Inspector 标签页中,选中包含对象名称的文本字段左侧的复选框,以启用 Remote Config Actions。
它有两个名为 Set Bored Of Subtitle 和 Set Enjoys Subtitle 的 GameObject 子项,这两个子项都配置为调用 DebugMenu.cs
中现有但未实现的方法。
4. 将字幕替换项重置为应用内默认值
在上一个 Codelab 中,您将参数的默认值替换为 JSON,并使用条件来投放不同的变体。在此 Codelab 中,您将删除自己创建的条件,并重新引入应用内默认条件,并且只会使用 A/B 测试结果替换它。
如需重新启用应用内默认值,请执行以下操作:
- 打开 Firebase 控制台中的 Remote Config 页面,然后点击
subtitle_override
参数旁边的铅笔图标,打开修改参数侧边栏。 - 点击相应条件旁边的 X 图标即可将其删除。
- 在其余默认值旁边,启用使用应用内默认值切换开关。
- 点击保存以保存更改,然后点击发布更改以发布更改。
5. 在调试函数中设置用户属性
现在,您将为 DebugMenu.cs
中的一些预配置但未实现的 Google Analytics 函数编写函数正文(这些函数位于“素材资源”>“Hamster”>“脚本”>“状态”下)。
这些函数会设置用户属性,用户属性用于描述用户群细分,并用于记录用户对游戏字幕的看法。
实现 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(分析)菜单,然后选择 Custom definitions(自定义定义)。
- 在“自定义定义”页面中,点击创建自定义维度。
- 在新建自定义维度窗口中,将“维度名称”设置为“字幕情感”,然后从范围下拉菜单中选择用户。
- 对于用户属性字段,选择
subtitle_sentiment.
7. 设置 A/B 测试实验
接下来,创建一项 A/B Testing 实验,为 subtitle_override
设置不同的值,以便相互进行测试,从而优化两到三天的用户留存率。
- 首先,在 Firebase 控制台的 Remote Config 页面上,针对
subtitle_override
参数选择修改:
- 在随即显示的修改参数对话框中,点击添加新参数。
- 从随即显示的列表中,选择实验。
- 为实验输入名称和说明。
- 接下来,选择定位条件。首先,从下拉列表中选择您的应用。
- 接下来,点击 And 以添加新条件,然后选择 User Property(用户属性),并选择
subtitle_sentiment
。如果未显示,请手动输入。 - 由于您只想为当前字幕情感含有“无聊”的字幕设置字幕,因此请选择包含,然后输入
bored
。 - (可选)选择要向符合上述条件的受众群体中的哪一部分用户展示测试内容。选择 100% 可避免无法轻松控制的随机性。
- 接下来,选择测试将尝试最大限度提升的目标。选择留存人数(2-3 天)。
- 接下来,设置实验参数并创建不同的字幕变体。这些变体是 A/B 测试将向
subtitle_sentiment
包含“bored”的用户提供的不同值,A/B 测试将确定哪个变体最有利于最大限度提高留存率。 - 为变体 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 会向厌倦字幕的用户投放 1 次默认值,但在 200/201 次测试中,它会投放两个新值之一并替换片头。
- 点击启动实验进行保存和提交,然后点击确认弹出式窗口中的开始。
8. 运行 Set User Property 方法并刷新
现在,您已设置了与用户相关的各种属性,这些属性可用于指导游戏的逻辑或呈现方式。
如果您之前未运行 SetUserProperty
方法或已将其设为 enjoys
,则在打开游戏时应该仍会看到默认字幕。
如果您将其设为 bored
(在重新提取之前),则应该会看到大约 50/50 的比例的新值之一。
设备进入 A/B 测试实验后,从该实验接收的值将保持不变,并且在每次安装后保持不变。因此,若要收到其他实验性值,您必须创建新的安装,方法是将游戏重新安装到同一设备/模拟器,或将游戏安装到新设备/模拟器。
在面向整个用户群推出的真实 A/B 测试中,基准组的权重应与其他变体大致相同。但在本例中,您分配的概率非常不均衡,目的是验证实验是否有效。如果您仍然收到默认值(在 1/201 支持请求中),请尝试将游戏重新安装到您的设备/模拟器上。
这还会产生另一个影响,即将用户属性切换回 enjoys
不会将值更改回基准值,但您可以通过切换到 enjoys
并重新安装来实现这一点。
9. 恭喜!
您已使用 Remote Config A/B Testing 对不同的 Remote Config 值进行了实验,并确定了每种值对 Google Analytics 指标的影响。
所学内容
- 如何使用插桩 Remote Config 值设置 A/B 测试
- 如何将 Google Analytics 用户属性用作 A/B 测试实验的准入条件
后续步骤
实验结束后,您可以从项目中的实验列表中选择一个实验,决定要对其执行哪些操作。您想选择一个“胜出组合”,还是进行更多实验?