Guide de dépannage de la Privacy Sandbox pour Android

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. 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 :

  1. 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 était https://adtech.example.com/register_source.
  2. 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 :

  1. Connectez-vous à votre appareil ou à votre émulateur avec votre compte Google.
  2. 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 :

  1. 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.
  2. Si vous utilisez une version bêta, exécutez adb shell getprop | grep build.version.extensions et incluez les résultats dans votre demande.
  3. 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.
  4. Incluez un rapport de bug complet. Vous pouvez obtenir un rapport de bug complet en exécutant adb bugreport ou en suivant ces instructions.