Beberapa faktor dapat menyebabkan masalah saat menggunakan Layanan Agregasi, termasuk pemformatan laporan, masalah domain output, dan masalah koordinator. Anda harus memahami sumber error dan metadata yang dikandungnya untuk mendiagnosis masalah secara akurat.
Topik panduan:
- Memverifikasi penyiapan API pengukuran klien
- Memecahkan masalah penyiapan asal pelaporan
- Memecahkan masalah laporan gabungan
- Memeriksa versi deployment
Memverifikasi penyiapan API pengukuran klien
Setelah Anda memverifikasi bahwa server origin telah terdaftar dengan benar, selesaikan langkah-langkah berikut:
Periksa cara Anda memicu laporan. Pastikan Anda menerima format laporan yang benar sesuai dengan API yang digunakan:
- Attribution Reporting API
- Untuk Attribution Reporting API, pastikan Anda telah berhasil mendaftarkan sumber (Peristiwa dan Ringkasan). Untuk melakukan Pendaftaran Pemicu (Peristiwa dan Ringkasan), pastikan JSON yang diteruskan ke
Attribution-Reporting-Register-Trigger
sudah benar menggunakan alat validasi header. (Baca selengkapnya Laporan Ringkasan Attribution Reporting API)
- Untuk Attribution Reporting API, pastikan Anda telah berhasil mendaftarkan sumber (Peristiwa dan Ringkasan). Untuk melakukan Pendaftaran Pemicu (Peristiwa dan Ringkasan), pastikan JSON yang diteruskan ke
- Private Aggregation API
- Pelaporan di Private Aggregation API dapat diselesaikan menggunakan fungsi
contributeToHistogram
. Pastikan Anda meneruskan kunci dan nilai bucket. Kunci bucket harus dalam formatBigInt
. (Baca selengkapnya Private Aggregation API)
- Pelaporan di Private Aggregation API dapat diselesaikan menggunakan fungsi
- Attribution Reporting API
Jika Anda memicu laporan seperti yang direkomendasikan, tetapi masih mengalami masalah, periksa apakah ada error yang diamati di Konsol Developer Chrome di tab "Konsol" dan "Jaringan".
Jika Anda memerlukan dukungan pemecahan masalah lebih lanjut untuk API klien ini, lanjutkan ke panduan proses debug untuk Attribution Reporting API dan Private Aggregation API + Shared Storage.
Memecahkan masalah penyiapan origin pelaporan
Server asal pelaporan adalah tempat Anda mendeklarasikan endpoint .well-known
yang sesuai dan benar tempat laporan agregat akan dikirim. Pastikan server origin pelaporan yang di-deploy telah terdaftar dan didaftarkan dengan benar.
Apakah asal pelaporan Anda menerima laporan?
Verifikasi bahwa server asal pelaporan yang di-deploy telah terdaftar dan didaftarkan dengan benar. Server ini adalah tempat Anda mendeklarasikan endpoint .well-known
yang sesuai dan benar, tempat laporan agregat akan dikirim.
API pengukuran sisi klien | Mencocokkan endpoint agregat |
---|---|
Pelaporan Atribusi | POST /.well-known/attribution-reporting/report-aggregate-attribution |
Private Aggregation + Shared Storage (Gabungan) | POST /.well-known/private-aggregation/report-shared-storage |
Private Aggregation + Protected Audience (Gabungan) | POST /.well-known/private-aggregation/report-protected-audience |
Setelah memverifikasi bahwa server origin Anda telah terdaftar dengan benar, selesaikan langkah-langkah berikut:
Periksa cara Anda memicu laporan. Pastikan Anda menerima format laporan yang benar sesuai dengan API yang digunakan:
Jika Anda memicu laporan seperti yang direkomendasikan, tetapi masih mengalami masalah, periksa apakah ada error yang diamati di Konsol Developer Chrome di tab "Konsol" dan "Jaringan".
Jika Anda memerlukan dukungan pemecahan masalah lebih lanjut untuk API klien ini , lanjutkan panduan proses debug untuk Attribution Reporting API dan Private Aggregation API + Shared Storage.
Memecahkan masalah laporan agregat
Laporan agregat dibuat oleh API pengukuran sisi klien dan dikirim ke
origin pelaporan Anda. Laporan ini harus dikonversi ke format AVRO
oleh
endpoint pelaporan Anda. Jika ada masalah dengan konversi ini, atau jika laporan itu sendiri tidak utuh, Anda mungkin melihat error di Layanan Agregasi.
Apakah laporan agregat Anda berkonversi dengan benar?
Pastikan endpoint pelaporan Anda (.well-known/…
) mengonversi laporan JSON agregat yang diberikan dengan benar menjadi AVRO
.
Error API yang akan muncul karena masalah ini adalah sebagai berikut:
Error | DECRYPTION_ERROR |
---|---|
Contoh |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [
{
"category": "DECRYPTION_ERROR",
"count": 1,
"description": "Unable to decrypt the report. This may be caused by: tampered aggregatable report shared info, corrupt encrypted report, or other such issues."
},
{
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}
],
"error_messages": []
}
}
|
Cek |
Hal ini dapat terjadi karena error dekripsi, yang dapat disebabkan oleh laporan AVRO yang tidak dibuat dengan benar, baik laporan AVRO yang Dapat Digabung maupun AVRO domain output. Apakah laporan AVRO Gabungan dibuat dengan benar? Payload harus didekode base64 dan dikonversi menjadi array byte. Pastikan laporan dalam format avro. Selain itu, periksa apakah domain output AVRO sudah benar. Bucket dikonversi ke format hex unicode yang di-escape, lalu dikonversi menjadi array byte.
Jika melihat lebih dari satu jumlah error, Anda dapat mengetahui lebih lanjut error tersebut di halaman GitHub Layanan Agregasi.
|
Error | DECRYPTION_KEY_NOT_FOUND |
---|---|
Contoh |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [{
"category": "DECRYPTION_KEY_NOT_FOUND",
"count": 1,
"description": "Could not find decryption key on private key endpoint."
}, {
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}],
"error_messages": []
}
}
|
Cek |
Attribution Reporting API
Untuk Attribution Reporting API, error ini mungkin disebabkan oleh masalah pada pendaftaran pemicu. Pastikan mereka telah mendaftarkan pemicu ke cloud yang benar menggunakan kolom aggregation_coordinator_origin (petunjuk di sini). Anda mungkin juga menyediakan laporan terenkripsi AWS ke deployment Layanan Agregasi Google Cloud mereka, atau laporan terenkripsi Google Cloud ke deployment AWS mereka. Minta mereka untuk memvalidasi endpoint kunci publik yang digunakan untuk mengenkripsi laporan agregat. Untuk Google Cloud, kolom `aggregation_coordinator_origin` dalam laporan agregat harus https://publickeyservice.msmt.gcp.privacysandboxservices.com. Untuk AWS, kolom ini adalah https://publickeyservice.msmt.aws.privacysandboxservices.com. Private Aggregation APIUntuk Private Aggregation API, Anda harus menentukan `aggregationCoordinatorOrigin` menggunakan contoh di bagian Pilihan koordinator agregasi dalam penjelasan Private Aggregation API. Harap tentukan https://publickeyservice.msmt.gcp.privacysandboxservices.com sebagai Contoh: sharedStorage.run('someOperation', {'privateAggregationConfig':
{'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});
|
Error | DECRYPTION_KEY_FETCH_ERROR |
---|---|
Contoh |
"result_info": {
"return_code": "REPORTS_WITH_ERRORS_EXCEEDED_THRESHOLD",
"return_message": "Aggregation job failed early because the number of reports excluded from aggregation exceeded threshold.",
"error_summary": {
"error_counts": [
{
"category": "DECRYPTION_KEY_FETCH_ERROR",
"count": 1,
"description": "Fetching the decryption key for report decryption failed. This can happen using an unapproved aggregation service binary, running the aggregation service binary in debug mode, key corruption or service availability issues."
},
{
"category": "NUM_REPORTS_WITH_ERRORS",
"count": 1,
"description": "Total number of reports that had an error. These reports were not considered in aggregation. See additional error messages for details on specific reasons."
}
]
}
}
|
Cek | Jika terjadi masalah mode debug atau biner yang tidak disetujui, menggunakan biner yang tepat akan memperbaiki masalah tersebut. Ikuti petunjuk di sini untuk menggunakan AMI bawaan atau membuat AMI sendiri. |
Selesaikan langkah-langkah berikut untuk memverifikasi:
Anda dapat menggunakan alat
aggregatable_report_converter
untuk mengonversi laporan agregat yang Anda kumpulkan dari endpoint .well-known ke AVRO, dan membuat kunci domain output. (Catatan: File domain output harus berupa bytestring big-endian 16 byte.)Ikuti langkah-langkah dalam codelab untuk penyedia cloud publik Anda guna mengumpulkan laporan debug dan menjalankan tugas Layanan Agregasi menggunakan kunci domain output Anda: a. Google Cloud: ikuti langkah 3.1.2 hingga 3.2.3 di Codelab Layanan Agregasi Google Cloud b. Amazon Web Services: ikuti langkah 4.2 hingga 5.3 di Codelab AWS Layanan Agregasi.
Jika ini menampilkan respons SUCCESS
, konversi Anda berfungsi.
Apakah laporan agregat Anda utuh?
Pastikan laporan gabungan, kunci domain output, dan info bersama Anda tetap utuh. Lihat contoh kode untuk mengonversi laporan gabungan dan membuat file domain jika Anda ingin mengetahui informasi lebih lanjut.
Error API yang mungkin Anda lihat dan terkait dengan masalah ini adalah sebagai berikut:
Error | INPUT_DATA_READ_FAILED |
---|---|
Endpoint | createJob |
Cek |
Apakah kolom input_data_bucket_name , input_data_blob_prefix , output_data_bucket_name , dan output_data_blob_prefix dalam permintaan createJob sudah benar? Apakah lokasi data laporan input memiliki laporan yang akan diproses? Apakah Anda memiliki izin untuk membaca dari lokasi penyimpanan untuk laporan dan domain output?
|
Selesaikan langkah-langkah berikut untuk memverifikasi:
Verifikasi laporan gabungan:
- Buat laporan gabungan dan gunakan alat
aggregatable_report_converter
untuk mengonversi domain output menjadi formatAVRO
. - Jalankan permintaan
createJob
dengan laporan gabungan dan file domain output ini. - Jika menampilkan
SUCCESS
, artinya laporan gabungan masih utuh. Jika ini menampilkan error, berarti Anda mengalami masalah dengan laporan agregat atau laporan dan domain. - Lanjutkan untuk memeriksa file domain di langkah berikutnya.
- Buat laporan gabungan dan gunakan alat
Verifikasi file domain output:
- Buat file domain output dan gunakan alat
aggregatable_report_converter
untuk membuat laporan gabungan. - Jalankan permintaan
createJob
dengan laporan gabungan dan file domain output ini. - Jika menampilkan
SUCCESS
, artinya domain output masih utuh dan ada masalah dengan kode Anda untuk membuat laporan gabungan. - Lanjutkan ke langkah berikutnya untuk memeriksa
shared_info
.
- Buat file domain output dan gunakan alat
Memverifikasi info yang dibagikan:
- Pastikan Anda memiliki laporan yang mengaktifkan debug. Laporan yang mengaktifkan debug akan memiliki
kolom
debug_cleartext_payload
yang tersedia. - Buat laporan debug untuk digunakan dengan alat pengujian lokal dan gunakan
debug_cleartext_payload
sebagai payload. - Jalankan alat pengujian lokal dengan file domain Anda. Jika ini adalah
SUCCESS
, artinya fileshared_info
Anda telah dimodifikasi.
- Pastikan Anda memiliki laporan yang mengaktifkan debug. Laporan yang mengaktifkan debug akan memiliki
kolom
Jika Anda mencurigai adanya error atau modifikasi lebih lanjut, kumpulkan laporan agregat JSON, kunci domain, laporan AVRO
gabungan yang dihasilkan, dan domain output, lalu lanjutkan ke langkah berikutnya.
Memeriksa versi deployment baru
Pastikan versi Layanan Agregasi Anda masih didukung. Setelah
menentukan versi yang Anda gunakan, periksa daftar rilis Layanan Agregasi
dan pastikan versi Anda tidak memiliki peringatan akhir dukungan:
This release has reached its end of support on { date }
. Petunjuk berikut untuk menentukan versi yang telah Anda deploy ditujukan untuk cloud publik yang didukung.
Langkah-langkah untuk Google Cloud
- Buka Compute Engine > Instance VM.
- Klik instance virtual machine dengan
-worker-
di namanya. - Temukan bagian
Custom Metadata
, lalu temukan kuncitee-image-reference
.- Catatan: Setiap VM yang disediakan di Google Cloud oleh Terraform harus memiliki metadata ini (metadata
tee-image-reference
di modul pekerja).
- Catatan: Setiap VM yang disediakan di Google Cloud oleh Terraform harus memiliki metadata ini (metadata
- Nilai
tee-image-reference
akan berisi nomor versi. Misalnya, nomor versi jalur berikut adalahv2.9.1
. Ini adalah image bawaan yang ada di Artifact Registry project Google Cloud.- Catatan: Hal ini relevan jika Anda menggunakan aset bawaan. Jika tidak, nama ini harus cocok dengan nama yang Anda berikan dan tag yang Anda tambahkan pada gambar.
(contoh:
us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1
)
- Catatan: Hal ini relevan jika Anda menggunakan aset bawaan. Jika tidak, nama ini harus cocok dengan nama yang Anda berikan dan tag yang Anda tambahkan pada gambar.
(contoh:
Langkah-langkah untuk Amazon Web Services
- Buka EC2 Instances di konsol Amazon Web Services.
- Klik instance dengan nama
aggregation-service-operator-dev-env
. - Di halaman instance, temukan Details > AMI (Amazon Machine Image)
- Nama versi Anda harus disertakan dalam jalur gambar. Misalnya, nomor versi jalur berikut adalah
v2.9.1
.- Catatan: Hal ini relevan jika Anda menggunakan aset bawaan. Jika tidak, nama ini harus cocok dengan nama yang Anda berikan dan tag yang Anda tambahkan pada gambar.
(contoh:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z
)
- Catatan: Hal ini relevan jika Anda menggunakan aset bawaan. Jika tidak, nama ini harus cocok dengan nama yang Anda berikan dan tag yang Anda tambahkan pada gambar.
(contoh:
Langkah Berikutnya
Jika Anda tidak melihat solusi untuk masalah Layanan Agregasi, beri tahu kami dengan melaporkan masalah GitHub atau mengirimkan formulir dukungan teknis.