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: Level Up with Firebase edition, 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 alterações 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:

  • Determinar quais variantes do valor de parâmetro melhoram as principais métricas, como receita e retenção.
  • Descubra quais subgrupos de usuários preferem quais variantes.
  • Reúna e armazene dados de experimentos 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 usar o código instrumentado para a Configuração remota e iniciar 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 algumas combinações disso.

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

Conteúdo

  • Como definir 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 mais recente com suporte a build para 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. Você deve habilitar o botão para acessá-lo no 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 DebugMenuButton e clique nele para abri-lo na guia Inspector.

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

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

A guia Inspetor do DebugMenuButton\ncom caixa de seleção

  1. Salve o prefab.

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

3. Ativar o submenu da Configuração remota

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

    Item DebugMenu aninhado em Recursos,\nHamster, Prefabs, Menus
  2. Na guia Hierarchy, expanda a hierarquia e clique no subobjeto em DebugMenu > Panel, identificado como Remote Config Actions.

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

  1. Na guia Inspector do Unity, ative as Remote Config Actions marcando a caixa à esquerda do campo de texto com o nome do objeto.

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

Ela tem dois filhos do GameObject, chamados "Set Bored Of Subtitle" e "Set Trys Subtitle", que estão configurados para chamar métodos existentes, mas não implementados no 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 exibir variantes diferentes. Como parte deste codelab, você excluirá a condição que criou e reintroduzirá o padrão no app, além de substituí-la apenas 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 padrão no app.

Como excluir uma condição do editor de parâmetros da\nConfiguração remota

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

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

Agora você vai escrever corpos de função para algumas funções pré-configuradas, mas não implementadas do Google Analytics 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 existentes deles 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, você poderá chamar uma dessas funções para disponibilizar a propriedade para as 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. Em seguida, pressione Set Bored of Subtitle.

6. Criar uma dimensão personalizada

Em seguida, você vai configurar diversas variantes de legendas para o subtitle_override para ver qual delas funciona melhor. No entanto, no seu teste A/B, você só exibirá essas variantes para usuários que tiverem a palavra "entediado" como um sentimento em relação ao subtítulo atual (conforme registrado em subtitle_sentiment).

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 nova 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 para comparar e otimizar a retenção de usuários de dois a três dias.

  1. Primeiro, selecione Editar no parâmetro subtitle_override da página 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 exibida, clique em Adicionar novo.

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

  1. Na lista que aparece, 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\nexperimento"

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

A etapa "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-o manualmente.
  2. Como você só quer definir um subtítulo para aqueles que têm um sentimento de subtítulo atual como "entediado", escolha contém e digite bored.
  3. Como opção, escolha qual porcentagem do público que corresponde aos critérios acima será exposta ao teste. Selecione 100% para evitar a aleatoriedade que você não consegue controlar facilmente.

Seção "Segmentação do teste A/B" com\nsubtitle_sentiment selecionado

  1. Em seguida, selecione uma meta para a qual o teste 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 diferentes variantes de legendas . Essas variantes são os diferentes valores que o Teste A/B vai mostrar aos usuários com subtitle_sentiment que contém "entediado", e o Teste A/B vai determinar qual variante é 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 de variantes com números inteiros da seguinte forma:
    • Valor de referência: 1
    • Variante A: 100
    • Variante B: 100
    Isso resultará em ponderações totais de 0,5% para o valor de referência, 49,8% para a variante A e 49,8% para a variante B.Seção de configuração das ponderações das variantesEssas variantes especificam que uma de 201 vezes, o Teste A/B veicula o padrão para quem cansou das legendas, mas em 200/201 vezes, ele vai veicular um dos dois novos valores de tela e substituir o título.
  5. Para salvar e enviar, clique em Iniciar experimento e 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 a apresentação do jogo.

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

Se você o definiu como bored (antes da nova busca), um dos novos valores será mostrado em uma proporção aproximada de 50/50.

Depois que um dispositivo participa de um experimento do 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/simulador.

Em um teste A/B real lançado para sua base de usuários, você precisa dar ao valor de referência um peso semelhante às outras variantes. Mas, neste caso, você atribui probabilidades muito distorcidas para validar se o experimento está funcionando. Se (no caso 1/201), você ainda receber o valor padrão, tente reinstalar o jogo no seu dispositivo/simulador.

Outro efeito é que mudar a propriedade do usuário de volta para enjoys não muda 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 diferentes valores e determinar como cada um afeta as métricas do Google Analytics.

O que vimos

  • Como definir 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, você poderá selecionar um deles na lista de experimentos do seu projeto para decidir o que fazer com ele. Você quer escolher um como o "vencedor" ou realizar mais experimentos?