Acerca de Firebase A/B Testing

Para ayudarte a maximizar la relevancia y utilidad de los resultados de tus pruebas, en esta página se proporciona información detallada sobre cómo funciona Firebase A/B Testing.

Tamaño de muestra

La inferencia de Firebase A/B Testing no requiere la identificación de un tamaño de muestra mínimo antes de iniciar un experimento. En general, debes elegir el nivel de exposición de experimento más grande con el que te sientas cómodo. Los tamaños de muestras más grandes aumentan las posibilidades de encontrar un resultado con importancia estadística, en especial cuando las diferencias de rendimiento entre las variantes son pequeñas. También puede resultarte útil consultar una calculadora de tamaño de muestras en línea para encontrar el tamaño de muestra recomendado en función de las características del experimento.

Edita experimentos

Puedes editar los parámetros seleccionados de los experimentos en ejecución, incluidos los siguientes:

  • Nombre del experimento
  • Descripción
  • Condiciones de segmentación
  • Valores de variantes

Para editar un experimento, haz lo siguiente:

  1. Abre la página de resultados del experimento que deseas modificar.
  2. En el menú Más , selecciona Editar experimento en ejecución.
  3. Realiza los cambios necesarios y, luego, haz clic en Publicar.

Ten en cuenta que cambiar el comportamiento de la app durante un experimento en ejecución puede afectar los resultados.

Lógica de asignación de variantes de Remote Config

Los usuarios que coinciden con todas las condiciones de segmentación del experimento, incluida la condición de exposición porcentual, se asignan a las variantes del experimento en función de ponderaciones de variantes y un hash del ID del experimento y el ID de la instalación de Firebase del usuario.

Los públicos de Google Analytics están sujetos a latencia y no están disponibles de inmediato cuando un usuario cumple inicialmente con los criterios del público.

  • Cuando creas un público nuevo, pueden transcurrir entre 24 y 48 horas hasta que se acumulen usuarios nuevos.
  • Por lo general, los usuarios nuevos se inscriben en públicos aptos entre 24 y 48 horas después de que son aptos.

En el caso de la segmentación urgente, considera usar las propiedades del usuario de Google Analytics o las opciones de segmentación integradas, como país o región, idioma y versión de la app.

Una vez que un usuario ingresa en un experimento, se lo asigna persistentemente a su variante y recibe valores de parámetros del experimento, siempre que este permanezca activo, incluso si sus propiedades del usuario cambian y ya no cumple con los criterios de segmentación del experimento

Eventos de activación

Los eventos de activación del experimento limitan su medición a los usuarios de la app que inician el evento de activación. El evento de activación del experimento no tiene ningún impacto en los parámetros del experimento que recupera la app. Todos los usuarios que cumplan con los criterios de segmentación del experimento recibirán los parámetros correspondientes. Por lo tanto, es importante elegir un evento de activación que ocurra después de que los parámetros del experimento se recuperen y se activen, pero antes de que se usen para modificar el comportamiento de la app.

Ponderaciones de las variantes

Durante la creación del experimento, es posible cambiar las ponderaciones de variantes predeterminadas para colocar un mayor porcentaje de usuarios del experimento en una variante.

Interpreta los resultados de las pruebas

Firebase A/B Testing usa la inferencia frecuentista para ayudarte a comprender la probabilidad de que los resultados de tu experimento se hayan producido solo por casualidad. Esta probabilidad se representa con un valor de probabilidad o un valor p. El valor p es la probabilidad de que una diferencia de rendimiento así de grande o mayor entre dos variantes se haya producido debido a una posibilidad aleatoria si es que en realidad no hay ningún efecto, y se mide con un valor entre 0 y 1. A/B Testing usa un nivel de importancia de 0.05 para que ocurra lo siguiente:

  • Un valor p inferior a 0.05 indica que, si la diferencia real fuera cero, existe una probabilidad inferior al 5% de que una diferencia observada tan extrema pueda ocurrir de forma aleatoria. Debido a que 0.05 es el umbral, cualquier valor p inferior a 0.05 indica una diferencia estadísticamente significativa entre las variantes.
  • Un valor p superior a 0.05 indica que la diferencia entre las variantes no es estadísticamente significativa.

Los datos del experimento se actualizan una vez al día, y la hora de la última actualización aparece en la parte superior de la página de resultados del experimento.

El gráfico de resultados del experimento muestra los valores promedio acumulativos de la métrica seleccionada. Por ejemplo, si realizas un seguimiento de los ingresos publicitarios por usuario como métrica, se muestran los ingresos observados por usuario y, si estás haciendo un seguimiento de los usuarios sin fallas, hace un seguimiento del porcentaje de usuarios que no han encontrado una falla. Estos datos son acumulativos desde el comienzo del experimento.

Los resultados se dividen en Datos observados y Datos de inferencia. Los datos observados se calculan directamente a partir de los datos de Google Analytics, y los datos de inferencia proporcionan valores p e intervalos de confianza para ayudarte a evaluar la importancia estadística de los datos observados.

Para cada métrica, se muestran las siguientes estadísticas:

Datos observados

  • El valor total de la métrica con seguimiento (cantidad de usuarios retenidos, cantidad de usuarios que fallaron e ingresos totales)
  • Tarifa específica de la métrica (tasa de retención, porcentaje de conversiones, ingresos por usuario)
  • Diferencia porcentual (efectividad) entre la variante y el valor de referencia

Datos de inferencia

  • El IC de 95% (diferencia en los medios) muestra un intervalo que contiene el valor “verdadero” de la métrica con seguimiento con un 95% de confianza. Por ejemplo, si el experimento da como resultado un CI del 95% para los ingresos totales estimados entre USD 5 y USD 10, hay una probabilidad del 95% de que la verdadera diferencia en los medios esté entre USD 5 y USD 10. Si el rango de IC incluye 0, no se detectó una diferencia de importancia estadística entre la variante y el modelo de referencia.

    Los valores de intervalo de confianza aparecen en el formato correspondiente a la métrica de la que se hace seguimiento. Por ejemplo, Tiempo (en HH:MM:SS) para la retención de usuarios, USD para los ingresos publicitarios por usuario y un porcentaje para el porcentaje de conversiones.

  • Valor p, que representa la probabilidad de observar datos tan extremos como los resultados obtenidos en el experimento, dado que no hay una verdadera diferencia entre la variante y el modelo de referencia. Cuanto más bajo sea el valor p, mayor será la confianza de que el rendimiento observado seguirá siendo verdadero si repetimos el experimento. Un valor de 0.05 o inferior indica una diferencia significativa y una baja probabilidad de que los resultados se deban a una casualidad. Los valores p se basan en una prueba de una cola, en la que el valor Variant es mayor que el valor del modelo de referencia. Firebase usa una prueba t de varianza desigual para las variables continuas (valores numéricos, como los ingresos) y una prueba z de proporciones para los datos de conversiones (valores binarios como la retención de usuarios, los usuarios que no experimentaron fallas y los usuarios que activan un evento de Google Analytics).

Los resultados del experimento proporcionan información valiosa importantes para cada variante del experimento, incluidas las siguientes:

  • En qué medida superior o inferior se compara cada métrica del experimento con el modelo de referencia, según se midió directamente (es decir, los datos reales observados)
  • La probabilidad de que la diferencia observada entre la variante y el modelo de referencia se haya producido debido a una posibilidad aleatoria (valor p)
  • Un rango que probablemente contenga la diferencia de rendimiento “verdadera” entre la variante y el modelo de referencia para cada métrica del experimento (una forma de entender las situaciones de rendimiento del “mejor de los casos” y “en el peor de los casos”)

Interpreta resultados de los experimentos con la tecnología de Google Optimize

Los resultados de Firebase A/B Testing para los experimentos que comenzaron antes del 23 de octubre de 2023 contaron con la tecnología de Google Optimize. Google Optimize usó la inferencia bayesiana para generar estadísticas detalladas a partir de los datos del experimento.

Los resultados se dividen en “datos observados” y “datos modelados”. Los datos observados se calcularon directamente a partir de los datos de estadísticas, y los datos modelados se derivaron de la aplicación de nuestro modelo bayesiano a los datos observados.

Para cada métrica, se muestran las siguientes estadísticas:

Datos observados

  • Valor total (suma de la métrica para todos los usuarios en la variante)
  • Valor promedio (valor promedio de la métrica para los usuarios en la variante)
  • Porcentaje de diferencia con respecto al modelo de referencia

Datos modelados

  • Probabilidad de superar el valor de referencia: Es la probabilidad de que la métrica sea más alta para esta variante en comparación con el modelo de referencia
  • Diferencia porcentual con respecto al modelo de referencia: Se basa en las estimaciones del modelo medio de la métrica para la variante y el modelo de referencia
  • Rangos de métricas: Los rangos en los que es más probable que se encuentre el valor de la métrica, con un 50% y un 95% de certeza

En general, los resultados del experimento nos brindan las siguientes tres estadísticas importantes para cada variante del experimento:

  1. En qué medida superior o inferior se compara cada métrica del experimento con el modelo de referencia, según se midió directamente (es decir, los datos reales observados)
  2. Qué tan probable es que cada métrica del experimento sea superior al modelo de referencia o la mejor en general, según la inferencia bayesiana (probabilidad de ser mejor/el mejor, respectivamente)
  3. Los rangos factibles para cada métrica del experimento basada en la inferencia bayesiana: las “mejores” y “peores situaciones” (intervalos creíbles)

Determinación de variantes principales

En el caso de los experimentos que usan la inferencia frecuente, Firebase declara que una variante es ganadora si existe una diferencia de rendimiento de importancia estadística entre la variante y el modelo de referencia en la métrica objetivo. Si múltiples variantes cumplen con estos criterios, se elige la variante con el valor p más bajo.

Para los experimentos en los que se usó Google Optimize, Firebase declaró que una variante es una “variante principal clara” si tiene más del 95% de probabilidades de ser mejor que la variante del modelo de referencia en la métrica principal. Si varias variantes cumplieron con los criterios para ser una “variante principal definitiva”, solo la que tuvo el mejor rendimiento en general se etiquetó como tal.

Dado que la determinación de líderes se basa solo en el objetivo principal, debes considerar todos los factores relevantes y revisar los resultados de las métricas secundarias antes de decidir si implementar o no una variante principal. Se recomienda que consideres los beneficios esperados de realizar el cambio, el riesgo de inconvenientes (como el extremo inferior del intervalo de confianza para la mejora) y el impacto en las métricas que no sean el objetivo principal.

Por ejemplo, si tu métrica principal son los usuarios que no experimentaron fallas y la variante A es un líder claro sobre el modelo de referencia, pero las métricas de retención de usuarios de la variante A siguen la retención de usuarios de referencia, te recomendamos que investigues más a fondo antes de realizar el lanzamiento de la variante A de manera más amplia.

Puedes implementar cualquier variante, no solo una variante principal, según tu evaluación general del rendimiento en las métricas primarias y secundarias.

Duración del experimento

Firebase recomienda que un experimento se siga ejecutando hasta que se cumplan las siguientes condiciones:

  1. El experimento acumuló suficientes datos para proporcionar un resultado útil. Los experimentos y datos de resultados se actualizan una vez al día. Es posible que desees consultar una calculadora de tamaño de muestras en línea para evaluar el tamaño de muestra recomendado de tu experimento.
  2. El experimento se ejecutó el tiempo suficiente para garantizar una muestra representativa de tus usuarios y medir el rendimiento a largo plazo. El tiempo de ejecución mínimo recomendado para un experimento típico de Remote Config es de dos semanas.

Los datos del experimento se procesan durante un máximo de 90 días después de que este comienza. Después de 90 días, el experimento se detiene automáticamente. Los resultados del experimento ya no se actualizan en Firebase console y este deja de enviar valores de parámetros específicos del experimento. En este punto, los clientes comienzan a recuperar valores de parámetros basados en las condiciones establecidas en la plantilla Remote Config. Los datos históricos del experimento se conservan hasta que lo borres.

Esquema de BigQuery

Además de ver los datos del experimento A/B Testing en Firebase console, puedes inspeccionar y analizar los datos de experimentos en BigQuery Si bien A/B Testing no tiene una tabla de experimentos de BigQuery independiente, las membresías de experimentos y variantes se almacenan en cada evento de Google Analytics en las tablas de eventos de Analytics.

Las propiedades del usuario que contienen información del experimento tienen el formato userProperty.key like "firebase_exp_%" o userProperty.key = "firebase_exp_01", en el que 01 es el ID del experimento, y userProperty.value.string_value contiene el índice (basado en cero) de la variante del experimento.

Puedes utilizar estas propiedades de usuario del experimento para extraer datos del experimento. Esto te permite dividir los resultados del experimento de muchas formas y verificar los resultados de A/B Testing de forma independiente.

Para comenzar, completa lo siguiente como se describe en esta guía:

  1. Habilita la exportación de BigQuery para Google Analytics en Firebase console
  2. Accede a los datos de A/B Testing con BigQuery
  3. Explora consultas de ejemplo

Habilita la exportación de BigQuery para Google Analytics en Firebase console

Si tienes el plan Spark, puedes usar la zona de pruebas de BigQuery para acceder a BigQuery sin costo, sujeto a los límites de la zona de pruebas. Consulta los precios y la zona de pruebas de BigQuery para obtener más información.

Primero, asegúrate de que estás exportando los datos de Analytics a BigQuery:

  1. Abre la pestaña Integraciones, que se encuentra en la sección > Configuración del proyecto de Firebase console.
  2. Si ya usas BigQuery con otros servicios de Firebase, haz clic en Administrar. De lo contrario, haz clic en Vincular.
  3. Consulta Información para vincular Firebase a BigQuery y, luego, haz clic en Siguiente.
  4. En la sección Configurar la integración, habilita el botón de activación de Google Analytics.
  5. Selecciona una región y elige la configuración de exportación.

  6. Haz clic en Vincular a BigQuery.

En función de cómo elegiste exportar los datos, las tablas pueden tardar hasta un día en estar disponibles. Si necesitas más información para exportar datos de proyectos a BigQuery, consulta Cómo exportar datos de proyectos a BigQuery.

Accede a los datos de A/B Testing en BigQuery

Antes de consultar datos de un experimento específico, debes obtener algunos o todos los siguientes elementos para usarlos en tu consulta:

  • ID del experimento: Puedes obtenerlo en la URL de la página Descripción general del experimento. Por ejemplo, si la URL es similar a https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, el ID del experimento es 25.
  • ID de propiedad de Google Analytics: Este es tu ID de propiedad de Google Analytics de 9 dígitos. Puedes encontrarlo en Google Analytics. También aparece en BigQuery cuando expandes el nombre de tu proyecto para mostrar el nombre de la tabla de eventos de Google Analytics (project_name.analytics_000000000.events).
  • Fecha del experimento: Para redactar una consulta más rápida y eficiente, se recomienda limitar las consultas a las particiones de tablas de eventos diarios de Google Analytics que contienen los datos del experimento, es decir, tablas identificadas con un sufijo YYYYMMDD. Por lo tanto, si el experimento se ejecutó entre el 2 de febrero de 2024 y el 2 de mayo de 2024, debes especificar un _TABLE_SUFFIX between '20240202' AND '20240502'. Para ver un ejemplo, consulta Selecciona los valores de un experimento específico.
  • Nombres de eventos: Por lo general, se corresponden con las métricas de objetivo que configuraste en el experimento. Por ejemplo, eventos in_app_purchase, ad_impression o eventos user_retention.
.

Después de recopilar la información que necesitas para generar tu consulta, haz lo siguiente:

  1. Abre BigQuery en la consola de Google Cloud.
  2. Selecciona tu proyecto y, luego, Crear consulta en SQL.
  3. Agrega tu consulta. Si deseas obtener consultas de ejemplo para ejecutar, lee Explora consultas de ejemplo.
  4. Haz clic en Ejecutar.

Consulta datos del experimento con la consulta generada automáticamente de Firebase console

Si usas el plan Blaze, en la página Descripción general del experimento se proporciona una consulta de muestra que devuelve el nombre del experimento, las variantes, los nombres de los eventos y la cantidad de eventos del experimento que que estás viendo.

Para obtener y ejecutar la consulta generada automáticamente, sigue estos pasos:

  1. En Firebase console, abre A/B Testing y selecciona el experimento de A/B Testing que quieres consultar para abrir la Descripción general del experimento.
  2. En el menú Opciones, debajo de Integración de BigQuery, selecciona Consultar datos del experimento. Esto abrirá tu proyecto en BigQuery en la consola de Google Cloud y proporcionará una consulta básica que puedes usar para consultar los datos de tu experimento.

En el siguiente ejemplo, se muestra una consulta generada para un experimento con tres variantes (incluido el modelo de referencia) llamadas “Experimento de bienvenida de invierno”. Devuelve el nombre del experimento activo, el nombre de la variante, el evento único y el recuento de eventos de cada evento. Ten en cuenta que el compilador de consultas no especifica el nombre de tu proyecto en el nombre de la tabla, ya que se abre directamente en tu proyecto.

  /*
    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 ver más ejemplos de consultas, ve a Explora consultas de ejemplo.

Explora consultas de ejemplo

En las siguientes secciones, se proporcionan ejemplos de consultas que puedes usar para extraer datos de experimentos de A/B Testing de las tablas de eventos de Google Analytics.

Extrae los valores de la desviación estándar del experimento y la compra de todos los experimentos

Puedes usar los datos de los resultados del experimento para verificar resultados de Firebase A/B Testing. En la siguiente instrucción de SQL de BigQuery, se extraen las variantes del experimento, la cantidad de usuarios únicos de cada variante y se suman los ingresos totales de los eventos de in_app_purchase y ecommerce_purchase, y las desviaciones estándar de todos los experimentos dentro del período especificado como las fechas de inicio y finalización de _TABLE_SUFFIX. Puedes usar los datos que obtienes de esta consulta con un generador de importancia estadística para pruebas t de una cola para verificar que los resultados que proporciona Firebase coincidan con tu propio análisis.

Si deseas obtener más información sobre cómo A/B Testing calcula la inferencia, consulta Cómo interpretar los resultados de la prueba.

  /*
    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;

Selecciona los valores de un experimento específico

En la siguiente consulta de ejemplo, se muestra cómo obtener datos para un experimento específico en BigQuery. Esta consulta de ejemplo devuelve el nombre del experimento, los nombres de las variantes (incluido el modelo de referencia), los nombres de los eventos y los recuentos 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

Límites

A/B Testing se limita a 300 experimentos en total, 24 experimentos en ejecución y 24 experimentos en borrador. Estos límites se comparten con los lanzamientos de Remote Config. Por ejemplo, si tienes dos lanzamientos y tres experimentos en ejecución, puedes tener hasta 19 lanzamientos o experimentos adicionales.

  • Si alcanzas el límite total de 300 experimentos o el límite de 24 experimentos en borrador, debes borrar un experimento existente antes de crear uno nuevo.

  • Si alcanzas el límite de 24 experimentos y lanzamientos en ejecución, debes detener un experimento o lanzamiento en ejecución antes de comenzar uno nuevo.

Un experimento puede tener un máximo de 8 variantes (incluido el modelo de referencia) y hasta 25 parámetros por cada variante. Un experimento puede tener un tamaño de hasta 200 KiB, aproximadamente. Esto incluye nombres de variantes, parámetros de variantes y otros metadatos de configuración.