Guida alla risoluzione dei problemi di Privacy Sandbox per Android

Questo documento descrive come risolvere i problemi comuni relativi alla configurazione di Privacy Sandbox su Android. Se visualizzi un errore non presente in questa guida, contattaci.

Alcuni errori possono essere causati da diversi motivi. Di seguito sono elencati alcuni degli errori più comuni e le relative correzioni, ma è possibile che venga visualizzato lo stesso messaggio di errore per motivi diversi.

Prima di risolvere i problemi

Disattiva gli aggiornamenti della configurazione del dispositivo

Per la risoluzione di eventuali problemi riscontrati con i test di Privacy Sandbox, il primo passaggio dovrebbe essere disattivare gli aggiornamenti della configurazione del dispositivo. Ciò garantisce che il dispositivo non recuperi le configurazioni aggiornate dal server e disattivi inavvertitamente Privacy Sandbox sul dispositivo di test.

Disabilita gli aggiornamenti della configurazione del dispositivo con questo comando:

adb shell device_config set_sync_disabled_for_tests persistent

Per riattivare gli aggiornamenti della configurazione del dispositivo dopo il test, utilizza questo comando:

adb shell device_config set_sync_disabled_for_tests none

Attiva logging dettagliato adservices

Il logging dettagliato di adservices fornisce maggiore contesto sugli errori riscontrati. Per abilitarla, utilizza questo comando:

adb shell setprop log.tag.adservices VERBOSE

Assicurati che il dispositivo sia stato configurato correttamente

Se hai appena disattivato gli aggiornamenti della configurazione del dispositivo, ti consigliamo di eseguire nuovamente questi passaggi per assicurarti che il dispositivo sia configurato correttamente e rimanga invariato per tutta la durata del test.

  • Attiva le PPAPI con i comandi adb applicabili.
  • Registra il dispositivo o disattiva la registrazione, a seconda dei tuoi obiettivi.

Controlla il codice per assicurarti che le PPAPI siano disponibili

Puoi aggiungere controlli al codebase per assicurarti che il dispositivo abbia le versioni corrette di cui ha bisogno per Privacy Sandbox.

Se utilizzi una release beta tramite estensioni SDK, verifica la versione corretta della build e dell'estensione SDK:

Se utilizzi una release beta tramite librerie Jetpack, la funzione di inizializzazione restituisce null se Privacy Sandbox non è disponibile sul tuo dispositivo. Ad esempio:

Per qualsiasi release, verifica la presenza di Google Play Services:

Eccezioni di sicurezza

Gli errori di eccezione di sicurezza si verificano in genere quando qualcosa non ha l'autorizzazione per accedere a una risorsa Privacy Sandbox.

Autorizzazione non richiesta

Errore:

Failed to get Ad ID: java.lang.SecurityException: Caller is not authorized to call this API. Permission was not requested.

Potenziale motivo:

È necessario dichiarare un'autorizzazione per accedere all'ID annuncio.

Soluzione:

Dichiara l'autorizzazione nel tuo AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />

Chiamante non autorizzato

Errore:

Failed to find resolveInfo for adServices service. Intent action: android.adservices.adid.AdIdProviderService

Failed to find AdServices services

Caller not authorized

Potenziale motivo:

Non hai registrato correttamente il tuo dispositivo. Assicurati di avere seguito tutte le istruzioni di registrazione, inclusi i passaggi successivi alla registrazione, per configurare il dispositivo.

Potenziale motivo:

Gli URL di registrazione non corrispondono.

Soluzione:

  1. Esamina i dati di registrazione per vedere se ci sono discrepanze tra l'URL che stai utilizzando nel tuo codice e l'URL che hai registrato con Privacy Sandbox. Ad esempio, potresti utilizzare https://adtech.example.com/source, ma l'URL registrato è https://adtech.example.com/register_source
  2. Modifica il codice in modo che corrisponda all'URL registrato. Ad esempio, potresti modificare la riga nell'app di esempio per aggiungere "/register_source" all'URL anziché "/source".

Se visualizzi ancora questo errore:

La tua azienda potrebbe non essere presente nell'elenco di registrazione oppure è registrata, ma non nella lista consentita del file manifest dell'app. Assicurati che la tua organizzazione sia registrata a Privacy Sandbox contattando android-ps-support@google.com.

Chiamante non consentito

Errore:

Failed to get Ad ID: java.lang.SecurityException: Caller is not authorized to call this API. Caller is not allowed. Package [package name] is not allowed to call the API.

Potenziale motivo:

Il nome del pacchetto non è nella lista consentita.

Soluzione:

Consenti tutti i nomi dei pacchetti nella lista consentita:

Se utilizzi direttamente la shell adb:

I comandi elencati in precedenza funzionano per bash e altre shell, ma se avvii direttamente la shell adb e provi a eseguire i comandi, non dovrai utilizzare l'escape delle virgolette. Esegui invece questi comandi:

Soluzione:

Aggiungi il nome del pacchetto alla lista consentita:

adb shell device_config put adservices ppapi_app_allow_list [package name]

Verifica che il nome del pacchetto sia nella lista consentita:

adb shell device_config get adservices ppapi_app_allow_list

Se necessario, puoi eliminare la lista consentita con questo comando:

adb shell device_config delete adservices ppapi_app_allow_list

Eccezioni stati illegali

Le eccezioni di stato illegali indicano che un metodo è stato richiamato in un momento illegale o inappropriato, in cui l'ambiente o l'applicazione non si trovano in uno stato appropriato per l'operazione richiesta.

Eccezioni stati illegali: il servizio non è disponibile

Errore:

com.example.measurement.sampleapp E Failed binding to measurement service: java.lang.IllegalStateException: Service is not available

Potenziale motivo:

L'opzione di interruzione deve essere disabilitata.

Soluzione:

Puoi disabilitare l'opzione di arresto con questo comando:

adb shell 'device_config put adservices global_kill_switch false'

Potenziale motivo:

Non è stato dato il consenso dell'utente.

Soluzione:

Puoi eseguire:

adb shell am start -n com.google.android.adservices.api/com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity

Dopo aver completato il comando precedente, imposta l'opzione "Abilita la preferenza di Privacy Sandbox" su "On".

Errori con i comandi adb

Impossibile trovare il lavoro

Errore:

Could not find job 14 in package com.google.android.adservices.api/ user 0

Potenziale motivo:

Le API Privacy Sandbox non sono state attivate.

Soluzione: prima di eseguire questo job, chiama una delle API Privacy Sandbox, ad esempio registerSource(), getTopics() o selectAds(). Questa chiamata dovrebbe non riuscire, ma è necessaria per attivare l'API. Quindi, esegui nuovamente il comando jobscheduler 14.

Potenziale motivo:

È necessario aggiornare Google Play Store.

Soluzione:

  1. Accedi al dispositivo o all'emulatore con il tuo Account Google.
  2. Vai su Google Play Store > icona del profilo > Impostazioni > Informazioni. Sotto l'intestazione Versione del Play Store, tocca Aggiorna Play Store.

Apri un ticket

Se questi passaggi non risolvono l'errore, invia un ticket e includi le seguenti informazioni:

  1. Quale release stai utilizzando, Anteprima per sviluppatori o Beta? Quale versione stai usando? Puoi trovare il codice della versione in Impostazioni > Informazioni sul telefono > Numero build.
  2. Se utilizzi una release beta, esegui adb shell getprop | grep build.version.extensions e includi i risultati nel ticket.
  3. Quale versione di Google Play Services hai sul tuo dispositivo? Esegui adb shell dumpsys package com.google.android.gms | grep versionName e includi i risultati del comando nel ticket.
  4. Includi una segnalazione di bug completa. Puoi ottenere una segnalazione di bug completa eseguendo adb bugreport o seguendo le istruzioni.