Ir para o console

Criar experimentos de mensagens com o Teste A/B

Quando você entra em contato com seus usuários ou inicia uma nova campanha de marketing, precisa garantir que está fazendo isso corretamente. Os testes A/B pode ajudar você a encontrar o texto e a aparência ideais por meio do teste de variantes de mensagens em partes selecionadas de sua base de usuários. Se o objetivo é retenção ou conversão melhor em uma oferta, o teste A/B pode realizar análises estatísticas para determinar se o desempenho de uma variante de mensagem está melhor no grupo de controle para o objetivo selecionado.

Para executar testes A/B em variantes de recurso com um grupo de controle, siga estas etapas:

  1. Crie um experimento.
  2. Valide o experimento em um dispositivo de teste.
  3. Gerencie o experimento.

Criar um experimento

Com um experimento que usa o Editor do Notificações, você pode avaliar diversas variantes em uma única mensagem de notificação.

  1. Faça login no Firebase, atualize as Configurações de compartilhamento de dados e verifique se essa opção está ativada. Sem o compartilhamento de dados, seu experimento não terá acesso aos dados de análise.
  2. Na barra de navegação do Console do Firebase, clique em Expandir e depois em Teste A/B.
  3. Clique em Criar experimento e, em seguida, selecione "Notificações" quando solicitado para o serviço que você quer fazer experimentos.
  4. Digite um nome e uma descrição opcional para seu experimento e clique em Avançar.
  5. Preencha os campos de Segmentação, escolhendo primeiro o aplicativo que usa seu experimento. Também é possível segmentar um subconjunto dos usuários para participar do experimento. Basta escolher uma ou mais das seguintes opções:

    • Versão: uma ou mais versões do seu app.
    • Público a que o usuário pertence: públicos do Analytics utilizados para segmentar usuários que podem ser incluídos no experimento.
    • Propriedade do usuário: uma ou mais propriedades do Analytics para selecionar usuários que podem ser incluídos no experimento.
    • Previsão: grupos de usuários previstos pelo machine learning para realizar um comportamento específico.
    • País/região: um ou mais países ou regiões para selecionar usuários que podem ser incluídos no experimento.
    • Idioma do dispositivo: um ou mais idiomas e locais usados para selecionar usuários que podem ser incluídos no experimento.
  6. Porcentagem de usuários-alvo: insira a porcentagem da base de usuários do seu app correspondente aos critérios definidos em Usuários-alvo que você quer dividir igualmente entre o grupo de controle e uma ou mais variantes no experimento. Pode ser qualquer porcentagem entre 0,01% e 100%. As porcentagens são reatribuídas aleatoriamente aos usuários para cada experimento, incluindo experimentos duplicados.

  7. Na seção Variantes, digite uma mensagem para enviar ao grupo de controle no campo Inserir texto da mensagem. Para não enviar mensagens ao grupo de controle, deixe este campo em branco.

  8. (Opcional) Para adicionar mais de uma variante ao seu experimento, clique em Adicionar variante. Por padrão, os experimentos têm um grupo de controle e uma variante.

  9. (Opcional) Digite um nome para cada variante no seu experimento para substituir os nomes Variante A, Variante B etc.

  10. Defina uma métrica de objetivo para seu experimento para ser usada na avaliação das variantes do experimento, além das métricas adicionais desejadas na lista suspensa. Isso inclui objetivos integrados (engajamento, compras, receita, retenção etc), eventos de conversão e outros eventos do Analytics.

  11. Escolha opções para sua mensagem:

    • Data de entrega: escolha Enviar agora para iniciar o experimento imediatamente após salvar ou Programada para especificar uma hora para iniciar o experimento no futuro.
    • Opções avançadas: para escolher opções avançadas para todas as notificações incluídas no experimento, expanda Opções avançadas e altere qualquer uma das opções de mensagem listadas:
  12. Clique em Revisar para salvar o experimento.

Validar seu experimento em um dispositivo de teste

Cada instalação do app do Firebase tem um token do código de instância (ou token de registro) associado. Você pode usar esse token para testar variantes específicas do experimento em um dispositivo de teste com seu app instalado. Para validar seu experimento em um dispositivo de teste, siga as etapas a seguir:

  1. Consiga o token do código da instância da seguinte maneira:

    Swift

    InstanceID.instanceID().instanceID { (result, error) in
      if let error = error {
        print("Error fetching remote instance ID: \(error)")
      } else if let result = result {
        print("Remote instance ID token: \(result.token)")
        self.instanceIDTokenMessage.text  = "Remote InstanceID token: \(result.token)"
      }
    }

    Objective-C

    [[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result,
                                                        NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"Error fetching remote instance ID: %@", error);
      } else {
        NSLog(@"Remote instance ID token: %@", result.token);
        NSString* message =
          [NSString stringWithFormat:@"Remote InstanceID token: %@", result.token];
        self.instanceIDTokenMessage.text = message;
      }
    }];

    Java

    FirebaseInstanceId.getInstance().getInstanceId()
            .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
                @Override
                public void onComplete(@NonNull Task<InstanceIdResult> task) {
                    Log.d("IID_TOKEN", task.getResult().getToken());
                }
            });

    Kotlin

    FirebaseInstanceId.getInstance().instanceId
            .addOnSuccessListener { result ->
                Log.d("IID_TOKEN", result.token)
            }

    C++

    firebase::InitResult init_result;
    auto* instance_id_object = firebase::instance_id::InstanceId::GetInstanceId(
        firebase::App::GetInstance(), &init_result);
    instance_id_object->GetToken().OnCompletion(
        [](const firebase::Future<std::string>& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::instance_id::kErrorNone) {
            printf("Instance ID Token %s\n", future.result()->c_str());
          }
        });
    

    Unity

    Firebase.InstanceId.FirebaseInstanceId.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Instance ID Token {0}", task.Result));
        }
      });
    
  2. Na barra de navegação do Console do Firebase, clique em Configuração remota ou Notificações e, em seguida, clique em Teste A/B.
  3. Clique em Rascunho e, em seguida, no título do seu experimento.
  4. Clique em Gerenciar dispositivos de teste e, em seguida, insira o token de código de instância de um dispositivo de teste e escolha a variante do experimento a ser enviada a esse dispositivo de teste.
  5. Execute o aplicativo e confirme se a variante selecionada está sendo recebida no dispositivo de teste.

Para saber mais sobre o token do código de instância, consulte FIRInstanceID (iOS) ou FirebaseInstanceId (Android).

Gerenciar seu experimento

Ao criar um experimento com o Configuração remota ou o Editor do Notificações, você poderá validar e iniciar seu experimento, monitorá-lo durante a execução e aumentar o número de usuários incluídos nele.

Quando seu experimento estiver concluído, você poderá anotar configurações usadas pela variante vencedora e implementar essas configurações para todos os usuários. Também é possível executar outro experimento.

Iniciar um experimento

  1. Na barra de navegação do Console do Firebase, clique em Expandir e depois em Teste A/B.
  2. Clique em Rascunho e, em seguida, no título do seu experimento.
  3. Para validar que seu aplicativo tem usuários que seriam incluídos no seu experimento, verifique se há um número maior que 0% na seção Segmentação e distribuição (por exemplo, 1% dos usuários que correspondem aos critérios).
  4. Para alterar o experimento, clique em Editar.
  5. Para iniciar o experimento, clique em Iniciar experimento. Você pode executar até 24 experimentos por projeto de cada vez.

Monitorar um experimento

Você pode verificar o progresso de um experimento que já está sendo executado há um tempo e ver quais são os resultados para os usuários que participaram dele.

  1. Na barra de navegação do Console do Firebase, clique em Expandir e depois em Teste A/B.
  2. Clique em Executar e, em seguida, no título do seu experimento. Nessa página, você pode ver várias estatísticas sobre seu experimento em execução, incluindo sua métrica de objetivo e outras métricas. Para cada métrica, estão disponíveis as seguintes informações:

    • Melhoria: uma medida da melhoria de uma métrica para determinada variante em comparação com a linha de base (ou o grupo de controle). É calculada por meio da comparação entre o intervalo de valores da variante e o intervalo de valores da linha de base.
    • Probabilidade de superar a linha de base: a probabilidade estimada de que uma determinada variante supere a linha de base para a métrica selecionada.
    • Probabilidade de ser a melhor variante: a probabilidade estimada de que uma determinada variante supere outras variantes para a métrica selecionada.
    • Valor por usuário: baseado nos resultados do experimento, é o intervalo previsto em que o valor da métrica se enquadrará ao longo do tempo.
    • Valor total: o valor cumulativo observado para a variante ou o grupo de controle. É usado para medir o desempenho de cada variante do experimento e para calcular a Melhoria, o Intervalo de valores, a Probabilidade de superar a linha de base e a Probabilidade de ser a melhor variante. Dependendo da métrica que está sendo medida, o nome dessa coluna pode ser "Duração por usuário", "Taxa de retenção" ou "Taxa de conversão".
  3. Para aumentar o número de usuários incluídos no experimento, clique em Aumentar distribuição e selecione uma porcentagem maior para adicionar mais usuários qualificados ao experimento.

  4. Depois que seu experimento for executado por um tempo (pelo menos 24 horas), os dados desta página indicarão qual variante é a "líder", se for o caso. Algumas medidas são acompanhadas por um gráfico de barras que apresenta os dados em formato visual.

Implantar um experimento para todos os usuários

Após o experimento ser executado por tempo suficiente para que você tenha uma variante "líder" ou vencedora para sua métrica de objetivo, será possível implantar o experimento para 100% dos usuários. Com isso, você pode selecionar um valor para publicar no Configuração remota para todos os usuários. Mesmo que seu experimento não tenha criado um vencedor claro, você ainda poderá implantar uma variante para todos os usuários.

  1. Na barra de navegação do Console do Firebase, clique em Expandir e depois em Teste A/B.
  2. Clique em Concluído ou Em execução, selecione um experimento que você quer implantar para todos os usuários, clique no menu de contexto (more_vert) e depois em Implantar variante.
  3. Implante o experimento para todos os usuários com um dos seguintes procedimentos:

    • Para um experimento que usa o Editor do Notificações, use a caixa de diálogo Implantar mensagem para enviar a mensagem aos usuários segmentados restantes que não fizeram parte do experimento.
    • Para um experimento do Configuração remota, use a caixa de diálogo para determinar quais valores de parâmetro do Configuração Remota precisam ser alterados para todos os usuários.

Expandir um experimento

Se você achar que um experimento não alcança usuários suficientes no teste A/B para declarar um líder, aumente a distribuição do seu experimento para que ele alcance uma porcentagem maior da base de usuários do app.

  1. Na barra de navegação do Console do Firebase, clique em Expandir e depois em Teste A/B.
  2. Clique Em execução, passe o cursor sobre seu experimento, clique no menu de contexto (more_vert) e depois em Aumentar distribuição.
  3. O console exibirá uma caixa de diálogo com uma opção para aumentar a porcentagem de usuários que estão no experimento em execução. Insira um número maior do que a porcentagem atual e clique em Enviar. O experimento será ajustado para a porcentagem de usuários que você especificou.

Duplicar ou interromper um experimento

  1. Na barra de navegação do Console do Firebase, clique em Expandir e depois em Teste A/B.
  2. Clique em Concluído ou Em execução, passe o cursor sobre seu experimento, clique no menu de contexto (more_vert) e depois em Duplicar ou Interromper.

Segmentação de usuários

Você pode segmentar os usuários para incluí-los no seu experimento usando os critérios mostrados a seguir.

Critério de segmentação Operadores    Valores Observação
Versão contém,
não contém,
corresponde exatamente,
contém regex
Digite um valor para uma ou mais versões do aplicativo que você quer incluir no experimento.

Ao usar qualquer um dos operadores contém, não contém ou corresponde exatamente, é possível fornecer uma lista de valores separados por vírgula.

Ao usar o operador contém regex, é possível criar expressões regulares no formato RE2. A expressão regular precisa corresponder à toda a string de versão de destino ou parte dela. Use as âncoras ^ e $ para corresponder ao começo, ao final ou a toda uma string de destino.

Público-alvo ao qual o usuário pertence inclui todos os itens de,
inclui pelo menos um item de,
não inclui todos os itens de,
não inclui pelo menos um item de
Selecione um ou mais públicos do Analytics para segmentar usuários que podem ser incluídos no experimento.  
Propriedade do usuário Para texto:
contém,
não contém,
corresponde exatamente a,
contém regex

Para números:
<, ≤, =, ≥, >
Uma propriedade de usuário do Analytics é usada para selecionar usuários que podem ser incluídos em um experimento, com um intervalo de opções para seleção de valores de propriedade do usuário.

No cliente, você pode definir apenas valores de string para as propriedades do usuário. Para condições que usam operadores numéricos, o serviço de configuração remota converte o valor da propriedade de usuário correspondente em um inteiro/float.
Ao usar o operador contém regex, é possível criar expressões regulares no formato RE2. A expressão regular precisa corresponder à toda a string de versão de destino ou parte dela. Use as âncoras ^ e $ para corresponder ao começo, ao final ou a toda uma string de destino.
Previsão N/A Grupos de destino de usuários definidos pelo Firebase Previsões. Por exemplo, aqueles que provavelmente deixarão de usar seu aplicativo ou usuários que podem fazer uma compra no aplicativo. Selecione um dos valores definidos pela ferramenta Firebase Previsões. Se uma opção não estiver disponível, talvez seja necessário ativar o Firebase Previsões visitando a seção "Previsões" do Console do Firebase.  
País do dispositivo N/A Um ou mais países ou regiões utilizados para selecionar usuários que podem ser incluídos no experimento.  
Idioma do dispositivo N/A Um ou mais idiomas e locais usados para selecionar usuários que podem ser incluídos no experimento. Este critério de segmentação só está disponível para o Configuração remota.

Métricas do teste A/B

Ao criar seu experimento, você escolhe uma métrica usada para comparar as variantes. Você também pode escolher outras métricas de acompanhamento para entender melhor cada variante do experimento e detectar algum efeito colateral significativo (como falhas do app). As tabelas a seguir fornecem detalhes sobre como as métricas da meta e outras métricas são calculadas:

Métricas da meta

Métrica Descrição
Engajamento diário do usuário O número de usuários que têm seu app em primeiro plano diariamente, por tempo suficiente para ativar o evento user_engagement do Analytics.
Retenção (1 dia) O número de usuários que retornam ao seu app diariamente.
Retenção (2 a 3 dias) O número de usuários que retornam ao seu app dentro de 2 a 3 dias.
Retenção (4 a 7 dias) O número de usuários que retornam ao seu app dentro de 4 a 7 dias.
Retenção (8 a 14 dias) O número de usuários que retornam ao seu app dentro de 8 a 14 dias.
Retenção (15 dias ou mais) O número de usuários que retornam ao seu aplicativo dentro de 15 dias ou mais após o último uso.
Abertura de notificações Monitora se um usuário abre a notificação enviada pelo Editor do Notificações.
Receita de compra Valor combinado para todos os eventos ecommerce_purchase e in_app_purchase.
Receita estimada da AdMob Ganhos estimados da AdMob.
Receita total estimada Valor combinado para compra e receitas estimadas da AdMob.
first_open Um evento do Analytics acionado quando um usuário abre um app pela primeira vez depois de instalá-lo ou reinstalá-lo. Usado como parte de um acompanhamento de conversão.
notification_open Um evento do Analytics acionado quando um usuário abre uma notificação enviada pelo Editor do Notificações. Usado como parte de um acompanhamento de conversão.

Outras métricas

Métrica Descrição
Usuários que não tiveram falhas A porcentagem de usuários que não encontraram erros em seu app que foram detectados pelo SDK do Firebase Crash Reporting durante o experimento. Para saber mais, consulte Métricas de usuários livres de falhas.
notification_dismiss Um evento do Analytics acionado quando uma notificação enviada pelo Editor do Notificações é descartada (apenas Android).
notification_receive Um evento do Analytics acionado quando uma notificação enviada pelo Editor do Notificações é recebida enquanto o app está em segundo plano (apenas Android).
os_update Um evento do Analytics que rastreia quando o sistema operacional do dispositivo é atualizado para uma nova versão. Para saber mais, consulte Eventos coletados automaticamente.
screen_view Um evento do Analytics que rastreia as telas visualizadas em seu app. Para saber mais, veja Rastrear visualizações de telas.
session_start Um evento do Analytics que conta as sessões dos usuários em seu app. Para saber mais, consulte Eventos coletados automaticamente.
user_engagement Um evento do Analytics acionado periodicamente enquanto seu app está em primeiro plano. Para saber mais, consulte Eventos coletados automaticamente.

Exportação de dados do BigQuery

É possível acessar todos os dados de análise relacionados aos seus testes A/B no BigQuery. Com isso, é possível fazer análises usando o BigQuery SQL, exportar os dados para outro provedor de nuvem ou usá-los para seus modelos personalizados de ML. Consulte Vincular o BigQuery ao Firebase para ver mais informações.

Para começar, verifique se o projeto do Firebase está vinculado ao BigQuery. Selecione Configurações > Configurações do projeto na barra de navegação à esquerda e, em seguida, clique em Integrações > BigQuery > Vincular. Veja nessa página as opções para executar a exportação de dados de análise do BiqQuery para todos os aplicativos no projeto.

Para consultar dados de análise no contexto de um experimento, abra a página de resultados do experimento e selecione Visualizar no BigQuery. Após isso, o editor de consultas do console do BigQuery é aberto com uma consulta de exemplo de dados de experimentos pré-carregados para que você a analise. Como os dados do Firebase no BigQuery são atualizados apenas uma vez por dia, os dados disponíveis na página do experimento podem estar mais atualizados do que os disponíveis no console do BigQuery.