Mendiagnosis lingkungan Anda (baru atau diupgrade)

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

Setelah Anda memverifikasi bahwa server origin telah terdaftar dengan benar, selesaikan langkah-langkah berikut:

  1. Periksa cara Anda memicu laporan. Pastikan Anda menerima format laporan yang benar sesuai dengan API yang digunakan:

    • Attribution Reporting API
    • Private Aggregation API
      • Pelaporan di Private Aggregation API dapat diselesaikan menggunakan fungsi contributeToHistogram. Pastikan Anda meneruskan kunci dan nilai bucket. Kunci bucket harus dalam format BigInt. (Baca selengkapnya Private Aggregation API)
  2. 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:

  1. Periksa cara Anda memicu laporan. Pastikan Anda menerima format laporan yang benar sesuai dengan API yang digunakan:

  2. 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 API

Untuk 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 aggregationCoordinatorOrigin.

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:

  1. 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.)

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

  1. Verifikasi laporan gabungan:

    • Buat laporan gabungan dan gunakan alat aggregatable_report_converter untuk mengonversi domain output menjadi format AVRO.
    • 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.
  2. 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.
  3. 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 file shared_info Anda telah dimodifikasi.

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

  1. Buka Compute Engine > Instance VM.
  2. Klik instance virtual machine dengan -worker- di namanya.
  3. Temukan bagian Custom Metadata, lalu temukan kunci tee-image-reference.
  4. Nilai tee-image-reference akan berisi nomor versi. Misalnya, nomor versi jalur berikut adalah v2.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)

Langkah-langkah untuk Amazon Web Services

  1. Buka EC2 Instances di konsol Amazon Web Services.
  2. Klik instance dengan nama aggregation-service-operator-dev-env.
  3. Di halaman instance, temukan Details > AMI (Amazon Machine Image)
  4. 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)

Langkah Berikutnya

Jika Anda tidak melihat solusi untuk masalah Layanan Agregasi, beri tahu kami dengan melaporkan masalah GitHub atau mengirimkan formulir dukungan teknis.