Panduan pemecahan masalah Privacy Sandbox untuk Android

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. Contoh:

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:

  1. 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 adalah https://adtech.example.com/register_source
  2. 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:

  1. Login ke perangkat atau emulator dengan Akun Google Anda.
  2. 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:

  1. 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.
  2. Jika Anda menggunakan rilis Beta, jalankan adb shell getprop | grep build.version.extensions dan sertakan hasilnya dalam tiket Anda.
  3. 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.
  4. Sertakan laporan bug lengkap. Anda bisa mendapatkan laporan bug lengkap dengan menjalankan adb bugreport, atau dengan mengikuti petunjuknya.