Crea experimentos de Messaging con pruebas A/B

Cuando te comunicas con tus usuarios o comienzas una campaña de marketing nueva, debes asegurarte de hacerlo bien. Las pruebas A/B pueden ayudarte a encontrar la presentación y la redacción ideales evaluando variantes de un mensaje ante determinados grupos de usuarios de tu base. Si quieres mejorar la retención o las conversiones de una oferta, con las pruebas A/B puedes ejecutar análisis estadísticos a fin de determinar si una variante de un mensaje tiene mejor rendimiento que el valor de referencia para lograr el objetivo seleccionado.

Para hacer pruebas A/B en variantes de funciones con un modelo de referencia, sigue estos pasos:

  1. Crea el experimento.
  2. Valida el experimento en un dispositivo de prueba.
  3. Administra el experimento.

Crea un experimento

Usar el Compositor de Notifications en un experimento te permite evaluar distintas variantes de un solo mensaje de notificación.

  1. Accede a Firebase console y verifica que Google Analytics esté habilitado en el proyecto para que el experimento tenga acceso a los datos de Analytics.

    Si no habilitaste Google Analytics cuando creaste tu proyecto, puedes hacerlo en la pestaña Integraciones que se encuentra en la sección  > Configuración del proyecto de Firebase console.

  2. En la sección Participación de la barra de navegación de Firebase console, haz clic en A/B Testing.

  3. Haz clic en Crear experimento y selecciona Notifications cuando se te pida que elijas el servicio con el que deseas experimentar.

  4. Ingresa un Nombre y una Descripción opcional para tu experimento y, a continuación, haz clic en Siguiente.

  5. Completa los campos de Orientación. Para ello, selecciona primero la app que usa el experimento. Además, para limitar el experimento a un subconjunto de tus usuarios, puedes seleccionar una o más de las siguientes opciones:

    • Versión: Una o más versiones de tu app
    • Público de usuarios: públicos de Analytics que se usan para segmentar por usuarios que se podrían incluir en el experimento
    • Propiedad del usuario: una o más propiedades de usuario de Analytics para seleccionar usuarios que se podrían incluir en el experimento
    • País o región: uno o más países o regiones para seleccionar usuarios que se podrían incluir en el experimento
    • Idioma del dispositivo: uno o más idiomas y configuraciones regionales que se usan para seleccionar usuarios que se podrían incluir en el experimento
    • Primer acceso: se segmenta a los usuarios según la fecha en la que abrieron la app por primera vez
    • Interacción más reciente con la app: segmenta a los usuarios según la última interacción que tuvieron con la app
  6. En Porcentaje de usuarios de destino, selecciona el porcentaje de la base de usuarios de tu app que coincide con los criterios configurados en Usuarios de destino y que deseas dividir en partes iguales entre el modelo de referencia y una o más variantes del experimento. Puede ser cualquier porcentaje entre el 0.01% y el 100%. Los porcentajes se vuelven a asignar de forma aleatoria a los usuarios para cada experimento, incluidos los experimentos duplicados.

  7. En la sección Variantes, escribe un mensaje para enviarlo al grupo de referencia en el campo Ingresa el texto del mensaje. Si no deseas enviar un mensaje, deja el campo en blanco.

  8. Opcional: Para agregar más de una variante al experimento, haz clic en Agregar variante. Según la configuración predeterminada, los experimentos tienen un modelo de referencia y una variante.

  9. Opcional: Ingresa un nombre para cada variante del experimento que reemplace los nombres Variante A, Variante B, etcétera.

  10. En la lista desplegable, elige la métrica objetivo que se usará para evaluar las variantes del experimento y agrega las métricas adicionales que desees. Estas incluyen objetivos integrados (participación, compras, ingresos, retención, etc.), eventos de conversión de Analytics y otros eventos de Analytics.

  11. Elige opciones para el mensaje:

    • Fecha de entrega: elige Enviar ahora para iniciar el experimento de inmediato cuando guardes o Programado para especificar un momento en el futuro en el que se iniciará el experimento.
    • Opciones avanzadas: si deseas seleccionar opciones avanzadas para todas las notificaciones que incluye el experimento, expande Opciones avanzadas y cambia cualquiera de las siguientes opciones.
  12. Haz clic en Revisar para guardar el experimento.

Se permiten hasta 300 experimentos por proyecto, que pueden incluir hasta 24 experimentos en ejecución, mientras que el resto está en borrador o completado.

Valida el experimento en un dispositivo de prueba

En cada instalación de Firebase, puedes obtener el token de registro de FCM asociado con ella. Puedes usar este token para probar variantes de experimento específicas en un dispositivo de prueba con la app instalada. Sigue estos pasos para validar el experimento en un dispositivo de prueba:

  1. Obtén el token de registro de FCM como se describe a continuación:

    Swift

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

    Objective‑C

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

    Java

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

    Kotlin+KTX

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

    C++

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

    Unity

    Firebase.Messaging.FirebaseMessaging.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("FCM registration token {0}", task.Result));
        }
      });
    
  2. En la barra de navegación de Firebase console, haz clic en A/B Testing.
  3. Haz clic en Borrador, coloca el cursor sobre el experimento, haz clic en el menú contextual () y, luego, en Administrar dispositivos de prueba.
  4. Ingresa el token de FCM para un dispositivo de prueba y elige la variante de experimento que se enviará al dispositivo de prueba.
  5. Ejecuta la app y confirma que el dispositivo de prueba reciba la variante seleccionada.

Administra el experimento

Si creas un experimento con Remote Config, el Compositor de Notifications o Firebase In-App Messaging, puedes validar y comenzar el experimento, supervisarlo mientras se ejecuta y aumentar la cantidad de usuarios incluidos en él.

Una vez finalizado el experimento, puedes tomar nota de la configuración de la variante ganadora y luego implementarla para todos los usuarios. También tienes la posibilidad de ejecutar otro experimento.

Inicia un experimento

  1. En la sección Participación del menú de navegación de Firebase console, haz clic en A/B Testing.
  2. Haz clic en Borrador y, luego, en el título del experimento.
  3. Para validar que tu app tenga usuarios que se incluirían en el experimento, expande los detalles del borrador y verifica si hay una cantidad mayor que el 0% en la sección Segmentación y distribución (por ejemplo, el 1% de los usuarios coincide con los criterios).
  4. Para modificar el experimento, haz clic en Editar.
  5. Para comenzar, haz clic en Iniciar experimento. Puedes ejecutar hasta 24 experimentos por proyecto a la vez.

Supervisa un experimento

Después de que el experimento se ejecute por un tiempo, podrás verificar el progreso y ver los resultados para los usuarios que participaron hasta ahora.

  1. En la sección Participación del menú de navegación de Firebase console, haz clic en A/B Testing.
  2. Haz clic en En ejecución y, luego, haz clic en el título del experimento o búscalo. En esta página, puedes ver varias estadísticas observadas y modeladas sobre el experimento en ejecución, incluidas las siguientes:

    • Porcentaje de diferencia con respecto al modelo de referencia: corresponde a una medida de la mejora en la métrica de una variante dada en comparación con el valor de referencia. Se calcula comparando el rango de valores para la variante y el rango de valores del punto de referencia.
    • Probabilidad de superar el valor de referencia: probabilidad estimada de que una variante dada supere el valor de referencia para la métrica seleccionada.
    • observed_metric por usuario: este valor se calcula a partir de los resultados del experimento y corresponde al rango predicho en el que caerá el valor de la métrica con el tiempo.
    • Total observed_metric: es el valor acumulado observado para el valor de referencia o la variante. Se usa para medir el rendimiento de cada variante del experimento y calcular la mejora, el rango de valores, la probabilidad de superar el valor de referencia y la probabilidad de ser la mejor variante. Según la métrica que se mida, esta columna podría tener la etiqueta “Duración por usuario”, “Ingresos por usuario”, “Tasa de retención” o “Porcentaje de conversiones”.
  3. Después de que se ejecuta el experimento por un tiempo (al menos 7 días en el caso de In-App Messaging y FCM, o 14 días para Remote Config), los datos de esta página indican qué variante es la “líder” (si hay alguna). Algunas mediciones incluyen un gráfico de barras que presenta los datos de manera visual.

Lanza un experimento para todos los usuarios

Después de que un experimento se ejecuta por un tiempo suficiente para encontrar una variante "líder" o ganadora para la métrica objetivo, puedes lanzar el experimento en la totalidad de los usuarios. Esto te permite seleccionar una variante y publicarla para todos los usuarios en el futuro. Incluso si no se consiguió una variante ganadora clara por medio del experimento, puedes implementar una variante en todos los usuarios.

  1. En la sección Participación del menú de navegación de Firebase console, haz clic en A/B Testing.
  2. Haz clic en Completados o En ejecución, en el experimento que quieres lanzar para todos los usuarios y en el menú contextual () Implementa la variante.
  3. Para implementar el experimento en todos los usuarios, sigue uno de estos métodos:

    • En el caso de un experimento que usa el Compositor de Notifications, utiliza el diálogo Lanzar mensaje para enviar el mensaje a los usuarios segmentados restantes que no formaban parte del experimento.
    • En el caso de un experimento de Remote Config, selecciona una variante para determinar qué valores de parámetros de la función se deben actualizar. Los criterios de segmentación definidos cuando se creó el experimento se agregan como una condición nueva en tu plantilla para garantizar que el lanzamiento solo afecte a los usuarios para los que se segmenta el experimento. Después de hacer clic en Revisar en Remote Config para ver las modificaciones, haz clic en Publicar cambios para completar el lanzamiento.
    • En el caso de un experimento de In-App Messaging, usa el diálogo para determinar qué variante debe lanzarse como una campaña independiente de In-App Messaging. Cuando la selecciones, se te redireccionará a la pantalla de redacción de FIAM para realizar cambios (si es necesario) antes de publicar.

Expande un experimento

Si descubres que un experimento no atrae a suficientes usuarios a A/B Testing como para declarar un liderazgo, puedes aumentar la distribución del experimento para alcanzar a un porcentaje mayor de la base de usuarios de la app.

  1. En la sección Participación del menú de navegación de Firebase console, haz clic en A/B Testing.
  2. Selecciona el experimento en ejecución que quieres editar.
  3. En la descripción general del experimento, haz clic en el menú contextual () y, luego, en Editar experimento en ejecución.
  4. En el diálogo Segmentación, se muestra una opción para aumentar el porcentaje de usuarios incluidos en el experimento en ejecución. Selecciona una cantidad mayor que el porcentaje actual y haz clic en Publicar. Se enviará el experimento al porcentaje de usuarios especificado.

Duplica o detén un experimento

  1. En la sección Participación del menú de navegación de Firebase console, haz clic en A/B Testing.
  2. Haz clic en Completados o En ejecución, mantén el puntero sobre el experimento, haz clic en el menú contextual () y, luego, en Duplicar experimento o Detener experimento.

Segmentación de usuarios

Puedes elegir los usuarios que incluirás en el experimento con los siguientes criterios de segmentación de usuarios:

Criterio de segmentación Operadores Valores Nota
Versión contiene,
no contiene,
coincide exactamente con,
contiene la regex
Ingresa un valor para una o más versiones de la app que deseas incluir en el experimento.

Cuando usas los operadores contiene, no contiene o coincide exactamente con, puedes proporcionar una lista de valores separados por comas.

Cuando usas el operador contiene la regex, puedes crear expresiones regulares en formato RE2. La expresión regular puede buscar una coincidencia total o parcial en la string de la versión objetivo. También puedes usar los delimitadores ^$ para buscar coincidencias en el principio, el final o la totalidad de la string objetivo.

Públicos de usuarios incluye todos los elementos de,
incluye al menos un elemento de,
no incluye ningún elemento de,
no incluye, al menos, un elemento de
Selecciona uno o más públicos de Analytics para elegir a los usuarios del experimento. Es posible que algunos experimentos segmentados para públicos de Google Analytics requieran algunos días para acumular datos porque están sujetos a la latencia del procesamiento de datos de Analytics. Es más probable que experimentes este retraso con usuarios nuevos, que suelen estar inscritos en públicos aptos entre 24 y 48 horas después de su creación o para públicos creados recientemente.
Propiedad del usuario Para texto:
contiene,
no contiene,
coincide exactamente,
contiene la regex

Para números:
<, ≤, =, ≥, >
Las propiedades del usuario de Analytics se usan para seleccionar a quienes participarán en el experimento, con diversas opciones que permiten elegir los valores de propiedades del usuario.

En el cliente puedes configurar solo valores de strings para las propiedades del usuario. En el caso de las condiciones que usan operadores numéricos, el servicio de Remote Config convierte el valor de la propiedad de usuario correspondiente en un número entero o de punto flotante.
Cuando usas el operador contiene la regex, puedes crear expresiones regulares en formato RE2. La expresión regular puede buscar una coincidencia total o parcial en la string de la versión objetivo. También puedes usar los delimitadores ^ y $ para buscar coincidencias en el principio, el final o la totalidad de la string objetivo.
País o región N/A Uno o más países o regiones que se usan para seleccionar a los usuarios del experimento.  
Idiomas N/A Uno o más idiomas y configuraciones locales que se usan para seleccionar a los usuarios del experimento.  
Primer acceso Mayor que
Menor que
Entre
Se segmenta para los usuarios según la primera vez en la que abrieron la app y se especifica en días.
Interacción más reciente con la app Mayor que
Menor que
Entre
Se segmenta para los usuarios según la última ocasión en la que interactuaron con la app y se especifica en días.

Métricas de A/B Testing

Cuando crees tu experimento, debes elegir una métrica principal o una objetivo para determinar la variante ganadora. También debes hacer un seguimiento de otras métricas que te permitan comprender mejor el rendimiento de cada variante del experimento y de las tendencias importantes que pueden cambiar entre variantes, como la retención de usuarios, la estabilidad de la app y los ingresos por compras directas desde la aplicación. Puedes realizar el seguimiento de hasta cinco métricas no objetivo en el experimento.

Por ejemplo, supongamos que agregaste nuevas compras directas desde la app y deseas comparar la eficacia de dos mensajes de sugerencias diferentes. En este caso, puedes configurar Ingresos por compras como la métrica objetivo, ya que quieres que la variante ganadora represente la notificación que generó más ingresos por compras directas desde la aplicación. Además, si quieres hacer un seguimiento para saber qué variante generó más conversiones y usuarios retenidos en el futuro, puedes agregar lo siguiente a Other metrics to track:

  • Ingresos totales estimados para ver cómo difieren tus ingresos publicitarios y por compras directas desde la app entre las dos variantes
  • Retención (1 día), Retención (de 2 a 3 días) y Retención (de 4 a 7 días) para hacer un seguimiento de tu rutina de retención de usuarios diaria o semanal

En las siguientes tablas, se proporciona información sobre la forma en que se calculan las métricas objetivo y otras métricas.

Métricas objetivo

Métrica Descripción
Usuarios que no experimentaron fallas Porcentaje de usuarios de la app que no experimentaron errores que detectó el SDK de Firebase Crashlytics durante el experimento
Ingresos publicitarios estimados Ganancias estimadas que provienen de los anuncios
Ingresos totales estimados Valor combinado de los ingresos por compras y los ingresos publicitarios estimados
Ingresos por compras Valor combinado para todos los eventos purchase y in_app_purchase
Retención (1 día) Cantidad de usuarios que vuelven a la app por día.
Retención (de 2 a 3 días) Cantidad de usuarios que vuelven a la app en un período de 2 a 3 días.
Retención (de 4 a 7 días) Cantidad de usuarios que vuelven a la app en un período de 4 a 7 días.
Retención (de 8 a 14 días) Cantidad de usuarios que vuelven a la app en un período de 8 a 14 días.
Retención (15 días o más) Cantidad de usuarios que vuelven a la app 15 días o más luego de la última vez que la usaron
first_open Evento de Analytics que se activa cuando un usuario abre una app por primera vez después de instalarla o reinstalarla. Se usa como parte de un embudo de conversión.

Otras métricas

Métrica Descripción
notification_dismiss Evento de Analytics que se activa cuando se descarta una notificación enviada por el Compositor de Notifications (solo en Android)
notification_receive Evento de Analytics que se activa cuando se recibe una notificación enviada por el Compositor de Notifications mientras la app se ejecuta en segundo plano (solo en Android)
os_update Evento de Analytics que hace un seguimiento para saber cuándo el sistema operativo del dispositivo se actualiza a una nueva versión. Para obtener más información, consulta Eventos recopilados automáticamente.
screen_view Evento de Analytics que hace un seguimiento de las pantallas visitadas dentro de la app (para obtener más información, consulta Realiza seguimientos de las vistas de pantallas)
session_start Evento de Analytics que cuenta las sesiones de usuario en la app (para obtener más información, consulta Eventos recopilados automáticamente)

Exporta datos a BigQuery

Puedes acceder a todos los datos de análisis relacionados con tus pruebas A/B en BigQuery. Esta herramienta te permite analizar los datos con BigQuery SQL, exportarlos a otro proveedor de servicios en la nube o usarlos en tus modelos de AA personalizados. Consulta Cómo vincular Firebase a BigQuery para obtener más información.

Para aprovechar al máximo la exportación de datos de BigQuery, los proyectos de Firebase deben adoptar el plan de precios de pago por uso “Blaze”. BigQuery cobra por el almacenamiento de datos, las inserciones de transmisión y las búsquedas de datos. Cargar y exportar datos no tiene costo. Consulta los precios de BigQuery o la zona de pruebas de BigQuery para obtener más información.

Para comenzar, asegúrate de que tu proyecto de Firebase esté vinculado a BigQuery. Selecciona Configuración > Configuración del proyecto en el menú de navegación izquierdo y, luego, selecciona Integraciones > BigQuery > Vincular. En esta página verás las opciones para realizar exportaciones de datos de análisis de BigQuery para todas las apps del proyecto.

Sigue estos pasos para consultar los datos de análisis de un experimento:

  1. En la lista de experimentos activos, selecciona el experimento que quieras para abrir su página de resultados.
  2. En el menú contextual del panel Descripción general del experimento, selecciona Consultar datos del experimento (la opción no está disponible en los proyectos del nivel sin costo).

    Esta acción abrirá el compositor de consultas de la consola de BigQuery y cargará una consulta de ejemplo generada automáticamente que permite buscar datos de experimentos. En esta búsqueda tu experimento se codifica como una propiedad del usuario con el nombre del experimento en la clave y la variante del experimento en el valor.

  3. En el compositor de búsquedas, selecciona Ejecutar búsqueda. Los resultados se muestran en el panel inferior.

Ten en cuenta que, como los datos de Firebase en BigQuery se actualizan solo una vez al día, la información disponible en la página del experimento podría estar más actualizada que los datos disponibles en la consola de BigQuery.