Libreria referrer di Installazione di Google Play

Puoi utilizzare l'API Install Referrer del Google Play Store per recuperare in modo sicuro i contenuti dei referral da Google Play. La libreria client dell'API Play Install Referrer è scritta nel linguaggio di programmazione Java ed è un wrapper per il file AIDL (Android Interface Definition Language) che definisce l'interfaccia per il servizio Install Referrer. Puoi utilizzare la libreria client dell'API Play Install Referrer per semplificare il processo di sviluppo.

Questa guida illustra le nozioni di base sul recupero delle informazioni sui referral da Google Play utilizzando la libreria dei referrer di installazione di Google Play.

Aggiornamento delle dipendenze dell'app

Aggiungi la seguente riga alla sezione delle dipendenze del file build.gradle per la tua app:

Trendy

dependencies {
    ...
    implementation "com.android.installreferrer:installreferrer:2.2"
}

Kotlin

dependencies {
    ...
    implementation("com.android.installreferrer:installreferrer:2.2")
}

Connessione a Google Play in corso...

Per poter utilizzare la libreria API Play Install Referrer, devi stabilire una connessione all'app Play Store procedendo nel seguente modo:

  1. Chiama il metodo newBuilder() per creare un'istanza della classe InstallReferrerClient.
  2. Chiama il startConnection() per stabilire una connessione a Google Play.

  3. Il metodo startConnection() è asincrono, quindi devi eseguire l'override di InstallReferrerStateListener per ricevere un callback dopo il completamento di startConnection().

  4. Esegui l'override del metodo onInstallReferrerSetupFinished() per ricevere una notifica al completamento del callback. Questo metodo viene chiamato con un codice di risposta che devi usare per gestire i diversi stati. OK indica che la connessione è riuscita. Ciascuna delle altre costanti InstallReferrerResponse riguarda tipi diversi di errori.

  5. Esegui l'override del metodo onInstallReferrerServiceDisconnected() per gestire le connessioni perse a Google Play. Ad esempio, il client della libreria dei referrer di installazione di Play potrebbe perdere la connessione se il servizio Play Store viene aggiornato in background. Il client della libreria deve chiamare il metodo startConnection() per riavviare la connessione prima di effettuare ulteriori richieste.

Il codice che segue mostra come avviare e testare una connessione all'app 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.
    }
});

Recupero del referrer di installazione

Dopo aver stabilito una connessione all'app Play Store, recupera i dettagli dal referrer di installazione svolgendo i seguenti passaggi:

  1. Utilizza il metodo getInstallReferrer() sincronizzato per restituire un'istanza di ReferrerDetails.

  2. Utilizza i metodi forniti dalla classe ReferrerDetails per ottenere dettagli sul referrer di installazione.

Il codice seguente mostra come accedere alle informazioni del referrer di installazione:

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();

Attenzione: le informazioni sul referrer di installazione saranno disponibili per 90 giorni e non cambieranno a meno che l'applicazione non venga reinstallata. Per evitare chiamate API non necessarie nella tua app, devi richiamare l'API solo una volta durante la prima esecuzione dopo l'installazione.

Chiusura della connessione al servizio in corso...

Dopo aver ottenuto le informazioni sui referrer, chiama il metodo endConnection() nell'istanza InstallReferrerClient per chiudere la connessione. Chiudendo la connessione eviterai perdite e problemi di prestazioni.

Per ulteriori informazioni, consulta il riferimento sulla libreria dei referrer di installazione di Google Play.