Experimentos permitem que você execute testes A/B em jogo e de matchmaking para medir o impacto causal de mudanças em seu jogo. Por exemplo, você pode mostrar diferentes experiências de integração a diferentes jogadores e medir a diferença no tempo de jogo, retenção e outros indicadores-chave de desempenho.
Experimentos são excelentes para medir o seguinte:
- Engajamento - Fluxos de integração, sistemas de progressão, esquemas de controle, matchmaking personalizado
- Monetização - Visibilidade da loja e experiência do usuário, tipos de pacotes iniciais, preços

Criar experimentos
Os experimentos vêm em dois tipos:
- Experimentos em jogo permitem que você meça o impacto de diferentes valores de configuração.
- Experimentos de matchmaking permitem que você meça o impacto de diferentes configurações de matchmaking personalizadas. Ao contrário dos experimentos em jogo, você pode executar apenas um experimento de matchmaking por vez.
Se você ainda não tiver uma configuração, crie uma para o seu jogo.
Na página de Experimentos do Creator Hub para o seu jogo, clique em Criar experimento.
Para Tipo, escolha Dentro da experiência.
Especifique um nome, métrica de objetivo e duração planejada para o experimento. Os experimentos duram entre 14 a 60 dias.
Independentemente do que você escolher como sua métrica de objetivo, os experimentos rastreiam todas as métricas na lista.
Escolha uma porcentagem de implementação. Este número é a porcentagem de jogadores que você deseja incluir no experimento.
Em geral, quanto mais pessoas você incluir em um experimento, melhores serão os dados, mas use seu julgamento sobre o que é melhor para o seu jogo.
Especifique variantes e porcentagens.
Variantes são valores alternativos para sua configuração. Para uma chave de configuração numérica bossHealth com um valor de controle de 500, você pode especificar uma variante de 300. Você pode ter até duas variantes e um controle em um experimento.
As porcentagens ditam como atribuir variantes dentro da implementação do experimento. Considere o seguinte exemplo:
- Você escolhe uma implementação geral de 40%.
- Você especifica duas variantes e uma divisão de 50/50 entre elas e o controle.
Neste exemplo, 60% dos seus usuários são excluídos do experimento; esses usuários recebem o controle e não têm impacto nos resultados do experimento. Aproximadamente 20% dos seus usuários recebem o controle como parte do experimento. Outros 20% recebem a variante. Dependendo da sua contagem de jogadores, essa distribuição pode não ser grande o suficiente para gerar resultados acionáveis.

(Opcional) Direcione o experimento para um público específico para que apenas jogadores correspondentes sejam elegíveis para inscrição. O direcionamento usa os mesmos atributos de jogador que as configurações condicionais, e você pode copiar condições existentes diretamente de suas configurações. Para mais informações, veja Direcionar experimentos para públicos específicos.

A etapa final é o agendamento. Você pode iniciar experimentos imediatamente ou agendá-los para uma data e hora futuras. Depois de agendar um experimento, você não pode alterar sua configuração (duração, porcentagem de implementação, variantes, etc.), mas pode reagendá-lo.
Métricas
Os experimentos rastreiam todas as seguintes métricas durante a duração do experimento.
| Métrica | Descrição |
|---|---|
| Retenção D1 | Porcentagem de jogadores que retornaram ao seu jogo após um dia. |
| Retenção D7 | Porcentagem de jogadores que retornaram ao seu jogo após uma semana. |
| Tempo de jogo | Média de tempo que os jogadores passaram dentro do seu jogo. Cumulativo durante a duração do experimento. |
| ARPU | Receita média por usuário. Receita dividida pelo número de jogadores. Cumulativo durante a duração do experimento. |
| ARPPU | Receita média por usuário pagante. Receita dividida pelo número de jogadores que compraram um item relacionado ao jogo. Cumulativo durante a duração do experimento. |
| Taxa de conversão de pagantes | Porcentagem de jogadores que compraram um item relacionado ao jogo. |
| Tempo de sessão | Tempo de jogo dividido pelo número de sessões. Cumulativo durante a duração do experimento. |
Status do experimento
A página de Experimentos mostra os seguintes status para os experimentos.
| Status | Descrição |
|---|---|
| Concluído | O experimento terminou, o que acontece quando você o interrompe manualmente, quando você chega a uma decisão ou automaticamente logo após a data de decisão (14 dias após para experimentos em jogo, imediatamente para matchmaking). Você ainda pode revisar os detalhes e resultados. |
| Decisão necessária | O experimento atingiu sua data de decisão. Agora é um bom momento para revisar os resultados. |
| Em execução | O experimento está em execução, mas ainda não atingiu sua data de decisão. |
| Agendado | O experimento está agendado para começar em uma data futura. |
| Rascunho | O experimento não foi iniciado ou agendado. Você pode terminar de configurá-lo. |
Direcionar experimentos para públicos específicos
Por padrão, um experimento em jogo pode inscrever qualquer jogador na sua porcentagem de implementação. Direcionamento permite que você execute o experimento em um público específico, como jogadores em certos países, janelas de tempo específicas ou níveis de gastos ativos. O direcionamento usa os mesmos atributos que o direcionamento de configurações.
Configurar experimentos direcionados
Você configura os critérios de direcionamento quando cria o experimento. Depois que o experimento começa, você não pode alterar as regras de direcionamento, o valor de controle, as variantes ou quaisquer regras condicionais que a chave de configuração utiliza.
Você pode reutilizar regras condicionais existentes de suas configurações para definir seu direcionamento, mas o experimento armazena uma cópia independente de cada regra. Editar ou excluir a condição de configuração original mais tarde não tem efeito no direcionamento do experimento.
Como restringir seu público reduz o tamanho da amostra, o Roblox atualiza o efeito mínimo detectável (MDE) usando uma estimativa do público que corresponde aos seus critérios de direcionamento. Certifique-se de que seu público direcionado seja grande o suficiente para produzir resultados estatisticamente significativos.
Como o Roblox resolve valores direcionados
O Roblox avalia experimentos primeiro, antes de quaisquer regras de configurações condicionais padrão. Quando uma chave de configuração tem um experimento ativo, o Roblox resolve o valor nesta ordem:
- O valor do experimento ativo, se o jogador for direcionado e inscrito.
- A primeira condição de configuração correspondente.
- Quaisquer condições de configuração correspondentes subsequentes.
- O valor padrão.
Os jogadores no grupo de controle recebem o valor que suas regras de configuração existentes produzem. Você não pode executar mais de um experimento ativo na mesma chave de configuração ao mesmo tempo.
Avaliação por sessão
O Roblox avalia atributos de direcionamento por sessão, então a elegibilidade de um jogador individual pode mudar ao longo do tempo:
- Se um jogador corresponder aos seus critérios de direcionamento durante uma sessão, ele pode ser inscrito e receber uma variante do experimento.
- Se ele não corresponder mais em uma sessão posterior, ele para de receber o valor do experimento e imediatamente volta às suas regras de configuração padrão. Se o seu experimento precisar de continuidade além da elegibilidade—por exemplo, um fluxo de integração de várias sessões direcionado a novos jogadores—persista o valor você mesmo, como em um data store.
Os dados de um jogador permanecem atribuídos à variante (ou controle) em que ele foi inscrito, mesmo que ele pare de corresponder aos critérios mais tarde. Por exemplo, a retenção D7 ainda conta um jogador que se inscreveu no dia 0 e se retornou no dia 7, mesmo que ele não se qualifique mais até o dia 4.
Mudanças de configuração enquanto um experimento está em execução
Para evitar desvios de configuração e dados de experimento corrompidos, o Roblox bloqueia a chave de configuração no momento em que um experimento começa a ser executado:
- Você não pode editar ou excluir a chave de configuração em execução, nem pode modificar seus valores condicionais padrão.
- Quaisquer condições globais que a configuração ativa referencia também estão bloqueadas. Você não pode editar, excluir ou reordenar elas em relação umas às outras.
O bloqueio é liberado quando o experimento é concluído.
Adicionar experimentos ao seu código
Aplicar experimentos em jogo é semelhante a aplicar configurações. A principal diferença é o uso de ConfigService:GetConfigForPlayerAsync() em vez de ConfigService:GetConfigAsync().
GetConfigForPlayerAsync() recupera uma captura de tela específica do jogador. Quando você chama GetValue(), a captura verifica se há um experimento ativo e inscreve (ou não inscreve) o usuário com base na porcentagem de implementação.
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)Você deve chamar GetConfigForPlayerAsync() separadamente para cada jogador; GetConfigAsync() não aplica experimentos.
Depois de chamar GetValue() em uma captura de tela específica do jogador, o jogador associado à captura é inscrito no experimento para aquela chave e apenas aquela chave. Todas as chamadas subsequentes ao método retornam o mesmo controle ou variante durante a duração do experimento. Apenas a primeira chamada é aleatória.
A inscrição em experimentos não se limita a novos usuários. Mesmo que um usuário tenha recebido anteriormente um valor de GetConfigAsync(), você ainda pode inscrevê-lo em um experimento usando uma captura de tela específica do jogador de GetConfigForPlayerAsync().
Se uma chave em uma captura de tela específica do jogador não tiver um experimento ativo, GetValue() retorna o valor padrão da configuração (ou nil se não tiver valor).
Inscrição personalizada
Se você quiser inscrever apenas jogadores que atendem a critérios baseados em estado em jogo, você precisa escrever código adicional para verificar esses critérios e só então chamar GetValue() para inscrevê-los no experimento. Considere o seguinte exemplo:
- Você quer testar um novo esquema de controle em seu jogo de corrida.
- O esquema é para jogadores avançados, então você quer direcionar jogadores que ganharam um grande número de corridas.
Seu código pode parecer algo assim:
local function getControlScheme(player, racesWon)
if racesWon < 20 then
return "standardScheme"
else
-- O jogador tem muitas vitórias, inscreva no experimento
local playerConfigSnapshot = ConfigService:GetConfigForPlayerAsync(player)
if playerConfigSnapshot:GetValue("useNewControlScheme") then
return "newScheme"
else
return "standardScheme"
end
end
endSe você quiser que o esquema de controle persista em sessões subsequentes, provavelmente precisará adicionar um valor à entrada do jogador em um data store.
Ver e interpretar resultados
Depois que um experimento tiver sido executado por pelo menos 24 horas, clique em Ver para ver detalhes e resultados.

Você pode ver o número total de jogadores inscritos, bem como o número de jogadores que receberam o valor de controle e cada variante. Visualizar esta página no início do experimento é útil apenas para garantir que o experimento esteja funcionando corretamente, não para tomar ações. Antes de tomar qualquer ação, veja Melhores práticas.
Depois que o experimento estiver completo, verifique a aba Resultados. Procure mudanças estatisticamente significativas nas métricas de objetivo, que o painel destaca em verde ou vermelho. Essas mudanças são mais propensas a mostrar o impacto da sua variante e menos propensas a serem falsos positivos ou negativos.

Passe o mouse sobre qualquer métrica para ver o botão Ver confiança, que mostra o intervalo de confiança.
Uma métrica é estatisticamente significativa quando o intervalo de confiança para sua mudança percentual não se sobrepõe a 0%. No exemplo a seguir, a retenção D1 aumentou 17,4%, com limites inferior e superior de 8,02% e 22,03%, o que torna a mudança estatisticamente significativa.

Para conveniência, a página de resultados permite que você substitua o valor padrão da configuração por uma das variantes do experimento.
Tomar uma decisão
Quando seu experimento concluir, clique em Tomar decisão para iniciar uma implementação guiada. O Roblox mostra quaisquer avisos sobre significância estatística e duração do experimento, e então solicita que você selecione uma variante vencedora ou mantenha o controle. Com base na sua escolha, o Roblox implementa a mudança apropriada em suas configurações permanentes; retornar à página de Configurações mostra o novo valor. Clique em Mudar vencedor se você mudar de ideia.
Se você tiver alterações em estágio não resolvidas na configuração quando concluir o experimento, o Roblox as armazena temporariamente e as restaura com base no melhor esforço após a implementação.
Sua decisão determina as mudanças de configuração que o Roblox propõe:
Controle: O Roblox não faz alterações em suas configurações existentes.
Variante não direcionada: O valor da variante se torna o novo valor padrão da configuração. O Roblox remove todas as outras condições dessa chave de configuração, embora elas permaneçam na sua lista de condições globais.
Variante direcionada: O Roblox integra a regra vencedora de volta à sua configuração permanente usando a primeira opção aplicável nesta ordem de prioridade:
- Substituir: Se uma condição idêntica já estiver no topo da configuração, o Roblox substitui seu valor pelo valor da variante vencedora.
- Adicionar existente: Se uma condição global correspondente existir e naturalmente estiver no topo, o Roblox a adiciona à configuração com o valor da variante.
- Promover: Se uma condição global correspondente puder ser promovida com segurança para a classificação mais baixa necessária para torná-la a regra principal nesta configuração (sem alterar outras configurações), o Roblox a adiciona à configuração e a reordena globalmente.
- Criar nova: Caso contrário, o Roblox cria uma nova condição global classificada um nível acima da condição mais alta atualmente usada na configuração. Se isso criar uma regra duplicada dentro da configuração, o Roblox remove o valor condicional redundante enquanto preserva a regra global.
Melhores práticas para experimentos
Use o efeito mínimo detectável (MDE) para decidir se seu experimento vale a pena ser executado.
O Roblox calcula o MDE usando sua métrica de objetivo e o número de jogadores por variante, que é baseado em usuários ativos diários, porcentagem de implementação, duração do experimento e divisões de variantes. Se o MDE for muito alto para sua métrica de objetivo (por exemplo, mais de 100%), é improvável que você consiga alcançar significância estatística. Jogos com menos de 1.000 usuários ativos diários podem ter dificuldades para obter dados úteis de experimentos.

Comece com uma hipótese. Em vez de apenas mudar uma variável e verificar os resultados, escreva uma declaração de causa e efeito sobre o que você mudou, o que espera que aconteça e por quê. À medida que você experimenta mais e mais, ter um conjunto de hipóteses escritas para acompanhar seus resultados pode ajudar a esclarecer seu pensamento e inspirar novas ideias para experimentos.
Deixe os experimentos rodarem por suas durações completas. O efeito de novidade (interesse temporário em uma mudança não porque é melhor, mas porque é nova) pode distorcer fortemente os resultados iniciais, às vezes fazendo com que eles oscilem dentro e fora da significância estatística. Encerrar experimentos cedo aumenta as chances de você tomar ações prematuras com base em picos anômalos que mais dados teriam suavizado ou até contradito.
Não aja sem significância estatística. Mesmo mudanças aparentemente grandes no comportamento do jogador podem não ser estatisticamente significativas, geralmente devido ao pequeno tamanho da amostra. Se uma mudança não for estatisticamente significativa, ignore-a.
Evite mudanças durante os experimentos. Erros maiores, é claro, precisam de correções, mas mudanças no conteúdo do jogo podem impactar o comportamento do jogador e invalidar seus resultados, mesmo que as mudanças pareçam não relacionadas ao seu experimento. Da mesma forma, execute experimentos simultaneamente apenas se tiver certeza de que eles não interagirão entre si.
Use intervalos de confiança para análises profundas em métricas e para verificar casos limítrofes de significância estatística. Se o intervalo de confiança for muito amplo, a métrica pode nunca alcançar significância estatística.
Se uma métrica estiver significativamente alta e outra significativamente baixa, você deve decidir se a troca vale a pena, possivelmente em conjunto com outros movimentos estatisticamente significativos.
Experimentos fornecem um forte sinal, mas a significância estatística lida com probabilidades, não certezas—daí o intervalo de confiança. A variabilidade dos dados, o tamanho da amostra e a magnitude da mudança impactam a probabilidade de detectar se uma variante afetou o comportamento do jogador. Qualquer ação que você tome com base nos resultados de um experimento deve ser equilibrada com dados qualitativos, como feedback dos jogadores e sua visão geral para o jogo.
Documente suas descobertas e decisões. Mesmo que você não as use para executar experimentos adicionais, ter um corpo de conhecimento e evidências pode informar como você projeta seus jogos.