Biblioteca de referencia de instalación de Play

Puedes usar la API de referencia de instalación 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 Java y es un wrapper del archivo de 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.

Nota: Si usas un lenguaje diferente a Java o si deseas interactuar directamente con el archivo de AIDL, consulta la API 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 de tu app:

    dependencies {
        ...
        compile 'com.android.installreferrer:installreferrer:1.0'
    }
    

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 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 could not 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 could not 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

Después de establecer una conexión con la app de Play Store:

  1. Usa el método getInstallReferrer() sincronizado para mostrar el objeto ReferrerDetails.

  2. Luego, usa los métodos en ReferrerDetails para obtener marcas de tiempo de instalación y una URL de referencia.

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
    response.installReferrer
    response.referrerClickTimestampSeconds
    response.installBeginTimestampSeconds
    

Java

    ReferrerDetails response = referrerClient.getInstallReferrer();
    response.getInstallReferrer();
    response.getReferrerClickTimestampSeconds();
    response.getInstallBeginTimestampSeconds();
    

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 cuando se ejecute la app por primera vez después de instalarla.

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 documentación sobre la biblioteca de referencia de instalación de Play.