Beberapa faktor dapat menimbulkan masalah saat menggunakan Layanan Agregasi, termasuk pemformatan laporan, masalah domain output, dan masalah koordinator. Penting untuk memahami sumber error dan metadata yang ada di dalamnya untuk mendiagnosis masalah secara akurat.
Topik panduan:
- Memverifikasi penyiapan API pengukuran klien
- Memecahkan masalah penyiapan asal pelaporan
- Memecahkan masalah laporan gabungan
- Memeriksa versi deployment Anda
Memverifikasi penyiapan API pengukuran klien
Setelah Anda memverifikasi bahwa server asal Anda telah didaftarkan 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), verifikasi bahwa JSON yang diteruskan ke
Attribution-Reporting-Register-Triggersudah 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), verifikasi bahwa 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 tentang 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 "Console" dan "Network".
Jika Anda memerlukan dukungan pemecahan masalah lebih lanjut untuk API klien ini, lanjutkan ke panduan penelusuran bug 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 yang dapat diagregasi akan dikirimkan. Pastikan server asal pelaporan yang di-deploy telah didaftarkan dan terdaftar dengan benar.
Apakah asal pelaporan Anda menerima laporan?
Pastikan server asal pelaporan yang di-deploy telah didaftarkan dan diikutsertakan dengan benar. Server ini adalah tempat Anda mendeklarasikan endpoint .well-known yang sesuai dan benar, tempat laporan yang dapat diagregasi akan dikirim.
| API pengukuran sisi klien | Endpoint yang dapat diagregasi yang cocok |
|---|---|
| Attribution Reporting | POST /.well-known/attribution-reporting/report-aggregate-attribution |
| Private Aggregation + Shared Storage (Kombinasi) | POST /.well-known/private-aggregation/report-shared-storage |
| Private Aggregation + Protected Audience (Combo) | POST /.well-known/private-aggregation/report-protected-audience |
Setelah Anda memverifikasi bahwa server asal Anda telah didaftarkan 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 pada tab "Console" dan "Network".
Jika Anda memerlukan dukungan pemecahan masalah lebih lanjut untuk API klien ini , lanjutkan panduan pen-debug-an untuk Attribution Reporting API dan Private Aggregation API + Shared Storage.
Memecahkan masalah laporan gabungan
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 yang dapat digabungkan Anda dikonversi dengan benar?
Pastikan endpoint pelaporan Anda (.well-known/…) mengonversi laporan JSON yang dapat diagregasi 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 diagregasi maupun AVRO domain output. Apakah laporan AVRO yang dapat digabungkan 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 Anda 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 dapat disebabkan oleh masalah pada pendaftaran pemicu. Pastikan mereka telah mendaftarkan pemicunya dengan cloud yang benar menggunakan kolom aggregation_coordinator_origin (petunjuk di sini). Anda juga dapat memberikan laporan yang dienkripsi AWS ke deployment Google Cloud Layanan Agregasi mereka, atau laporan yang dienkripsi Google Cloud ke deployment AWS mereka. Minta mereka untuk memvalidasi endpoint kunci publik mana yang digunakan untuk mengenkripsi laporan yang dapat diagregasi. Untuk Google Cloud, kolom `aggregation_coordinator_origin` dalam laporan yang dapat diagregasi harus berupa https://publickeyservice.msmt.gcp.privacysandboxservices.com. Untuk AWS, kolom tersebut 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. 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 terkait mode debug atau biner yang tidak disetujui, menggunakan biner yang tepat akan memperbaiki masalah tersebut. Ikuti petunjuk di sini untuk menggunakan AMI bawaan atau membangun sendiri AMI Anda. |
Selesaikan langkah-langkah berikut untuk memverifikasi:
Anda dapat menggunakan alat
aggregatable_report_converteruntuk mengonversi laporan yang dapat diagregasi yang Anda kumpulkan dari endpoint .well-known ke AVRO, dan membuat kunci domain output. (Catatan: File domain output harus berupa string byte 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 Codelab Layanan Agregasi Google Cloud b. Amazon Web Services: ikuti langkah 4.2 hingga 5.3 Aggregation Service AWS Codelab.
Jika respons yang ditampilkan adalah SUCCESS, berarti konversi Anda berfungsi.
Apakah laporan agregat Anda masih utuh?
Verifikasi bahwa laporan gabungan, kunci domain output, dan info yang dibagikan Anda masih utuh. Lihat kode contoh untuk mengonversi laporan yang dapat diagregasi dan membuat file domain jika Anda ingin informasi lebih lanjut.
Error API yang mungkin Anda lihat dan sesuai 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:
Memverifikasi laporan gabungan:
- Buat laporan gabungan dan gunakan alat
aggregatable_report_converteruntuk mengonversi domain output ke dalam formatAVRO. - Jalankan permintaan
createJobdengan laporan yang dapat diagregasi ini dan file domain output. - Jika menampilkan
SUCCESS, berarti laporan yang dapat diagregasi masih utuh. Jika error ditampilkan, berarti Anda mengalami masalah dengan laporan yang dapat diagregasi atau laporan dan domain. - Lanjutkan untuk memeriksa file domain pada langkah berikutnya.
- Buat laporan gabungan dan gunakan alat
Verifikasi file domain output:
- Buat file domain output dan gunakan alat
aggregatable_report_converteruntuk membuat laporan yang dapat digabungkan. - Jalankan permintaan
createJobdengan laporan yang dapat diagregasi ini dan file domain output. - Jika menampilkan
SUCCESS, berarti domain output masih utuh dan ada masalah dengan kode Anda untuk membuat laporan yang dapat digabungkan. - Lanjutkan ke langkah berikutnya untuk memeriksa
shared_info.
- Buat file domain output dan gunakan alat
Verifikasi info yang dibagikan:
- Pastikan Anda telah mengaktifkan laporan debug. Laporan yang mengaktifkan debug akan memiliki kolom
debug_cleartext_payloadyang tersedia. - Buat laporan debug untuk digunakan dengan alat pengujian lokal dan gunakan
debug_cleartext_payloadsebagai payload. - Jalankan alat pengujian lokal dengan file domain Anda. Jika ini adalah
SUCCESS, artinya fileshared_infoAnda telah dirusak.
- Pastikan Anda telah mengaktifkan laporan debug. Laporan yang mengaktifkan debug akan memiliki kolom
Jika Anda mencurigai adanya error atau pemalsuan lebih lanjut, kumpulkan laporan gabungan JSON, kunci domain, laporan gabungan AVRO yang dihasilkan, dan domain output, lalu lanjutkan ke langkah berikutnya.
Periksa versi deployment baru Anda
Pastikan versi Aggregation Service Anda masih didukung. Setelah
menentukan versi yang Anda gunakan, periksa daftar rilis Layanan
Penggabungan
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 > VM instances.
- Klik instance mesin virtual 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-referencedi modul pekerja).
- Catatan: Setiap VM yang disediakan di Google Cloud oleh Terraform harus memiliki metadata ini (metadata
- Nilai
tee-image-referenceakan berisi nomor versi. Misalnya, nomor versi jalur berikut adalahv2.9.1. Image ini adalah image bawaan yang berada di Artifact Registry project Google Cloud.- Catatan: Hal ini relevan jika Anda menggunakan aset bawaan. Jika tidak, hal ini harus cocok dengan nama dan tag yang Anda berikan pada gambar Anda.
(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, hal ini harus cocok dengan nama dan tag yang Anda berikan pada gambar Anda.
(contoh:
Langkah-langkah untuk Amazon Web Services
- Buka EC2 Instances di konsol Amazon Web Services Anda.
- 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, hal ini harus cocok dengan nama dan tag yang Anda berikan pada gambar Anda.
(contoh:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)
- Catatan: Hal ini relevan jika Anda menggunakan aset bawaan. Jika tidak, hal ini harus cocok dengan nama dan tag yang Anda berikan pada gambar Anda.
(contoh:
Langkah Berikutnya
Jika Anda tidak melihat solusi untuk masalah Layanan Penggabungan, beri tahu kami dengan melaporkan masalah GitHub atau mengirimkan formulir dukungan teknis.