Puedes usar la API de Install Referrer de Google Play Store para recuperar, de forma segura, contenido de referencia desde Google Play. La biblioteca cliente de la API de referencia de instalación de Play está escrita en el lenguaje de programación Java y es un wrapper del archivo del lenguaje de definición de la interfaz de Android (AIDL) que define la interfaz para el servicio de referencia de instalación. Puedes usar la biblioteca cliente de la API de referencia de instalación de Play para simplificar el proceso de desarrollo.
En esta guía, se tratan los aspectos básicos para recuperar información de referencia desde Google Play mediante la biblioteca de referencia de instalación de Play.
Cómo actualizar las dependencias de tu app
Agrega la siguiente línea a la sección de dependencias del archivo build.gradle
:
Groovy
dependencies { ... implementation "com.android.installreferrer:installreferrer:2.2" }
Kotlin
dependencies { ... implementation("com.android.installreferrer:installreferrer:2.2") }
Cómo establecer conexión con Google Play
Antes de usar la biblioteca de API de referencia de instalación de Play, debes establecer una conexión con la app de Play Store mediante los siguientes pasos:
- Llama al método
newBuilder()
para crear una instancia de la claseInstallReferrerClient
. Llama al método
startConnection()
para establecer una conexión con Google Play.El método
startConnection()
es asíncrono, por lo que debes anular el objetoInstallReferrerStateListener
para recibir una devolución de llamada después de que se completestartConnection()
.Anula el método
onInstallReferrerSetupFinished()
para recibir una notificación cuando se complete la devolución de llamada. Este método se llama con un código de respuesta que debes usar para controlar los diferentes estados.OK
indica que se estableció conexión correctamente. Cada una de las otras constantesInstallReferrerResponse
es para diferentes tipos de errores.Anula el método
onInstallReferrerServiceDisconnected()
para controlar las pérdidas de conexión con Google Play. Por ejemplo, es posible que el cliente de la biblioteca de referencia de instalación de Play pierda la conexión si se actualiza en segundo plano el servicio de Play Store. El cliente de la biblioteca debe llamar al métodostartConnection()
para reiniciar la conexión antes de realizar más solicitudes.
En el siguiente código, se muestra cómo iniciar y probar una conexión con la app de Play Store:
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. } });
Cómo obtener la referencia de instalación
Una vez que hayas establecido una conexión con la app de Play Store, sigue los pasos que se describen a continuación para obtener los detalles de la URL de referencia de instalación:
Usa el método
getInstallReferrer()
sincronizado para mostrar una instancia deReferrerDetails
.Usa los métodos que proporciona la clase
ReferrerDetails
para obtener detalles sobre la referencia de instalación.
En el siguiente código, se muestra cómo puedes acceder a la información de referencia de instalación:
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();
Precaución: La información de referencia de instalación estará disponible durante 90 días y no cambiará, a menos que se reinstale la aplicación. Para evitar llamadas innecesarias a la API en tu app, debes invocar la API solo una vez durante la primera ejecución después de la instalación.
Cómo cerrar el servicio de conexión
Después de obtener la información de referencia, llama al método endConnection()
en la instancia de InstallReferrerClient
para cerrar la conexión. Cerrar la conexión te ayudará a evitar fugas y problemas de rendimiento.
Para obtener más información, consulta la referencia sobre la biblioteca de referencia de instalación de Play.