Вы можете использовать API Install Referrer в Google Play Store для безопасного получения реферального контента из Google Play. Клиентская библиотека Play Install Referrer API написана на языке программирования Java и представляет собой оболочку для файла языка определения интерфейса Android (AIDL), который определяет интерфейс службы Install Referrer. Вы можете использовать клиентскую библиотеку Play Install Referrer API, чтобы упростить процесс разработки.
В этом руководстве описаны основы получения реферальной информации из Google Play с помощью библиотеки Play Install Referrer Library.
Обновление зависимостей вашего приложения
Добавьте следующую строку в раздел зависимостей файла build.gradle
вашего приложения:
dependencies {
...
implementation "com.android.installreferrer:installreferrer:2.2"
}
dependencies {
...
implementation("com.android.installreferrer:installreferrer:2.2")
}
Подключение к Google Play
Прежде чем вы сможете использовать библиотеку API-интерфейса Play Install Referrer, вам необходимо установить соединение с приложением Play Store, выполнив следующие действия:
- Вызовите метод
newBuilder()
, чтобы создать экземпляр классаInstallReferrerClient
. Вызовите
startConnection()
, чтобы установить соединение с Google Play.Метод
startConnection()
является асинхронным, поэтому необходимо переопределитьInstallReferrerStateListener
чтобы получить обратный вызов после завершенияstartConnection()
.Переопределите метод
onInstallReferrerSetupFinished()
чтобы получать уведомления о завершении обратного вызова. Этот метод вызывается с кодом ответа, который необходимо использовать для обработки различных состояний.OK
означает, что соединение прошло успешно. Каждая из остальных константInstallReferrerResponse
предназначена для разных типов ошибок.Переопределите метод
onInstallReferrerServiceDisconnected()
для обработки потерянных подключений к Google Play. Например, клиент библиотеки Play Install Referrer может потерять соединение, если служба Play Store обновляется в фоновом режиме. Клиент библиотеки должен вызвать методstartConnection()
, чтобы перезапустить соединение, прежде чем отправлять дальнейшие запросы.
Следующий код демонстрирует, как запустить и проверить подключение к приложению Play Store:
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.
}
})
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 Store, получите подробную информацию от источника установки, выполнив следующие шаги:
Используйте синхронизированный метод
getInstallReferrer()
чтобы вернуть экземплярReferrerDetails
.Используйте методы, предоставляемые классом
ReferrerDetails
, чтобы получить подробную информацию об реферере установки.
Следующий код демонстрирует, как вы можете получить доступ к информации о реферере установки:
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
ReferrerDetails response = referrerClient.getInstallReferrer();
String referrerUrl = response.getInstallReferrer();
long referrerClickTime = response.getReferrerClickTimestampSeconds();
long appInstallTime = response.getInstallBeginTimestampSeconds();
boolean instantExperienceLaunched = response.getGooglePlayInstantParam();
Внимание: информация об источнике установки будет доступна в течение 90 дней и не изменится, пока приложение не будет переустановлено. Чтобы избежать ненужных вызовов API в вашем приложении, вам следует вызывать API только один раз во время первого выполнения после установки.
Закрытие сервисного соединения
После получения информации о реферере вызовите метод endConnection()
в экземпляре InstallReferrerClient
, чтобы закрыть соединение. Закрытие соединения поможет избежать утечек и проблем с производительностью.
Дополнительную информацию можно найти в Справочнике библиотеки Play Install Referrer .