Измерение удалений

Обзор

Настройте измерение количества удалений в приложениях для Android с помощью SDK AppsFlyer и службы Firebase Cloud Messaging.

Интеграция измерения количества удалений для Android

В этом документе рассматривается интеграция измерения удалений для следующих сценариев:

  • Приложения, которые уже используют FCM.
  • Приложения, которые не используют FCM.

Последняя версия клиента FCM доступна здесь.

Apps using FCM

Чтобы добавить измерение количества удалений в работающую интеграцию FCM:
in the onNewToken() в переопределении вызовите 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

Чтобы интегрировать измерение количества удалений:

  1. Загрузить google-services.json from Firebase console.
  2. Добавьте google-services.json в каталог модулей своего приложения
  3. Добавьте следующие зависимости в файл корневого уровня build.gradle file:
    buildscript { 
        // ... 
        dependencies { 
          // ... 
          classpath 'com.google.gms:google-services:4.2.0' // google-services plugin 
        } 
      }
    
  4. В файле уровня приложения build.gradleдобавьте следующие зависимости:
    dependencies {
        // ...
        implementation 'com.google.firebase:firebase-messaging:23.0.3'
        implementation 'com.google.firebase:firebase-core:20.1.2'
        // ...
    }
    
    Примечание. В случае появления ошибки "Could not find method implementation()..." (Не удалось найти реализацию метода()...), убедитесь, что программа Android SDK Manager использует последний репозиторий Google. 
1169
  1. Если вы используете FCM только для измерения удалений в AppsFlyer, используйте службу appsFlyer.FirebaseMessagingServiceListener , встроенную в SDK. Она расширяет класс FirebaseMessagingService , используемый для получения токена устройства FCM, и вызывает updateServerUninstallToken. Чтобы добавить службу appsFlyer.FirebaseMessagingServiceListener в приложение:
    <application
       <!-- ... -->
          <service
            android:name="com.appsflyer.FirebaseMessagingServiceListener">
            <intent-filter>
              <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
          </service>
       <!-- ... -->
    </application>
    
    В противном случае переопределите метод FirebaseMessagingService.onNewToken() и вызовите 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
    }
    

📘

Примечание

Если вы используете утилиту ProGuard, добавьте следующее правило:

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

Тестирование измерения количества удалений для устройств на Android

Описанная процедура тестирования действительна для приложений, доступных в магазине Google Play, ожидающих публикации, скачиваемых напрямую и доступных в альтернативных магазинах приложений. 

Чтобы протестировать измерение количества удалений для устройств на Android:

  1. Установите приложение.
  2. Удалите приложение. Приложение можно удалить сразу после установки.
  3. Подождите, пока сообщение об удалении появится на дэшборде. Это может занять до 48 часов.

Факторы, которые необходимо учитывать

  • Событие удаления регистрируется в течение 24 часов, так как данные об удалении обрабатываются ежедневно.
  • Если приложение переустанавливается в течение этого времени, событие удаления не регистрируется.

Переопределение FCM onMessageReceived

Переопределение FCM onMessageReceived на свою собственную логику,
это может привести к тому, что push-уведомления об удалениях приложений станут не бесшумными. Это может повлиять на пользовательский опыт. Чтобы этого не допустить, проверьте, что сообщение содержит af-uninstall-tracking. Рассмотрим следующий пример.

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