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定数は、さまざまな種類のエラーを示します。onInstallReferrerServiceDisconnected()メソッドをオーバーライドして、Google Play への接続の切断を処理します。たとえば、Google 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();
サービスへの接続を終了する
参照元情報を取得したら、InstallReferrerClient インスタンスで endConnection() メソッドを呼び出して接続を閉じます。接続を閉じると、リークやパフォーマンスの問題を回避できます。
詳しくは、Play Install Referrer Library のリファレンスをご覧ください。