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:
- 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
- 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:
- Accedi al dispositivo o all'emulatore con il tuo Account Google.
- 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:
- 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.
- Se utilizzi una release beta, esegui
adb shell getprop | grep build.version.extensions
e includi i risultati nel ticket. - 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. - Includi una segnalazione di bug completa. Puoi ottenere una segnalazione di bug completa eseguendo
adb bugreport
o seguendo le istruzioni.