Mesure des désinstallations

Vue d'ensemble

Configurer la mesure des désinstallations dans les apps Android en utilisant le SDK AppsFlyer et Firebase Cloud Messaging.

Intégration de la mesure des désinstallations sous Android

Ce document détaille l'intégration de la mesure des désinstallations dans les cas suivants :

  • Apps qui utilisent déjà FCM
  • Apps qui n'utilisent pas FCM.

La dernière version du client FCM se trouve ici.

Apps using FCM

Pour ajouter la mesure des désinstallations à une intégration FCM existante :
in the onNewToken() surcharge, appelez updateServerUninstallToken:

@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
}

Apps not using FCM

Pour intégrer la mesure des désinstallations :

  1. Télécharger google-services.json from Firebase console.
  2. Ajoutez google-services.json au répertoire des modules de l'application
  3. Ajoutez les dépendances suivantes au niveau de la racine build.gradle file:
    buildscript { 
        // ... 
        dependencies { 
          // ... 
          classpath 'com.google.gms:google-services:4.2.0' // google-services plugin 
        } 
      }
    
  4. Au niveau de l'application build.gradle, ajoutez les dépendances suivantes :
    dependencies {
        // ...
        implementation 'com.google.firebase:firebase-messaging:23.0.3'
        implementation 'com.google.firebase:firebase-core:20.1.2'
        // ...
    }
    
    Remarque : si vous recevez un message d'erreur de type «Could not find method implementation()...» (implémentation de la méthode introuvable), vérifiez que vous disposez de la dernière version de Google Repository dans le gestionnaire de SDK Android.
1169
  1. Si FCM vous sert uniquement à mesurer les désinstallations dans AppsFlyer, utilisez appsFlyer.FirebaseMessagingServiceListener ,qui est intégré au SDK. Cela permet de prolonger la classe FirebaseMessagingService qui vise à récupérer le jeton d'appareil FCM et les appels updateServerUninstallToken. Pour ajouter le service appsFlyer.FirebaseMessagingServiceListener à l’application :
    <application
       <!-- ... -->
          <service
            android:name="com.appsflyer.FirebaseMessagingServiceListener">
            <intent-filter>
              <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
          </service>
       <!-- ... -->
    </application>
    
    Dans le cas contraire, remplacez la méthode FirebaseMessagingService.onNewToken() et appelez updateServerUninstallToken:
    @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
    }
    

📘

Remarque

Si vous utilisez Proguard, veillez à ajouter la règle suivante :

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

Tester la mesure des désinstallations Android

La procédure de test détaillée est valable pour les apps disponibles dans le Google Play Store, en attente, en téléchargement direct, et issues des app stores alternatifs.

Pour tester la mesure des désinstallations Android :

  1. Installez l'app.
  2. Désinstallez l'application. Vous pouvez désinstaller l'application immédiatement après l'avoir installée.
  3. Attendez que la désinstallation s'affiche dans le tableau de bord. Cela peut prendre jusqu'à 48 heures.

Attention

  • L'événement de désinstallation s'enregistre dans les 24 heures sachant que le traitement de la mesure de désinstallation est quotidien.
  • Si l'app est réinstallée durant cette intervalle, aucun événement de désinstallation n'est enregistré.

Remplacement des FCM onMessageReceived

Remplacement des FCM onMessageReceived la méthode pour implémenter votre propre méthode peut donner des notifications push de désinstallation non silencieuses. Cela peut impacter l'expérience utilisateur. Pour éviter que cela se produise, vérifiez que le message contient bien af-uinstall-tracking. Cf exemple suivant :

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        
        if(remoteMessage.getData().containsKey("af-uinstall-tracking")){ // "uinstall" is not a typo
            return;
        } else {
           // handleNotification(remoteMessage);
        }
    }