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

概要:Firebase Cloud Messagingをアプリに実装することで、Androidアプリでアンインストール計測を設定しましょう。

関連記事:アンインストール計測の原則

Androidアンインストール計測

Androidアンインストール計測は、AppsFlyerでアンインストール計測の設定をし、Firebase Cloud Messaging (FCM) をアプリに実装することで利用できるようになります。2021年4月以降、AppsFlyerは従来のFCMAPIとHTTP V1 APIの両方をサポートしています。FCMはV1バージョンの採用を推奨しています

アンインストール計測の実装チェックリスト
Step アクション 担当者
1 FCMをAppsFlyerに接続

連携APIを選択してください:

マーケター/ディベロッパー
2

FCMをアプリに実装

FCMをAppsFlyerでのみ使用するか、複数のプラットフォームで使用するかによって連携方法が異なります。

  1. FCMをアプリに実装してください
  2. 次のいずれかを実行してください:
  3. [オプション] ProGuardを使用する場合、ProGuardの有効化を完了してください。
デベロッパー
3 アンインストール計測のテスト デベロッパー

FCM APIをAppsFlyerに接続する

HTTP V1(ベストプラクティス)または従来のHTTPを、FCMのAPIバージョンに選択してください。

HTTP V1

FCMのAPI V1をアンインストール計測に設定する方法: 

  1. Project IDを取得する方法
    1. FCMコンソールに移動してください。
    2. プロジェクトを選択してください。
    3. Project Overview > Project設定へ進みます。

      UninstallFirebase.png

    4. Project IDをコピーしてください。これは、プロセスの後の段階で必要になります。
  2. AppsFlyerにアンインストールの役割を割り当てる方法:
    1. Service accountsタブに移動してください。
    2. Manage service account permissionsをクリックしてください。
      Google Cloud Platformに新しいブラウザタブが開きます。
    3. サイドメニューにて、Rolesを選択してください。
    4. +Create role をクリックしてください。
    5. 次のように設定を完了してください。
      • タイトル:AppsFlyer uninstalls と入力してください。
      • ID:af_uninstalls と入力してください。
      • Role launch stage(役割のローンチステージ):General availability を選択してください。
    6. cloudmessaging.messages.create を検索し選択してください。

      AddPermissions.png

    7. [追加] ボタンをクリックします。
    8. Createをクリックしてください。
  3. AppsFlyerにFCMアンインストールの役割を割り当てる方法:
    1. サイドメニューにて、IAM を選択してください。
    2. + Add をクリックしてください。
    3. 新規メンバーの項目に、af-uninstalls-tracking@af-uninstalls-tracking.iam.gserviceaccount.com を挿入してください。
    4. ロールを選択しAppsFlyer uninstallsを選択してください。
    5. Saveをクリックしてください。
      AppsFlyerのサービスアカウントにAppsFlyerアンインストールの役割が割り当てられました。 
  4. アンインストール計測をAppsFlyerで有効にする方法:
    1. AppsFlyerの管理画面内で、左メニューから設定 >アプリ設定を開きます。
    2. 必要に応じて、アンインストール計測を利用するを有効にしてください。
    3. HTTP V1 を選択してください。

      UninstallHTTPV1.png

    4. このセクションにて準備したProject IDを入力してください。
    5. 接続テストをするをクリックしてください。
      Success!というメッセージが表示されます。
    6. 設定の保存をクリックしてください。

従来のHTTP

Firebase Messagingを使用したアンインストール計測は、Android DSK V4.7.0以降でサポートされています。

  1. Firebaseサーバーキーの取得方法:
    1. Firebase Android Applicationプロジェクトを作成(まだ作成していない場合)、または Google Developer Consoleからプロジェクトを移行します(Google Developer Consoleの手順に従ってください)。詳細は、Firebaseをご覧ください。
    2. Firebase Consoleを開きます。
    3. Firebase Consoleにて、Project Settings(プロジェクト設定)に移動します(ページの左パネルでOverview(概要)の横にある歯車をクリックしてください)。

      firebase_cloud_messaging_server_key.png

    4. Cloud Messagingタブにて、2つのサーバーキーが表示されます。
    5. サーバーキーをコピーします。
  2. アンインストール計測をAppsFlyerで有効にする方法:
    1. AppsFlyerの管理画面内で、左メニューから設定 >アプリ設定を開きます。
    2. 必要に応じて、アンインストール計測を利用するを有効にしてください。
    3. 従来のHTTPを選択してください。
      UninstallLegacy.png
    4. 以前のステップで準備したFirebase/GCMサーバーキーを入力してください。
    5. 設定の保存をクリックしてください。

FCMをアプリに実装

必要に応じて、次の手順を使用してFCMをアプリに実装し、実装テストを行ってください。

FCMをアプリに実装する

  • Firebaseの最新バージョンはこちら:Firebase公式ドキュメント
  • 見つかりませんでした..」というエラーが表示される場合は、Android SDK Managerで最新のGoogleリポジトリを使用していることを確認してください。 
FCMをアプリに実装する方法:
  1. Firebase consoleから google-services.json をダウンロードしてください。
  2. アプリモジュールディレクトリに、google-services.json を追加してください。
  3. ルートレベルのbuild.gradleファイルにルールを追加して、google-servicesプラグインを含めます。
    buildscript { 
        // ... 
        dependencies { 
          // ... 
          classpath 'com.google.gms:google-services:4.2.0' // google-services plugin 
        } 
      }
    
  4. アプリレベルのbuild.gradleファイルにFCM dependencyを追加します。

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

FCMをAppsFlyer SDKでのみ使用する場合

AppsFlyerでアンインストールを計測することのみを目的にFCMを実装する場合、SDKに埋め込まれている appsFlyer.FirebaseMessagingServiceListener service を使用してください。これにより、FCMデバイストークンの受信に使用される FirebaseFirebaseMessagingService クラスが拡張されます。

アプリにappsFlyer.FirebaseMessagingServiceListener サービスを追加する方法

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

FCMを複数のプラットフォームで使用する場合

FCMを複数のプラットフォームで使用する場合、デバイストークンを収集し、それを関連する全てのプラットフォームに渡すロジックを実装する必要があります。そのためにFirebaseMessagingServiceの新しいインスタンスを拡張する方法(AppsFlyer SDKが拡張するサービスと似ています):
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
    }
}
このサービスが機能するにはAndroidManifest.xml に追加する必要があります。アプリケーションがAppsFlyer SDKを実装する前にFCMを使用している場合、サービスが拡張されている可能性が高く、ディベロッパーが次を onNewToken() メソッドに追加する必要があります。
AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(),refreshedToken); 

関連サービスを AndroidManifest.xml に追加したことを確認してください。

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

アンインストール計測にProGuardを使用する

ProGuardを使用している場合、次のルールを追加してください。

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

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

  • ここで説明しているテスト方法は、Google Play Storeで利用できるアプリ、承認待ち、直接ダウンロード、および代替アプリストアで有効です。
  • アンインストール指標はオーバービュー管理画面で確認できます。
  • アプリをアンインストールしたユーザーのリストは、アンインストールローデータレポートからご利用いただけます。

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

  1. アプリをインストールします。
  2. アプリをアンインストールしてください。!アプリをインストールした直後にアンインストールできます。
    アンインストールイベントは、アンインストール計測が毎日処理され、24時間後に登録されます。
    この期間中にアプリが再度インストールされた場合、
    アンインストールイベントは記録されません。

アプリのアンインストールイベントは、次のプラットフォームに表示されるまで最大48時間かかります:AppsFlyer管理画面にて利用可能なローデータレポート集計パフォーマンスレポート

aggregated_performance_report_uninstalls_en-us.png.

その他の情報

Androidのアンインストールプッシュ通知がサイレントでないことを解決する

Firebaseの onMessageReceived メソッドを上書きし、その中に独自のロジックを実装すると、アンインストールプッシュ通知がサイレントにならない場合があり、ユーザーエクスペリエンスに影響を与える可能性があります。これを防ぐには、メッセージに af-uinstall-tracking が含まれているかどうかを確認てください。次の例を参照してください。

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        
        if(remoteMessage.getData().containsKey("af-uinstall-tracking")){
            return;
        }else {
           // handleNotification(remoteMessage);
        }
    }
この記事は役に立ちましたか?