Integra la medición de desinstalaciones para Android en una aplicación

En resumen: Configura la medición de desinstalaciones en aplicaciones para Android integrando Firebase Cloud Messaging en la aplicación.

Lectura relacionada: Principios de la medición de desinstalaciones

Medición de desinstalaciones Android

La medición de desinstalaciones para Android está disponible con la configuración de la medición de desinstalaciones en AppsFlyer y la adopción de Firebase Cloud Messaging (FCM) en tu aplicación. A partir del 2021 de abril, AppsFlyer admite tanto la API heredada de FCM como la API HTTP V1. FCM recomienda la adopción de la versión V1

Lista de verificación de la implementación de la medición de desinstalaciones 
Paso Acción Responsabilidad
1 Conectar FCM a AppsFlyer

Selecciona una API de integración:

Marketer/Desarrollador
2

Integrar FCM en la aplicación

La integración difiere si usas FCM solo con AppsFlyer o lo usas con varias plataformas.

  1. Adopta FCM en la aplicación.
  2. Realiza una de las siguientes acciones:
  3. [Opcional] Si usas Proguard, completa Habilitar Proguard.
desarrollador
3 Probar la medición de desinstalaciones desarrollador

Conectar la API de FCM a AppsFlyer

Selecciona una versión de la API de FCM [Práctica recomendada] HTTP V1 o la HTTP heredada. 

HTTP V1

Para configurar FCM API V1 para desinstalaciones:

  1. Para obtener el ID del proyecto:
    1. Dirígete a la consola de FCM.
    2. Selecciona un proyecto. 
    3. Dirígete a Información general del proyecto > Configuración del proyecto.

      UninstallFirebase.png

    4. Copia el ID del proyecto. Lo necesitarás más adelante en el proceso. 
  2. Para asignar a AppsFlyer el rol de desinstalación:
    1. Dirígete a la pestaña Cuentas de servicio. 
    2. Haz clic en Administrar permisos de cuenta de servicio
      Se abre una pestaña nueva del navegador en Google Cloud Platform.
    3. En el menú lateral, selecciona Roles
    4. Haz clic en Crear rol +.
    5. Completa lo siguiente:
      • Título: Ingresa Desinstalaciones de AppsFlyer.
      • ID: Ingresa af_uninstalls
      • Etapa de lanzamiento de roles: selecciona Disponibilidad general
    6. Busca y luego selecciona cloudmessaging.messages.create.

      AddPermissions.png

    7. Haz clic en Agregar.
    8. Haz clic en Crear
  3. Para asignar a AppsFlyer el rol de desinstalación de FCM:
    1. En el menú lateral, selecciona IAM.
    2. Haz clic en Agregar +.
    3. En el campo Miembros nuevos, inserta af-uninstalls-tracking@af-uninstalls-tracking.iam.gserviceaccount.com
    4. Selecciona un rol, selecciona Desinstalaciones de AppsFlyer.
    5. Haz clic en Guardar
      A la cuenta de servicio de AppsFlyer se le ha asignado la función de desinstalaciones de AppsFlyer. 
  4. Para habilitar la medición de desinstalaciones en AppsFlyer:
    1. En AppsFlyer, ve a Configuración > Configuración de la aplicación
    2. Si es necesario, activa Medición de desinstalaciones
    3. Selecciona HTTP V1.

      UninstallHTTPV1.png

    4. Ingresa el ID del proyecto que copiaste anteriormente en esta sección.
    5. Haz clic en Probar conexión.
      Aparecerá el mensaje ¡Éxito!. 
    6. Haz clic en Guardar configuración. 

HTTP heredado

La medición de desinstalaciones mediante Firebase Messaging se admite a partir de la versión 4.7.0+ del SDK de Android.

  1. Para obtener la clave de servidor de Firebase:
    1. Crea un proyecto de Aplicación de Firebase para Android (si no lo hiciste antes) o migra tu proyecto desde la Consola para desarrolladores de Google (sigue las instrucciones que figuran allí). Para obtener más información, visita Firebase
    2. Abre la Consola de Firebase.
    3. En la página de la consola Firebase, navega hasta Configuración del proyecto (haz clic en el icono de la rueda dentada junto a Información general en el panel izquierdo de la página).

      firebase_cloud_messaging_server_key.png

    4. En la pestaña Mensajes en la nube (Cloud messaging), verás dos claves de servidor.
    5. Copia la clave de servidor.
  2. Para habilitar la medición de desinstalaciones en AppsFlyer:
    1. En AppsFlyer, ve a Configuración > Configuración de la aplicación
    2. Si es necesario, activa Medición de desinstalaciones
    3. Selecciona HTTP heredado.
      UninstallLegacy.png
    4. Ingresa la clave de Firebase/Mensajes en nube de Google (GCM) que copiaste en el paso anterior.
    5. Haz clic en Guardar configuración. 

Integrar FCM en la aplicación

Usa los siguientes procedimientos (según sea necesario) para integrar FCM en la aplicación y probar la integración.

Adopta FCM en la aplicación

  • Puedes encontrar la última versión de Firebase aquí: documento oficial de Firebase.
  • Si recibes un mensaje de error que dice "No se pudo encontrar...", asegúrate de tener el último Repositorio de Google en el Administrador del SDK de Android. 
Para adoptar FCM en tu aplicación:
  1. Descarga google-services.json de la consola Firebase.
  2. Agrega google-services.json al directorio de módulos de tu aplicación.
  3. Agrega reglas a tu archivo build.gradle del nivel de raíz para incluir el plugin (complemento) google-services:
    buildscript { 
        // ... 
        dependencies { 
          // ... 
          classpath 'com.google.gms:google-services:4.2.0' // google-services plugin 
        } 
      }
    
  4. Agrega la dependencia de FCM a tu archivo build.gradle del nivel de aplicación:

    dependencies {
       implementation 'com.google.firebase:firebase-messaging:17.3.4'
    }
    
    // ADD THIS AT THE BOTTOM 
    apply plugin: 'com.google.gms.google-services
    

Usa FCM solo con el SDK de AppsFlyer

Si el único propósito de integrar FCM es medir las desinstalaciones en AppsFlyer, usa el servicio appsFlyer.FirebaseMessagingServiceListener, integrado en el SDK. Esto amplía la clase FirebaseFirebaseMessagingService, que se usa para recibir el token de dispositivo de FCM.

Para agregar el servicio appsFlyer.FirebaseMessagingServiceListener a la aplicación:

<application
   <!-- ... -->
      <service
        android:name="com.appsflyer.FirebaseMessagingServiceListener">
        <intent-filter>
          <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
      </service>
   <!-- ... -->
</application>

Usa FCM con varias plataformas

Si quieres usar FCM con más de una plataforma, SDK o ambos, debes implementar una lógica que recopile el token del dispositivo y lo pase a todas las plataformas correspondientes. Para hacerlo ampliando una instancia nueva de FirebaseMessagingService (de manera similar al servicio que amplía el SDK de AppsFlyer):
import com.appsflyer.AppsFlyerLib;
import com.google.firebase.messaging.FirebaseMessagingService;

public class MyNewFirebaseManager extends FirebaseMessagingService {

    @Override
    public void onNewToken(String s) {
        super.onNewToken(s);

        // Sending new token to AppsFlyer
       	       AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), s);

        // the rest of the code that makes use of the token goes in this method as well
    }
}
Para funcionar, ese servicio debe agregarse a AndroidManifest.xml: Si la aplicación ya usaba FCM antes de integrar el SDK de AppsFlyer, lo más probable es que este servicio ya se haya ampliado y que el desarrollador solo necesite agregar lo siguiente al método onNewToken():
AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), refreshedToken); 

Verifica que se haya agregado el servicio relevante a AndroidManifest.xml.

<service
    android:name=".MyNewFirebaseManager">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

Uso de ProGuard con medición de desinstalaciones

Si estás utilizando ProGuard, agrega la siguiente regla:

-dontwarn com.appsflyer.**
-keep public class com.google.firebase.messaging.FirebaseMessagingService {
  public *;
}

Probar la medición de desinstalaciones en Android

  • El procedimiento de prueba descrito es válido para aplicaciones disponibles a través de Google Play Store, pendientes, de descarga directa y a través de tiendas de aplicaciones alternativas. 
  • La métrica de Desinstalaciones está disponible en el dashboard de información general.
  • La lista de usuarios que desinstalan la aplicación está disponible en el reporte de raw data de desinstalaciones.

Para probar la medición de desinstalaciones en Android:

  1. Instala la aplicación.
  2. Desinstala la aplicación. Nota: Puedes desinstalar la aplicación inmediatamente después de instalarla.
    El evento de desinstalación se registra dentro de las 24 horas mientras se procesa la medición de desinstalación a diario.
    Si la aplicación se reinstala durante este tiempo, no se registra ningún evento de desinstalación.

El evento de desinstalación de la aplicación tarda hasta 48 horas en aparecer en los reportes de raw data y en el reporte agregado de rendimiento en tu dashboard de AppsFlyer.

aggregated_performance_report_uninstalls_en-us.png.

Otra información

Resolver que la notificación push de desinstalación de Android no sea silenciosa

Anular el método onMessageReceived de FCM e implementar tu propia lógica puede hacer que las notificaciones push de desinstalación no sean silenciosas. Esto puede afectar la experiencia del usuario. Para evitarlo, verifica que el mensaje contenga af-uinstall-tracking. Mira el siguiente ejemplo:

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        
        if(remoteMessage.getData().containsKey("af-uinstall-tracking")){
            return;
        } else {
           // handleNotification(remoteMessage);
        }
    }
¿Fue útil este artículo?