Experimenta con estrategias de promoción en Firebase Predictions

Con Firebase Predictions, puedes optimizar tus promociones dentro la app para cada uno de los usuarios en función de la probabilidad de que el usuario haga una compra directa desde la app. Por ejemplo, puedes promocionar tu paquete "Premium" más costoso a los usuarios que probablemente gasten y promover el paquete básico más económico a los demás usuarios.

Luego, con las Firebase A/B Testing, puedes hacer un experimento para ver cómo esta estrategia basada en predicciones afecta los ingresos de compras directas desde la app si se comparan con tan solo promocionar siempre el paquete básico y ofrecer siempre el paquete Premium.

Antes de comenzar

Para comenzar a usar las predicciones y determinar la estrategia de promoción de tu app, debes usar Google Analytics para Firebase en la app. En particular, debes hacer lo siguiente:

  • Habilita el uso compartido de datos de Analytics en Firebase console.
  • Registra de manera explícita los eventos relacionados con los gastos que no se recopilan de forma automática, como ecommerce_purchase. (Firebase registra el evento in_app_purchase automáticamente para las compras directas desde la aplicación que se procesan mediante App Store y Play Store). Por lo general, también deberías registrar cualquier otro evento que sea relevante para la app, con el fin de maximizar los datos disponibles para hacer las clasificaciones.
  • Asegúrate de tener un volumen de datos de eventos suficiente para que Firebase haga predicciones significativas. Por lo general, 10,000 usuarios activos al mes, 500 ejemplos positivos y 500 ejemplos negativos proporcionan una cantidad suficiente de datos a Firebase Predictions.

Haz que tus promociones se puedan configurar de manera remota

Primero, configura tu app para promocionar el paquete básico o el Premium según el valor de un parámetro de Remote Config. En los siguientes pasos, configurarás Predictions y A/B Testing para establecer el parámetro de manera remota en función de diversos criterios; sin embargo, por ahora, tu app siempre promocionará el paquete básico.

Por ejemplo:

  1. Importa los SDK de Analytics y Remote Config:

    iOS (Swift)

    Agrega los SDK a tu Podfile:

    pod 'Firebase/Core'
    pod 'Firebase/RemoteConfig'
    

    Después, impórtalos:

    import Firebase
    

    Android

    implementation 'com.google.firebase:firebase-core:16.0.5'
    implementation 'com.google.firebase:firebase-config:16.1.0'
    
  2. Inicializa Remote Config y establece el valor predeterminado de la variable promoted_bundle en basic. Más tarde configurarás Predictions y A/B Testing para que establezcan esta variable de manera remota, pero asignarle un valor predeterminado en tu app te da la seguridad de que esta funcione correctamente antes de que se recuperen las variables configuradas de manera remota.

    iOS (Swift)

    self.remoteConfig = RemoteConfig.remoteConfig()
    self.remoteConfig.setDefaults(["promoted_bundle": "basic"])
    

    Java
    Android

    mConfig = FirebaseRemoteConfig.getInstance();
    
    Map<String, Object> remoteConfigDefaults = new HashMap<>();
    remoteConfigDefaults.put("promoted_bundle", "basic");
    mConfig.setDefaults(remoteConfigDefaults);

    Kotlin
    Android

    config = FirebaseRemoteConfig.getInstance()
    
    val remoteConfigDefaults = HashMap<String, Any>()
    remoteConfigDefaults["promoted_bundle"] = "basic"
    config.setDefaults(remoteConfigDefaults)
  3. Promociona el paquete especificado por el valor de promoted_bundle. Hasta que configures Predictions, este valor siempre será basic.

    iOS (Swift)

    self.remoteConfig.fetch() { (status, error) -> Void in
        if status == .success {
          self.remoteConfig.activateFetched()
        }
    
        // Act on the retrieved parameters
    
        // Set the bundle to promote based on parameters retrieved with Remote
        // Config. This depends entirely on your app, but, for example, you might
        // retrieve and use image assets based on the specified bundle name.
        self.promotedBundle = self.remoteConfig.getString("promoted_bundle")
    
        // ...
    }
    

    Java
    Android

    mConfig.fetch(CACHE_EXPIRATION)
            .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        mConfig.activateFetched();
                    }
    
                    // Act on the retrieved parameters
    
                    // Set the bundle to promote based on parameters retrieved with
                    // Remote Config. This depends entirely on your app, but for
                    // example, you might retrieve and use image assets based on the
                    // specified bundle name.
                    mPromotedBundle = mConfig.getString("promoted_bundle");
                    // ...
                }
            });

    Kotlin
    Android

    config.fetch(CACHE_EXPIRATION)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    config.activateFetched()
                }
    
                // Act on the retrieved parameters
    
                // Set the bundle to promote based on parameters retrieved with
                // Remote Config. This depends entirely on your app, but for
                // example, you might retrieve and use image assets based on the
                // specified bundle name.
                promotedBundle = config.getString("promoted_bundle")
                // ...
            }

En este punto, puedes implementar tu app en la App Store o Play Store. Los usuarios obtendrán el comportamiento de promociones predeterminado (siempre se promociona el paquete básico); no obstante, dado que los anuncios los controla una variable que se configura de manera remota, puedes cambiar las estrategias de promoción y experimentar con ellas desde Firebase console, sin necesidad de enviar actualizaciones de la app a tus usuarios.

Comienza a predecir el gasto de los usuarios

A continuación, configura el proyecto de Firebase para que comience a predecir el gasto de los usuarios.

En Firebase console, abre la sección Predictions. Si aún no aceptaste las Condiciones del Servicio de Predictions, debes hacerlo.

Una vez aceptadas las Condiciones del Servicio, se habilitará Predictions en tu proyecto. La sección de Predictions en Firebase console te permite definir predicciones personalizadas; sin embargo, para predecir el gasto, puedes usar las predicciones incorporadas de spend y not_spend, que usan la agregación de eventos de Analytics para predecir si un usuario hará una compra directa desde la app o una compra por comercio electrónico (actualmente, esta predicción no considera compras de suscripciones). Estas predicciones estarán disponibles después de que habilites Predictions y hayas registrado unas cuantas semanas de eventos de gasto.

Crea un experimento de estrategia de promociones

Ahora, crea un experimento de A/B Testing para probar el efecto sobre los ingresos de la estrategia de promociones basada en predicciones frente a siempre promocionar el paquete básico y siempre promocionar el paquete Premium.

Es conveniente que el experimento tenga tres variantes (un grupo de control, un grupo que establece un parámetro de forma incondicional y un grupo basado en predicciones) para que el experimento pueda determinar si el enfoque basado en las predicciones genera un mayor beneficio que solo aplicar el tratamiento a todos. Sin embargo, un experimento con tres variantes requiere más participantes para recopilar suficientes datos. Si tu app no tiene suficientes usuarios para que puedas ejecutar un experimento con tres variantes, puedes hacer uno con solo dos en el que se omita la variante de aplicar el tratamiento a todos.

Para crear el experimento, haz lo siguiente:

  1. En Firebase console, abre la sección A/B Testing.

  2. Crea un nuevo experimento:

    1. Haz clic en Crear experimento > Remote Config.

    2. Elige la app en la lista y especifica cuántos usuarios quieres incluir en el experimento. También puedes optar por excluir del experimento ciertas categorías de usuarios, como aquellos que gastan más.

    3. Elige Ingresos por compras en la lista de métricas objetivos y selecciona cualquier métrica adicional que desees seguir, como la participación del usuario, las eliminaciones de apps y los clics en anuncios.

    4. Define tres variantes:

      • Siempre promocionar el paquete básico (grupo de control)
      • Siempre promocionar el paquete Premium
      • Promocionar el paquete básico o el paquete Premium según la predicción del gasto

      Para el Grupo de control, crea un parámetro promoted_bundle y establécelo en (no change). Los usuarios asignados al grupo de control obtendrán el comportamiento predeterminado, que es siempre ver la promoción del paquete básico.

      Para la variante Siempre promocionar el paquete Premium, establece el parámetro promoted_bundle en premium. Los usuarios asignados a esta variante siempre ven la promoción del paquete Premium.

      Para la variante Promocionar el paquete Premium a usuarios que probablemente gasten dinero, establece el parámetro promoted_bundle en premium. Luego, establece el subconjunto de usuarios en Predecir: gasto (tolerancia media al riesgo). Los usuarios asignados a esta variante verán la promoción del paquete Premium si se predice que gastarán.

Inicia el experimento y deja que se ejecute por varios días, hasta que A/B Testing seleccione la variante ganadora. Si el experimento no puede elegir una variante ganadora, es posible que tengas que expandirlo para incluir más usuarios.

Implementa la variante ganadora para todos los usuarios

Una vez que A/B Testing haya recopilado suficiente información para declarar una variante ganadora (en este caso, la que haya maximizado los ingresos por compras), puedes decidir si implementas la variante ganadora, o bien otra variante, para todos los usuarios.

En la sección A/B Testing de Firebase console, abre la vista de detalles del experimento completado. En esta vista, puedes ver cuál fue el rendimiento de cada variante según tu métrica objetivo y cualquier métrica secundaria que hayas seleccionado. Con esta información, puedes decidir si implementarás la variante ganadora o alguna otra.

Cuando quieras implementar una variante para todos los usuarios, haz clic en more_vert > Implementar el resultado principal en la página de detalles del experimento.

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.