Biblioteca de referencia de instalación de Play

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:

  1. Llama al método newBuilder() para crear una instancia de la clase InstallReferrerClient.
  2. Llama al método startConnection() para establecer una conexión con Google Play.

  3. El método startConnection() es asíncrono, por lo que debes anular el objeto InstallReferrerStateListener para recibir una devolución de llamada después de que se complete startConnection().

  4. 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 constantes InstallReferrerResponse es para diferentes tipos de errores.

  5. 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étodo startConnection() 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:

  1. Usa el método getInstallReferrer() sincronizado para mostrar una instancia de ReferrerDetails.

  2. 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.