Métrica de desinstalações

Visão Geral

Configure a medição de desinstalação em aplicativos Android usando o SDK da AppsFlyer e o Firebase Cloud Messaging.

Integrando a métrica de desinstalação para Android

Este documento fala sobre a integração da métrica de desinstalação para os seguintes cenários:

  • Aplicativos que já usam o FCM
  • Aplicativos que não usam o FCM.

A versão mais recente do FCM do cliente pode ser encontrada aqui.

Apps using FCM

Para adicionar uma métrica de desinstalação a uma integração existente do FCM:
in the onNewToken() , invoque 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

Para integrar a métrica de desinstalação:

  1. Baixar google-services.json from Firebase console.
  2. Adicione o google-services.json ao diretório do módulo do app
  3. Adicione as seguintes dependências ao seu arquivo de nível raiz build.gradle file:
    buildscript { 
        // ... 
        dependencies { 
          // ... 
          classpath 'com.google.gms:google-services:4.2.0' // google-services plugin 
        } 
      }
    
  4. No nível do aplicativo build.gradle, adicione as seguintes dependências:
    dependencies {
        // ...
        implementation 'com.google.firebase:firebase-messaging:23.0.3'
        implementation 'com.google.firebase:firebase-core:20.1.2'
        // ...
    }
    
    Observação: se você receber um erro "Não foi possível encontrar implementação do método()...", verifique se você tem o Repositório do Google mais recente no Android SDK Manager.
1169
  1. Se você usa o FCM apenas para medir desinstalações na AppsFlyer, use o serviço appsFlyer.FirebaseMessagingServiceListener , incorporado no SDK. Isso estende a classe FirebaseMessagingService , usada para receber o token do dispositivo FCM e chamar updateServerUninstallToken. Para adicionar o serviço appsFlyer.FirebaseMessagingServiceListener ao aplicativo:
    <application
       <!-- ... -->
          <service
            android:name="com.appsflyer.FirebaseMessagingServiceListener">
            <intent-filter>
              <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
          </service>
       <!-- ... -->
    </application>
    
    Caso contrário, substitua o método FirebaseMessagingService.onNewToken() e chame 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
    }
    

📘

Observação

Se você usa Proguard, adicione a seguinte regra:

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

Testando a métrica de desinstalação para Android

O procedimento de teste descrito é válido para aplicativos disponíveis na Google Play Store, download pendente, download direto e app stores alternativas.

Para testar a métrica de desinstalação do Android:

  1. Instale o aplicativo.
  2. Desinstale o aplicativo. Você pode desinstalar o aplicativo imediatamente após instalá-lo.
  3. Aguarde até que a desinstalação apareça no painel. Isso pode levar até 48 horas.

considerações

  • O evento de desinstalação é registrado em 24 horas à medida que a métrica de desinstalação é processada diariamente.
  • Se o aplicativo for reinstalado durante esse período, nenhum evento de desinstalação será registrado.

Substituindo FCM's onMessageReceived

Substituindo FCM's onMessageReceived e implementar sua própria lógica nele pode fazer com que as notificações push de desinstalação não sejam silenciosas. Isso pode impactar a experiência do usuário. Para evitar que isso aconteça, verifique se a mensagem contém af-uinstall-tracking. Veja o exemplo a seguir:

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