Руководство по устранению неполадок Privacy Sandbox для Android

В этом документе описывается, как решить распространенные проблемы при настройке Privacy Sandbox на Android. Если вы видите ошибку, которой нет в этом руководстве, сообщите нам об этом .

Некоторые ошибки имеют несколько возможных причин возникновения. Ниже перечислены некоторые из наиболее распространенных ошибок и их исправления, но одно и то же сообщение об ошибке может возникнуть по другой причине.

Прежде чем устранять неполадки

Отключить обновление конфигурации устройства

При устранении проблем, возникающих при тестировании Privacy Sandbox, первым шагом должно быть отключение обновлений конфигурации вашего устройства. Это гарантирует, что ваше устройство не получит обновленные конфигурации с сервера и случайно не отключит Privacy Sandbox на вашем тестируемом устройстве.

Отключите обновление конфигурации устройства с помощью этой команды:

adb shell device_config set_sync_disabled_for_tests persistent

Если вы хотите повторно включить обновления конфигурации устройства после тестирования, вы можете сделать это с помощью этой команды:

adb shell device_config set_sync_disabled_for_tests none

Включить подробное ведение журнала рекламных сервисов

Подробное ведение журнала рекламных служб предоставляет больше контекста ошибок, которые вы видите. Чтобы включить, используйте эту команду:

adb shell setprop log.tag.adservices VERBOSE

Убедитесь, что ваше устройство настроено правильно

Если вы только что отключили обновление конфигурации вашего устройства, мы рекомендуем выполнить эти действия еще раз, чтобы убедиться, что ваше устройство настроено правильно и остается таковым на протяжении всего тестирования.

  • Включите PPAPI с помощью соответствующих команд adb.
  • Зарегистрируйте свое устройство или деактивируйте регистрацию, в зависимости от ваших целей.

Проверьте код, чтобы убедиться, что PPAPI доступны.

Вы можете добавить проверки в свою кодовую базу, чтобы убедиться, что на вашем устройстве установлены правильные версии, необходимые для Privacy Sandbox.

Если вы используете бета-версию с расширениями SDK, проверьте правильную версию сборки и расширения SDK:

Если вы используете бета-версию через библиотеки Jetpack, функция инициализации возвращает значение null , если Privacy Sandbox недоступна на вашем устройстве. Например:

Для любого выпуска проверьте наличие сервисов Google Play:

Исключения безопасности

Ошибки исключений безопасности обычно возникают, когда чему-то не хватает авторизации для доступа к ресурсу Privacy Sandbox.

Разрешение не запрашивалось

Ошибка :

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

Возможная причина :

Вы должны объявить разрешение на доступ к идентификатору объявления.

Исправить :

Объявите разрешение в своем AndroidManifest.xml :

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

Вызывающий абонент не авторизован

Ошибка :

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

Failed to find AdServices services

Caller not authorized

Возможная причина :

Вы неправильно зарегистрировали свое устройство. Убедитесь, что вы выполнили все инструкции по регистрации , включая действия по настройке вашего устройства после регистрации .

Возможная причина :

URL-адреса регистрации не совпадают.

Исправить :

  1. Просмотрите свои данные о регистрации и проверьте, нет ли расхождений между URL-адресом, который вы используете в своем коде, и URL-адресом, который вы зарегистрировали в Privacy Sandbox. Например, вы можете использовать https://adtech.example.com/source , но зарегистрированный URL-адрес — https://adtech.example.com/register_source
  2. Настройте свой код так, чтобы он соответствовал зарегистрированному URL-адресу. Например, вы можете изменить строку в примере приложения , добавив к URL-адресу «/register_source» вместо «/source».

Если вы все еще видите эту ошибку :

Возможно, вашей компании нет в списке регистрации, или компания зарегистрирована, но не в белом списке манифеста приложения. Убедитесь, что ваша организация зарегистрирована в Privacy Sandbox, отправив письмо по адресу android-ps-support@google.com .

Звонящий не разрешен

Ошибка :

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 .

Возможная причина :

Имя пакета отсутствует в белом списке.

Исправить :

Разрешить все имена пакетов в белом списке:

Если вы используете оболочку adb напрямую :

Перечисленные ранее команды работают для bash и других оболочек, но если вы запустите оболочку adb напрямую и попытаетесь выполнить команды, вам не придется выходить из кавычек. Вместо этого выполните такие команды:

Исправить :

Добавьте имя вашего пакета в белый список:

adb shell device_config put adservices ppapi_app_allow_list [package name]

Убедитесь, что имя вашего пакета находится в белом списке:

adb shell device_config get adservices ppapi_app_allow_list

При необходимости вы можете удалить белый список с помощью этой команды:

adb shell device_config delete adservices ppapi_app_allow_list

Незаконные государственные исключения

Исключения недопустимого состояния сигнализируют о том, что метод был вызван в недопустимое или неподходящее время, когда среда или приложение не находятся в подходящем состоянии для запрошенной операции.

Незаконные государственные исключения: услуга недоступна.

Ошибка :

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

Возможная причина :

Переключатель уничтожения должен быть отключен.

Исправить :

Вы можете отключить переключатель уничтожения с помощью этой команды:

adb shell 'device_config put adservices global_kill_switch false'

Возможная причина :

Согласие пользователя не было дано.

Исправить :

Вы можете запустить:

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

После выполнения предыдущей команды переключите параметр «Включить изолированную среду конфиденциальности» на «Вкл.».

Ошибки с командами adb

Не удалось найти работу

Ошибка :

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

Возможная причина :

API-интерфейсы Privacy Sandbox не были активированы.

Исправление : перед запуском этого задания вызовите один из API-интерфейсов Privacy Sandbox, например, registerSource() , getTopics() или selectAds() . Ожидается, что этот вызов завершится неудачно, но он необходим для активации API. Затем повторно запустите команду jobscheduler 14 .

Возможная причина :

Необходимо обновить Google Play Store.

Исправить :

  1. Войдите в свое устройство или эмулятор под своей учетной записью Google.
  2. Перейдите в Google Play Store > значок профиля > Настройки > О программе . Под заголовком «Версия Play Store» нажмите «Обновить Play Store» .

Подать заявку

Если эти действия не помогли устранить ошибку, отправьте заявку , указав следующую информацию:

  1. Какой выпуск вы используете: Developer Preview или Beta? На какой версии вы находитесь? Код версии можно найти в «Настройки » > «О телефоне» > «Номер сборки» .
  2. Если вы используете бета-версию, запустите adb shell getprop | grep build.version.extensions и включите результаты в свой запрос.
  3. Какая версия сервисов Google Play установлена ​​на вашем устройстве? Запустите adb shell dumpsys package com.google.android.gms | grep versionName и включите результаты этой команды в свой билет.
  4. Включите полный отчет об ошибке. Вы можете получить полный отчет об ошибке, запустив adb bugreport или следуя инструкциям .
,

В этом документе описывается, как решить распространенные проблемы при настройке Privacy Sandbox на Android. Если вы видите ошибку, которой нет в этом руководстве, сообщите нам об этом .

Некоторые ошибки имеют несколько возможных причин возникновения. Ниже перечислены некоторые из наиболее распространенных ошибок и их исправления, но одно и то же сообщение об ошибке может возникнуть по другой причине.

Прежде чем устранять неполадки

Отключить обновление конфигурации устройства

При устранении проблем, возникающих при тестировании Privacy Sandbox, первым шагом должно быть отключение обновлений конфигурации вашего устройства. Это гарантирует, что ваше устройство не получит обновленные конфигурации с сервера и случайно не отключит Privacy Sandbox на вашем тестируемом устройстве.

Отключите обновление конфигурации устройства с помощью этой команды:

adb shell device_config set_sync_disabled_for_tests persistent

Если вы хотите повторно включить обновления конфигурации устройства после тестирования, вы можете сделать это с помощью этой команды:

adb shell device_config set_sync_disabled_for_tests none

Включить подробное ведение журнала рекламных сервисов

Подробное ведение журнала рекламных служб предоставляет больше контекста ошибок, которые вы видите. Чтобы включить, используйте эту команду:

adb shell setprop log.tag.adservices VERBOSE

Убедитесь, что ваше устройство настроено правильно

Если вы только что отключили обновление конфигурации вашего устройства, мы рекомендуем выполнить эти действия еще раз, чтобы убедиться, что ваше устройство настроено правильно и остается таковым на протяжении всего тестирования.

  • Включите PPAPI с помощью соответствующих команд adb.
  • Зарегистрируйте свое устройство или деактивируйте регистрацию, в зависимости от ваших целей.

Проверьте код, чтобы убедиться, что PPAPI доступны.

Вы можете добавить проверки в свою кодовую базу, чтобы убедиться, что на вашем устройстве установлены правильные версии, необходимые для Privacy Sandbox.

Если вы используете бета-версию с расширениями SDK, проверьте правильную версию сборки и расширения SDK:

Если вы используете бета-версию через библиотеки Jetpack, функция инициализации возвращает значение null , если Privacy Sandbox недоступна на вашем устройстве. Например:

Для любого выпуска проверьте наличие сервисов Google Play:

Исключения безопасности

Ошибки исключений безопасности обычно возникают, когда чему-то не хватает авторизации для доступа к ресурсу Privacy Sandbox.

Разрешение не запрашивалось

Ошибка :

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

Возможная причина :

Вы должны объявить разрешение на доступ к идентификатору объявления.

Исправить :

Объявите разрешение в своем AndroidManifest.xml :

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

Вызывающий абонент не авторизован

Ошибка :

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

Failed to find AdServices services

Caller not authorized

Возможная причина :

Вы неправильно зарегистрировали свое устройство. Убедитесь, что вы выполнили все инструкции по регистрации , включая действия по настройке вашего устройства после регистрации .

Возможная причина :

URL-адреса регистрации не совпадают.

Исправить :

  1. Просмотрите свои данные о регистрации и проверьте, нет ли расхождений между URL-адресом, который вы используете в своем коде, и URL-адресом, который вы зарегистрировали в Privacy Sandbox. Например, вы можете использовать https://adtech.example.com/source , но зарегистрированный URL-адрес — https://adtech.example.com/register_source
  2. Настройте свой код так, чтобы он соответствовал зарегистрированному URL-адресу. Например, вы можете изменить строку в примере приложения , добавив к URL-адресу «/register_source» вместо «/source».

Если вы все еще видите эту ошибку :

Возможно, вашей компании нет в списке регистрации, или компания зарегистрирована, но не в белом списке манифеста приложения. Убедитесь, что ваша организация зарегистрирована в Privacy Sandbox, отправив письмо по адресу android-ps-support@google.com .

Звонящий не разрешен

Ошибка :

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 .

Возможная причина :

Имя пакета отсутствует в белом списке.

Исправить :

Разрешить все имена пакетов в белом списке:

Если вы используете оболочку adb напрямую :

Перечисленные ранее команды работают для bash и других оболочек, но если вы запустите оболочку adb напрямую и попытаетесь выполнить команды, вам не придется выходить из кавычек. Вместо этого выполните такие команды:

Исправить :

Добавьте имя вашего пакета в белый список:

adb shell device_config put adservices ppapi_app_allow_list [package name]

Убедитесь, что имя вашего пакета находится в белом списке:

adb shell device_config get adservices ppapi_app_allow_list

При необходимости вы можете удалить белый список с помощью этой команды:

adb shell device_config delete adservices ppapi_app_allow_list

Незаконные государственные исключения

Исключения недопустимого состояния сигнализируют о том, что метод был вызван в недопустимое или неподходящее время, когда среда или приложение не находятся в подходящем состоянии для запрошенной операции.

Незаконные государственные исключения: услуга недоступна.

Ошибка :

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

Возможная причина :

Переключатель уничтожения должен быть отключен.

Исправить :

Вы можете отключить переключатель уничтожения с помощью этой команды:

adb shell 'device_config put adservices global_kill_switch false'

Возможная причина :

Согласие пользователя не было дано.

Исправить :

Вы можете запустить:

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

После выполнения предыдущей команды переключите параметр «Включить изолированную среду конфиденциальности» на «Вкл.».

Ошибки с командами adb

Не удалось найти работу

Ошибка :

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

Возможная причина :

API-интерфейсы Privacy Sandbox не были активированы.

Исправление : перед запуском этого задания вызовите один из API-интерфейсов Privacy Sandbox, например, registerSource() , getTopics() или selectAds() . Ожидается, что этот вызов завершится неудачно, но он необходим для активации API. Затем повторно запустите команду jobscheduler 14 .

Возможная причина :

Необходимо обновить Google Play Store.

Исправить :

  1. Войдите в свое устройство или эмулятор под своей учетной записью Google.
  2. Перейдите в Google Play Store > значок профиля > Настройки > О программе . Под заголовком «Версия Play Store» нажмите «Обновить Play Store» .

Подать заявку

Если эти действия не помогли устранить ошибку, отправьте заявку , указав следующую информацию:

  1. Какой выпуск вы используете: Developer Preview или Beta? На какой версии вы находитесь? Код версии можно найти в «Настройки » > «О телефоне» > «Номер сборки» .
  2. Если вы используете бета-версию, запустите adb shell getprop | grep build.version.extensions и включите результаты в свой запрос.
  3. Какая версия сервисов Google Play установлена ​​на вашем устройстве? Запустите adb shell dumpsys package com.google.android.gms | grep versionName и включите результаты этой команды в свой билет.
  4. Включите полный отчет об ошибке. Вы можете получить полный отчет об ошибке, запустив adb bugreport или следуя инструкциям .