Ce document explique comment résoudre les problèmes courants lors de la configuration de la Privacy Sandbox sur Android. Si vous voyez une erreur qui ne figure pas dans ce guide, contactez-nous.
Certaines erreurs peuvent être générées pour plusieurs raisons. Vous trouverez ci-dessous certaines des erreurs les plus courantes, ainsi que la façon de les résoudre, mais il est possible que le même message d'erreur s'affiche pour une raison différente.
Avant de procéder au dépannage
Désactiver les mises à jour de configuration de l'appareil
Pour résoudre les problèmes que vous rencontrez avec les tests de la Privacy Sandbox, vous devez d'abord désactiver les mises à jour de la configuration de votre appareil. Cela garantit que votre appareil ne récupère pas les configurations mises à jour à partir du serveur et ne désactive pas par inadvertance la Privacy Sandbox sur votre appareil de test.
Désactivez les mises à jour de configuration de l'appareil à l'aide de la commande suivante :
adb shell device_config set_sync_disabled_for_tests persistent
Si vous souhaitez réactiver les mises à jour de la configuration de l'appareil après les tests, vous pouvez le faire à l'aide de la commande suivante :
adb shell device_config set_sync_disabled_for_tests none
Activer la journalisation détaillée adservices
La journalisation détaillée d'adservices fournit plus de contexte sur les erreurs que vous rencontrez. Pour l'activer, utilisez la commande suivante :
adb shell setprop log.tag.adservices VERBOSE
Vous assurer que votre appareil a été correctement configuré
Si vous venez de désactiver les mises à jour de la configuration de votre appareil, nous vous recommandons de répéter cette procédure pour vous assurer que votre appareil est correctement configuré et qu'il le reste pendant toute la durée des tests.
- Activez les PPAPI à l'aide des commandes adb applicables.
- Enregistrez votre appareil ou désactivez l'enregistrement, en fonction de vos objectifs.
Vérifier le code pour s'assurer que les PPAPI sont disponibles
Vous pouvez ajouter des vérifications dans votre codebase pour vous assurer que votre appareil dispose des versions appropriées dont il a besoin pour la Privacy Sandbox.
Si vous utilisez une version bêta via des extensions de SDK, vérifiez que la version du build et de l'extension de SDK sont correctes :
Si vous utilisez une version bêta via les bibliothèques Jetpack, la fonction d'initialisation renvoie null
si la Privacy Sandbox n'est pas disponible sur votre appareil. Par exemple :
Pour chaque version, vérifiez la présence des services Google Play :
Exceptions de sécurité
Les erreurs d'exception de sécurité se produisent généralement lorsqu'un élément ne dispose pas des autorisations nécessaires pour accéder à une ressource Privacy Sandbox.
Autorisation non demandée
Erreur :
Failed to get Ad ID: java.lang.SecurityException: Caller is not authorized to
call this API. Permission was not requested
.
Cause potentielle :
Vous devez déclarer une autorisation pour accéder à l'identifiant de l'annonce.
Solution :
Déclarez l'autorisation dans votre fichier AndroidManifest.xml
:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />
Appelant non autorisé
Erreur :
Failed to find resolveInfo for adServices service. Intent action:
android.adservices.adid.AdIdProviderService
Failed to find AdServices services
Caller not authorized
Cause potentielle :
Vous n'avez pas correctement enregistré votre appareil. Assurez-vous d'avoir suivi toutes les instructions d'enregistrement, y compris les étapes post-enregistrement, pour configurer votre appareil.
Cause potentielle :
Les URL d'enregistrement ne correspondent pas.
Solution :
- Examinez vos données d'enregistrement pour vérifier s'il existe des différences entre l'URL que vous utilisez dans votre code et celle que vous avez enregistrée auprès de la Privacy Sandbox. Par exemple, vous utilisez peut-être
https://adtech.example.com/source
, mais l'URL enregistrée étaithttps://adtech.example.com/register_source
. - Modifiez votre code pour que l'URL corresponde à l'URL enregistrée. Par exemple, vous pouvez modifier la ligne dans l'application exemple pour remplacer "/source" par "/register_source" dans l'URL.
Si l'erreur persiste, procédez comme suit :
Votre entreprise ne figure peut-être pas sur la liste d'enregistrement, ou elle est enregistrée, mais pas dans la liste d'autorisation du fichier manifeste de l'application. Assurez-vous que votre organisation est inscrite à la Privacy Sandbox en contactant android-ps-support@google.com.
L'appelant n'est pas autorisé
Erreur :
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
.
Cause potentielle :
Le nom du package ne figure pas dans la liste d'autorisation.
Solution :
Autorisez tous les noms de packages dans la liste d'autorisation :
Si vous utilisez directement l'interface système adb :
Les commandes listées précédemment fonctionnent pour bash et d'autres shells, mais si vous démarrez directement l'interface système adb et essayez d'exécuter les commandes, vous n'êtes pas censé échapper les guillemets. Exécutez plutôt les commandes suivantes :
Solution :
Ajoutez le nom de votre package à la liste d'autorisation :
adb shell device_config put adservices ppapi_app_allow_list [package name]
Vérifiez que le nom de votre package figure dans la liste d'autorisation :
adb shell device_config get adservices ppapi_app_allow_list
Si nécessaire, vous pouvez supprimer la liste d'autorisation à l'aide de la commande suivante :
adb shell device_config delete adservices ppapi_app_allow_list
Exceptions d'état illégales
Les exceptions d'état illégales signalent qu'une méthode a été appelée à un moment illégal ou inapproprié, lorsque l'état de l'environnement ou de l'application n'est pas approprié pour l'opération demandée.
Exceptions d'état illégales : service non disponible
Erreur :
com.example.measurement.sampleapp E Failed binding to measurement service:
java.lang.IllegalStateException: Service is not available
Cause potentielle :
L'interrupteur d'arrêt doit être désactivé.
Solution :
Vous pouvez désactiver l'interrupteur d'arrêt à l'aide de la commande suivante :
adb shell 'device_config put adservices global_kill_switch false'
Cause potentielle :
L'utilisateur n'a pas donné son consentement.
Solution :
Vous pouvez exécuter la commande suivante :
adb shell am start -n com.google.android.adservices.api/com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity
Une fois la commande précédente terminée, définissez la préférence "Activer la Privacy Sandbox" sur "Activé".
Erreurs liées aux commandes adb
Tâche introuvable
Erreur :
Could not find job 14 in package com.google.android.adservices.api/ user 0
Cause potentielle :
Les API Privacy Sandbox n'ont pas été déclenchées.
Solution : Avant d'exécuter cette tâche, appelez l'une des API Privacy Sandbox, telles que registerSource()
, getTopics()
ou selectAds()
. Cet appel devrait échouer, mais il est nécessaire pour activer l'API. Ensuite, réexécutez la commande jobscheduler 14
.
Cause potentielle :
Vous devez mettre à jour le Google Play Store.
Solution :
- Connectez-vous à votre appareil ou à votre émulateur avec votre compte Google.
- Accédez ensuite à Google Play Store > profile icon > Settings > About (Google Play Store > icône de profil > Paramètres > À propos). Sous le titre Play Store version (Version du Play Store), appuyez sur Update Play Store (Mettre à jour le Play Store).
Envoyer une demande
Si ces étapes ne permettent pas de résoudre votre erreur, envoyez une demande en incluant les informations suivantes :
- Utilisez-vous la Preview développeur ou la Bêta ? De quelle version s'agit-il ? Vous trouverez le code de version sous Paramètres > À propos du téléphone > Numéro de version.
- Si vous utilisez une version bêta, exécutez
adb shell getprop | grep build.version.extensions
et incluez les résultats dans votre demande. - Quelle est la version des services Google Play installée sur votre appareil ? Exécutez
adb shell dumpsys package com.google.android.gms | grep versionName
et incluez les résultats de cette commande dans votre demande. - Incluez un rapport de bug complet. Vous pouvez obtenir un rapport de bug complet en exécutant
adb bugreport
ou en en suivant les instructions.