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.
O Teste A/B com a Configuração remota permite testar mudanças na interface, nos recursos ou nas campanhas de engajamento do seu app em um público-alvo antes de implementá-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 que você use o código instrumentado para a Configuração remota e inicie experimentos que controlam os valores recebidos pelos clientes com base nas condições da Configuração remota (incluindo as propriedades do usuário do Google Analytics), lançamentos por porcentagem, eventos de conversão do Analytics e alguma combinação desses.
Primeiro, você vai implementar uma condição que restringe quem será incluído no experimento definindo propriedades do usuário com base nas ações dele. 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 são incluídos no experimento. Por fim, você vai usar esses dados para entender melhor seu público-alvo.
O que você vai aprender
- 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
- Ter concluído a etapa Instrumentar seu jogo com a Configuração remota do Firebase.
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. É necessário ativar o botão para acessá-lo no prefab MainMenu.
- No editor do Unity, selecione a guia Project e, em Assets, expanda Hamster > Prefabs > Menus e clique em MainMenu.
- Na hierarquia de prefab, encontre o subobjeto desativado chamado DebugMenuButton e clique nele para abrir na guia Inspector.
- Na guia Inspector, marque a caixa no canto superior esquerdo ao lado do campo de texto que contém DebugMenuButton para ativar.
- 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
- Na guia Project do editor do Unity, expanda Assets > Hamster > Prefabs > Menus e clique duas vezes no objeto DebugMenu para abrir na guia Hierarchy do editor.
- Na guia Hierarquia, expanda a hierarquia e clique no subobjeto em DebugMenu > Painel, que é identificado como Ações de configuração remota.
- Na guia Inspector do Unity, ative as Ações de configuração remota marcando a caixa à esquerda do campo de texto com o nome do objeto.
Ele tem dois filhos GameObject chamados Set Bored Of Subtitle e Set Enjoys Subtitle, que são configurados para chamar métodos existentes, mas não implementados, em DebugMenu.cs
.
4. Redefinir a substituição de legenda 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 veicular variantes diferentes. Como parte deste codelab, você vai excluir a condição criada e reintroduzir o padrão no app, e vai substituir apenas o resultado do teste A/B.
Para reativar o padrão no app:
- 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. - Clique no ícone X ao lado da condição para excluí-la.
- Ao lado do valor padrão restante, ative a opção Usar padrão no app.
- Clique em Salvar para salvar as alterações e em Publicar mudanças para publicar as alterações.
5. Definir propriedades do usuário em 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 pode ser encontrado 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 à legenda 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 várias variantes de legenda para o subtitle_override
e conferir qual delas funciona melhor. No teste A/B, porém, você só vai veicular essas variantes para usuários que sentem que a legenda atual (como registrada em subtitle_sentiment
) inclui 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 nova dimensão personalizada:
- Abra o Console do Firebase, expanda o menu Analytics e selecione Definições personalizadas.
- Na página "Definições personalizadas", clique em Criar dimensões personalizadas.
- Na janela Nova dimensão personalizada, defina o nome da dimensão como "Sentimento da legenda" e, no menu suspenso Escopo, selecione Usuário.
- 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 serão testados entre si para otimizar a retenção de usuários de dois a três dias.
- Primeiro, selecione Editar no parâmetro
subtitle_override
na página da Configuração remota do console do Firebase:
- Na caixa de diálogo Editar parâmetro, clique em Adicionar novo.
- Na lista que aparece, selecione Experimento.
- Insira um nome e uma descrição para o experimento.
- Em seguida, escolha as condições de segmentação. Primeiro, selecione seu aplicativo no menu suspenso.
- 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. - Como você só quer definir um subtítulo para aqueles cujo sentimento atual inclui "entediado", escolha contém e digite
bored
. - Opcionalmente, escolha qual porcentagem do público-alvo que corresponde aos critérios acima será exposto ao teste. Selecione 100% para evitar aleatoriedade que não pode ser controlada com facilidade.
- Em seguida, selecione uma meta para a qual o teste tentará maximizar. Selecione Retenção (2 a 3 dias).
- Em seguida, configure os parâmetros do experimento e crie diferentes variantes de legenda. Essas variantes são os diferentes valores que o Teste A/B vai mostrar aos usuários cujo
subtitle_sentiment
contém "bored", e o Teste A/B vai determinar qual variante é melhor para maximizar a retenção. - 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}}
- 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}}
- Defina as proporções de variantes com números inteiros da seguinte forma:
- Valor de referência: 1
- Variante A: 100
- Variante B: 100
- Salve e envie clicando em Iniciar experimento e depois em Iniciar no pop-up de confirmação.
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 em toda a base de usuários, você precisa dar à 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 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 de usuário do Google Analytics como parte das condições de admissão em experimentos de teste A/B
Próximas etapas
Quando o experimento terminar, você poderá selecionar um da lista de experimentos no seu projeto para decidir o que fazer com ele. Você quer escolher uma como "vencedora" ou realizar mais experimentos?