Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Play Install Referrer Library

Google Play ストアの Install Referrer API を使用すると、Google Play からリファラー コンテンツを安全に取得できます。Play Install Referrer API Client Library は Java プログラミング言語で記述されたライブラリであり、インストール リファラー サービスへのインターフェースを定義する Android インターフェース定義言語(AIDL)ファイルのラッパーの役割を果たします。Play Install Referrer API Client Library を使用すると、開発プロセスを簡素化することができます。

このガイドでは、Play Install Referrer Library を使用して Google Play からリファラー情報を取得する方法の基本事項を紹介します。

アプリの依存関係を更新する

アプリの build.gradle ファイルの dependencies セクションに次の行を追加します。

dependencies {
    ...
    implementation 'com.android.installreferrer:installreferrer:2.1'
}

Google Play に接続する

Play Install Referrer API Library を使用するには、次の手順で事前に Play ストア アプリへの接続を確立する必要があります。

  1. newBuilder() メソッドを呼び出して、InstallReferrerClient クラスのインスタンスを作成します。
  2. startConnection() を呼び出して、Google Play への接続を確立します。

  3. startConnection() メソッドは非同期のため、startConnection() の完了後にコールバックを受け取るように InstallReferrerStateListener をオーバーライドする必要があります。

  4. Google Play への接続の喪失に対処するように onInstallReferrerSetupFinished() メソッドをオーバーライドします。たとえば、Play ストア サービスがバックグラウンドで更新されている場合、Play Install Referrer Library のクライアントは接続を失う可能性があります。さらにリクエストを行うには、ライブラリのクライアントで startConnection() メソッドを呼び出して接続を再開する必要があります。

次のコードは、Play ストア アプリへの接続を開始してテストする方法を示します。

Kotlin

private lateinit var referrerClient: InstallReferrerClient

referrerClient = InstallReferrerClient.newBuilder(this).build()
referrerClient.startConnection(object : InstallReferrerStateListener {

    override fun onInstallReferrerSetupFinished(responseCode: Int) {
        when (responseCode) {
            InstallReferrerResponse.OK -> {
                // Connection established.
            }
            InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> {
                // API not available on the current Play Store app.
            }
            InstallReferrerResponse.SERVICE_UNAVAILABLE -> {
                // Connection couldn't be established.
            }
        }
    }

    override fun onInstallReferrerServiceDisconnected() {
        // Try to restart the connection on the next request to
        // Google Play by calling the startConnection() method.
    }
})

Java

InstallReferrerClient referrerClient;

referrerClient = InstallReferrerClient.newBuilder(this).build();
referrerClient.startConnection(new InstallReferrerStateListener() {
    @Override
    public void onInstallReferrerSetupFinished(int responseCode) {
        switch (responseCode) {
            case InstallReferrerResponse.OK:
                // Connection established.
                break;
            case InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                // API not available on the current Play Store app.
                break;
            case InstallReferrerResponse.SERVICE_UNAVAILABLE:
                // Connection couldn't be established.
                break;
        }
    }

    @Override
    public void onInstallReferrerServiceDisconnected() {
        // Try to restart the connection on the next request to
        // Google Play by calling the startConnection() method.
    }
});

インストール リファラーを取得する

Play ストア アプリへの接続を確立したら、次の手順でインストール リファラーから詳細情報を取得します。

  1. 同期済みの getInstallReferrer() メソッドを使用して、ReferrerDetails のインスタンスを返します。

  2. ReferrerDetails クラスのメソッドを使用して、インストール リファラーに関する詳細情報を取得します。

次のコードは、インストール リファラー情報にアクセスする方法を示します。

Kotlin

val response: ReferrerDetails = referrerClient.installReferrer
val referrerUrl: String = response.installReferrer
val referrerClickTime: Long = response.referrerClickTimestampSeconds
val appInstallTime: Long = response.installBeginTimestampSeconds
val instantExperienceLaunched: Boolean = response.googlePlayInstantParam

Java

ReferrerDetails response = referrerClient.getInstallReferrer();
String referrerUrl = response.getInstallReferrer();
long referrerClickTime = response.getReferrerClickTimestampSeconds();
long appInstallTime = response.getInstallBeginTimestampSeconds();
boolean instantExperienceLaunched = response.getGooglePlayInstantParam();

注意: インストール リファラー情報の使用可能期間は 90 日です。この情報は、アプリが再インストールされない限り変更されません。アプリで不要な API 呼び出しが行われないようにするには、インストール後の最初の実行時に API を 1 回だけ呼び出します。

サービスへの接続を終了する

リファラー情報を取得したら、InstallReferrerClient インスタンスで endConnection() メソッドを呼び出して接続を終了します。接続を終了することで、リークやパフォーマンスの問題を回避できます。

詳しくは、Play Install Referrer Library のリファレンスをご覧ください。