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

W tym dokumencie opisujemy sposoby rozwiązywania typowych problemów z konfiguracją ustawień prywatności Sandbox na Androidzie. Jeśli zauważysz błąd, którego nie ma w tym przewodniku, powiadom nas o tym.

Niektóre błędy mogą mieć wiele przyczyn. Poniżej znajdziesz listę niektóre z częstych błędów i ich poprawki, ale można napotkać ten sam komunikat o błędzie z innego powodu.

Zanim rozwiążesz problem

Wyłącz aktualizacje konfiguracji urządzenia

podczas rozwiązywania problemów z Piaskownicą prywatności. testowania, pierwszym krokiem powinno być wyłączenie aktualizacji konfiguracji urządzenia. Ten Zapewnia, że urządzenie nie pobiera zaktualizowanych konfiguracji z serwera i nieumyślnie wyłączyć Piaskownicę prywatności na urządzeniu testowym.

Aby wyłączyć aktualizacje konfiguracji urządzeń, użyj tego polecenia:

adb shell device_config set_sync_disabled_for_tests persistent

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

adb shell device_config set_sync_disabled_for_tests none

Włącz szczegółowe logowanie adservices

Szczegółowe logowanie z usług adservices zapewnia szerszy kontekst dla błędów co widzicie. 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 właśnie wyłączone, zalecamy uruchomienie tych kolejnych czynności, by upewnić się, że urządzenie jest prawidłowo skonfigurowane i pozostanie w ten sposób podczas testowania.

  • Włącz interfejsy PPAPI za pomocą odpowiednich poleceń adb.
  • W zależności od celów zarejestruj swoje urządzenie lub dezaktywuj rejestrację.

Sprawdź kod, aby mieć pewność, że interfejsy PPAPI są dostępne

Możesz dodać do bazy kodu punkty kontrolne, aby upewnić się, że urządzenie prawidłowe wersje aplikacji na potrzeby Piaskownicy prywatności.

Jeśli używasz wersji beta, korzystając z rozszerzeń pakietu SDK, sprawdź prawidłową kompilację i wersja rozszerzenia SDK:

Jeśli używasz wersji beta w bibliotekach Jetpack, inicjowanie jeśli Piaskownica prywatności jest niedostępna na Twoim urządzeniu, funkcja zwraca null urządzenia. Na przykład:

Sprawdź, czy w przypadku każdej wersji są dostępne Usługi Google Play:

Wyjątki dotyczące zabezpieczeń

Błędy związane z wyjątkami zabezpieczeń występują zwykle wtedy, gdy coś nie jest upoważnione do uzyskać dostęp do zasobu Piaskownicy prywatności.

Nie wysłano prośby 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 uprawnienia na koncie AndroidManifest.xml:

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

Rozmówca nie jest upoważniony

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 po rejestracji aby skonfigurować urządzenie.

Możliwa przyczyna:

Adresy URL rejestracji nie są takie same.

Rozwiązanie:

  1. Przejrzyj dane dotyczące rejestracji i sprawdź, czy występują rozbieżności między URL użyty w kodzie oraz adres URL zarejestrowany na stronie Prywatność Piaskownica. Możesz na przykład używać atrybutu https://adtech.example.com/source ale zarejestrowany adres URL to https://adtech.example.com/register_source
  2. Dostosuj kod, aby pasował do zarejestrowanego adresu URL. Możesz np. dostosować wiersz w przykładowej aplikacji, który ma dołączyć ciąg „/register_source” w adresie URL „/source”.

Jeśli ten błąd nadal się pojawia:

Firmy może nie być na liście rejestracji lub jest zarejestrowana, ale nie ma jej na liście dozwolonych w pliku manifestu aplikacji. Sprawdź, czy Twoja organizacja jest zarejestrowana z Piaskownicą prywatności, wysyłając 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:

Nazwa pakietu nie znajduje się na liście dozwolonych.

Rozwiązanie:

Zezwalaj na wszystkie nazwy pakietów z listy dozwolonych:

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

Wymienione wcześniej polecenia działają w przypadku bash i innych powłok, ale jeśli uruchomisz narzędzie adb i spróbuj uruchomić polecenia, nie należy zmieniać cytatów. Zamiast tego uruchom te polecenia:

Rozwiązanie:

Dodaj nazwę pakietu do listy dozwolonych:

adb shell device_config put adservices ppapi_app_allow_list [package name]

Sprawdź, czy nazwa 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 przy użyciu tego polecenia:

adb shell device_config delete adservices ppapi_app_allow_list

Wyjątki dotyczące nielegalnego stanu

Nielegalne wyjątki stanu sygnalizują, że metoda została wywołana w wyniku działania niedozwolonego lub w nieodpowiednim momencie, gdy środowisko lub aplikacja nie znajdują się odpowiedni stan dla żądanej operacji.

Wyjątki dotyczące nielegalnych stanów: 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:

Przełącznik Kill Switch musi być wyłączony.

Rozwiązanie:

Możesz go wyłączyć przy użyciu tego polecenia:

adb shell 'device_config put adservices global_kill_switch false'

Możliwa przyczyna:

Użytkownik nie wyraził zgody.

Rozwiązanie:

Możesz wyświetlać:

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

Po zakończeniu poprzedniego polecenia przełącz opcję „Włącz Piaskownicę prywatności” na „Wł.”.

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 połączenie ale jest to konieczne do aktywowania interfejsu API. Następnie uruchom ponownie jobscheduler 14 .

Możliwa przyczyna:

Trzeba 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 > ikonę profilu > Ustawienia > Informacje. Pod nagłówkiem Wersja Sklepu Play kliknij Zaktualizuj Sklep Play.

Zgłaszanie zgłoszenia

Jeśli po wykonaniu tych czynności błąd nie ustąpi, prześlij zgłoszenie i podaj następujące informacje:

  1. Z której wersji korzystasz: wersji przedpremierowej dla programistów czy beta? Jakie to wersje? Interesuje Cię? Kod wersji znajdziesz w sekcji Ustawienia > Informacje o telefonie > Numer kompilacji.
  2. Jeśli korzystasz z wersji beta, uruchom adb shell getprop | grep build.version.extensions i podaj wyniki w zgłoszeniu.
  3. Jaką wersję Usług Google Play masz na urządzeniu? Uruchom adb shell dumpsys package com.google.android.gms | grep versionName i dołącz kod jego wyników.
  4. Dołącz pełny raport o błędzie. Pełny raport o błędzie możesz uzyskać, uruchamiając polecenie adb bugreport lub postępując zgodnie z instrukcjami.