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 ストア アプリへの接続を確立する必要があります。
newBuilder()
メソッドを呼び出して、InstallReferrerClient
クラスのインスタンスを作成します。startConnection()
を呼び出して、Google Play への接続を確立します。startConnection()
メソッドは非同期のため、startConnection()
の完了後にコールバックを受け取るようにInstallReferrerStateListener
をオーバーライドする必要があります。コールバックが完了したときに通知されるように、
onInstallReferrerSetupFinished()
メソッドをオーバーライドします。このメソッドは、さまざまな状態を処理する場合に使用するレスポンス コードで呼び出されます。OK
は接続が成功したことを示します。他のInstallReferrerResponse
定数は、それぞれ異なる種類のエラーを表します。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 ストア アプリへの接続を確立したら、次の手順でインストール リファラーから詳細情報を取得します。
同期済みの
getInstallReferrer()
メソッドを使用して、ReferrerDetails
のインスタンスを返します。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 のリファレンスをご覧ください。