アンインストール計測

概要

AppsFlyer SDKとFirebase Cloud Messagingを使用して、Androidアプリのアンインストール計測を実装します。

Androidアプリのアンインストール計測実装

このドキュメントでは、次のシナリオでのアンインストール計測の実装について説明します:

  • 既にFCMを使用しているアプリ
  • FCMを使用しないアプリ

最新のFCMクライアントバージョンは こちらで確認できます。

Apps using FCM

既存のFCM連携にアンインストール計測を追加するには:
in the onNewToken() override, invoke 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. Add the google-services.json to the app module directory
  3. Add the following dependencies to your root-level build.gradle file:
    buildscript { 
        // ... 
        dependencies { 
          // ... 
          classpath 'com.google.gms:google-services:4.2.0' // google-services plugin 
        } 
      }
    
  4. In the app-level build.gradle, add the following dependencies:
    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マネージャーに最新のGoogleリポジトリがあることを確認してください。
1169
  1. If you use FCM only to measure uninstalls in AppsFlyer, use appsFlyer.FirebaseMessagingServiceListener service, embedded in the SDK. This extends the FirebaseMessagingService class, used to receive the FCM Device Token and calls updateServerUninstallToken. To add appsFlyer.FirebaseMessagingServiceListener service to the app:
    <application
       <!-- ... -->
          <service
            android:name="com.appsflyer.FirebaseMessagingServiceListener">
            <intent-filter>
              <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
          </service>
       <!-- ... -->
    </application>
    
    Otherwise, override the FirebaseMessagingService.onNewToken() method and call 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 Storeで利用できるアプリ、承認待ち、直接ダウンロード、および代替アプリストアで有効です。

Androidアンインストール計測のテスト方法:

  1. アプリをインストールします。
  2. アプリをアンインストールします。 アプリをインストールした直後にアンインストールできます。
  3. アンインストールデータがAppsFlyer管理画面に表示されるのを待ちます。これには最大48時間かかることがあります。

注意事項

  • アンインストール計測は毎日デイリーで処理されるため、アンインストールイベントは24時間以内に登録されます。
  • この間にアプリが再インストールされた場合、 アンインストールイベントは記録されません

FCMのオーバーライド: onMessageReceived

FCMのオーバーライド: onMessageReceived method and implementing your own logic
in it might cause uninstall push notifications to not be silent. This can impact the user experience. To prevent this, verify that the message contains af-uinstall-tracking. See the following example:

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