获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Criar experiências de mensagens com testes A/B

Quando você está entrando em contato com seus usuários ou iniciando uma nova campanha de marketing, você quer ter certeza de que está certo. O teste A/B pode ajudá-lo a encontrar o texto e a apresentação ideais testando variantes de mensagem em partes selecionadas de sua base de usuários. Seja sua meta uma melhor retenção ou conversão em uma oferta, o teste A/B pode realizar análises estatísticas para determinar se uma variante de mensagem está superando a linha de base para o objetivo selecionado.

Para variantes de recursos de teste A/B com uma linha de base, faça o seguinte:

  1. Crie seu experimento.
  2. Valide sua experiência em um dispositivo de teste.
  3. Gerencie seu experimento.

Criar um experimento

Um experimento que usa o compositor de notificações permite avaliar várias variantes em uma única mensagem de notificação.

  1. Faça login no console do Firebase e verifique se o Google Analytics está ativado em seu projeto para que o experimento tenha acesso aos dados do Analytics.

    Se você não ativou o Google Analytics ao criar seu projeto, pode ativá-lo na guia Integrações , que pode ser acessada usando > Configurações do projeto no console do Firebase .

  2. Na seção Engage da barra de navegação do Firebase console , clique em A/B Testing .

  3. Clique em Criar experimento e selecione Notificações quando for solicitado o serviço com o qual você deseja experimentar.

  4. Insira um Nome e uma Descrição opcional para sua experiência e clique em Avançar .

  5. Preencha os campos de segmentação , primeiro escolhendo o aplicativo que usa sua experiência. Você também pode segmentar um subconjunto de seus usuários para participar de sua experiência escolhendo opções que incluem o seguinte:

    • Versão: uma ou mais versões do seu aplicativo
    • Público-alvo de usuários : públicos-alvo do Google Analytics usados ​​para segmentar usuários que podem ser incluídos no experimento
    • Propriedade do usuário: uma ou mais propriedades do usuário do Analytics para selecionar usuários que podem ser incluídos no experimento
    • 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 localidades usados ​​para selecionar usuários que podem ser incluídos no experimento
    • Primeira abertura: segmente usuários com base na primeira vez que abriram seu aplicativo
    • Último envolvimento com o aplicativo: segmente usuários com base na última vez que eles se envolveram com seu aplicativo
  6. Defina a porcentagem de usuários-alvo: selecione a porcentagem da base de usuários do seu aplicativo que corresponde aos critérios definidos em Usuários-alvo que você deseja dividir uniformemente entre a linha de base e uma ou mais variantes em seu experimento. Isso pode ser qualquer porcentagem entre 0,01% e 100%. As porcentagens são reatribuídas aleatoriamente aos usuários para cada experiência, incluindo experiências duplicadas.

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

  8. (opcional) Para adicionar mais de uma variante à sua experiência, clique em Adicionar variante . Por padrão, os experimentos têm uma linha de base e uma variante.

  9. (opcional) Insira um nome para cada variante em sua experiência para substituir os nomes Variante A , Variante B , etc.

  10. Defina uma métrica de meta para seu experimento usar ao avaliar as variantes do experimento junto com as métricas adicionais desejadas na lista suspensa. Essas métricas incluem objetivos integrados (engajamento, compras, receita, retenção etc.), eventos de conversão do Analytics e outros eventos do Analytics.

  11. Escolha as opções para sua mensagem:

    • Data de entrega: escolha Enviar agora para iniciar seu experimento imediatamente após salvar ou Agendado para especificar um horário para iniciar seu experimento no futuro.
    • Opções avançadas: para escolher opções avançadas para todas as notificações incluídas em sua experiência, expanda Opções avançadas e altere qualquer uma das opções de mensagem listadas.
  12. Clique em Revisar para salvar sua experiência.

Você tem permissão para até 300 experimentos por projeto, que podem consistir em até 24 experimentos em execução, com o restante como rascunho ou concluído.

Valide seu experimento em um dispositivo de teste

Para cada instalação do Firebase, você pode recuperar o token de registro do FCM associado a ela. Você pode usar esse token para testar variantes de experimentos específicos em um dispositivo de teste com seu aplicativo instalado. Para validar sua experiência em um dispositivo de teste, faça o seguinte:

  1. Obtenha o token de registro do FCM da seguinte maneira:

    Rápido

    Messaging.messaging().token { token, error in
      if let error = error {
        print("Error fetching FCM registration token: \(error)")
      } else if let token = token {
        print("FCM registration token: \(token)")
        self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
      }
    }
    

    Objetivo-C

    [[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
      if (error != nil) {
        NSLog(@"Error getting FCM registration token: %@", error);
      } else {
        NSLog(@"FCM registration token: %@", token);
        self.fcmRegTokenMessage.text = token;
      }
    }];
    

    Java

    FirebaseMessaging.getInstance().getToken()
        .addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
              if (!task.isSuccessful()) {
                Log.w(TAG, "Fetching FCM registration token failed", task.getException());
                return;
              }
    
              // Get new FCM registration token
              String token = task.getResult();
    
              // Log and toast
              String msg = getString(R.string.msg_token_fmt, token);
              Log.d(TAG, msg);
              Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    Kotlin+KTX

    FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
        if (!task.isSuccessful) {
            Log.w(TAG, "Fetching FCM registration token failed", task.exception)
            return@OnCompleteListener
        }
    
        // Get new FCM registration token
        val token = task.result
    
        // Log and toast
        val msg = getString(R.string.msg_token_fmt, token)
        Log.d(TAG, msg)
        Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
    })

    C++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });
        

    Unity

    Firebase.Messaging.FirebaseMessaging.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("FCM registration token {0}", task.Result));
        }
      });
    
  2. Na barra de navegação do Firebase console , clique em Teste A/B .
  3. Clique em Rascunho , passe o mouse sobre seu experimento, clique no menu de contexto ( ) e clique em Gerenciar dispositivos de teste
  4. Insira o token do FCM para um dispositivo de teste e escolha a variante do experimento a ser enviada para esse dispositivo de teste.
  5. Execute o aplicativo e confirme se a variante selecionada está sendo recebida no dispositivo de teste.

Gerencie seu experimento

Independentemente de você criar um experimento com o Configuração remota, o compositor de notificações ou o Firebase In-App Messaging, você pode validar e iniciar seu experimento, monitorar seu experimento durante a execução e aumentar o número de usuários incluídos no experimento em execução.

Quando sua experiência estiver concluída, você poderá anotar as configurações usadas pela variante vencedora e, em seguida, distribuir essas configurações para todos os usuários. Ou você pode executar outro experimento.

Iniciar um experimento

  1. Na seção Engage da barra de navegação do Firebase console , clique em A/B Testing .
  2. Clique em Rascunho e, em seguida, clique no título da sua experiência.
  3. Para validar se seu aplicativo tem usuários que seriam incluídos em sua experiência, expanda os detalhes do rascunho e 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 sua experiência, clique em Editar .
  5. Para iniciar sua experiência, clique em Iniciar experiência . Você pode executar até 24 experimentos por projeto por vez.

Monitorar um experimento

Depois que um experimento estiver em execução por um tempo, você poderá verificar seu progresso e ver como são os resultados para os usuários que participaram do experimento até agora.

  1. Na seção Engage da barra de navegação do Firebase console , clique em A/B Testing .
  2. Clique em Execução e, em seguida, clique ou pesquise o título de sua experiência. Nesta página, você pode visualizar várias estatísticas observadas e modeladas sobre seu experimento em execução, incluindo o seguinte:

    • % de diferença da linha de base : uma medida da melhoria de uma métrica para uma determinada variante em comparação com a linha de base. Calculado comparando o intervalo de valores da variante com 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.
    • observed_metric por usuário : com base nos resultados do experimento, esse é o intervalo previsto em que o valor da métrica cairá ao longo do tempo.
    • Total observed_metric : o valor cumulativo observado para a linha de base ou variante. O valor é usado para medir o desempenho de cada variante do experimento e é usado para calcular Melhoria , Faixa de valores , Probabilidade de superar a linha de base e Probabilidade de ser a melhor variante . Dependendo da métrica que está sendo medida, esta coluna pode ser rotulada como "Duração por usuário", "Receita por usuário", "Taxa de retenção" ou "Taxa de conversão".
  3. Depois que seu experimento for executado por um tempo (pelo menos 7 dias para FCM e mensagens no aplicativo ou 14 dias para Configuração remota), os dados nesta página indicam qual variante, se houver, é a "líder". Algumas medições são acompanhadas por um gráfico de barras que apresenta os dados em formato visual.

Lançar um experimento para todos os usuários

Depois que um experimento for executado por tempo suficiente para que você tenha um "líder" ou variante vencedora para sua métrica de meta, você poderá lançar o experimento para 100% dos usuários. Isso permite que você selecione uma variante para publicar para todos os usuários no futuro. Mesmo que sua experiência não tenha criado um vencedor claro, você ainda pode optar por lançar uma variante para todos os seus usuários.

  1. Na seção Engage da barra de navegação do Firebase console , clique em A/B Testing .
  2. Clique em Concluído ou Em execução , clique em um experimento que deseja lançar para todos os usuários, clique no menu de contexto ( ) e clique em Implementar variante .
  3. Implemente sua experiência para todos os usuários seguindo um destes procedimentos:

    • Para um experimento que usa o compositor de Notificações , use a caixa de diálogo Lançar mensagem para enviar a mensagem aos demais usuários segmentados que não fizeram parte do experimento.
    • Para um experimento do Configuração remota , selecione uma variante para determinar quais valores de parâmetro do Configuração remota devem ser atualizados. Os critérios de segmentação definidos ao criar a experiência serão adicionados como uma nova condição em seu modelo, para garantir que o lançamento afete apenas os usuários segmentados pela experiência. Depois de clicar em Revisar no Configuração remota para revisar as alterações, clique em Publicar alterações para concluir a distribuição.
    • Para um experimento de mensagens no aplicativo , use a caixa de diálogo para determinar qual variante precisa ser lançada como uma campanha independente de mensagens no aplicativo. Uma vez selecionado, você será redirecionado para a tela de composição do FIAM para fazer quaisquer alterações (se necessário) antes de publicar.

Expandir um experimento

Se você achar que um experimento não está atraindo usuários suficientes para o Teste A/B declarar um líder, poderá aumentar a distribuição do experimento para alcançar uma porcentagem maior da base de usuários do aplicativo.

  1. Na seção Engage da barra de navegação do Firebase console , clique em A/B Testing .
  2. Selecione o experimento em execução que você deseja editar.
  3. Na visão geral do experimento , clique no menu de contexto ( ) e clique em Editar experimento em execução .
  4. A caixa de diálogo Segmentação exibe uma opção para aumentar a porcentagem de usuários que estão na experiência em execução no momento. Selecione um número maior que a porcentagem atual e clique em Publicar . A experiência será enviada para a porcentagem de usuários que você especificou.

Duplicar ou interromper um experimento

  1. Na seção Engage da barra de navegação do Firebase console , clique em A/B Testing .
  2. Clique em Concluído ou Em execução , passe o mouse sobre seu experimento, clique no menu de contexto ( ) e clique em Duplicar experimento ou Parar experimento .

Segmentação de usuários

Você pode segmentar os usuários a serem incluídos em sua experiência usando os seguintes critérios de segmentação de usuários.

Critério de segmentação Operador(es) Valor(es) Observação
Versão contém,
não contém,
corresponde exatamente,
contém regex
Insira um valor para uma ou mais versões do aplicativo que você deseja incluir no experimento.

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

Ao usar o operador contém regex , você pode criar expressões regulares no formato RE2 . Sua expressão regular pode corresponder a toda ou parte da string da versão de destino. Você também pode usar as âncoras ^ e $ para corresponder ao início, ao fim ou à totalidade de uma string de destino.

Públicos-alvo do usuário inclui todos,
inclui pelo menos um de,
não inclui todos,
não inclui pelo menos um dos
Selecione um ou mais públicos-alvo do Google Analytics para segmentar usuários que podem ser incluídos em sua experiência. Algumas experiências que segmentam o público do Google Analytics podem levar alguns dias para acumular dados porque estão sujeitas à latência de processamento de dados do Google Analytics . É mais provável que você encontre esse atraso com novos usuários, que normalmente estão inscritos em públicos-alvo qualificados 24 a 48 horas após a criação ou para públicos criados recentemente .
Propriedade do usuário Para texto:
contém,
não contém,
corresponde exatamente,
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 várias opções para selecionar valores de propriedade de usuário.

No cliente, você pode definir apenas valores de string para propriedades do usuário. Para condições que usam operadores numéricos, o serviço Configuração remota converte o valor da propriedade do usuário correspondente em um número inteiro/flutuante.
Ao usar o operador contém regex , você pode criar expressões regulares no formato RE2 . Sua expressão regular pode corresponder a toda ou parte da string da versão de destino. Você também pode usar as âncoras ^ e $ para corresponder ao início, ao fim ou à totalidade de uma string de destino.
País/Região N / D Um ou mais países ou regiões usados ​​para selecionar usuários que podem ser incluídos no experimento.
línguas N / D Um ou mais idiomas e localidades usados ​​para selecionar usuários que podem ser incluídos no experimento.
Primeira abertura Mais do que
Menor que
Entre
Segmente usuários com base na primeira vez que abriram seu aplicativo, especificado em dias. Este critério de segmentação só está disponível para mensagens no aplicativo do Firebase.
Último envolvimento com o aplicativo Mais do que
Menor que
Entre
Segmente usuários com base na última vez que eles se envolveram com seu aplicativo, especificado em dias. Este critério de segmentação só está disponível para mensagens no aplicativo do Firebase.

Métricas de teste A/B

Ao criar sua experiência, você escolhe uma métrica principal ou de meta , que é usada para determinar a variante vencedora. Você também deve acompanhar outras métricas para entender melhor o desempenho de cada variante do experimento e acompanhar tendências importantes que podem ser diferentes para cada variante, como retenção de usuários, estabilidade do aplicativo e receita de compra no aplicativo. Você pode acompanhar até cinco métricas que não são metas em seu experimento.

Por exemplo, digamos que você adicionou novas compras no aplicativo ao seu aplicativo e deseja comparar a eficácia de duas mensagens de "empurrão" diferentes. Nesse caso, você pode optar por definir Receita de compra como sua métrica de meta porque deseja que a variante vencedora represente a notificação que resultou na maior receita de compra no aplicativo. E como você também deseja acompanhar qual variante resultou em mais conversões futuras e usuários retidos, você pode adicionar o seguinte em Outras métricas para acompanhar :

  • Receita total estimada para ver como sua compra no aplicativo e receita de anúncios combinadas diferem entre as duas variantes
  • Retenção (1 dia) , Retenção (2-3 dias) , Retenção (4-7 dias) para rastrear sua retenção de usuários diária/semanal

As tabelas a seguir fornecem detalhes sobre como as métricas de meta e outras métricas são calculadas.

Métricas de meta

Métrica Descrição
Usuários sem falhas A porcentagem de usuários que não encontraram erros no seu aplicativo detectados pelo SDK do Firebase Crashlytics durante o experimento.
Receita de anúncio estimada Ganhos estimados de anúncios.
Receita total estimada Valor combinado para compra e receita de anúncios estimada.
Receita de compra Valor combinado para todos os eventos de purchase e in_app_purchase .
Retenção (1 dia) O número de usuários que retornam ao seu aplicativo diariamente.
Retenção (2-3 dias) O número de usuários que retornam ao seu aplicativo em 2 a 3 dias.
Retenção (4-7 dias) O número de usuários que retornam ao seu aplicativo em 4 a 7 dias.
Retenção (8-14 dias) O número de usuários que retornam ao seu aplicativo em 8 a 14 dias.
Retenção (mais de 15 dias) O número de usuários que retornam ao seu aplicativo 15 dias ou mais depois de usá-lo pela última vez.
primeiro_abrir Um evento do Analytics que é acionado quando um usuário abre um aplicativo pela primeira vez após instalá-lo ou reinstalá-lo. Usado como parte de um funil de conversão.

Outras métricas

Métrica Descrição
notificação_dispensar Um evento do Analytics que é acionado quando uma notificação enviada pelo compositor de notificações é dispensada (somente Android).
notificação_receber Um evento do Analytics que é acionado quando uma notificação enviada pelo compositor de notificações é recebida enquanto o aplicativo está em segundo plano (somente 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 aplicativo. Para saber mais, consulte Rastrear visualizações de tela .
session_start Um evento do Analytics que conta as sessões do usuário em seu aplicativo. Para saber mais, consulte Eventos coletados automaticamente .

Exportação de dados do BigQuery

Você pode acessar todos os dados de análise relacionados aos seus testes A/B no BigQuery . O BigQuery permite analisar os dados usando o BigQuery SQL, exportá-los para outro provedor de nuvem ou usar os dados para seus modelos de ML personalizados. Consulte Vincular o BigQuery ao Firebase para mais informações.

Para aproveitar ao máximo a exportação de dados do BigQuery, os projetos do Firebase devem adotar o plano de preços pago conforme o uso "Blaze". O BigQuery cobra pelo armazenamento de dados, inserções de streaming e consulta de dados. O carregamento e a exportação de dados são gratuitos. Consulte os preços do BigQuery ou o sandbox do BigQuery para mais informações.

Para começar, verifique se seu projeto do Firebase está vinculado ao BigQuery. Selecione Configurações > Configurações do projeto na barra de navegação à esquerda e selecione Integrações > BigQuery > Link . Esta página exibe opções para realizar a exportação de dados analíticos do BiqQuery para todos os aplicativos no projeto.

Para consultar dados de análise de um experimento:

  1. Na lista de experiências ativas , selecione a experiência desejada para abrir a página de resultados da experiência.
  2. No menu de contexto no painel Visão geral do experimento , selecione Consultar dados do experimento (essa opção não está disponível para projetos no nível sem custo) .

    Isso abre o compositor de consultas do console do BigQuery com uma consulta de exemplo gerada automaticamente de dados do experimento pré-carregados para sua revisão. Nesta consulta, seu experimento é codificado como uma propriedade do usuário com o nome do experimento na chave e a variante do experimento no valor.

  3. No compositor de consultas, selecione Executar consulta. Os resultados são exibidos no painel inferior.

Observe que, 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 dados disponíveis no console do BigQuery.