Cree experimentos de Firebase Remote Config con pruebas A/B

Cuando usas Firebase Remote Config para implementar configuraciones para una aplicación con una base de usuarios activa, debes asegurarte de hacerlo bien. Puede utilizar experimentos de pruebas A/B para determinar mejor lo siguiente:

  • La mejor manera de implementar una función para optimizar la experiencia del usuario. Con demasiada frecuencia, los desarrolladores de aplicaciones no se enteran de que a sus usuarios no les gusta una nueva característica o una experiencia de usuario actualizada hasta que la calificación de su aplicación en la tienda de aplicaciones disminuye. Las pruebas A/B pueden ayudar a medir si a sus usuarios les gustan las nuevas variantes de funciones o si prefieren la aplicación tal como existe. Además, mantener a la mayoría de sus usuarios en un grupo de referencia garantiza que la mayoría de su base de usuarios pueda continuar usando su aplicación sin experimentar ningún cambio en su comportamiento o apariencia hasta que el experimento haya concluido.
  • La mejor manera de optimizar la experiencia del usuario para un objetivo comercial. A veces estás implementando cambios en el producto para maximizar una métrica como los ingresos o la retención. Con las pruebas A/B, usted establece su objetivo comercial y Firebase realiza el análisis estadístico para determinar si una variante supera la línea de base para su objetivo seleccionado.

Para realizar pruebas A/B de variantes de funciones con una línea de base, haga lo siguiente:

  1. Crea tu experimento.
  2. Valide su experimento en un dispositivo de prueba.
  3. Gestiona tu experimento.

Crear un experimento

Un experimento de Remote Config le permite evaluar múltiples variantes en uno o más parámetros de Remote Config .

  1. Inicie sesión en Firebase console y verifique que Google Analytics esté habilitado en su proyecto para que el experimento tenga acceso a los datos de Analytics.

    Si no habilitó Google Analytics al crear su proyecto, puede habilitarlo en la pestaña Integraciones , a la que puede acceder usando > Configuración del proyecto en Firebase console .

  2. En la sección Engage del menú de navegación de Firebase console , haz clic en Pruebas A/B .

  3. Haga clic en Crear experimento y luego seleccione Remote Config cuando se le solicite el servicio con el que desea experimentar.

  4. Ingrese un Nombre y una Descripción opcional para su experimento y haga clic en Siguiente .

  5. Complete los campos de Orientación y elija primero la aplicación que utiliza su experimento. También puede dirigirse a un subconjunto de sus usuarios para que participen en su experimento haciendo clic en y y luego eligiendo opciones de la siguiente lista:

    • Versión: una o más versiones de tu aplicación.
    • Número de compilación: el código de versión de la aplicación.
    • Idiomas: uno o más idiomas y configuraciones regionales utilizados para seleccionar usuarios que podrían incluirse en el experimento.
    • País/Región: uno o más países o regiones para seleccionar usuarios que deben incluirse en el experimento.
    • Audiencia de usuarios: audiencias de Analytics utilizadas para dirigirse a los usuarios que podrían incluirse en el experimento.
    • Propiedad de usuario: una o más propiedades de usuario de Analytics para seleccionar usuarios que podrían incluirse en el experimento.
    • Primera apertura: oriente a los usuarios según la primera vez que abrieron su aplicación.

      La segmentación de usuarios por primera hora de apertura está disponible después de seleccionar una aplicación para Android o iOS. Es compatible con las siguientes versiones del SDK de Remote Config: plataformas Apple SDK v9.0.0+ y Android SDK v21.1.1+ (Firebase BoM v30.3.0+).

      Los análisis también deben haberse habilitado en el cliente durante el primer evento abierto.

  6. Establezca el porcentaje de usuarios objetivo: ingrese el porcentaje de la base de usuarios de su aplicación que coincide con los criterios establecidos en Usuarios objetivo que desea dividir uniformemente entre la línea base y una o más variantes en su experimento. Puede ser cualquier porcentaje entre 0,01% y 100%. Los usuarios son asignados aleatoriamente a cada experimento, incluidos los experimentos duplicados.

  7. Opcionalmente, configure un evento de activación para garantizar que en su experimento solo se cuenten los datos de los usuarios que activaron por primera vez algún evento de Analytics. Tenga en cuenta que todos los usuarios que coincidan con sus parámetros de orientación recibirán valores experimentales de Remote Config, pero solo aquellos que activen un evento de activación se incluirán en los resultados de su experimento.

    Para garantizar un experimento válido, asegúrese de que el evento que elija ocurra después de que su aplicación active los valores de configuración obtenidos. Además, los siguientes eventos no se pueden utilizar porque siempre ocurren antes de que se activen los valores recuperados:

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
  8. Para los Objetivos del experimento, seleccione la métrica principal para realizar un seguimiento y agregue cualquier métrica adicional que desee realizar de la lista. Estos incluyen objetivos integrados (compras, ingresos, retención, usuarios sin fallas, etc.), eventos de conversión de Analytics y otros eventos de Analytics. Cuando termine, haga clic en Siguiente .

  9. En la sección Variantes , elija una línea de base y al menos una variante para el experimento. Utilice la lista Elegir o crear nueva para agregar uno o más parámetros con los que experimentar. Puedes crear un parámetro que no se haya usado previamente en Firebase console, pero debe existir en tu aplicación para que tenga algún efecto. Puede repetir este paso para agregar varios parámetros a su experimento.

  10. (opcional) Para agregar más de una variante a su experimento, haga clic en Agregar otra variante .

  11. Cambie uno o más parámetros para variantes específicas. Cualquier parámetro que no se modifique es el mismo para los usuarios no incluidos en el experimento.

  12. Expanda Pesos de variante para ver o cambiar el peso de variante del experimento. De forma predeterminada, cada variante tiene el mismo peso. Tenga en cuenta que las ponderaciones desiguales pueden aumentar el tiempo de recopilación de datos y las ponderaciones no se pueden cambiar una vez que comienza el experimento .

  13. Haga clic en Revisar para guardar su experimento.

Se le permiten hasta 300 experimentos por proyecto, que podrían consistir en hasta 24 experimentos en ejecución, y el resto como borrador o completado.

Valide su experimento en un dispositivo de prueba

Para cada instalación de Firebase, puedes recuperar el token de autenticación de instalación asociado a ella. Puede utilizar este token para probar variantes de experimentos específicas en un dispositivo de prueba con su aplicación instalada. Para validar su experimento en un dispositivo de prueba, haga lo siguiente:

  1. Obtenga el token de autenticación de instalación de la siguiente manera:

    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)")
    })
    

    C objetivo

    [[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

    val forceRefresh = true
    FirebaseInstallations.getInstance().getToken(forceRefresh)
        .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());
          }
        });
    

    Unidad

    Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync(forceRefresh: true).ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result));
        }
      });
    
  2. En la barra de navegación de la consola Firebase , haga clic en Pruebas A/B .
  3. Haga clic en Borrador (y/o Ejecutando para experimentos de Remote Config), coloque el cursor sobre su experimento, haga clic en el menú contextual ( ) y luego haga clic en Administrar dispositivos de prueba .
  4. Ingrese el token de autenticación de instalación para un dispositivo de prueba y elija la variante del experimento para enviar a ese dispositivo de prueba.
  5. Ejecute la aplicación y confirme que la variante seleccionada se reciba en el dispositivo de prueba.

Para obtener más información sobre las instalaciones de Firebase, consulte Administrar instalaciones de Firebase .

Gestiona tu experimento

Ya sea que cree un experimento con Remote Config, el compositor de notificaciones o Firebase In-App Messaging, luego puede validar e iniciar su experimento, monitorearlo mientras se ejecuta y aumentar la cantidad de usuarios incluidos en su experimento en ejecución.

Cuando finalice el experimento, puede tomar nota de la configuración utilizada por la variante ganadora y luego implementar esa configuración para todos los usuarios. O puede realizar otro experimento.

iniciar un experimento

  1. En la sección Engage del menú de navegación de Firebase console , haz clic en Pruebas A/B .
  2. Haga clic en Borrador y luego haga clic en el título de su experimento.
  3. Para validar que su aplicación tenga usuarios que se incluirían en su experimento, expanda los detalles del borrador y verifique un número mayor al 0% en la sección Orientación y distribución (por ejemplo, 1% de usuarios que cumplen con los criterios ).
  4. Para cambiar su experimento, haga clic en Editar .
  5. Para iniciar su experimento, haga clic en Iniciar experimento . Puede ejecutar hasta 24 experimentos por proyecto a la vez.

Monitorear un experimento

Una vez que un experimento se ha estado ejecutando por un tiempo, puede verificar su progreso y ver cómo se ven los resultados para los usuarios que han participado en su experimento hasta ahora.

  1. En la sección Engage del menú de navegación de Firebase console , haz clic en Pruebas A/B .
  2. Haga clic en Ejecutando y luego haga clic o busque el título de su experimento. En esta página, puede ver varias estadísticas observadas y modeladas sobre su experimento en ejecución, incluidas las siguientes:

    • % de diferencia con respecto a la línea de base : una medida de la mejora de una métrica para una variante determinada en comparación con la línea de base. Se calcula comparando el rango de valores de la variante con el rango de valores de la línea base.
    • Probabilidad de superar la línea de base : la probabilidad estimada de que una variante determinada supere la línea de base para la métrica seleccionada.
    • observed_metric por usuario : según los resultados del experimento, este es el rango previsto en el que caerá el valor de la métrica con el tiempo.
    • Total observed_metric : el valor acumulado observado para la línea de base o variante. El valor se utiliza para medir el rendimiento de cada variante del experimento y para calcular la mejora , el rango de valores , la probabilidad de superar el valor inicial y la probabilidad de ser la mejor variante . Dependiendo de la métrica que se mida, esta columna puede denominarse "Duración por usuario", "Ingresos por usuario", "Tasa de retención" o "Tasa de conversión".
  3. Después de que el experimento se haya ejecutado durante un tiempo (al menos 7 días para FCM y mensajería en la aplicación o 14 días para Remote Config), los datos de esta página indican qué variante, si la hay, es la "líder". Algunas mediciones van acompañadas de un gráfico de barras que presenta los datos en formato visual.

Implementar un experimento para todos los usuarios.

Después de que un experimento se haya ejecutado durante el tiempo suficiente como para tener un "líder" o variante ganadora para su métrica de objetivo, puede publicar el experimento para el 100% de los usuarios. Esto le permite seleccionar una variante para publicarla para todos los usuarios en el futuro. Incluso si su experimento no ha creado un ganador claro, aún puede optar por lanzar una variante para todos sus usuarios.

  1. En la sección Engage del menú de navegación de Firebase console , haz clic en Pruebas A/B .
  2. Haga clic en Completado o En ejecución , haga clic en un experimento que desee publicar para todos los usuarios y haga clic en el menú contextual ( ) Implementar variante .
  3. Implemente su experimento para todos los usuarios realizando una de las siguientes acciones:

    • Para un experimento que utiliza el redactor de notificaciones , utilice el cuadro de diálogo Implementar mensaje para enviar el mensaje a los usuarios objetivo restantes que no formaron parte del experimento.
    • Para un experimento de Remote Config , seleccione una variante para determinar qué valores de parámetros de Remote Config actualizar. Los criterios de orientación definidos al crear el experimento se agregan como una nueva condición en su plantilla, para garantizar que la implementación solo afecte a los usuarios a los que se dirige el experimento. Después de hacer clic en Revisar en Remote Config para revisar los cambios, haga clic en Publicar cambios para completar la implementación.
    • Para un experimento de mensajería en la aplicación , utilice el cuadro de diálogo para determinar qué variante debe implementarse como una campaña de mensajería en la aplicación independiente. Una vez seleccionado, se le redirigirá a la pantalla de redacción de FIAM para realizar cambios (si es necesario) antes de publicar.

Ampliar un experimento

Si descubre que un experimento no atrae suficientes usuarios para que las pruebas A/B lo declaren líder, puede aumentar la distribución de su experimento para llegar a un porcentaje mayor de la base de usuarios de la aplicación.

  1. En la sección Engage del menú de navegación de Firebase console , haz clic en Pruebas A/B .
  2. Seleccione el experimento en ejecución que desea editar.
  3. En la descripción general del experimento , haga clic en el menú contextual ( ) y luego haga clic en Editar experimento en ejecución .
  4. El cuadro de diálogo Orientación muestra una opción para aumentar el porcentaje de usuarios que están en el experimento en ejecución. Seleccione un número mayor que el porcentaje actual y haga clic en Publicar . El experimento se enviará al porcentaje de usuarios que haya especificado.

Duplicar o detener un experimento

  1. En la sección Engage del menú de navegación de Firebase console , haz clic en Pruebas A/B .
  2. Haga clic en Completado o En ejecución , mantenga el puntero sobre su experimento, haga clic en el menú contextual ( ) y luego haga clic en Duplicar experimento o Detener experimento .

Orientación al usuario

Puede dirigirse a los usuarios para incluirlos en su experimento utilizando los siguientes criterios de orientación de usuarios.

Criterio de focalización Operador(es) Valores) Nota
Versión contiene,
no contiene,
coincide exactamente,
contiene expresiones regulares
Ingrese un valor para una o más versiones de la aplicación que desee incluir en el experimento.

Cuando utilice cualquiera de los operadores contiene , no contiene o coincide exactamente , puede proporcionar una lista de valores separados por comas.

Al utilizar el operador contiene expresiones regulares , puede crear expresiones regulares en formato RE2 . Su expresión regular puede coincidir total o parcialmente con la cadena de la versión de destino. También puede utilizar los anclajes ^ y $ para hacer coincidir el principio, el final o la totalidad de una cadena de destino.

Audiencias de usuarios incluye todo,
incluye al menos uno de,
no incluye todos,
no incluye al menos uno de
Seleccione una o más audiencias de Analytics para dirigirse a los usuarios que podrían incluirse en su experimento. Algunos experimentos dirigidos a audiencias de Google Analytics pueden requerir algunos días para acumular datos porque están sujetos a la latencia del procesamiento de datos de Analytics. Es más probable que encuentre este retraso con usuarios nuevos, que generalmente se inscriben en audiencias calificadas entre 24 y 48 horas después de la creación, o para audiencias creadas recientemente .

Para Remote Config, esto significa que incluso si un usuario técnicamente califica para una audiencia, si Analytics aún no ha agregado al usuario a la audiencia cuando se ejecuta `fetchAndActivate()`, el usuario no se incluirá en el experimento.

Propiedad del usuario Para texto:
contiene,
no contiene,
coincide exactamente,
contiene expresiones regulares

Para números:
<, ≤, =, ≥, >
Una propiedad de usuario de Analytics se utiliza para seleccionar usuarios que podrían incluirse en un experimento, con una variedad de opciones para seleccionar valores de propiedad de usuario.

En el cliente, solo puede establecer valores de cadena para las propiedades del usuario. Para condiciones que utilizan operadores numéricos, el servicio Remote Config convierte el valor de la propiedad de usuario correspondiente en un número entero/flotante.
Al utilizar el operador contiene expresiones regulares , puede crear expresiones regulares en formato RE2 . Su expresión regular puede coincidir total o parcialmente con la cadena de la versión de destino. También puede utilizar los anclajes ^ y $ para hacer coincidir el principio, el final o la totalidad de una cadena de destino.
País/Región N / A Uno o más países o regiones solían seleccionar usuarios que podrían incluirse en el experimento.
Idiomas N / A Uno o más idiomas y configuraciones regionales utilizados para seleccionar usuarios que podrían incluirse en el experimento.
Primero abierto Antes
Después

Diríjase a los usuarios según la primera vez que abren su aplicación:

  • Seleccione Nuevos usuarios para dirigirse a los usuarios que abren su aplicación por primera vez después de una fecha y hora futuras específicas.
  • Seleccione Intervalo de tiempo para dirigirse a los usuarios que abren su aplicación por primera vez dentro del intervalo antes o después de la fecha y hora que especifique. Combine condiciones de antes y después para dirigirse a usuarios dentro de un rango de tiempo específico.

La segmentación por usuario por primera apertura está disponible después de seleccionar una aplicación para Android o iOS. Actualmente es compatible con las siguientes versiones del SDK de Remote Config: plataformas Apple SDK v9.0.0+ y Android SDK v21.1.1+ (Firebase BoM v30.3.0+).

Los análisis también deben haberse habilitado en el cliente durante el primer evento abierto.

Métricas de pruebas A/B

Cuando crea su experimento, elige una métrica principal o de objetivo que se utiliza para determinar la variante ganadora. También debe realizar un seguimiento de otras métricas que le ayudarán a comprender mejor el rendimiento de cada variante del experimento y realizar un seguimiento de las tendencias importantes que pueden diferir para cada variante, como la retención de usuarios, la estabilidad de la aplicación y los ingresos por compras dentro de la aplicación. Puede realizar un seguimiento de hasta cinco métricas sin objetivos en su experimento.

Por ejemplo, supongamos que está utilizando Remote Config para iniciar dos flujos de juegos diferentes en su aplicación y desea optimizar las compras dentro de la aplicación y los ingresos por publicidad, pero también desea realizar un seguimiento de la estabilidad y la retención de usuarios de cada variante. En este caso, podría considerar elegir Ingresos totales estimados como su métrica objetivo porque incluye ingresos por compras en la aplicación e ingresos por publicidad y luego, en Otras métricas para realizar un seguimiento , puede agregar lo siguiente:

  • Para realizar un seguimiento de la retención de usuarios diaria y semanal, agregue Retención (2-3 días) y Retención (4-7 días) .
  • Para comparar la estabilidad entre los dos flujos de juego, agregue usuarios sin fallas .
  • Para ver vistas más detalladas de cada tipo de ingresos, agregue Ingresos por compras e Ingresos publicitarios estimados .

Las siguientes tablas proporcionan detalles sobre cómo se calculan las métricas de objetivos y otras métricas.

Métricas de objetivos

Métrico Descripción
Usuarios sin fallos El porcentaje de usuarios que no encontraron errores en su aplicación que fueron detectados por el SDK de Firebase Crashlytics durante el experimento.
Ingresos publicitarios estimados Ingresos publicitarios estimados.
Ingresos totales estimados Valor combinado de compra e ingresos publicitarios estimados.
Ingresos por compras Valor combinado para todos los eventos purchase e in_app_purchase .
Retención (1 día) La cantidad de usuarios que regresan a su aplicación diariamente.
Retención (2-3 días) La cantidad de usuarios que regresan a su aplicación dentro de 2 o 3 días.
Retención (4-7 días) La cantidad de usuarios que regresan a su aplicación dentro de 4 a 7 días.
Retención (8-14 días) La cantidad de usuarios que regresan a su aplicación dentro de 8 a 14 días.
Retención (más de 15 días) La cantidad de usuarios que regresan a su aplicación 15 días o más después de la última vez que la usaron.
primero_abierto Un evento de Analytics que se activa cuando un usuario abre por primera vez una aplicación después de instalarla o reinstalarla. Se utiliza como parte de un embudo de conversión.

Otras métricas

Métrico Descripción
notificación_desestimar Un evento de Analytics que se activa cuando se descarta una notificación enviada por el redactor de notificaciones (solo Android).
notificación_recibir Un evento de Analytics que se activa cuando se recibe una notificación enviada por el redactor de notificaciones mientras la aplicación está en segundo plano (solo Android).
actualización_OS Un evento de Analytics que rastrea cuándo se actualiza el sistema operativo del dispositivo a una nueva versión. Para obtener más información, consulte Eventos recopilados automáticamente .
vista_pantalla Un evento de Analytics que rastrea las pantallas vistas dentro de su aplicación. Para obtener más información, consulte Seguimiento de vistas de pantalla .
inicio_sesión Un evento de Analytics que cuenta las sesiones de usuario en su aplicación. Para obtener más información, consulte Eventos recopilados automáticamente .

Exportación de datos de BigQuery

Puedes acceder a todos los datos analíticos relacionados con tus pruebas A/B en BigQuery . BigQuery te permite analizar los datos usando BigQuery SQL, exportarlos a otro proveedor de nube o usar los datos para tus modelos de ML personalizados. Consulta Vincular BigQuery a Firebase 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 almacenar datos, transmitir inserciones y consultar datos. Cargar y exportar datos no tiene costo. Consulta Precios de BigQuery o el entorno sandbox de BigQuery para obtener más información.

Para comenzar, asegúrese de que su proyecto de Firebase esté vinculado a BigQuery. Seleccione Configuración > Configuración del proyecto en el menú de navegación izquierdo y luego seleccione Integraciones > BigQuery > Enlace . Esta página muestra opciones para realizar la exportación de datos de análisis de BiqQuery para todas las aplicaciones del proyecto.

Para consultar datos analíticos para un experimento:

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

    Esto abre el compositor de consultas de la consola de BigQuery con una consulta de ejemplo generada automáticamente de datos de experimento precargados para su revisión. En esta consulta, su experimento está codificado como una propiedad de usuario con el nombre del experimento en la clave y la variante del experimento en el valor.

  3. En el compositor de consultas, seleccione Ejecutar consulta. Los resultados se muestran en el panel inferior.

Tenga en cuenta que, debido a que los datos de Firebase en BigQuery se actualizan solo una vez al día, los datos disponibles en la página del experimento pueden estar más actualizados que los datos disponibles en la consola de BigQuery.