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:
- 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 tohttps://adtech.example.com/register_source
- 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:
- Zaloguj się na urządzeniu lub w emulatorze, korzystając ze swojego konta Google.
- 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:
- 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.
- Jeśli używasz wersji beta, uruchom polecenie
adb shell getprop | grep build.version.extensions
i dołącz wyniki do zgłoszenia. - 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. - 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.