实验

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

实验 让您在游戏内和匹配中进行 A/B 测试,以衡量对游戏更改的因果影响。例如,您可以向不同的玩家展示不同的入门体验,并衡量游戏时间、留存率和其他关键绩效指标的差异。

实验非常适合衡量以下内容:

  • 参与度 - 入门流程、进度系统、控制方案、自定义匹配
  • 货币化 - 商店可见性和用户体验、起始包类型、定价
Creator Hub 上实验页面的概述

创建实验

实验分为两种类型:

  • 游戏内 实验让您衡量不同 配置值 的影响。
  • 匹配实验 让您衡量不同 自定义匹配配置 的影响。与游戏内实验不同,您一次只能运行一个匹配实验。
  1. 如果您还没有 配置,请为您的游戏创建一个。

  2. Creator Hub实验 页面上,点击 创建实验

  3. 对于 类型,选择 游戏内

  4. 指定实验的名称、目标指标和计划持续时间。实验持续时间为 14-60 天。

    无论您选择什么作为目标指标,实验都会跟踪列表中的所有 指标

  5. 选择一个百分比推出。这是您希望包含在实验中的玩家百分比。

    一般来说,您在实验中包含的人越多,数据就越好,但请根据您的游戏判断最佳选择。

  6. 指定变体和百分比。

    变体是您配置的替代值。对于一个数值配置键 bossHealth,其控制值为 500,您可以指定一个变体为 300。您可以在实验中有多达 两个变体 和一个控制。

    百分比决定如何在 实验推出 中分配变体。考虑以下示例:

    • 您选择整体推出为 40%。
    • 您指定两个变体,并在它们和控制之间进行 50/50 的分配。

    在此示例中,60% 的用户被排除在实验之外;这些用户接收控制,并且对实验结果没有影响。大约 20% 的用户作为实验的一部分接收控制。另有 20% 接收变体。根据您的玩家数量,这种分配可能不足以产生可操作的结果。

    变体页面

  7. (可选)将实验目标定向到特定受众,以便只有匹配的玩家有资格参与。定向使用与 条件配置相同的玩家属性,您可以直接从配置中复制现有条件。有关更多信息,请参见 将实验目标定向到特定受众

    实验创建过程中的可选定向步骤

  8. 最后一步是调度。您可以立即开始实验或将其调度到未来的日期和时间。调度实验后,您无法更改其配置(持续时间、推出百分比、变体等),但可以重新调度。

指标

实验在实验持续期间跟踪以下所有指标。

指标描述
D1 留存率一天后返回您游戏的玩家百分比。
D7 留存率一周后返回您游戏的玩家百分比。
游戏时间玩家在您游戏中花费的平均时间。实验持续期间的累积值。
ARPU每用户平均收入。收入除以玩家数量。实验持续期间的累积值。
ARPPU每付费用户平均收入。收入除以购买游戏相关物品的玩家数量。实验持续期间的累积值。
付费转化率购买游戏相关物品的玩家百分比。
会话时间游戏时间除以会话数量。实验持续期间的累积值。

实验状态

实验 页面显示实验的以下状态。

状态描述
已完成实验结束,这发生在您手动停止它时、达到决策时,或在决策日期后自动结束(游戏内为 14 天,匹配立即结束)。您仍然可以查看详细信息和结果。
需要决策实验已达到其决策日期。现在是查看结果的好时机。
运行中实验正在运行,但尚未达到决策日期。
已调度实验已调度在未来的日期开始。
草稿实验尚未开始或调度。您可以完成设置。

将实验目标定向到特定受众

默认情况下,游戏内实验可以注册您推出百分比中的任何玩家。定向 让您可以在特定受众上运行实验,例如某些国家的玩家、特定的任期窗口或活跃消费层级。定向使用与 配置定向 相同的属性。

设置定向实验

您在 创建实验 时配置定向标准。实验开始后,您无法更改定向规则、控制值、变体或配置键使用的任何条件规则。

您可以重用现有配置中的条件规则来定义您的定向,但实验会存储每个规则的独立 副本。稍后编辑或删除原始配置条件不会影响实验的定向。

由于缩小受众会减少样本大小,Roblox 会使用符合您定向标准的受众估计来更新 最小可检测效应 (MDE)。确保您的目标受众足够大,以产生统计上有意义的结果。

Roblox 如何解析定向值

Roblox 首先 评估实验,然后再评估标准条件配置的任何规则。当配置键有一个活动实验时,Roblox 按以下顺序解析值:

  1. 活动实验值,如果玩家被定向并注册。
  2. 第一个匹配的配置条件。
  3. 任何后续匹配的配置条件。
  4. 默认值。

控制组中的玩家接收您现有配置规则生成的值。您一次不能在同一配置键上运行多个活动实验。

每会话评估

Roblox 每会话 评估定向属性,因此单个玩家的资格可能会随时间变化:

  • 如果玩家在会话期间符合您的定向标准,他们可以注册并接收实验变体。
  • 如果他们在后续会话中不再符合条件,他们将停止接收实验值,并立即回退到您的标准配置规则。如果您的实验需要超出资格的连续性——例如,针对新玩家的多会话入门流程——请自行保持该值,例如在 数据存储 中。

玩家的数据仍然归属于他们注册的变体(或控制),即使他们后来不再符合条件。例如,D7 留存率仍然计算在第 0 天注册的玩家,以及他们是否在第 7 天返回,即使他们在第 4 天不再符合条件。

实验运行时的配置更改

为了防止配置漂移和损坏实验数据,Roblox 在实验开始运行的那一刻 锁定配置键

  • 您无法编辑或删除正在运行的配置键,也无法修改其标准条件值。
  • 活动配置引用的任何全局条件也被锁定。您无法编辑、删除或重新排序它们。

锁定在实验完成时解除。

将实验添加到您的代码

应用游戏内实验类似于 应用配置。主要区别在于使用 ConfigService:GetConfigForPlayerAsync() 而不是 ConfigService:GetConfigAsync()

GetConfigForPlayerAsync() 检索特定于玩家的快照。当您调用 GetValue() 时,快照会检查是否有活动实验,并根据推出百分比注册(或不注册)用户。

local ConfigService = game:GetService("ConfigService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
local playerConfig = ConfigService:GetConfigForPlayerAsync(player)
local leaderboardColor = playerConfig:GetValue("leaderboardColor")
end
Players.PlayerAdded:Connect(onPlayerAdded)
  • 您必须为每个玩家单独调用 GetConfigForPlayerAsync()GetConfigAsync() 不适用于实验。

  • 在您对特定于玩家的快照调用 GetValue() 之后,与快照关联的玩家将注册该键的实验,仅此而已。所有后续对该方法的调用在实验期间返回相同的控制或变体。只有第一次调用是随机的。

  • 实验的注册不限于新用户。即使用户之前从 GetConfigAsync() 收到值,您仍然可以使用来自 GetConfigForPlayerAsync() 的特定于玩家的快照将他们注册到实验中。

  • 如果特定于玩家的快照中的键没有活动实验,GetValue() 将返回标准配置值(如果没有值则返回 nil)。

自定义注册

如果您只想注册满足基于游戏内状态的标准的玩家,您必须编写额外的代码来检查这些标准,然后再调用 GetValue() 将他们注册到实验中。考虑以下示例:

  • 您想在赛车游戏中测试新的控制方案。
  • 该方案适用于高级玩家,因此您希望定向那些赢得大量比赛的玩家。

您的代码可能如下所示:

local function getControlScheme(player, racesWon)
if racesWon < 20 then
return "standardScheme"
else
-- 玩家赢得了很多比赛,注册到实验中
local playerConfigSnapshot = ConfigService:GetConfigForPlayerAsync(player)
if playerConfigSnapshot:GetValue("useNewControlScheme") then
return "newScheme"
else
return "standardScheme"
end
end
end

如果您希望控制方案在后续会话中持续存在,您可能需要在数据存储中为玩家的条目添加一个值。

查看和解释结果

实验运行至少 24 小时后,点击 查看 以查看详细信息和结果。

实验的详细信息页面

您可以看到注册的玩家总数,以及接收控制值和每个变体的玩家数量。尽早查看此页面对于确保实验正常运行非常有用,而不是采取行动。在采取行动之前,请参见 最佳实践

实验完成后,检查 结果 选项卡。寻找目标指标中统计上显著的变化,仪表板会用绿色或红色突出显示这些变化。这些变化更可能显示您的变体的影响,而不太可能是虚假正面或负面结果。

实验的结果页面

将鼠标悬停在任何指标上以查看 查看置信度 按钮,该按钮显示置信区间。

当某个指标的百分比变化的置信区间不与 0% 重叠时,该指标被认为是统计上显著的。在以下示例中,D1 留存率上升了 17.4%,下限和上限分别为 8.02% 和 22.03%,这使得变化在统计上显著。

指标的置信区间

为了方便,结果页面允许您用实验中的一个变体替换默认配置值。

做出决策

当您的实验结束时,点击 做出决策 以开始引导推出。Roblox 会显示有关统计显著性和实验持续时间的任何警告,然后提示您选择一个获胜变体或保留控制。根据您的选择,Roblox 会将适当的更改推出到您的永久配置中;返回 配置 页面会显示新值。如果您改变主意,请点击 更改获胜者

如果您在完成实验时在配置上有未解决的阶段更改,Roblox 会暂时将其存储,并在推出后尽力恢复。

您的决策决定了 Roblox 提出的配置更改:

  • 控制:Roblox 不会对您现有的配置进行任何更改。

  • 未定向变体:变体值成为配置的新默认值。Roblox 会删除该配置键上的所有其他条件,但它们仍保留在您的全局条件列表中。

  • 定向变体:Roblox 会使用此优先顺序中的第一个适用选项将获胜规则集成回您的永久配置:

    1. 覆盖:如果相同的条件已经位于配置的顶部,Roblox 会用获胜变体的值覆盖其值。
    2. 添加现有:如果存在匹配的全局条件,并且自然位于顶部,Roblox 会将其与变体的值添加到配置中。
    3. 提升:如果匹配的全局条件可以安全地提升到所需的最低等级,使其成为该配置中的顶级规则(而不改变其他配置),Roblox 会将其添加到配置中并在全局重新排序。
    4. 创建新:否则,Roblox 会创建一个新的全局条件,排名高于当前在配置中使用的最高条件。如果这在配置中创建了重复规则,Roblox 会删除冗余的条件值,同时保留全局规则。

实验的最佳实践


  • 使用最小可检测效应 (MDE) 来决定您的实验是否值得运行。

    Roblox 使用您的目标指标和每个变体的玩家数量计算 MDE,这基于每日活跃用户、推出百分比、实验持续时间和变体分配。如果 MDE 对于您的目标指标来说太高(例如,超过 100%),那么您不太可能达到统计显著性。每日活跃用户少于 1,000 的游戏可能难以从实验中获得有用的数据。

    创建期间的 MDE 不足屏幕。

  • 从假设开始。 不要仅仅更改变量并检查结果,而是写下关于您所更改的内容、您期望发生的事情以及原因的因果关系声明。随着您进行越来越多的实验,拥有一组书面假设来伴随您的结果可以帮助您澄清思路并激发新的实验想法。

  • 让实验运行其完整的持续时间。 新奇效应(对变化的暂时兴趣,不是因为它更好,而是因为它是新的)可能会严重扭曲早期结果,有时导致它们在统计显著性之间波动。提前结束实验会增加您基于异常峰值采取过早行动的可能性,而更多数据本可以平滑或甚至反驳这些峰值。

  • 不要在没有统计显著性的情况下采取行动。 即使玩家行为的变化看似很大,也可能不是统计上显著的,通常是由于样本大小较小。如果变化没有统计显著性,请忽略它。

  • 避免在实验期间进行更改。当然,重大错误需要修复,但对游戏内容的更改可能会影响玩家行为并使您的结果无效,即使这些更改 看似 与您的实验无关。同样,只有在您确信它们不会相互影响的情况下,才同时运行实验。

  • 使用置信区间深入分析 指标并检查统计显著性的边界情况。如果置信区间太宽,指标可能永远无法达到统计显著性。

  • 如果一个指标显著上升而另一个显著下降,您必须 决定这种权衡是否值得,可能与其他统计显著的变化结合考虑。

  • 实验提供强信号,但 统计显著性处理的是概率,而不是确定性——因此有置信区间。数据的可变性、样本大小和变化的幅度都会影响检测变体是否影响玩家行为的概率。您根据实验结果采取的任何行动都应与定性数据(如玩家反馈和您对游戏的整体愿景)相平衡。

  • 记录您的发现和决策。 即使您不使用它们来进行额外的实验,拥有一套知识和证据可以为您设计游戏提供信息。

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。