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 のリファレンスをご覧ください。