Przewodnik rozwiązywania problemów z Piaskownicą prywatności na Androida

W tym dokumencie opisujemy, jak rozwiązać typowe problemy podczas konfigurowania Piaskownicy prywatności na Androidzie. Jeśli widzisz błąd, którego nie ma w tym przewodniku, daj nam znać.

Niektóre błędy mogą mieć kilka przyczyn. Poniżej znajdziesz typowe błędy i sposoby ich naprawienia, ale ten sam komunikat o błędzie może też wystąpić z innego powodu.

Zanim rozwiążesz problem

Wyłącz aktualizacje konfiguracji urządzenia

Podczas rozwiązywania problemów z testowaniem Piaskownicy prywatności najpierw musisz wyłączyć aktualizacje konfiguracji urządzenia. Dzięki temu urządzenie nie będzie pobierać zaktualizowanych konfiguracji z serwera i niechcący wyłączy Piaskownicę prywatności na urządzeniu testowym.

Wyłącz aktualizacje konfiguracji urządzeń za pomocą tego polecenia:

adb shell device_config set_sync_disabled_for_tests persistent

Jeśli chcesz ponownie włączyć aktualizacje konfiguracji urządzeń po zakończeniu testów, możesz to zrobić za pomocą tego polecenia:

adb shell device_config set_sync_disabled_for_tests none

Włącz szczegółowe rejestrowanie usług reklamowych

Logowanie szczegółowe z usług reklamowych dostarcza więcej informacji o zauważanych błędach. Aby je włączyć, użyj tego polecenia:

adb shell setprop log.tag.adservices VERBOSE

Sprawdź, czy urządzenie zostało prawidłowo skonfigurowane

Jeśli aktualizacje konfiguracji urządzenia zostały przed chwilą wyłączone, zalecamy wykonanie tych czynności jeszcze raz, aby upewnić się, że urządzenie jest prawidłowo skonfigurowane i pozostanie w ten sposób podczas testowania.

  • Włącz interfejsy PPAPI z odpowiednimi poleceniami adb.
  • W zależności od celów zarejestruj urządzenie lub zdezaktywuj rejestrację.

Sprawdź kod, aby upewnić się, że interfejsy PPAPI są dostępne

Możesz dodać do bazy kodu weryfikację, aby sprawdzić, czy Twoje urządzenie ma odpowiednie wersje wymagane do działania Piaskownicy prywatności.

Jeśli korzystasz z wersji beta za pomocą rozszerzeń pakietu SDK, sprawdź, czy masz prawidłową kompilację i wersję tego rozszerzenia:

Jeśli używasz wersji beta za pośrednictwem bibliotek Jetpack, funkcja inicjowania zwraca wartość null, gdy Piaskownica prywatności jest niedostępna na urządzeniu. Na przykład:

W przypadku dowolnej wersji sprawdź Usługi Google Play:

Wyjątki zabezpieczeń

Błędy związane z wyjątkami zabezpieczeń pojawiają się zwykle, gdy coś nie ma autoryzacji do uzyskania dostępu do zasobu Piaskownicy prywatności.

Nie poproszono o uprawnienia

Błąd:

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

Możliwa przyczyna:

Musisz zadeklarować uprawnienia dostępu do identyfikatora reklamy.

Rozwiązanie:

Zadeklaruj te uprawnienia w AndroidManifest.xml:

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

Rozmówca nie jest autoryzowany

Błąd:

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

Failed to find AdServices services

Caller not authorized

Możliwa przyczyna:

Urządzenie nie zostało prawidłowo zarejestrowane. Upewnij się, że zostały wykonane wszystkie instrukcje rejestracji, w tym czynności po rejestracji, aby skonfigurować urządzenie.

Możliwa przyczyna:

Adresy URL rejestracji nie są takie same.

Rozwiązanie:

  1. Przejrzyj dane rejestracji, by zobaczyć, czy występują rozbieżności między adresem URL używanym w kodzie a adresem URL zarejestrowanym w Piaskownicy prywatności. Możesz np. użyć adresu https://adtech.example.com/source, a zarejestrowany URL to https://adtech.example.com/register_source
  2. Dopasuj kod do zarejestrowanego adresu URL. Możesz na przykład dostosować wiersz w przykładowej aplikacji tak, aby do adresu URL dołączał fragment „/register_source” zamiast „/source”.

Jeśli błąd nadal występuje:

Twojej firmy może nie być na liście rejestracji lub jest ona zarejestrowana, ale nie ma jej na liście dozwolonych w pliku manifestu aplikacji. Aby sprawdzić, czy Twoja organizacja korzysta z Piaskownicy prywatności, wyślij e-maila na adres android-ps-support@google.com.

Rozmówca jest niedozwolony

Błąd:

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.

Możliwa przyczyna:

Tej nazwy pakietu nie ma na liście dozwolonych.

Rozwiązanie:

Zezwalaj na wszystkie nazwy pakietów na liście dozwolonych:

Jeśli używasz powłoki adb bezpośrednio:

Wymienione wcześniej polecenia działają w powłoce bash i innych powłokach, ale jeśli bezpośrednio uruchomisz powłokę adb i spróbujesz wykonać polecenia, nie musisz zmieniać znaczenia cudzysłowu. Zamiast tego uruchom następujące polecenia:

Rozwiązanie:

Dodaj nazwę pakietu do listy dozwolonych:

adb shell device_config put adservices ppapi_app_allow_list [package name]

Sprawdź, czy nazwa Twojego pakietu znajduje się na liście dozwolonych:

adb shell device_config get adservices ppapi_app_allow_list

W razie potrzeby możesz usunąć listę dozwolonych, używając tego polecenia:

adb shell device_config delete adservices ppapi_app_allow_list

Wyjątki dotyczące niedozwolonego stanu

Wyjątki niedozwolonego stanu sygnalizują, że metoda została wywołana w nieprawidłowym lub nieodpowiednim czasie, gdy stan środowiska lub aplikacji nie jest odpowiedni dla żądanej operacji.

Niedozwolone wyjątki dotyczące stanu: usługa jest niedostępna

Błąd:

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

Możliwa przyczyna:

Wyłącznik musi być wyłączony.

Rozwiązanie:

Przełącznik kill możesz wyłączyć, używając tego polecenia:

adb shell 'device_config put adservices global_kill_switch false'

Możliwa przyczyna:

Zgoda użytkownika nie została udzielona.

Rozwiązanie:

Reklamy, które możesz wyświetlać:

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

Po wykonaniu poprzedniego polecenia włącz ustawienie „Włącz Piaskownicę prywatności”.

Błędy związane z poleceniami adb

Nie udało się znaleźć oferty pracy

Błąd:

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

Możliwa przyczyna:

Interfejsy API Piaskownicy prywatności nie zostały aktywowane.

Rozwiązanie: przed uruchomieniem tego zadania wywołaj jeden z interfejsów API Piaskownicy prywatności, taki jak registerSource(), getTopics() lub selectAds(). To wywołanie powinno zakończyć się niepowodzeniem, ale jest potrzebne do aktywowania interfejsu API. Następnie ponownie uruchom polecenie jobscheduler 14.

Możliwa przyczyna:

Musisz zaktualizować Sklep Google Play.

Rozwiązanie:

  1. Zaloguj się na urządzeniu lub w emulatorze, korzystając ze swojego konta Google.
  2. Otwórz Sklep Google Play > ikona profilu > Ustawienia > Informacje. Pod nagłówkiem Wersja Sklepu Play kliknij Zaktualizuj Sklep Play.

Zgłaszanie problemu

Jeśli wykonanie tych czynności nie rozwiąże problemu, prześlij zgłoszenie i podaj te informacje:

  1. Której wersji używasz – Podgląd dla programistów czy Beta? Której wersji używasz? Kod wersji możesz sprawdzić w sekcji Ustawienia > Informacje o telefonie > Numer kompilacji.
  2. Jeśli używasz wersji beta, uruchom polecenie adb shell getprop | grep build.version.extensions i dołącz wyniki do zgłoszenia.
  3. Którą wersję Usług Google Play masz na swoim urządzeniu? Uruchom adb shell dumpsys package com.google.android.gms | grep versionName i dołącz wyniki tego polecenia w zgłoszeniu.
  4. Załącz pełny raport o błędzie. Pełny raport o błędzie możesz wygenerować, uruchamiając polecenie adb bugreport lub postępując zgodnie z tymi instrukcjami.