您可以使用 Google Play 商店的 Install Referrer API,即可從 Google Play 中安全地擷取參照內容。Play Install Referrer API 用戶端程式庫採用 Java 程式設計語言編寫,是 Android 介面定義語言 (AIDL) 檔案的包裝函式,可定義 Install Referrer 服務的介面。您可以使用 Play Install Referrer API 用戶端程式庫來簡化開發流程。
本指南說明使用 Play Install Referrer 程式庫從 Google Play 擷取參照資訊的基礎知識。
更新應用程式的依附元件
請在應用程式的 build.gradle
檔案的依附元件區段中新增以下這行:
Groovy
dependencies { ... implementation "com.android.installreferrer:installreferrer:2.2" }
Kotlin
dependencies { ... implementation("com.android.installreferrer:installreferrer:2.2") }
連結至 Google Play
您必須先按照下列步驟與 Play 商店應用程式建立連線,才能使用 Play Install Referrer API 程式庫:
- 呼叫
newBuilder()
方法來建立InstallReferrerClient
類別的執行個體。 呼叫
startConnection()
建立與 Google Play 的連線。startConnection()
是非同步方法,因此您必須覆寫InstallReferrerStateListener
。 之後才接收回呼startConnection()
完成。覆寫
onInstallReferrerSetupFinished()
方法,以便在回呼完成時收到通知。您須使用回應代碼呼叫此方法來處理不同的狀態。OK
表示連線成功。其他的InstallReferrerResponse
常數用於不同的錯誤類型。覆寫
onInstallReferrerServiceDisconnected()
方法以處理與 Google Play 連線中斷的問題。例如,如果 Play 商店服務在背景進行更新,Play Install Referrer 程式庫用戶端可能會斷線。程式庫用戶端必須呼叫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 一次即可。
關閉服務連線
取得參照資訊後,請在 InstallReferrerClient
執行個體上呼叫 endConnection()
方法以關閉連線。關閉連線有助於避免資料外洩和效能問題。
詳情請參閱「Play Install Referrer 程式庫參考資料」。