Mendiagnosis lingkungan Anda (baru atau diupgrade)

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

Setelah Anda memverifikasi bahwa server asal Anda telah didaftarkan 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 tentang 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 "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:

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

Untuk 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 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 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:

  1. Anda dapat menggunakan alat aggregatable_report_converter untuk 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.)

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

  1. Memverifikasi laporan gabungan:

    • Buat laporan gabungan dan gunakan alat aggregatable_report_converter untuk mengonversi domain output ke dalam format AVRO.
    • Jalankan permintaan createJob dengan 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.
  2. Verifikasi file domain output:

    • Buat file domain output dan gunakan alat aggregatable_report_converter untuk membuat laporan yang dapat digabungkan.
    • Jalankan permintaan createJob dengan 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.
  3. Verifikasi info yang dibagikan:

    • Pastikan Anda telah mengaktifkan laporan 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 dirusak.

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

  1. Buka Compute Engine > VM instances.
  2. Klik instance mesin virtual 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. 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)

Langkah-langkah untuk Amazon Web Services

  1. Buka EC2 Instances di konsol Amazon Web Services Anda.
  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, 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)

Langkah Berikutnya

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