Play のインストール リファラー ライブラリ

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 セクションに次の行を追加します。

Groovy

dependencies {
    ...
    implementation "com.android.installreferrer:installreferrer:2.2"
}

Kotlin

dependencies {
    ...
    implementation("com.android.installreferrer:installreferrer:2.2")
}

Google Play に接続する

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

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

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

  4. コールバックが完了したときに通知されるように、onInstallReferrerSetupFinished() メソッドをオーバーライドします。このメソッドは、さまざまな状態を処理する場合に使用するレスポンス コードで呼び出されます。OK は接続が成功したことを示します。他の InstallReferrerResponse 定数は、それぞれ異なる種類のエラーを表します。

  5. Google Play への接続の喪失に対処するように onInstallReferrerServiceDisconnected() メソッドをオーバーライドします。たとえば、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 のリファレンスをご覧ください。