Sobre os testes A/B do Firebase

Para ajudar a maximizar a relevância e a utilidade dos resultados do teste, esta página exibirá informações detalhadas sobre o funcionamento do Teste A/B do Firebase.

Tamanho da amostra

A inferência do Teste A/B do Firebase não requer a identificação de um tamanho mínimo de amostra antes de iniciar um experimento. Em geral, escolha o maior nível de exposição do experimento que você considera adequado. Tamanhos de amostra maiores aumentam as chances de encontrar um resultado de significância estatística, especialmente quando as diferenças de desempenho entre as variantes são pequenas. Também pode ser útil consultar uma calculadora de tamanho da amostra on-line para encontrar o tamanho da amostra recomendado com base nas características do experimento.

Editar experimentos

Você pode editar os parâmetros selecionados dos experimentos em execução, incluindo:

  • Nome do experimento
  • Descrição
  • Condições de segmentação
  • Valores variantes

Para editar um experimento:

  1. Abra a página de resultados do experimento que você quer modificar.
  2. No menu Mais , selecione Editar experimento em execução.
  3. Faça as alterações e clique em Publicar.

Mudar o comportamento do app durante um experimento em execução pode afetar os resultados.

Lógica de atribuição de variantes do Configuração remota

Os usuários que correspondem a todas as condições de segmentação do experimento, incluindo a condição de exposição percentual, são atribuídos a variantes do experimento de acordo com um hash do ID do experimento e o ID da instalação do Firebase do usuário.

Os públicos-alvo do Google Analytics estão sujeitos à latência e não são disponibilizados imediatamente quando o usuário atende aos critérios.

  • Quando você cria um novo público-alvo, pode levar de 24 a 48 horas para acumular novos usuários.
  • Normalmente, os novos usuários são inscritos em públicos-alvo qualificados de 24 a 48 horas depois de se qualificarem.

Para a segmentação urgente, considere o uso de propriedades do usuário do Google Analytics ou opções de segmentação integradas, como país/região, idioma e versão do app.

Depois de entrar em um experimento, o usuário é atribuído de maneira persistente à variante do experimento e recebe os valores de parâmetro do experimento (desde que ele permaneça ativo), mesmo que as propriedades do usuário sejam alteradas e não atendam mais aos critérios de segmentação do experimento.

Eventos de ativação

Os eventos de ativação do experimento limitam a avaliação do experimento aos usuários do app que acionaram essa opção. O evento de ativação do experimento não afeta os parâmetros de experimento buscados pelo app. Todos os usuários que atenderem aos critérios de segmentação do experimento receberão parâmetros. Consequentemente, é importante escolher um evento de ativação que ocorra depois que os parâmetros do experimento forem buscados e ativados, mas antes que eles sejam usados para modificar o comportamento do app.

Pesos de variantes

Durante a criação do experimento, é possível alterar os pesos padrão das variantes para colocar uma porcentagem maior de usuários do experimento em uma variante.

Interpretar os resultados do teste

O Teste A/B do Firebase usa inferência frequente para ajudar você a entender a probabilidade de que os resultados do experimento tenham ocorrido apenas devido a uma oportunidade aleatória. Essa probabilidade é representada por um valor de probabilidade ou valor-p. O valor p é a probabilidade de que a diferença no desempenho entre duas variantes possa ter ocorrido devido ao acaso aleatório, medida por um valor entre 0 e 1. O Teste A/B usa um nível de significância de 0,05 para que:

  • Um valor p menor que 0,05 indica uma diferença estatisticamente significativa entre as variantes, o que significa que é improvável que isso tenha acontecido por acaso.
  • Um valor-p maior que 0,05 indica que a diferença entre as variantes não tem significância estatística.

Os dados do experimento são atualizados uma vez por dia, e o horário da última atualização aparece na parte superior da página de resultados do experimento.

O gráfico de resultados do experimento mostra os valores médios cumulativos da métrica selecionada. Por exemplo, se você estiver rastreando a receita de publicidade por usuário como uma métrica, ela vai mostrar a receita observada por usuário. Se estiver rastreando usuários sem falhas, ela vai rastrear a porcentagem de usuários que não encontraram um falhar. Esses dados são cumulativos desde o início do experimento.

Os resultados são divididos em Dados observados e Dados de inferência. Os dados observados são calculados diretamente a partir dos dados do Google Analytics, e os dados de inferência fornecem valores-p e intervalos de confiança para ajudar você a avaliar a significância estatística dos dados observados.

Para cada métrica, as estatísticas a seguir são exibidas:

Dados observados

  • Valor total da métrica rastreada (número de usuários retidos, número de usuários que falharam, receita total)
  • Taxa específica da métrica (taxa de retenção, taxa de conversão, receita por usuário)
  • Diferença percentual (aumento) entre a variante e o valor de referência

Dados de inferência

  • CI de 95% (diferença nas médias) exibe um intervalo que contém o valor "verdadeiro" da métrica rastreada com 95% de confiança. Por exemplo, se o experimento resultar em uma CI de 95% para a receita total estimada entre US $5 e US $10, há 95% de chance de que a verdadeira diferença entre as médias esteja entre US $5 e US $10. Se o intervalo de CI incluir 0, não será detectada uma diferença estatisticamente significativa entre a variante e o valor de referência.

    Os valores do intervalo de confiança aparecem no formato que corresponde à métrica rastreada. Por exemplo, Tempo (em HH:MM:SS) para retenção de usuários, USD para receita de publicidade por usuário e porcentagem para taxa de conversão.

  • Valor-p, que representa a probabilidade de não haver diferença verdadeira entre a variante e o valor de referência. em outras palavras, qualquer diferença observada provavelmente se deve ao acaso. Quanto menor o valor-p, maior a confiança de que o desempenho observado permanece verdadeiro no futuro. Um valor de 0,05 ou menor indica uma diferença significativa e uma baixa probabilidade de que os resultados tenham ocorrido ao acaso. Os valores P são baseados em um teste de uma cauda (link em inglês), em que o valor da Variante é maior que o valor de referência. O Firebase usa um teste t de variância desigual para variáveis contínuas (valores numéricos, como receita) e um teste z de proporções para dados de conversão (valores binários, como retenção de usuários, usuários sem falhas e usuários que acionam um evento do Google Analytics).

Os resultados do experimento fornecem insights importantes para cada variante do experimento, incluindo:

  • O quanto cada métrica de experimento é maior ou menor em comparação com o valor de referência, medido diretamente (por exemplo, os dados reais observados)
  • A probabilidade de que a diferença observada entre a variante e o valor de referência possa ter ocorrido devido ao acaso (valor-p)
  • Um intervalo que provavelmente vai conter a diferença de desempenho "verdadeira" entre a variante e o valor de referência para cada métrica de experimento, uma maneira de entender os cenários de desempenho de "melhor caso" e "pior caso"

Interpretar resultados de experimentos com a tecnologia do Google Optimize

Os resultados do Teste A/B do Firebase para experimentos iniciados antes de 23 de outubro de 2023 usaram a tecnologia do Google Optimize. O Google Optimize usou a inferência bayesiana para gerar estatísticas informativas a partir dos dados do experimento.

Os resultados são divididos em "dados observados" e "dados de modelo". Os dados observados foram calculados diretamente dos dados de análise, e os dados de modelo foram derivados da aplicação do nosso modelo bayesiano aos dados observados.

Para cada métrica, as estatísticas a seguir são exibidas:

Dados observados

  • Valor total (soma da métrica de todos os usuários na variante)
  • Valor médio (valor médio da métrica de usuários na variante)
  • Porcentagem de diferença do valor de referência

Dados de modelo

  • Probabilidade de superar a linha de base: a probabilidade de que a métrica seja mais alta para essa variante em comparação com a referência
  • Porcentagem de diferença do valor da referência: com base nas estimativas do modelo mediano da métrica para a variante e o valor de referência.
  • Intervalos de métricas: os intervalos em que é mais provável encontrar o valor da métrica, com 50% e 95% de certeza

No geral, os resultados do experimento fornecem três insights importantes para cada variante no experimento:

  1. O quanto cada métrica de experimento é maior ou menor em comparação com o valor de referência, medido diretamente (por exemplo, os dados reais observados)
  2. A probabilidade de que cada métrica de experimento seja maior que a linha de base ou tenha um resultado melhor, com base na inferência bayesiana (probabilidade de ser o melhor / melhor, respectivamente)
  3. Os intervalos plausíveis para cada métrica de experimento com base na inferência bayesiana: cenários de "melhor caso" e "pior caso" (intervalos confiáveis)

Determinação do líder

Para experimentos que usam inferência frequentista, o Firebase declara que uma variante está liderando se houver uma diferença de desempenho estatisticamente significativa entre a variante e o valor de referência na métrica da meta. Quando há diversas variantes que atendem a esses critérios, aquela com o menor valor-p é escolhida.

Para experimentos que usavam o Google Optimize, o Firebase declarou que uma variante é "líder isolada" se tivesse mais de 95% de chance de ser melhor do que a variante de referência nas a métrica principal. Se várias variantes atendessem aos critérios de "líder isolada", apenas a variante com melhor desempenho geral seria rotulada como "líder isolada".

Como a determinação do líder é baseada apenas na meta principal, considere todos os fatores relevantes e analise os resultados das métricas secundárias antes de decidir se quer ou não lançar uma variante líder. Considere a vantagem esperada de fazer a alteração, o risco de desvantagem (como a extremidade inferior do intervalo de confiança para melhoria) e o impacto em métricas diferentes da meta principal.

Por exemplo, se a métrica principal for "Usuários sem falhas" e a Variante A for um líder claro em relação ao valor de referência, mas as métricas de retenção de usuários da Variante rastrearem a retenção de usuários no valor de referência, convém investigar melhor antes de lançar a Variante A de forma mais ampla.

É possível lançar qualquer variante, não apenas a líder, com base na sua avaliação geral de desempenho em métricas primárias e secundárias.

Duração do experimento

O Firebase recomenda que um experimento continue em execução até que as seguintes condições sejam atendidas:

  1. O experimento acumulou dados suficientes para oferecer um resultado útil. Os dados de experimentos e resultados são atualizados uma vez por dia. Você pode consultar uma calculadora de tamanho da amostra on-line para avaliar o tamanho da amostra recomendado do seu experimento.
  2. O experimento foi executado por tempo suficiente para garantir uma amostra representativa dos usuários e medir a performance em longo prazo. Duas semanas é o tempo de execução mínimo recomendado para um experimento típico da Configuração remota.

Os dados do experimento são processados por, no máximo, 90 dias após o início do experimento. Depois desse período, o experimento é interrompido automaticamente. Os resultados do experimento não são mais atualizados no Console do Firebase, e o experimento para de enviar valores de parâmetros específicos do experimento. Depois disso, os clientes vão começar a buscar valores de parâmetros com base nas condições definidas no modelo da Configuração remota. Os dados históricos do experimento são mantidos até que você exclua o experimento.

Esquema do BigQuery

Além de visualizar dados de experimentos do Teste A/B no Console do Firebase, é possível inspecionar e analisar esses dados no BigQuery. Embora o Teste A/B não tenha uma tabela separada do BigQuery, as associações de experimentos e variantes são armazenadas em todos os eventos do Google Analytics nas tabelas de eventos do Analytics.

As propriedades do usuário que contêm informações de experimentos estão no formato userProperty.key like "firebase_exp_%" ou userProperty.key = "firebase_exp_01", em que 01 é o ID do experimento e userProperty.value.string_value contém o índice (baseado em zero) da variante do experimento.

Use essas propriedades do usuário para extrair dados do experimento. Assim, é possível dividir os resultados do experimento de várias maneiras diferentes e verificar os resultados do Teste A/B de forma independente.

Para começar, siga as etapas abaixo, conforme descrito neste guia:

  1. Ative o BigQuery Export para o Google Analytics no Console do Firebase
  2. Acessar dados do Teste A/B com o BigQuery
  3. Analisar exemplos de consultas

Ativar o BigQuery Export para o Google Analytics no Console do Firebase

No plano Spark, você pode usar o sandbox do BigQuery para acessar o produto sem gerar custos financeiros, sujeito aos limites do sandbox. Consulte Preços e sandbox do BigQuery para mais informações.

Primeiro, verifique se você está exportando os dados do Analytics para o BigQuery:

  1. Abra a guia Integrações, que pode ser acessada usando > Configurações do projeto em Console do Firebase.
  2. Se você já estiver usando o BigQuery com outros serviços do Firebase, clique em Gerenciar. Caso contrário, clique em Vincular.
  3. Consulte Sobre a vinculação entre Firebase e BigQuery e clique em Próxima.
  4. Na seção Configurar integração, ative o botão de alternância Google Analytics.
  5. Selecione uma região e escolha as configurações de exportação.

  6. Clique em Vincular ao BigQuery.

Dependendo de como você escolheu exportar dados, a disponibilização das tabelas pode demorar até um dia. Para mais informações sobre como exportar dados do projeto para o BigQuery, consulte Exportar dados do projeto para o BigQuery.

Acesse os dados do Teste A/B no BigQuery

Antes de consultar dados de um experimento específico, é preciso ter acesso a alguns ou todos os itens a seguir para usar na sua consulta:

  • ID do experimento: aparece no URL da página Visão geral do experimento. Por exemplo, se o URL for semelhante a https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, o ID do experimento será 25.
  • ID da propriedade do Google Analytics: é o ID de 9 dígitos da propriedade do Analytics. Você pode encontrar isso no Google Analytics. Ele também aparece no BigQuery quando você expande o nome do projeto para mostrar o nome da tabela de eventos do Google Analytics (project_name.analytics_000000000.events).
  • Data do experimento: para compor uma consulta mais rápida e eficiente, é recomendável limitar as consultas às partições da tabela de eventos diários do Google Analytics que contêm os dados do experimento, tabelas identificadas com um sufixo YYYYMMDD. Portanto, se o experimento tiver sido realizado de 2 de fevereiro a 2 de maio de 2024, você especificaria um _TABLE_SUFFIX between '20240202' AND '20240502'. Para acessar um exemplo, consulte Selecionar os valores de um experimento específico.
  • Nomes de eventos: normalmente, eles correspondem às métricas da meta que você configurou no experimento. Por exemplo, eventos in_app_purchase, ad_impression ou user_retention.

Depois de coletar as informações necessárias para gerar a consulta:

  1. Abra o BigQuery no console do Google Cloud.
  2. Selecione seu projeto e clique em Criar consulta SQL.
  3. Adicione sua consulta. Para conferir exemplos de consultas, acesse Analisar exemplos de consultas.
  4. Clique em Run.

Consultar dados do experimento usando a consulta gerada automaticamente pelo Console do Firebase

Se você estiver usando o plano Blaze, a página Visão geral do experimento fornece um exemplo de consulta que retorna o nome, as variantes, os nomes e o número de eventos do experimento que está sendo visualizado.

Para receber e executar a consulta gerada automaticamente:

  1. No Console do Firebase, abra o Teste A/B e selecione o experimento que você quer consultar para abrir a Visão geral do experimento.
  2. No menu "Opções", abaixo de Integração com o BigQuery, selecione Consultar dados do experimento. O projeto será aberto no BigQuery no console do Google Cloud, com uma consulta básica que pode ser usada para consultar os dados do experimento.

O exemplo a seguir mostra uma consulta gerada para um experimento com três variantes, incluindo o valor de referência, chamada "Winter Welcome experiment". Ela retorna o nome ativo do experimento, o nome da variante, o evento único e a contagem de eventos de cada evento. O criador de consultas não especifica o nome do projeto no nome da tabela, já que ele é aberto diretamente no projeto.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

Para mais exemplos de consultas, acesse Analisar exemplos de consultas.

Analisar exemplos de consultas

As seções a seguir mostram exemplos de consultas que podem ser usadas para extrair dados de experimentos do Teste A/B das tabelas de eventos do Google Analytics.

Extrair valores de desvio padrão de compra e experimento de todos os experimentos

É possível usar os dados dos resultados do experimento para verificar de forma independente os resultados do Teste A/B do Firebase. A instrução SQL do BigQuery a seguir extrai variantes do experimento, o número de usuários únicos em cada variante e soma a receita total dos eventos in_app_purchase e ecommerce_purchase, além dos desvios padrão do todos os experimentos no período especificado como as datas de início e término _TABLE_SUFFIX. É possível usar os dados obtidos dessa consulta com um gerador de significância estatística para testes t de uma cauda para verificar se os resultados fornecidos pelo Firebase correspondem à sua própria análise.

Para mais informações sobre como o Teste A/B calcula a inferência, consulte Interpretar resultados de testes.

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

Selecione os valores de um experimento específico

O exemplo de consulta a seguir ilustra como receber dados de um experimento específico no BigQuery. Essa consulta de exemplo retorna o nome do experimento, os nomes das variantes (incluindo o valor de referência), os nomes e as contagens de eventos.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName

Limites

O Teste A/B é limitado a 300 experimentos no total, 24 em execução e 24 de rascunho.

  • Se você atingir o limite total de 300 experimentos ou de 24 experimentos de rascunho, precisará excluir um experimento existente antes de criar um novo.

  • Se você atingir o limite de 24 experimentos em execução, interrompa um deles antes de iniciar um novo.

Um experimento pode ter no máximo 8 variantes (incluindo o valor de referência) e até 25 parâmetros para cada variante. Um experimento pode ter um tamanho de até 200 KiB. Isso inclui nomes de variantes, parâmetros de variantes e outros metadados de configuração.