Guida alla risoluzione dei problemi di Privacy Sandbox per Android

Questo documento descrive come risolvere i problemi comuni durante la configurazione del Sandbox su Android. Se visualizzi un errore non trovato in questa guida, contattaci.

La generazione di alcuni errori può essere dovuta a diversi motivi. Di seguito sono elencati alcuni degli errori più comuni e le relative correzioni, ma è possibile che si verifichino lo stesso messaggio di errore per un altro motivo.

Prima di risolvere i problemi

Disattiva gli aggiornamenti della configurazione dei dispositivi

Per la risoluzione di eventuali problemi riscontrati con Privacy Sandbox test, la prima cosa da fare dovrebbe essere disattivare gli aggiornamenti della configurazione del dispositivo. Questo assicura che il dispositivo non recuperi le configurazioni aggiornate dal server e disattivare inavvertitamente Privacy Sandbox sul dispositivo di test.

Disabilita gli aggiornamenti della configurazione dei dispositivi con questo comando:

adb shell device_config set_sync_disabled_for_tests persistent

Se vuoi riattivare gli aggiornamenti della configurazione del dispositivo dopo il test, puoi farlo quindi con questo comando:

adb shell device_config set_sync_disabled_for_tests none

Attiva il logging dettagliato dei servizi pubblicitari

Il logging dettagliato dei servizi pubblicitari fornisce maggiore contesto sugli errori. che vedi. Per l'abilitazione, 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 questi per assicurarti che il dispositivo sia configurato correttamente e che rimanga in questo modo durante la durata del test.

  • Abilita 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 tuo 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 build corretta e versione dell'estensione SDK:

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

Per ogni release, controlla Google Play Services:

Eccezioni di sicurezza

Gli errori di eccezione di sicurezza in genere si verificano quando qualcosa non dispone dell'autorizzazione per accedi a una risorsa Privacy Sandbox.

L'autorizzazione non è stata richiesta

Errore:

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

Potenziale motivo:

Devi dichiarare un'autorizzazione per accedere all'ID annuncio.

Soluzione:

Dichiara l'autorizzazione in 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 dispositivo. Assicurati di aver seguito tutti istruzioni per la registrazione, incluse le istruzioni successive alla registrazione passaggi per configurare il dispositivo.

Potenziale motivo:

Gli URL di registrazione non corrispondono.

Soluzione:

  1. Controlla i dati di registrazione per capire se ci sono discrepanze tra L'URL che utilizzi nel tuo codice e l'URL che hai registrato con Sabbiera. Ad esempio, potresti usare https://adtech.example.com/source ma l'URL registrato era https://adtech.example.com/register_source
  2. Modifica il codice in modo che corrisponda all'URL registrato. Ad esempio, potresti regolare la riga nell'app di esempio per aggiungere "/register_source" all'URL di "/source."

Se viene ancora visualizzato questo errore:

È possibile che la tua azienda non sia presente nell'elenco delle registrazioni oppure che sia registrata, ma non è incluso nella lista consentita del file manifest dell'app. Assicurati che la tua organizzazione sia registrata con 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 è presente nella lista consentita.

Soluzione:

Consenti tutti i nomi di pacchetti nella lista consentita:

Se utilizzi direttamente la shell adb:

I comandi elencati in precedenza funzionano per bash e altre shell, ma se avvii l'ab direttamente la shell e provare a eseguire i comandi, non dovresti citazioni. 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 presente 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 di stato non consentite

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

Eccezioni di stato non consentite: 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 terminazione deve essere disattivata.

Soluzione:

Puoi disabilitare l'opzione di terminazione con questo comando:

adb shell 'device_config put adservices global_kill_switch false'

Potenziale motivo:

Il consenso dell'utente non è stato concesso.

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, attiva/disattiva "Abilita Privacy Sandbox" preferenza 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 hanno esito negativo, ma è necessario per attivare l'API. Poi esegui di nuovo jobscheduler 14 .

Potenziale motivo:

È necessario aggiornare il Google Play Store.

Soluzione:

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

Apri un ticket

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

  1. Quale release stai usando, Anteprima per sviluppatori o Beta? Quali sono le versioni sei acceso? Puoi trovare il codice di versione in Impostazioni > Informazioni sullo smartphone > Numero build.
  2. Se usi una release beta, esegui adb shell getprop | grep build.version.extensions e includi i risultati nel ticket.
  3. Quale versione di Google Play Services è installata 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.