Implementar testes A/B para seu jogo do Unity com a Configuração remota do Firebase

1. Introdução

Neste codelab, você vai aprender a criar um experimento da Configuração remota usando o Teste A/B para o jogo de exemplo, MechaHamster: avançar de nível com a edição Firebase, que você modificou em Instrumentar seu jogo com a Configuração remota do Firebase.

Com o Teste A/B com a Configuração remota, você pode testar mudanças na interface, nos recursos ou nas campanhas de engajamento do seu app em um público-alvo antes de lançá-las para um público mais amplo. Você também pode usar os resultados do experimento para:

  • Determine quais variantes de valor de parâmetro melhoram as principais métricas, como receita e retenção.
  • Descubra quais subgrupos de usuários preferem as variantes.
  • Reúna e armazene dados do experimento para realizar análises adicionais sobre os efeitos da definição de diferentes valores de parâmetros.

Essa é a essência do Teste A/B: ele permite que você use código instrumentado para a Configuração remota e lance experimentos que controlam os valores que os clientes recebem com base nas condições da Configuração remota (incluindo propriedades do usuário do Google Analytics), lançamentos percentuais, eventos de conversão do Analytics e alguma combinação destes.

Primeiro, você vai implementar uma condição que controla quem vai ser incluído no experimento definindo as propriedades com base nas ações do usuário. Em seguida, você vai criar um experimento do Teste A/B que usa as propriedades do usuário do Google Analytics para determinar quais clientes estão incluídos. E, por fim, você vai usar esses dados para entender melhor seu público.

Conteúdo

  • Como configurar um Teste A/B usando valores instrumentados da Configuração remota
  • Como usar as propriedades do usuário do Google Analytics como parte das condições de admissão em testes A/B

Pré-requisitos

Pré-requisitos

  • Unity 2019.1.0f1 ou versão mais recente com suporte ao build iOS e/ou Android

2. Ativar o menu de depuração

Há um menu de depuração oculto no projeto, e o botão para acessar esse menu existe no jogo, mas não está ativado no momento. É preciso ativar o botão para acessá-lo do prefab MainMenu.

  1. No editor do Unity, selecione a guia Project e, em Assets, expanda Hamster > Prefabs > Menus e clique em MainMenu.

A guia "Project" do editor do Unity mostrando\nRecursos. Hamster, prefabs, cardápios

  1. Na hierarquia do prefab, encontre o subobjeto desativado chamado DebugMenuButton e clique nele para abri-lo na guia Inspetor.

O editor do Unity mostra o menu principal,\ncom o DebugMenu desativado

  1. Na guia Inspector, marque a caixa no canto superior esquerdo ao lado do campo de texto que contém DebugMenuButton para ativá-lo.

Guia "Inspetor" para DebugMenuButton\ncom a caixa de seleção

  1. Salve o prefab.

Se você executar o jogo no editor ou no dispositivo, o menu estará acessível.

3. Ativar o submenu da Configuração remota

  1. Na guia Project do Unity Editor, abra Assets > Hamster > Prefabs > Menus e clique duas vezes no objeto DebugMenu para abri-lo na guia Hierarchy do editor.

    Item DebugMenu aninhado em "Assets",\nHamster, Prefabs, Menus
  2. Na guia Hierarquia, expanda a hierarquia e clique no subobjeto em DebugMenu > Painel, identificado como Ações da Configuração remota.

Ações da Configuração remota aninhadas em\nCanvas, DebugMenu

  1. Na guia Inspector do Unity, marque a caixa à esquerda do campo de texto que contém o nome do objeto para ativar as ações da Configuração remota.

Editor do Unity com a Configuração remota\nAções ativadas em DebugMenu, Painel

Ela tem dois filhos de GameObject chamados "Set Bored Of Subtitle" e "Set Likes Subtitle", que estão configurados para chamar métodos existentes, mas não implementados, em DebugMenu.cs.

4. Redefinir a substituição de legendas para o padrão no app

No codelab anterior, você substituiu o valor padrão de um parâmetro como JSON e usou condições para disponibilizar variantes diferentes. Como parte deste codelab, você vai excluir a condição criada e reintroduzir o padrão no app, e ela só será substituída pelo resultado do teste A/B.

Para reativar o padrão no app:

  1. Abra a página da Configuração remota no Console do Firebase e clique no ícone de lápis ao lado do parâmetro subtitle_override para abrir o painel lateral Editar parâmetro.
  2. Clique no ícone X ao lado da condição para excluí-la.
  3. Ao lado do valor padrão restante, ative a opção Usar no app padrão.

Como excluir uma condição do editor de parâmetros da Configuração\nremota

  1. Clique em Salvar para manter as mudanças e em Publicar alterações.Opção "Publicar\nmudanças" na página da Configuração remota

5. Definir propriedades do usuário em funções de depuração

Agora você vai criar corpos de funções para algumas funções do Google Analytics pré-configuradas, mas não implementadas, em DebugMenu.cs (que podem ser encontradas em Recursos > Hamster > Scripts > Estados).

Essas funções definem propriedades do usuário, que são maneiras de descrever segmentos da sua base de usuários e são usadas para registrar como o usuário se sente em relação ao subtítulo do jogo.

Implemente SetUserBoredOfSubtitle e SetUserEnjoysSubtitle encontrando as versões atuais em DebugMenu.cs e substituindo-as da seguinte maneira:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

Se o app estiver configurado corretamente com o Google Analytics, chame uma dessas funções para disponibilizar a propriedade nas condições da Configuração remota. Para chamar SetUserBoredOfSubtitle em um dispositivo móvel, inicie o jogo e pressione o botão Debug Menu no menu principal, depois pressione Set Bored of Subtitle.

6. Criar uma dimensão personalizada

Em seguida, você vai configurar várias variantes de legenda para o subtitle_override a fim de verificar qual legenda funciona melhor. No entanto, no teste A/B, você só vai veicular essas variantes para usuários que sentem quanto ao subtítulo atual (conforme registrado em subtitle_sentiment) incluem a palavra "entediado".

Você vai usar uma dimensão personalizada para criar e acompanhar parâmetros personalizados em eventos do Google Analytics. Consulte Dimensões e métricas personalizadas para mais informações.

Para criar uma dimensão personalizada:

  1. Abra o Console do Firebase, expanda o menu Analytics e selecione Definições personalizadas.
  2. Na página "Definições personalizadas", clique em Criar dimensões personalizadas.
  3. Na janela Nova dimensão personalizada, defina o nome da dimensão como "Sentimento da legenda" e, no menu suspenso Escopo, selecione Usuário.
  4. No campo Propriedade do usuário, selecione subtitle_sentiment.

7. Configurar o experimento do Teste A/B

Em seguida, crie um experimento de Teste A/B para definir valores diferentes de subtitle_override que vão ser testados uns com os outros e otimizar a retenção de usuários de dois a três dias.

  1. Primeiro, selecione Editar no parâmetro subtitle_override na página da Configuração remota do Console do Firebase:

O parâmetro subtitle_override na\npágina da Configuração remota, mostrando a opção "Editar".

  1. Na caixa de diálogo Editar parâmetro, clique em Adicionar novo.

A opção "Adicionar novo experimento" na\npágina de parâmetros de edição da Configuração remota.

  1. Na lista exibida, selecione Experimento.

Página de parâmetros da Configuração remota: adicionar novo\nexperimento

  1. Insira um nome e uma descrição para o experimento.

Seção "Nome e descrição do experimento"\n

  1. Em seguida, escolha as condições de segmentação. Primeiro, selecione seu app no menu suspenso.

Etapa de segmentação de uma configuração de\nTeste A/B, com um app selecionado

  1. Em seguida, clique em E para adicionar uma nova condição, selecione Propriedade do usuário e escolha subtitle_sentiment. Se ele não aparecer, insira manualmente.
  2. Como você só quer definir um subtítulo para aqueles cujo sentimento atual inclua "entediado", escolha contém e digite bored.
  3. Você também pode escolher qual porcentagem do público-alvo que corresponde aos critérios acima vai ser exposta ao teste. Selecione 100% para evitar aleatoriedade que não pode controlar facilmente.

Seção de segmentação do Teste A/B com\nsubtitle_sentiment selecionado

  1. Em seguida, selecione uma meta que o teste vai tentar maximizar. Escolha Retenção (2 a 3 dias).

Seção "Metas do Teste A/B"

  1. Em seguida, configure os parâmetros do experimento e crie variantes de subtítulo diferentes . Essas variantes são os diferentes valores que o Teste A/B veicula aos usuários que tiverem subtitle_sentiment com "entediado". Nesse caso, o Teste A/B vai determinar qual variante é a melhor para maximizar a retenção.
  2. Insira o seguinte valor de parâmetro para a variante A:
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. Insira o seguinte valor de parâmetro para a variante B:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. Defina as proporções das variantes com números inteiros da seguinte maneira:
    • Valor de referência: 1
    • Variante A: 100
    • Variante B: 100
    Isso resultará em pesos totais de 0,5% para a variante de referência, 49,8% para a variante A e 49,8% para a variante B.Seção de configuração de pesos de\nvarianteEssas variantes especificam que uma de 201 vezes, o teste A/B veicula o padrão para aqueles que já estão entediados com as legendas, mas 200/201 vezes, ele vai veicular um dos dois novos valores e substituir o título.
  5. Para salvar e enviar, clique em Iniciar experimento e, depois, em Iniciar no pop-up de confirmação.Clique em "Iniciar" para iniciar o\nexperimento

8. Execute o método "Definir propriedade do usuário" e atualize

Agora você definiu várias propriedades sobre o usuário, que podem ser usadas para direcionar a lógica ou apresentação do jogo.

Se você nunca executou o método SetUserProperty ou o definiu como enjoys, a legenda padrão ainda será exibida ao abrir o jogo.

Se você o configurou como bored (antes de nova busca), verá um dos novos valores em uma proporção de aproximadamente 50/50.

Quando um dispositivo entra em um experimento de Teste A/B, os valores recebidos desse experimento não mudam e são persistentes por instalação. Como consequência, para receber um dos outros valores experimentais, é necessário criar uma nova instalação reinstalando o jogo no mesmo dispositivo/simulador ou instalando o jogo em um novo dispositivo.

Em um teste A/B real iniciado em toda a sua base de usuários, dê à linha de base um peso semelhante ao das outras variantes. Mas, neste caso, você atribui probabilidades muito distorcidas para validar se o experimento está funcionando. Se (no caso 1/201), você ainda recebe o valor padrão, tente reinstalar o jogo em seu dispositivo/simulador.

Outro efeito disso é que mudar a propriedade do usuário de volta para enjoys não mudará o valor de volta para o valor de referência. No entanto, é possível fazer isso alternando para enjoys e reinstalando.

9. Parabéns!

Você usou o Teste A/B da Configuração remota para testar valores diferentes e determinar como cada um deles afeta as métricas do Google Analytics.

O que aprendemos

  • Como configurar um Teste A/B usando valores instrumentados da Configuração remota
  • Como usar as propriedades do usuário do Google Analytics como parte das condições de admissão em experimentos do Teste A/B

Próximas etapas

Quando o experimento terminar, selecione um na lista de experimentos no seu projeto para decidir o que fazer com ele. Você quer escolher um como o "vencedor" ou realizar mais experimentos?