Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Criar experimentos de configuração remota do Firebase com testes A/B

Quando você usa o Firebase Remote Config para implantar configurações para um aplicativo com uma base de usuários ativa, você quer ter certeza de que está certo. Você pode usar experimentos de teste A/B para determinar melhor o seguinte:

  • A melhor maneira de implementar um recurso para otimizar a experiência do usuário. Muitas vezes, os desenvolvedores de aplicativos não descobrem que seus usuários não gostam de um novo recurso ou de uma experiência de usuário atualizada até que a classificação de seu aplicativo na loja de aplicativos diminua. O teste A/B pode ajudar a medir se seus usuários gostam de novas variantes de recursos ou se preferem o aplicativo como ele existe atualmente. Além disso, manter a maioria de seus usuários em um grupo de linha de base garante que a maioria de sua base de usuários possa continuar a usar seu aplicativo sem sofrer nenhuma alteração em seu comportamento ou aparência até que o experimento seja concluído.
  • A melhor maneira de otimizar a experiência do usuário para uma meta de negócios. Às vezes, você está implementando alterações no produto para maximizar uma métrica como receita ou retenção. Com o teste A/B, você define seu objetivo de negócios e o Firebase realiza a análise estatística para determinar se uma variante está superando a linha de base para o objetivo selecionado.

Para variantes de recurso 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 uma experiência

Um experimento do Remote Config permite avaliar várias variantes em um ou mais parâmetros do Remote Config .

  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 em > Configurações do projeto no console do Firebase .

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

  3. Clique em Criar experimento e selecione Configuração remota quando for solicitado o serviço com o qual 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 , escolhendo primeiro o aplicativo que usa sua experiência. Você também pode segmentar um subconjunto de seus usuários para participar de sua experiência clicando em e e escolhendo opções na lista a seguir:

    • Versão: uma ou mais versões do seu aplicativo
    • Número da compilação: o código da versão do aplicativo
    • Idiomas: um ou mais idiomas e localidades usados ​​para selecionar usuários que podem ser incluídos na experiência
    • País/região: um ou mais países ou regiões para selecionar os usuários que devem ser incluídos na experiência
    • Público-alvo do usuário: públicos-alvo do 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 Google Analytics para selecionar usuários que podem ser incluídos na experiência
    • Primeira abertura: Segmente os usuários com base na primeira vez que eles abriram seu aplicativo

      A segmentação do usuário pelo primeiro tempo de abertura está disponível depois que você seleciona um aplicativo para Android ou iOS. No momento, ele é compatível com as seguintes versões do SDK de configuração remota: SDK de plataformas da Apple v9.0.0+ e SDK do Android v21.1.1+ (Firebase BoM v30.3.0+).

      O Analytics também deve ter sido ativado no cliente durante o primeiro evento aberto.

  6. Defina a porcentagem de usuários-alvo: insira a porcentagem da base de usuários do seu aplicativo que corresponde aos critérios definidos em Usuários-alvo que você deseja dividir igualmente entre a linha de base e uma ou mais variantes em sua experiência. Pode ser qualquer porcentagem entre 0,01% e 100%. Os usuários são atribuídos aleatoriamente a cada experimento, incluindo experimentos duplicados.

  7. Opcionalmente, defina um evento de ativação para garantir que apenas os dados dos usuários que acionaram algum evento do Analytics pela primeira vez sejam contados em sua experiência. Observe que todos os usuários que correspondem aos seus parâmetros de segmentação receberão valores experimentais do Configuração remota, mas somente aqueles que acionarem um evento de ativação serão incluídos nos resultados da experiência.

    Para garantir uma experiência válida, certifique-se de que o evento escolhido ocorra depois que seu aplicativo ativar os valores de configuração buscados. Além disso, os seguintes eventos não podem ser usados ​​porque sempre ocorrem antes que os valores buscados sejam ativados:

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
  8. Para as Metas da experiência , selecione a métrica principal a ser rastreada e adicione as métricas adicionais desejadas na lista suspensa. Isso inclui objetivos integrados (compras, receita, retenção, usuários livres de falhas etc.), eventos de conversão do Analytics e outros eventos do Analytics. Quando terminar, clique em Avançar .

  9. Na seção Variantes , você escolherá uma linha de base e pelo menos uma variante para o experimento. Use a lista Escolher ou criar novo para adicionar um ou mais parâmetros para experimentar. Você pode criar um parâmetro que não tenha sido usado anteriormente no console do Firebase, mas ele deve existir em seu aplicativo para que tenha efeito. Você pode repetir esta etapa para adicionar vários parâmetros à sua experiência.

  10. (opcional) Para adicionar mais de uma variante à sua experiência, clique em Adicionar outra variante .

  11. Altere um ou mais parâmetros para variantes específicas. Quaisquer parâmetros inalterados são os mesmos para usuários não incluídos na experiência.

  12. Expanda Variant Weights para visualizar ou alterar o peso da variante para o experimento. Por padrão, cada variante é ponderada igualmente. Observe que pesos irregulares podem aumentar o tempo de coleta de dados e os pesos não podem ser alterados após o início do experimento .

  13. Clique em Revisar para salvar seu experimento.

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 sua experiência em um dispositivo de teste

Para cada instalação do Firebase, você pode recuperar o token de autenticação de instalação associado a ela. Você pode usar esse token para testar variantes específicas do experimento em um dispositivo de teste com seu aplicativo instalado. Para validar seu experimento em um dispositivo de teste, faça o seguinte:

  1. Obtenha o token de autenticação de instalação da seguinte maneira:

    Rápido

    Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in
      if let error = error {
        print("Error fetching token: \(error)")
        return
      }
      guard let result = result else { return }
      print("Installation auth token: \(result.authToken)")
    })
    

    Objective-C

    [[FIRInstallations installations] authTokenForcingRefresh:true
                                                   completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
      if (error != nil) {
        NSLog(@"Error fetching Installation token %@", error);
        return;
      }
      NSLog(@"Installation auth token: %@", [result authToken]);
    }];
    

    Java

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
            .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
        @Override
        public void onComplete(@NonNull Task<InstallationTokenResult> task) {
            if (task.isSuccessful() && task.getResult() != null) {
                Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
            } else {
                Log.e("Installations", "Unable to get Installation auth token");
            }
        }
    });

    Kotlin+KTX

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d("Installations", "Installation auth token: " + task.result?.token)
            } else {
                Log.e("Installations", "Unable to get Installation auth token")
            }
        }

    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());
          }
        });
    

    Unidade

    Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result));
        }
      });
    
  2. Na barra de navegação do Firebase console , clique em Teste A/B .
  3. Clique em Rascunho (e/ou Executando para experimentos de configuração remota), passe o mouse sobre seu experimento, clique no menu de contexto ( ) e clique em Gerenciar dispositivos de teste .
  4. Insira o token de autenticação de instalação para um dispositivo de teste e escolha a variante do experimento para enviar 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 as instalações do Firebase, consulte Gerenciar instalações do Firebase .

Gerencie sua experiência

Se você criar um experimento com configuração remota, o compositor de notificações ou mensagens no aplicativo do Firebase, poderá validar e iniciar seu experimento, monitorar seu experimento durante a execução e aumentar o número de usuários incluídos em seu 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 Teste A/B .
  2. Clique em Rascunho e, em seguida, clique no título de sua experiência.
  3. Para validar se seu aplicativo tem usuários que seriam incluídos em seu experimento, 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 uma experiência estiver em execução por um tempo, você poderá verificar seu progresso e ver como são seus resultados para os usuários que participaram de sua experiência até agora.

  1. Na seção Engage da barra de navegação do Firebase console , clique em Teste A/B .
  2. Clique em Em execução e, em seguida, clique ou pesquise o título de seu experimento. 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 para o qual 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 , Intervalo de valor , Probabilidade de superar a linha de base e Probabilidade de ser a melhor variante . Dependendo da métrica 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.

Implemente uma experiência para todos os usuários

Após um experimento ter sido executado por tempo suficiente para que você tenha um "líder" ou uma variante vencedora para sua métrica de meta, você pode implantar 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 seu experimento 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 Teste A/B .
  2. Clique em Concluído ou em execução , clique em um experimento que deseja distribuir para todos os usuários, clique no menu de contexto ( ) e clique em Implementar variante .
  3. Distribua sua experiência para todos os usuários seguindo um destes procedimentos:

    • Para uma experiência que usa o compositor de Notificações , use a caixa de diálogo Distribuir mensagem para enviar a mensagem aos usuários-alvo restantes que não fizeram parte da experiência.
    • Para uma experiência de configuração remota , selecione uma variante para determinar quais valores de parâmetro de 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 visados ​​pela experiência. Depois de clicar em Revisar em 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 implementada como uma campanha independente de mensagens no aplicativo. Depois de selecionado, você será redirecionado para a tela de composição do FIAM para fazer alterações (se necessário) antes de publicar.

Expandir uma experiência

Se você achar que um experimento não está atraindo usuários suficientes para que o Teste A/B declare um líder, você pode aumentar a distribuição de seu 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 Teste A/B .
  2. Selecione o experimento em execução que você deseja editar.
  3. Na visão geral do experimento , clique no menu de contexto ( ) e, em seguida, 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 parar uma experiência

  1. Na seção Engage da barra de navegação do Firebase console , clique em Teste A/B .
  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 Interromper experimento .

Segmentação de usuários

Você pode segmentar os usuários para incluir 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 de 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 contains 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úblico(s) de usuários inclui todos,
inclui pelo menos um de,
não inclui todos,
não inclui pelo menos um dos
Selecione um ou mais públicos do Google Analytics para segmentar usuários que podem ser incluídos em sua experiência. Alguns experimentos direcionados ao público-alvo do Google Analytics podem levar alguns dias para acumular dados porque estão sujeitos à latência de processamento de dados do Google Analytics . É mais provável que você encontre esse atraso com novos usuários, que normalmente são inscritos em públicos qualificados 24 a 48 horas após a criação ou para públicos criados recentemente .

Para Configuração remota, isso significa que, mesmo que um usuário se qualifique tecnicamente para um público, se o Google Analytics ainda não tiver adicionado o usuário ao público quando `fetchAndActivate()` for executado, o usuário não será incluído no experimento.

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 Google Analytics é usada para selecionar usuários que podem ser incluídos em uma experiência, com uma variedade de 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 Remote Config converte o valor da propriedade do usuário correspondente em um número inteiro/flutuante.
Ao usar o operador contains 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 na experiência.
línguas N / D Um ou mais idiomas e localidades usados ​​para selecionar usuários que podem ser incluídos na experiência.
Primeiro aberto Antes da
Depois

Segmente os usuários com base na primeira vez que eles abrem seu aplicativo:

  • Selecione Novos usuários para segmentar os usuários que abrem seu aplicativo pela primeira vez após uma data e hora futuras especificadas.
  • Selecione Intervalo de tempo para segmentar os usuários que abrem seu aplicativo pela primeira vez no intervalo antes ou depois da data e hora que você especificar. Combine as condições Antes e Depois para segmentar usuários em um intervalo de tempo específico.

A segmentação de usuários por primeira abertura está disponível depois que você seleciona um aplicativo para Android ou iOS. No momento, ele é compatível com as seguintes versões do SDK de configuração remota: SDK de plataformas da Apple v9.0.0+ e SDK do Android v21.1.1+ (Firebase BoM v30.3.0+).

O Analytics também deve ter sido ativado no cliente durante o primeiro evento aberto.

Métricas de teste A/B

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

Por exemplo, digamos que você esteja usando o Remote Config para iniciar dois fluxos de jogo diferentes em seu aplicativo e deseja otimizar para compras no aplicativo e receita de anúncios, mas também deseja acompanhar a estabilidade e a retenção de usuários de cada variante. Nesse caso, você pode escolher a receita total estimada como sua métrica de meta porque ela inclui receita de compras no aplicativo e receita de anúncios e, em seguida, para outras métricas a serem rastreadas , você pode adicionar o seguinte:

  • Para rastrear sua retenção diária e semanal de usuários, adicione Retenção (2 a 3 dias) e Retenção (4 a 7 dias) .
  • Para comparar a estabilidade entre os dois fluxos de jogo, adicione usuários sem travamento .
  • Para ver visualizações mais detalhadas de cada tipo de receita, adicione Receita de compra e Receita estimada de anúncios .

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 livres de falhas A porcentagem de usuários que não encontraram erros em seu aplicativo detectados pelo Firebase Crashlytics SDK durante o experimento.
Receita estimada de anúncios Ganhos estimados de anúncios.
Receita total estimada Valor combinado para compra e receitas de anúncios estimadas.
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 ou mais dias após o último uso.
first_open 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
notification_dismiss Um evento do Analytics que é acionado quando uma notificação enviada pelo compositor de notificações é descartada (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 exibições de tela .
sessão_início 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 analíticos 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 de pagamento conforme o uso "Blaze". O BigQuery cobra pelo armazenamento de dados, inserções de streaming e consulta de dados. Carregar e exportar dados não tem custo. Consulte os preços do BigQuery ou o sandbox do BigQuery para mais informações.

Para começar, certifique-se de que seu projeto do Firebase esteja 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 executar a exportação de dados analíticos do BiqQuery para todos os aplicativos no projeto.

Para consultar dados analíticos de uma experiência:

  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 de visão geral do Experimento , selecione Consultar dados do experimento (esta opção não está disponível para projetos no nível gratuito) .

    Isso abre o compositor de consultas do console do BigQuery com um exemplo de consulta gerado automaticamente de dados experimentais pré-carregados para sua análise. Nessa 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 da experiência podem estar mais atualizados do que os dados disponíveis no console do BigQuery.