アンインストールと再インストールの計測

Adjust Android SDKを使用して、アンインストールと再インストールを計測します。AdjustはPushトークンを使用することでユーザーのデバイスにサイレントPush通知を送信し、アプリが現在インストールされているかどうかを確認します。

この機能をアプリに追加するには、以下の手順に従ってください。

注意:

アンインストール・再インストール計測は、デバイスにGoogle Play 開発者サービスがインストールされている場合、App Storeでの公開アプリまたは直接ダウンロードされたアプリを対象にご利用いただけます。 AmazonやHuaweiデバイスなど、Google Play 開発者サービスに対応していないデバイスは現在サポートされていません。

事前準備

はじめに、以下の設定手順をご覧ください。

要件

Google FCMをAdjustに接続する

GoogleのFirebase Cloud Messaging(FCM)APIを使用してサイレントPush通知を設定することで、アンインストールと再インストールを計測できます。 AdjustがGoogle FCMに接続するには、FCM HTTP v1 APIプライベートキーが必要です。

重要:

従来のサービスキーを使用するのではなく、新しいFCM HTTP v1プライベートキーを生成してください。Googleは、2024年6月20日にCloud Messaging API(レガシー版)を終了します。

Google Cloudコンソール

1. Adjustのアンインストールおよび再インストール計測のカスタム権限を作成する

  1. Google Cloud Consoleにアクセスします。

  2. Firebaseプロジェクトに関連付けられたGoogle Cloudプロジェクトを選択します。

  3. IAM & Admin​ を検索します。

  4. サイドメニューから Roles​ を選択します。

  5. + Create Role​ を選択します。

  6. 以下の詳細を入力します。

    1. Title​ : Adjust Uninstall
    2. ID​ : adjust_uninstall
    3. Role launch stage​ : General Availability
  7. + Add Permissions​ を選択します。

  8. Enter property name or value​ フィールドにcloudmessaging.messages.createと入力し、検索結果から選択します。

  9. cloudmessaging.messages.create​ オプションにチェックを入れ、 Add​ を選択します。

  10. Create​ を選択します。

2. サービスアカウントを作成する

  1. サイドメニューから Service Accounts​ を選択します。
  2. + Create Service Account​ を選択します。
  3. Service account name​ フィールドに、 Adjust Uninstall Service Accountと入力します。
  4. Create and Continue​ を選択します。
  5. Select a role​ ドロップダウンを選択します。 Adjust Uninstallを入力し、検索結果から選択します。
  6. Continue​ を選択します。
  7. Done​ を選択します。

3. プライベートキーを生成して、ダウンロードします。

  1. 新しく作成したサービスアカウントを選択します。 フォーマットは次のようになりますadjust-uninstall-service-account@test3-55065.iam.gserviceaccount.com
  2. Keys​ タブを選択します。
  3. Add Key​ > Create new key​ を選択します。
  4. JSON​ を選択し、 Create​ を選択します。 プライベートキーがJSONファイルとしてコンピューターにダウンロードされます。

Adjustダッシュボード

AdjustアカウントからDataWorksにFCM接続を追加します。

  1. DataWorksで、 + 新規パートナー接続(New connection)​ を選択します。

  2. Google FCM​ パートナーを検索します。

  3. フォームに入力します。

    • AppView​ ->  全てのアプリ(All apps)​ セクションでアプリの アプリトークン​ を見つけます。
    • 前のセクションで生成したJSONファイルで、残りの情報を確認します。 ファイル内の引用符は含めないでください。
  4. Create​ を選択します。

Adjust SDKとの連携

FCMとAdjust SDKを連携するには、以下の手順に従ってください。

  1. build.gradleファイルに Firebase Messaging​ に必要なdependencyがあることを確認してください。
Kotlin (build.gradle.kts)
Groovy (build.gradle)
dependencies { // ... implementation("com.google.firebase:firebase-messaging:23.4.0") // ... }
  1. まだ設定していない場合は、 Googleのドキュメントに従って、AndroidでFirebase Cloud Messagingクライアントアプリを設定します。
  2. デバイスのPushトークンをAdjust SDKにパスします。
    • アプリに独自のPush通知を送信する場合は、全てのタイプのPush通知を処理するロジックを使ってFirebaseMessagingServiceクラスのonMessageReceivedメソッドをオーバーライドするようにしてください。それにはアンインストールおよび再インストール計測のためのAdjustのサイレントPush通知も含まれます。

次のコードスニペットは、 FirebaseMessagingServiceクラスを拡張してPushトークンをAdjust SDKに渡し、Push通知処理ロジックを更新する方法を示しています。 独自のPush通知を送信しない場合は、 onMessageReceivedメソッドのオーバーライドをスキップできます。

重要:
以下に示すように、 onMessageReceived をオーバーライドする場合、アプリが独自のPush通知を処理する方法に影響を与えないよう注意してください。 以下のPush通知処理コードに変更を加えた後、アプリがフォアグラウンドで動作している間に独自のPush通知を送信するテストを実施してください。
Kotlin
Java
import com.adjust.sdk.Adjust
import com.adjust.sdk.Util
import com.google.firebase.messaging.FirebaseMessaging
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage

class MyFirebaseMessagingService : FirebaseMessagingService() {

  override fun onCreate() {
    super.onCreate()
    // Fetch FCM token and set in Adjust SDK
    FirebaseMessaging.getInstance().token
      .addOnCompleteListener { task ->
        if (task.isSuccessful && task.result != null) {
          Adjust.setPushToken(task.result, applicationContext)
        }
      }
  }

  override fun onNewToken(token: String) {
    super.onNewToken(token)
    
    // Receive new FCM token and set in Adjust SDK
    Adjust.setPushToken(token, applicationContext)
  }

  override fun onMessageReceived(remoteMessage: RemoteMessage) {
    super.onMessageReceived(remoteMessage)

    // Check if message has data payload
    if (remoteMessage.data.isNotEmpty()) {
      val payload: Map<String, String> = remoteMessage.data

      // Check for Adjust uninstall detection data message
      if (Util.isAdjustUninstallDetectionPayload(payload)) {
        // No handling required for Adjust data payload
      } else {
        // Handle other data payloads here
      }
    }

    // Check if message has notification payload
    remoteMessage.notification?.let {
      // Handle notification payload here
    }
  }
}
  1. Adjust SDKを初期化する前に、アプリでFirebaseインスタンスを初期化します。

Androidプロジェクトのアプリケーションクラスの例を以下に示します。 アプリが起動するとすぐに、Firebaseインスタンスが初期化されていることがわかります。

Kotlin
Java
import android.app.Application
import com.adjust.sdk.Adjust
import com.adjust.sdk.AdjustConfig
import com.google.firebase.FirebaseApp

class MyApp : Application() {

  override fun onCreate() {
    super.onCreate()

    // Initialize Firebase App
    FirebaseApp.initializeApp(this)

    // Configure Adjust SDK
    // Replace {YourAppToken} with your Adjust app token
    val appToken = "{YourAppToken}"
    val environment = AdjustConfig.ENVIRONMENT_PRODUCTION
    val config = AdjustConfig(this, appToken, environment)

    // Initialize Adjust SDK
    Adjust.onCreate(config)
  }
}

実装テスト

Adjustは、Adjustの本番環境で最後にアクティビティがあったデバイスからのAndroidアプリのアンインストールを確認します。

アンインストールと再インストールの計測をテストするには、デバッグビルドまたはリリースビルドのいずれかを使用してください。主な要件として、テストインストールを実行する際は、Adjust SDK環境を 本番用 に設定する必要があります。

アンインストール計測をテストする方法:

  1. Adjust SDKを初期化する前に、Adjust SDKで環境をAdjustConfig.ENVIRONMENT_PRODUCTIONに設定します。

  2. 実際のテストデバイスまたはエミュレーターにアプリをインストールします。

  3. アプリを開きます。

  4. Adjustのテストコンソール(Testing Console)を開きます。

  5. デバイスID を入力し、 デバイスデータを表示(View device data)​ を選択します。

  6. アプリ情報(App information)​ セクションで以下を実行します。

    • インストールの状態(Install state)​ が インストール済み(Installed)​ と表示されていることを確認します。
    • Pushトークン​ の値が確認できます。
  7. アプリをアンインストールします。

  8. Adjustは1日1回アンインストールを確認するため、24時間後に再度テストコンソールを確認してください。 アプリ情報 (App information)​ セクションの インストールの状態(Install state)​ に アンインストール済み(Uninstalled)​ と表示されます。

状態が インストール済み (Installed)​ から アンインストール済み(Uninstalled)​ に変更されることで、アンインストールと再インストール計測機能が正しく機能するようになります。 再インストール計測もテストする場合は、次の手順に従ってください。

  1. 実際のテストデバイスまたはエミュレーターにデバッグビルドまたはリリースビルドを再インストールします。
  2. アプリを開きます。
  3. Adjustは1日に1回再インストールを確認するため、24時間後に再度テストコンソールを確認してください。 アプリ情報 (App information)​ セクションの インストールの状態(Install state)​ に 再インストール済み(Reinstalled)​ と表示されます。

トラブルシューティング

アンインストール・再インストール計測をテストする際によくある問題は、以下のとおりです。

  • テストインストールが行われると、Adjust SDK環境はAdjustConfig.ENVIRONMENT_SANDBOXに設定されます。 アンインストールと再インストールの計測は、この設定では機能しません。 必ずAdjust SDKの設定をAdjustConfig.ENVIRONMENT_PRODUCTIONに変更してください。
  • Pushトークンがありません。 Pushトークンがテストコンソールに表示されない場合、Firebaseの実装またはFirebase SDKとAdjust SDKを連携するコードに問題がある可能性があります。 実装に関する以下の要素を確認します。
  • FCM HTTP v1 APIプライベートキーに問題があります。 例えば、生成したプライベートキーが間違ったプロジェクトに属していたり、Adjust Suiteに誤って詳細を入力した可能性があります。 これらのポイントをご確認いただき、必要に応じて、お使いのデバイスのPushトークンをテクニカル アカウント マネージャーまたはsupport@adjust.comにお問い合わせください。 ログを取得して、GoogleのAPIからのレスポンスを確認できます。

問題が解決したら、次の手順に従って実装を再度テストしてください。

  1. アプリをアンインストールします。
  2. テストコンソールで デバイスID を入力し、 デバイスデータの表示(View device data)​ > デバイス削除(Forget Device)​ を選択します。
  3. 連携をテストするのセクションの手順を繰り返します。