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.
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. Você deve habilitar 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 do prefab, encontre o subobjeto desativado DebugMenuButton e clique nele para abri-lo na guia Inspector.
- Na guia Inspetor, marque a caixa no canto superior esquerdo ao lado do campo de texto que contém DebugMenuButton para ativá-lo.
- 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 Unity Editor, expanda Assets > Hamster > Prefabs > Menus e clique duas vezes no objeto DebugMenu para abri-lo na guia Hierarchy do editor.
- Na guia Hierarchy, expanda a hierarquia e clique no subobjeto em DebugMenu > , identificado como Ações da Configuração remota.
- Na guia Inspector do Unity, ative as Remote Config Actions marcando a caixa à esquerda do campo de texto com o nome do objeto.
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:
- 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 mudanças e em Publicar alterações para publicá-las.
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:
- 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 selecione Usuário no menu suspenso Escopo.
- 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.
- Primeiro, selecione Editar no parâmetro
subtitle_override
da página Configuração remota do Console do Firebase:
- Na caixa de diálogo Editar parâmetro exibida, 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
. - 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.
- Em seguida, selecione uma meta para a qual o teste tentará maximizar. Escolha Retenção (2 a 3 dias).
- 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 em que
subtitle_sentiment
contém "entediado", 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
- Para salvar e enviar, clique em Iniciar experimento e 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 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?