一、简介
在此 Codelab 中,您将学习如何使用 A/B 测试为示例游戏MechaHamster:Level Up with Firebase edition创建一个 Remote Config 实验,您在Instrument your game with Firebase Remote Config中对其进行了修改。
使用 Remote Config 的 A/B 测试让您可以在将应用程序的 UI、功能或参与活动推广到更广泛的受众之前测试目标受众的更改。您还可以使用实验结果来:
- 确定哪些参数值变体可以提高收入和保留率等关键指标。
- 发现哪些用户子群更喜欢哪些变体。
- 收集和存储实验数据,以对设置不同参数值的效果进行额外分析。
这是 A/B 测试的本质:它使您能够获取针对远程配置检测的代码,并启动实验来控制客户端收到的值,基于远程配置条件(包括 Google Analytics 用户属性)、百分比推出、分析转换事件、以及这些的一些组合。
首先,您将实施一个条件,通过根据用户操作设置用户属性来确定将包含在实验中的人员。然后,您将创建一个 A/B 测试实验,该实验使用 Google Analytics 用户属性来确定实验中包含哪些客户。最后,您将使用该数据来更多地了解您的受众。
你会学到什么
- 如何使用检测的远程配置值设置 A/B 测试
- 如何使用 Google Analytics 用户属性作为进入 A/B 测试的条件的一部分
先决条件
你需要什么
- Unity 2019.1.0f1 或更高版本,支持 iOS 和/或 Android 构建
2.启用调试菜单
项目中隐藏了一个调试菜单,访问该菜单的按钮在游戏中存在,但目前未启用。您必须启用该按钮才能从 MainMenu 预制件访问它。
- 在 Unity 编辑器中,选择Project选项卡,然后在Assets下,展开Hamster > Prefabs > Menus并单击MainMenu 。
- 在预制件层次结构中,找到名为DebugMenuButton的禁用子对象,然后单击它以在Inspector选项卡中将其打开。
- 在Inspector选项卡中,选中包含DebugMenuButton的文本字段旁边左上角的框以启用它。
- 保存预制件。
如果您在编辑器或您的设备上运行游戏,现在应该可以访问菜单。
3.启用远程配置子菜单
- 在 Unity Editor 的Project选项卡中,展开Assets > Hamster > Prefabs > Menus并双击DebugMenu对象以在编辑器的Hierarchy选项卡中打开它。
- 在Hierarchy选项卡中,展开层次结构并单击DebugMenu > Panel下标有Remote Config Actions 的子对象。
- 在 Unity Inspector选项卡中,通过选中包含对象名称的文本字段左侧的框来启用远程配置操作。
这有两个名为 Set Bored Of Subtitle 和 Set Enjoys Subtitle 的 GameObject 子项,它们都配置为调用DebugMenu.cs
中现有但未实现的方法。
4.将字幕覆盖重置为应用内默认
在之前的 Codelab中,您将参数的默认值覆盖为 JSON 并使用条件来提供不同的变体。作为此 Codelab 的一部分,您将删除您创建的条件并重新引入应用内默认设置,并且您将仅使用 A/B 测试的结果覆盖它。
要重新启用应用内默认设置:
- 在 Firebase 控制台中打开远程配置页面,然后单击
subtitle_override
参数旁边的铅笔图标以打开编辑参数侧面板。 - 单击条件旁边的X图标将其删除。
- 在剩余的默认值旁边,启用使用应用内默认切换。
- 单击保存以保存您的更改,然后单击发布更改以发布您的更改。
5.在调试函数中设置用户属性
您现在将在DebugMenu.cs
中为一些预配置但未实现的 Google Analytics 函数编写函数体(可以在 Assets > Hamster > Scripts > States 中找到)。
这些函数设置用户属性,这是描述用户群细分的方式,用于记录用户对游戏字幕的感受。
实现SetUserBoredOfSubtitle
和SetUserEnjoysSubtitle
,方法是在DebugMenu.cs
中找到它们已有的版本并覆盖,如下:
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
如果您的应用程序正确配置了 Google Analytics,您可以调用这些函数之一以使该属性可用于远程配置的条件。要从移动设备调用SetUserBoredOfSubtitle
,请启动游戏并按主菜单中的Debug Menu按钮,然后按Set Bored of Subtitle 。
6. 创建自定义维度
接下来,您将为subtitle_override
设置各种字幕变体,以查看哪种字幕效果最好。但是,在您的 A/B 测试中,您只会将这些变体提供给那些对当前字幕的感受(如subtitle_sentiment
中所记录)包含“无聊”一词的用户。
您将使用自定义维度来创建和跟踪 Analytics 事件的自定义参数。有关详细信息,请参阅自定义维度和指标。
要创建新的自定义维度:
- 打开Firebase 控制台,展开分析菜单,然后选择自定义定义。
- 在自定义定义页面中,单击创建自定义维度。
- 在New custom dimension窗口中,将 Dimension 名称设置为“Subtitle Sentiment”,然后从Scope下拉列表中选择User 。
- 对于用户属性字段,选择
subtitle_sentiment.
7. 设置 A/B 测试实验
接下来,创建一个 A/B 测试实验,为subtitle_override
设置不同的值以相互测试,以优化两到三天的用户保留。
- 首先,在 Firebase 控制台远程配置页面的
subtitle_override
参数上选择编辑:
- 在出现的“编辑参数”对话框中,单击“添加新参数” 。
- 从出现的列表中,选择Experiment 。
- 输入实验的名称和描述。
- 接下来,选择定位条件。首先,从下拉列表中选择您的应用程序。
- 接下来,单击And添加新条件,然后选择User Property并选择
subtitle_sentiment
。如果没有出现,请手动输入。 - 由于您只想为当前字幕情绪包括“无聊”的人设置字幕,因此选择包含并输入
bored
。 - 或者,选择与上述条件相匹配的受众百分比来进行测试。选择100%以避免您无法轻易控制的随机性。
- 接下来,选择测试将尝试最大化的目标。选择保留(2-3 天) 。
- 接下来,设置实验参数并创建不同的字幕变体。这些变体是 A/B 测试将为
subtitle_sentiment
包含“无聊”的用户提供的不同值,并且 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 测试为那些对字幕感到厌烦的人提供默认值,但是 200/201 次,它将提供两个新值之一并覆盖标题屏幕。
- 单击Start experiment保存并提交,然后在确认弹出窗口中单击Start 。
8.运行Set User Property方法并刷新
您现在已经设置了有关用户的各种属性,然后可以使用这些属性来指导游戏的逻辑或呈现。
如果您之前没有运行SetUserProperty
方法或已将其设置为enjoys
,您应该仍会在打开游戏时看到默认字幕。
如果您已将其设置为bored
(在重新获取之前),您应该会看到其中一个新值的比例大约为 50/50。
一旦设备进入 A/B 测试实验,他们从该实验中收到的值将不会改变,并且在每次安装时都是持久的。因此,要获得其他实验值之一,您必须通过将游戏重新安装到同一设备/模拟器或将游戏安装到新设备/模拟器来创建新安装。
在针对您的用户群发起的真实 A/B 测试中,您应该为基线赋予与其他变体相似的权重。但在这种情况下,您分配非常偏斜的概率来验证实验是否有效。如果(在 1/201 的情况下)您仍然收到默认值,请尝试将游戏重新安装到您的设备/模拟器。
这样做的另一个影响是,将用户属性切换回enjoys
不会将值更改回基线,但同样,您可以通过切换到enjoys
并重新安装来实现。
9. 恭喜!
您已使用 Remote Config A/B 测试来试验不同的 Remote Config 值并确定每个值如何影响 Analytics 指标。
我们涵盖的内容
- 如何使用检测的远程配置值设置 A/B 测试
- 如何使用 Google Analytics 用户属性作为进入 A/B 测试实验的条件的一部分
下一步
实验结束后,您可以从项目的实验列表中选择一个来决定要用它做什么。您想选择一个作为“赢家”还是进行更多实验?