Ir a la consola

Experimenta con estrategias de retención de usuarios en Firebase Predictions

Puedes usar Firebase Predictions para identificar a los usuarios que podrían desvincularse de tu app y aplicarles una estrategia de retención. Por ejemplo, si tienes un juego para dispositivos móviles, podrías darles un regalo en la moneda virtual a los usuarios que, según las predicciones, podrían desvincularse.

Esta guía te muestra cómo implementar este tipo de estrategias de retención de usuarios a partir de predicciones y cómo crear experimentos de Firebase A/B Testing que te permitan determinar la eficacia de esta estrategia en comparación con otras opciones, como no otorgar regalos.

Antes de comenzar

Antes de que puedas comenzar a usar predicciones para determinar la política de retención de usuarios de tu app, debes usar Google Analytics en la aplicación. En particular, debes hacer lo siguiente:

  • Habilita el uso compartido de datos de Analytics en Firebase console.
  • Registra de forma explícita cualquier evento de Analytics que sea importante para la app y que no se registre automáticamente. Puedes registrar estos eventos para mejorar la calidad de las clasificaciones futuras.
  • 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 tu política de regalos se pueda configurar de manera remota

Primero, configura tu app para que les otorgue regalos a los jugadores según el valor de un parámetro de Remote Config. Dado que solo quieres otorgar este regalo una sola vez, deberías verificar si el jugador ya recibió el regalo.

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 no otorgará regalos.

Por ejemplo:

  1. Importa los SDK de Analytics y Remote Config:

    iOS (Swift)

    Agrega los SDK a tu Podfile:

    pod 'Firebase/Analytics'
    pod 'Firebase/RemoteConfig'
    

    Después, impórtalos:

    import Firebase
    

    Android

    implementation 'com.google.firebase:firebase-core:17.0.1'
    implementation 'com.google.firebase:firebase-config:18.0.0'
    
  2. Inicializa Remote Config y establece el valor predeterminado de la variable grant_retention_gift en falso. 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(["grant_retention_gift": false])
    
    // ...
    
    self.remoteConfig.fetch() { (status, error) -> Void in
        if status == .success {
          self.remoteConfig.activateFetched()
        }
    
        // Act on the retrieved parameters. For example, grant the retention gift to
        // players who haven't yet received one.
        let shouldGrantGift = self.remoteConfig["grant_retention_gift"].booleanValue
        if shouldGrantGift && !playerAlreadyReceivedGift() {
            grantGiftToPlayer()
        }
    }
    

    Java

    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    
    Map<String, Object> remoteConfigDefaults = new HashMap<>();
    remoteConfigDefaults.put("grant_retention_gift", false);
    config.setDefaults(remoteConfigDefaults);
    
    // ...
    
    config.fetch(CACHE_EXPIRATION)
            .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        config.activateFetched();
                    }
    
                    // Act on the retrieved parameters. For example, grant the
                    // retention gift to players who haven't yet received one.
                    boolean shouldGrantGift = config.getBoolean("grant_retention_gift");
                    if (shouldGrantGift && !playerAlreadyReceivedGift()) {
                        grantGiftToPlayer();
                    }
                }
            });

    Kotlin

    val config = FirebaseRemoteConfig.getInstance()
    
    val remoteConfigDefaults = HashMap<String, Any>()
    remoteConfigDefaults["grant_retention_gift"] = false
    config.setDefaults(remoteConfigDefaults)
    
    // ...
    
    config.fetch(CACHE_EXPIRATION)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    config.activateFetched()
                }
    
                // Act on the retrieved parameters. For example, grant the
                // retention gift to players who haven't yet received one.
                val shouldGrantGift = config.getBoolean("grant_retention_gift")
                if (shouldGrantGift && !playerAlreadyReceivedGift()) {
                    grantGiftToPlayer()
                }
            }

En este punto, puedes implementar tu juego en la App Store o Play Store. Por ahora, los jugadores obtendrán el comportamiento predeterminado, en el que no reciben regalos de retención; no obstante, dado que la política de regalos la controla una variable que se puede configurar de manera remota, puedes cambiar las estrategias de retención y experimentar con ellas desde Firebase console, sin necesidad de enviar actualizaciones de la app a tus usuarios.

Comienza a predecir la deserción de usuarios

A continuación, configura tu proyecto de Firebase para que comience a predecir cuándo podrían desvincularse 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 Predictions en Firebase console te permite definir predicciones personalizadas; sin embargo, para predecir la deserción, puedes usar una predicción incorporada, que usa la agregación de eventos de Analytics para predecir si un usuario está a punto de dejar de usar la app. Estas predicciones estarán disponibles después de que habilites Predictions y hayas registrado unas cuantas semanas de eventos de Analytics.

Crea un experimento de estrategia de retención de usuarios

A continuación, crea un experimento de A/B Testing para probar la eficacia del regalo en la retención de usuarios:

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 Retención (de 2 a 3 días) en la lista de métricas objetivo 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 dos variantes:

      • Sin regalo de retención (grupo de control)
      • Otorgar regalo a desertores

      Para definir el Grupo de control, crea un parámetro grant_retention_gift y establécelo en (no change). Los usuarios asignados al grupo de control obtendrán el comportamiento predeterminado, con el que no se les dan regalos.

      Para definir la variante Otorgar regalo a desertores, establece el parámetro grant_retention_gift en true. Luego, establece el subconjunto de usuarios en Predecir: deserción (tolerancia media al riesgo). Los usuarios asignados a esta variante reciben un regalo si se predice que desertarán.

Inicia el experimento y deja que se ejecute por varios días, hasta que las pruebas A/B seleccionen 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 las pruebas A/B hayan recopilado suficiente información para declarar una variante ganadora (en este caso, la que haya maximizado los ingresos por compras), puedes decidir si implementas esta variante, o bien otra, 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.

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