Dokumen ini menjelaskan cara menyelesaikan masalah umum saat menyiapkan Privacy Sandbox di Android. Jika Anda melihat error yang tidak ditemukan dalam panduan ini, beri tahu kami.
Beberapa error memiliki beberapa kemungkinan alasan untuk ditampilkan. Di bawah ini adalah beberapa error yang lebih umum beserta cara memperbaikinya, tetapi pesan error yang sama mungkin muncul karena alasan yang berbeda.
Sebelum Anda memecahkan masalah
Menonaktifkan update konfigurasi perangkat
Saat memecahkan masalah apa pun yang Anda alami dengan pengujian Privacy Sandbox, langkah pertama adalah menonaktifkan update konfigurasi perangkat. Tindakan ini akan memastikan perangkat Anda tidak mengambil konfigurasi yang diupdate dari server dan secara tidak sengaja menonaktifkan Privacy Sandbox di perangkat pengujian Anda.
Nonaktifkan update konfigurasi perangkat dengan perintah ini:
adb shell device_config set_sync_disabled_for_tests persistent
Jika ingin mengaktifkan kembali update konfigurasi perangkat setelah pengujian, Anda dapat melakukannya dengan perintah ini:
adb shell device_config set_sync_disabled_for_tests none
Mengaktifkan logging panjang adservice
Logging panjang dari adservice memberikan lebih banyak konteks tentang error yang Anda lihat. Untuk mengaktifkannya, gunakan perintah ini:
adb shell setprop log.tag.adservices VERBOSE
Memastikan perangkat telah dikonfigurasi dengan benar
Jika Anda baru saja menonaktifkan update konfigurasi perangkat, sebaiknya jalankan kembali langkah-langkah ini untuk memastikan perangkat Anda dikonfigurasi dengan benar dan tetap seperti itu selama durasi pengujian.
- Aktifkan PPAPI dengan perintah adb yang berlaku.
- Daftarkan perangkat Anda, atau nonaktifkan pendaftaran, bergantung pada sasaran Anda.
Memeriksa kode untuk memastikan PPAPI tersedia
Anda dapat menambahkan pemeriksaan ke codebase untuk memastikan perangkat Anda memiliki versi yang benar, yang diperlukan untuk Privacy Sandbox.
Jika Anda menggunakan rilis Beta melalui ekstensi SDK, periksa build dan versi ekstensi SDK yang benar:
Jika Anda menggunakan rilis Beta melalui Library Jetpack, fungsi
inisialisasi akan menampilkan null
jika Privacy Sandbox tidak tersedia di
perangkat Anda. Misalnya:
Untuk rilis apa pun, periksa layanan Google Play:
Pengecualian keamanan
Error pengecualian keamanan biasanya muncul ketika ada sesuatu yang tidak memiliki otorisasi untuk mengakses resource Privacy Sandbox.
Izin tidak diminta
Error:
Failed to get Ad ID: java.lang.SecurityException: Caller is not authorized to
call this API. Permission was not requested
.
Kemungkinan Alasan:
Anda harus menyatakan izin untuk mengakses ID Iklan.
Perbaikan:
Deklarasikan izin di AndroidManifest.xml
Anda:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />
Pemanggil tidak diizinkan
Error:
Failed to find resolveInfo for adServices service. Intent action:
android.adservices.adid.AdIdProviderService
Failed to find AdServices services
Caller not authorized
Kemungkinan Alasan:
Anda belum mendaftarkan perangkat dengan benar. Pastikan Anda telah mengikuti semua petunjuk pendaftaran, termasuk langkah-langkah pasca-pendaftaran untuk mengonfigurasi perangkat.
Kemungkinan Alasan:
URL pendaftaran tidak cocok.
Perbaikan:
- Lihat data pendaftaran Anda untuk mengetahui apakah ada perbedaan antara
URL yang Anda gunakan dalam kode dan URL yang Anda daftarkan dengan Privacy
Sandbox. Misalnya, Anda mungkin menggunakan
https://adtech.example.com/source
, tetapi URL yang terdaftar adalahhttps://adtech.example.com/register_source
- Sesuaikan kode Anda agar cocok dengan URL yang terdaftar. Misalnya, Anda dapat menyesuaikan baris dalam aplikasi contoh untuk menambahkan "/register_source" ke URL, bukan "/source".
Jika Anda masih melihat error ini:
Perusahaan Anda mungkin tidak ada dalam daftar pendaftaran, atau perusahaan terdaftar, tetapi tidak tercantum dalam daftar yang diizinkan oleh manifes aplikasi. Pastikan organisasi Anda terdaftar di Privacy Sandbox dengan menghubungi android-ps-support@google.com.
Pemanggil tidak diizinkan
Error:
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
.
Kemungkinan Alasan:
Nama paket tidak ada dalam daftar yang diizinkan.
Perbaikan:
Izinkan semua nama paket dalam daftar yang diizinkan:
Jika Anda menggunakan shell adb secara langsung:
Perintah yang tercantum sebelumnya berfungsi untuk bash dan shell lainnya, tetapi jika Anda memulai shell adb secara langsung dan mencoba menjalankan perintah, Anda tidak dapat menghindari tanda kutip. Sebagai gantinya, jalankan perintah seperti ini:
Perbaikan:
Tambahkan nama paket ke daftar yang diizinkan:
adb shell device_config put adservices ppapi_app_allow_list [package name]
Pastikan nama paket Anda ada dalam daftar yang diizinkan:
adb shell device_config get adservices ppapi_app_allow_list
Jika diperlukan, Anda dapat menghapus daftar yang diizinkan dengan perintah ini:
adb shell device_config delete adservices ppapi_app_allow_list
Pengecualian status ilegal
Pengecualian status ilegal menandakan bahwa metode telah dipanggil pada waktu yang ilegal atau tidak tepat, saat lingkungan atau aplikasi tidak dalam status yang sesuai untuk operasi yang diminta.
Pengecualian status ilegal: Layanan tidak tersedia
Error:
com.example.measurement.sampleapp E Failed binding to measurement service:
java.lang.IllegalStateException: Service is not available
Kemungkinan Alasan:
Tombol kill harus dinonaktifkan.
Perbaikan:
Anda dapat menonaktifkan tombol kill dengan perintah ini:
adb shell 'device_config put adservices global_kill_switch false'
Kemungkinan Alasan:
Izin pengguna belum diberikan.
Perbaikan:
Anda dapat menjalankan:
adb shell am start -n com.google.android.adservices.api/com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity
Setelah perintah sebelumnya selesai, alihkan preferensi "Enable Privacy Sandbox" ke "On".
Error dengan perintah adb
Tidak dapat menemukan tugas
Error:
Could not find job 14 in package com.google.android.adservices.api/ user 0
Kemungkinan Alasan:
Privacy Sandbox API belum dipicu.
Perbaikan: Sebelum menjalankan tugas, panggil salah satu Privacy Sandbox API, seperti
registerSource()
, getTopics()
, atau selectAds()
. Panggilan ini diperkirakan akan
gagal, tetapi diperlukan untuk mengaktifkan API. Kemudian, jalankan kembali perintah
jobscheduler 14
.
Kemungkinan Alasan:
Perlu mengupdate Google Play Store.
Perbaikan:
- Login ke perangkat atau emulator dengan Akun Google Anda.
- Buka Google Play Store > ikon profil > Setelan > Tentang. Di bagian judul Versi Play Store, ketuk Update Play Store.
Mengajukan tiket
Jika langkah-langkah ini tidak menyelesaikan error, ajukan tiket dan sertakan informasi berikut:
- Rilis mana yang Anda gunakan, Pratinjau Developer atau Beta? Versi apa yang Anda gunakan? Anda dapat menemukan kode versi di Setelan > Tentang Ponsel > Nomor Build.
- Jika Anda menggunakan rilis Beta, jalankan
adb shell getprop | grep build.version.extensions
dan sertakan hasilnya dalam tiket Anda. - Layanan Google Play versi apa yang dimiliki perangkat Anda? Jalankan
adb shell dumpsys package com.google.android.gms | grep versionName
dan sertakan hasil perintah tersebut di tiket Anda. - Sertakan laporan bug lengkap. Anda bisa mendapatkan laporan bug lengkap dengan menjalankan
adb bugreport
, atau dengan dengan mengikuti petunjuknya.