Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Cree experimentos de configuración remota de Firebase con pruebas A/B

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Cuando usa Firebase Remote Config para implementar configuraciones para una aplicación con una base de usuarios activa, quiere asegurarse de hacerlo bien. Puede utilizar los experimentos de prueba A/B para determinar mejor lo siguiente:

  • La mejor manera de implementar una característica 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 función nueva 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 actualmente. 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 finalice el experimento.
  • La mejor manera de optimizar la experiencia del usuario para un objetivo comercial. A veces, está 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 está superando la línea de base para su objetivo seleccionado.

Para realizar pruebas A/B de variantes de características 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 cuando creó su proyecto, puede habilitarlo en la pestaña Integraciones , a la que puede acceder usando > Configuración del proyecto en la consola de Firebase .

  2. En la sección Engage de la barra de navegación de Firebase Console , haga clic en Pruebas A/B .

  3. Haga clic en Crear experimento y luego seleccione Configuración remota 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. Rellene los campos de Orientación , eligiendo 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 , luego eligiendo opciones de la siguiente lista:

    • Versión: una o más versiones de su 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 que se utilizan para orientar 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: Diríjase a los usuarios en función de 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 de Android o iOS. Actualmente es compatible con las siguientes versiones de SDK de Remote Config: SDK de plataformas Apple v9.0.0+ y SDK de Android v21.1.1+ (Firebase BoM v30.3.0+).

      Analytics también debe 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 equitativamente entre la línea de base y una o más variantes en su experimento. Esto puede ser cualquier porcentaje entre 0.01% y 100%. Los usuarios se asignan aleatoriamente a cada experimento, incluidos los experimentos duplicados.

  7. Opcionalmente, configure un evento de activación para asegurarse de que solo se cuenten en su experimento los datos de los usuarios que activaron primero 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 usar porque siempre ocurren antes de que se activen los valores obtenidos:

    • 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 las métricas adicionales que desee de la lista desplegable. Estos incluyen objetivos integrados (compras, ingresos, retención, usuarios sin fallas, etc.), eventos de conversión de Analytics y otros eventos de Analytics. Cuando haya terminado, haga clic en Siguiente .

  9. En la sección Variantes , elegirá 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 para experimentar. Puede crear un parámetro que no se haya utilizado anteriormente en la consola de Firebase, pero debe existir en su 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 sin cambios es el mismo para los usuarios que no están incluidos en el experimento.

  12. Expanda Pesos de variantes para ver o cambiar el peso de variantes para el experimento. De forma predeterminada, cada variante se pondera por igual. Tenga en cuenta que los pesos desiguales pueden aumentar el tiempo de recopilación de datos y los pesos no se pueden cambiar después de que comience el experimento .

  13. Haga clic en Revisar para guardar su experimento.

Tiene permitido hasta 300 experimentos por proyecto, que pueden consistir en hasta 24 experimentos en ejecución, con el resto como borrador o completado.

Valide su experimento en un dispositivo de prueba

Para cada instalación de Firebase, puede recuperar el token de autenticación de instalación asociado. Puede usar 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

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
        .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().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 (o En ejecución para experimentos de configuración remota), 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 de experimento para enviar a ese dispositivo de prueba.
  5. Ejecute la aplicación y confirme que la variante seleccionada se recibe en el dispositivo de prueba.

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

Administra tu experimento

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

Cuando termine su experimento, puede tomar nota de la configuración utilizada por la variante ganadora y luego implementar esa configuración para todos los usuarios. O bien, puede ejecutar otro experimento.

Iniciar un experimento

  1. En la sección Engage de la barra de navegación de Firebase Console , haga 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 tiene usuarios que se incluirían en su experimento, expanda los detalles del borrador y busque un número superior al 0 % en la sección Orientación y distribución (por ejemplo, 1 % de usuarios que coincidan con los criterios ).
  4. Para cambiar su experimento, haga clic en Editar .
  5. Para comenzar su experimento, haga clic en Iniciar experimento . Puede ejecutar hasta 24 experimentos por proyecto a la vez.

Supervisar un experimento

Una vez que un experimento ha estado ejecutándose durante un tiempo, puede verificar su progreso y ver cómo se ven los resultados para los usuarios que han participado en su experimento hasta el momento.

  1. En la sección Engage de la barra de navegación de Firebase Console , haga clic en Pruebas A/B .
  2. Haga clic en En ejecución y, a continuación, 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 desde la línea de base : una medida de la mejora de una métrica para una variante dada 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 de 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 acumulativo observado para la línea de base o la variante. El valor se usa para medir el rendimiento de cada variante del experimento y se usa para calcular Mejora , Rango de valor , Probabilidad de superar la línea de base y Probabilidad de ser la mejor variante . Según la métrica que se mida, esta columna puede tener la etiqueta "Duración por usuario", "Ingresos por usuario", "Tasa de retención" o "Tasa de conversión".
  3. Después de que su experimento se haya ejecutado por un tiempo (al menos 7 días para FCM y Mensajería en la aplicación o 14 días para Configuración remota), los datos en esta página indican qué variante, si alguna, es la "líder". Algunas medidas van acompañadas de un gráfico de barras que presenta los datos en un formato visual.

Implementar un experimento para todos los usuarios

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

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

    • Para un experimento que usa el redactor de notificaciones , use el cuadro de diálogo Desplegar 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 agregarán como una nueva condición en su plantilla, para garantizar que el lanzamiento solo afecte a los usuarios objetivo del 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 , use 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, será redirigido a la pantalla de redacción de FIAM para realizar cambios (si es necesario) antes de publicar.

Expandir 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 mayor porcentaje de la base de usuarios de la aplicación.

  1. En la sección Engage de la barra de navegación de Firebase Console , haga 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 Segmentación muestra una opción para aumentar el porcentaje de usuarios que están en el experimento que se está ejecutando actualmente. 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 de la barra de navegación de Firebase Console , haga clic en Pruebas A/B .
  2. Haga clic en Completado o En ejecución , coloque el cursor sobre su experimento, haga clic en el menú contextual ( ) y luego haga clic en Duplicar experimento o Detener experimento .

Segmentación de usuarios

Puede segmentar a los usuarios para incluirlos en su experimento utilizando los siguientes criterios de segmentación por usuario.

Criterio de orientació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.

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

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

Audiencia(s) de usuarios incluye todo,
incluye al menos uno de,
no incluye todo,
no incluye al menos uno de
Seleccione una o más audiencias de Analytics para dirigirse a los usuarios que podrían estar incluidos 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 de procesamiento de datos de Analytics. Es más probable que experimente este retraso con los usuarios nuevos, que normalmente 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 califica técnicamente 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 de 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 gama de opciones para seleccionar valores de propiedad de usuario.

En el cliente, solo puede establecer valores de cadena para las propiedades del usuario. Para las condiciones que utilizan operadores numéricos, el servicio de configuración remota convierte el valor de la propiedad de usuario correspondiente en un número entero/flotante.
Al usar el operador contiene expresiones regulares, puede crear expresiones regulares en formato RE2 . Su expresión regular puede coincidir con la totalidad o parte de la cadena de la versión de destino. También puede usar 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 utilizados para 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 en función de la primera vez que abren su aplicación:

  • Seleccione Usuarios nuevos 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 anterior o posterior a la fecha y la hora que especifique. Combine las condiciones Antes y Después para dirigirse a los usuarios dentro de un rango de tiempo específico.

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

Analytics también debe haberse habilitado en el cliente durante el primer evento abierto.

Métricas de prueba A/B

Cuando crea su experimento, elige una métrica principal o de objetivo que se usa para determinar la variante ganadora. También debe realizar un seguimiento de otras métricas para ayudarlo 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 no relacionadas con objetivos en su experimento.

Por ejemplo, supongamos que está utilizando Remote Config para lanzar dos flujos de juego diferentes en su aplicación y desea optimizar las compras dentro de la aplicación y los ingresos publicitarios, 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 la métrica de su objetivo, ya que incluye los ingresos por compras dentro de la aplicación y los ingresos por publicidad, y luego, en Otras métricas para realizar un seguimiento , podría agregar lo siguiente:

  • Para realizar un seguimiento de su 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 bloqueos .
  • 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 bloqueos 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 de 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-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 o más días después de la última vez que la usaron.
primer_abierto Un evento de Analytics que se activa cuando un usuario abre una aplicación por primera vez 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_descartar 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).
os_update Un evento de Analytics que realiza un seguimiento cuando el sistema operativo del dispositivo se actualiza 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 .
sesión_inicio 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

Puede acceder a todos los datos analíticos relacionados con sus pruebas A/B en BigQuery . BigQuery le permite analizar los datos con BigQuery SQL, exportarlos a otro proveedor de la nube o usar los datos para sus modelos de aprendizaje automático 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. Consulte los precios de BigQuery o la zona de pruebas 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 la barra de navegación izquierda, luego seleccione Integraciones > BigQuery > Vínculo . Esta página muestra opciones para realizar la exportación de datos analíticos de BiqQuery para todas las aplicaciones del proyecto.

Para consultar los datos analíticos de un experimento:

  1. En su lista de experimentos activos , seleccione el experimento deseado para abrir la página de resultados del experimento.
  2. Desde 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 experimentos precargados para su revisión. En esta consulta, su experimento se codifica como una propiedad de usuario con el nombre del experimento en la clave y la variante del experimento en el valor.

  3. En el redactor 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.