Sobre os testes A/B do Firebase

Para ajudá-lo a maximizar a relevância e a utilidade dos resultados do seu teste, esta página fornece informações detalhadas sobre como funciona o Firebase A/B Testing.

Tamanho da amostra

A inferência do Firebase A/B Testing não exige a identificação de um tamanho mínimo de amostra antes de iniciar um experimento. Em geral, você deve escolher o maior nível de exposição do experimento com o qual se sinta confortável. Tamanhos de amostra maiores aumentam as chances de encontrar um resultado estatisticamente significativo, especialmente quando as diferenças de desempenho entre as variantes são pequenas. Você também pode achar útil consultar uma calculadora de tamanho de amostra on-line para encontrar o tamanho de amostra recomendado com base nas características do seu experimento.

Editar experimentos

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

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

Para editar uma experiência:

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

Observe que alterar o comportamento do aplicativo durante uma experiência em execução pode afetar os resultados.

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

Os usuários que atendem a todas as condições de segmentação do experimento (incluindo a condição de porcentagem de exposição) são atribuídos às variantes do experimento de acordo com os pesos das variantes e um hash do ID do experimento e do ID de instalação do Firebase do usuário.

Os públicos-alvo do Google Analytics estão sujeitos à latência e não ficam imediatamente disponíveis quando um usuário atende inicialmente aos critérios de público-alvo:

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

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

Depois que um usuário insere um experimento, ele é atribuído de forma persistente à variante do experimento e recebe valores de parâmetro do experimento enquanto o experimento permanecer ativo, mesmo que as propriedades do usuário mudem e ele não atenda mais aos critérios de segmentação do experimento.

Eventos de ativação

Os eventos de ativação do experimento limitam a medição do experimento aos usuários do aplicativo que acionam o evento de ativação. O evento de ativação do experimento não tem impacto nos parâmetros do experimento buscados pelo aplicativo; todos os usuários que atenderem aos critérios de segmentação do experimento receberão parâmetros do experimento. Consequentemente, é importante escolher um evento de ativação que ocorra após os parâmetros do experimento terem sido buscados e ativados, mas antes que os parâmetros do experimento tenham sido usados ​​para modificar o comportamento do aplicativo.

Pesos 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 resultados de testes

O Firebase A/B Testing usa inferência frequentista para ajudar você a entender a probabilidade de os resultados do seu experimento terem ocorrido apenas devido ao acaso. 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, medido 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 inferior a 0,05 indica uma diferença estatisticamente significativa entre as variantes, o que significa que não é provável que tenha ocorrido por acaso.
  • Um valor p superior a 0,05 indica que a diferença entre as variantes não é estatisticamente significativa.

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 exibe os valores médios cumulativos da métrica selecionada. Por exemplo, se você estiver monitorando a receita de anúncios por usuário como uma métrica, ela exibirá a receita observada por usuário e, se estiver monitorando usuários sem falhas, ela rastreará a porcentagem de usuários que não encontraram uma falha. 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 seguintes estatísticas são exibidas:

Dados observados

  • Valor total da métrica rastreada (número de usuários retidos, número de usuários que travaram, 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 a linha de base

Dados de inferência

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

    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 anúncios 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 a linha de base; em outras palavras, qualquer diferença observada é provavelmente devida ao acaso. Quanto menor o valor p, maior a confiança de que o desempenho observado permanecerá verdadeiro no futuro. Um valor de 0,05 ou inferior indica uma diferença significativa e uma baixa probabilidade de os resultados serem devidos ao acaso. Os valores P são baseados em um teste unilateral , onde o valor da Variante é maior que o valor da Linha de Base. 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, usuários que acionam um evento do Google Analytics).

Os resultados do experimento fornecem informações importantes para cada variante do experimento, incluindo:

  • Quanto mais alto ou mais baixo cada métrica do experimento é comparada à linha de base, medida diretamente (ou seja, os dados reais observados)
  • A probabilidade de que a diferença observada entre a variante e a linha de base possa ter ocorrido devido ao acaso (valor p)
  • Um intervalo que provavelmente contém a "verdadeira" diferença de desempenho entre a variante e a linha de base para cada métrica do experimento --- uma maneira de entender os cenários de desempenho do "melhor caso" e do "pior caso"

Interpretar resultados de experimentos desenvolvidos pelo Google Optimize

Os resultados do teste A/B do Firebase para experimentos iniciados antes de 23 de outubro de 2023 foram desenvolvidos pelo Google Optimize. O Google Optimize usou inferência bayesiana para gerar estatísticas detalhadas a partir dos dados do seu experimento.

Os resultados são divididos em “dados observados” e “dados modelados”. Os dados observados foram calculados diretamente a partir de dados analíticos, e os dados modelados foram derivados da aplicação do nosso modelo bayesiano aos dados observados.

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

Dados observados

  • Valor total (soma da métrica para todos os usuários na variante)
  • Valor médio (valor médio da métrica para usuários na variante)
  • % de diferença em relação à linha de base

Dados modelados

  • Probabilidade de superar a linha de base: qual a probabilidade de a métrica ser maior para esta variante em comparação com a linha de base
  • Diferença percentual em relação à linha de base: com base nas estimativas medianas do modelo da métrica para a variante e a linha de base
  • Intervalos de métricas: os intervalos onde o valor da métrica tem maior probabilidade de ser encontrado, com 50% e 95% de certeza

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

  1. Quanto mais alto ou mais baixo cada métrica do experimento é comparada à linha de base, medida diretamente (ou seja, os dados reais observados)
  2. Qual é a probabilidade de cada métrica do experimento ser superior à linha de base/melhor geral, com base na inferência bayesiana (probabilidade de ser 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 freqüentista , o Firebase declara que uma variante é líder se houver uma diferença de desempenho estatisticamente significativa entre a variante e a linha de base na métrica da meta. Se múltiplas variantes atenderem a esse critério, a variante com o valor p mais baixo será escolhida.

Para experimentos que usaram o Google Optimize , o Firebase declarou que uma variante é uma "líder clara" se tiver mais de 95% de chance de ser melhor do que a variante de referência na métrica primária. Se múltiplas variantes atendessem aos critérios de “líder claro”, apenas a variante geral com melhor desempenho seria rotulada como “líder claro”.

Como a determinação do líder se baseia apenas no objetivo principal, você deve considerar todos os fatores relevantes e revisar os resultados das métricas secundárias antes de decidir se deve ou não implementar uma variante principal. Você pode querer considerar a vantagem esperada de fazer a mudança, o risco negativo (como o limite inferior do intervalo de confiança para melhoria) e o impacto em outras métricas além da meta principal.

Por exemplo, se sua métrica principal for usuários sem falhas e a Variante A for claramente líder em relação à linha de base, mas as métricas de retenção de usuários da Variante A acompanharem a retenção de usuários da linha de base, você pode querer investigar mais antes de implementar a Variante A de forma mais ampla.

Você pode implementar qualquer variante, não apenas uma variante principal, com base na sua avaliação geral de desempenho em métricas primárias e secundárias.

Duração da experiência

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 fornecer um resultado útil. Os experimentos e os dados de resultados são atualizados uma vez por dia. Você pode consultar uma calculadora de tamanho de amostra on-line para avaliar o tamanho de amostra recomendado para seu experimento.
  2. A experiência durou tempo suficiente para garantir uma amostra representativa dos seus usuários e medir o desempenho a longo prazo. Duas semanas é o tempo de execução mínimo recomendado para um experimento típico do Configuração remota.

Os dados do experimento são processados ​​por no máximo 90 dias após o início do experimento. Após 90 dias, o experimento é automaticamente interrompido. 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. Nesse ponto, os clientes começam a buscar valores de parâmetros com base nas condições definidas no modelo do Configuração remota. Os dados históricos do experimento serão retidos até que você exclua o experimento.

Esquema do BigQuery

Além de visualizar os dados do experimento de teste A/B no Firebase Console, você pode inspecionar e analisar os dados do experimento 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 cada evento do Google Analytics nas tabelas de eventos do Analytics.

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

Você pode usar essas propriedades de usuário experimental para extrair dados experimentais. Isso lhe dá o poder de dividir os resultados do seu experimento de muitas maneiras diferentes e verificar de forma independente os resultados do teste A/B.

Para começar, faça o seguinte conforme descrito neste guia:

  1. Ative a exportação do BigQuery para Google Analytics no console do Firebase
  2. Acesse dados de testes A/B usando o BigQuery
  3. Explorar exemplos de consultas

Ative a exportação do BigQuery para Google Analytics no console do Firebase

Se você estiver no plano Spark, poderá usar o sandbox do BigQuery para acessar o BigQuery sem nenhum custo, sujeito aos limites do sandbox . Consulte Preços e sandbox do BigQuery para mais informações.

Primeiro, certifique-se de exportar seus dados do Analytics para o BigQuery:

  1. Abra a guia Integrações , que você pode acessar em > Configurações do projeto no console do Firebase .
  2. Se você já usa o BigQuery com outros serviços do Firebase, clique em Gerenciar . Caso contrário, clique em Link .
  3. Revise Sobre como vincular o Firebase ao BigQuery e clique em Avançar .
  4. Na seção Configurar integração , ative a alternância do 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 os dados, pode levar até um dia para que as tabelas fiquem disponíveis. Para obter mais informações sobre como exportar dados do projeto para o BigQuery, consulte Exportar dados do projeto para o BigQuery .

Acesse dados de testes A/B no BigQuery

Antes de consultar dados de uma experiência específica, convém obter alguns ou todos os itens a seguir para usar em sua consulta:

  • ID do experimento: você pode obtê-lo no URL da página de visão geral do experimento . Por exemplo, se o seu URL for semelhante a https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 , o ID do experimento será 25 .
  • ID de propriedade do Google Analytics : este é o seu ID de propriedade do Google Analytics de 9 dígitos. 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 da experiência: para compor uma consulta mais rápida e eficiente, é uma boa prática limitar suas consultas às partições da tabela de eventos diários do Google Analytics que contêm os dados da sua experiência (tabelas identificadas com um sufixo YYYYMMDD ). Portanto, se seu experimento foi executado de 2 de fevereiro de 2024 a 2 de maio de 2024, você especificaria um _TABLE_SUFFIX between '20240202' AND '20240502' . Por exemplo, consulte Selecionar os valores de um experimento específico .
  • Nomes de eventos: normalmente, correspondem às métricas de meta que você configurou no experimento. Por exemplo, eventos in_app_purchase , eventos ad_impression ou user_retention .

Depois de reunir as informações necessárias para gerar sua consulta:

  1. Abra o BigQuery no console do Google Cloud.
  2. Selecione seu projeto e selecione Criar consulta SQL .
  3. Adicione sua consulta. Para obter exemplos de consultas a serem executadas, consulte Explorar exemplos de consultas .
  4. Clique em Executar .

Consultar dados do experimento usando a consulta gerada automaticamente no 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 do experimento, as variantes, os nomes dos eventos e o número de eventos do experimento que você está visualizando.

Para obter e executar a consulta gerada automaticamente:

  1. No console do Firebase, abra o Teste A/B e selecione o experimento de teste A/B que você deseja consultar para abrir a visão geral do experimento .
  2. No menu Opções, abaixo de Integração do BigQuery , selecione Consultar dados do experimento . Isso abre seu projeto no BigQuery no console do Google Cloud e fornece uma consulta básica que você pode usar para consultar os dados do experimento.

O exemplo a seguir mostra uma consulta gerada para um experimento com três variantes (incluindo a linha de base) denominada "Experiência de boas-vindas de inverno". Ele retorna o nome do experimento ativo, o nome da variante, o evento exclusivo e a contagem de eventos para cada evento. Observe que o construtor de consultas não especifica o nome do seu projeto no nome da tabela, pois ele abre diretamente no seu 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 obter exemplos de consultas adicionais, vá para Explorar exemplos de consultas .

Explorar exemplos de consultas

As seções a seguir fornecem exemplos de consultas que você pode usar para extrair dados de experimentos de teste A/B de tabelas de eventos do Google Analytics.

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

Você pode usar os dados dos resultados do experimento para verificar de forma independente os resultados do Firebase A/B Testing. 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 de todos os experimentos dentro do intervalo de tempo especificado como datas de início e término _TABLE_SUFFIX . Você pode usar os dados obtidos nesta consulta com um gerador de significância estatística para testes t unilaterais para verificar se os resultados fornecidos pelo Firebase correspondem à sua própria análise.

Para obter mais informações sobre como o teste A/B calcula a inferência, consulte Interpretar os resultados do teste .

  /*
    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 obter dados para um experimento específico no BigQuery. Este exemplo de consulta retorna o nome do experimento, os nomes das variantes (incluindo a linha de base), os nomes dos eventos 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 experimentos em execução e 24 experimentos preliminares.

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

  • Se você atingir o limite de 24 experimentos em execução, deverá interromper um experimento em execução antes de iniciar um novo.

Um experimento pode ter no máximo oito variantes (incluindo a linha de base) e até 25 parâmetros para cada variante. Um experimento pode ter um tamanho de até cerca de 200 KiB. Isso inclui nomes de variantes, parâmetros de variantes e outros metadados de configuração.