Chẩn đoán môi trường của bạn (mới hoặc đã nâng cấp)

Nhiều yếu tố có thể gây ra vấn đề khi bạn làm việc với Dịch vụ tổng hợp, bao gồm cả vấn đề về định dạng báo cáo, vấn đề về miền đầu ra và vấn đề về điều phối viên. Điều quan trọng là bạn phải hiểu rõ nguồn gốc của lỗi và mọi siêu dữ liệu mà lỗi đó chứa để chẩn đoán chính xác vấn đề.

Chủ đề hướng dẫn:

Xác minh chế độ thiết lập API đo lường phía máy khách

Sau khi bạn xác minh rằng máy chủ gốc đã được đăng ký đúng cách, hãy hoàn tất các bước sau:

  1. Kiểm tra cách bạn kích hoạt báo cáo. Xác nhận rằng bạn đang nhận được đúng định dạng báo cáo theo API đang được sử dụng:

    • Attribution Reporting API
    • Private Aggregation API
      • Bạn có thể hoàn tất việc báo cáo trong Private Aggregation API bằng cách sử dụng hàm contributeToHistogram. Xác minh rằng bạn đang truyền khoá và giá trị của nhóm. Khoá nhóm lưu trữ phải ở định dạng BigInt. (Đọc thêm về Private Aggregation API)
  2. Nếu bạn đang kích hoạt báo cáo theo đề xuất nhưng vẫn gặp vấn đề, hãy kiểm tra xem có lỗi nào trong Bảng điều khiển dành cho nhà phát triển Chrome ở cả thẻ "Bảng điều khiển" và "Mạng" hay không.

Nếu bạn cần được hỗ trợ thêm về việc khắc phục sự cố cho các API ứng dụng này, hãy tiếp tục xem hướng dẫn gỡ lỗi cho Attribution Reporting APIPrivate Aggregation API + Shared Storage.

Khắc phục sự cố khi thiết lập nguồn báo cáo

Máy chủ gốc báo cáo là nơi bạn đã khai báo các điểm cuối .well-known tương ứng chính xác mà các báo cáo có thể tổng hợp sẽ được gửi đến. Xác minh rằng máy chủ nguồn báo cáo đã triển khai của bạn đã được đăng ký và ghi danh đúng cách.

Nguồn báo cáo của bạn có nhận được báo cáo không?

Xác minh rằng máy chủ nguồn báo cáo đã triển khai của bạn đã được đăng ký và ghi danh đúng cách. Đây là máy chủ nơi bạn đã khai báo các điểm cuối .well-known tương ứng chính xác mà các báo cáo có thể tổng hợp sẽ được gửi đến.

Measurement API phía máy khách Điểm cuối có thể tổng hợp trùng khớp
Attribution Reporting POST /.well-known/attribution-reporting/report-aggregate-attribution
Private Aggregation + Shared Storage (Kết hợp) POST /.well-known/private-aggregation/report-shared-storage
Private Aggregation + Protected Audience (Kết hợp) POST /.well-known/private-aggregation/report-protected-audience

Sau khi bạn xác minh rằng máy chủ gốc đã được đăng ký đúng cách, hãy hoàn tất các bước sau:

  1. Kiểm tra cách bạn kích hoạt báo cáo. Xác nhận rằng bạn đang nhận được đúng định dạng báo cáo theo API đang được sử dụng:

  2. Nếu bạn đang kích hoạt báo cáo theo đề xuất nhưng vẫn gặp vấn đề, hãy kiểm tra xem có lỗi nào trong Bảng điều khiển dành cho nhà phát triển Chrome ở cả thẻ "Bảng điều khiển" và "Mạng" hay không.

Nếu bạn cần được hỗ trợ thêm về việc khắc phục sự cố cho các API ứng dụng này , hãy tiếp tục xem hướng dẫn gỡ lỗi cho Attribution Reporting APIPrivate Aggregation API + Shared Storage.

Khắc phục sự cố về báo cáo tổng hợp

Các API đo lường phía máy khách sẽ tạo báo cáo tổng hợp và gửi đến nguồn gốc báo cáo của bạn. Điểm cuối báo cáo của bạn phải chuyển đổi các báo cáo này sang định dạng AVRO. Nếu có vấn đề với lượt chuyển đổi này hoặc nếu chính các báo cáo không còn nguyên vẹn, thì bạn có thể thấy lỗi trong Dịch vụ tổng hợp.

Báo cáo có thể tổng hợp của bạn có chuyển đổi đúng cách không?

Xác minh rằng điểm cuối báo cáo (.well-known/…) đang chuyển đổi chính xác báo cáo JSON có thể tổng hợp đã cho thành AVRO.

Sau đây là các lỗi API có thể xảy ra do vấn đề này:

Lỗi DECRYPTION_ERROR
Ví dụ:
                "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": []
                    }
                }
            
Séc Điều này có thể xảy ra do lỗi giải mã, có thể là do báo cáo AVRO không được tạo đúng cách, cho dù đó là báo cáo AVRO có thể tổng hợp hay AVRO miền đầu ra. Các báo cáo AVRO có thể tổng hợp có được tạo chính xác không? Tải trọng sẽ cần được giải mã base64 và chuyển đổi thành một mảng byte. Xác minh rằng báo cáo ở định dạng avro. Ngoài ra, hãy kiểm tra xem miền đầu ra AVRO có chính xác hay không. Các nhóm được chuyển đổi sang định dạng thập lục phân unicode có ký tự thoát, sau đó được chuyển đổi thành một mảng byte. Nếu thấy nhiều số lượng lỗi, bạn có thể tìm hiểu thêm về các lỗi này trên trang GitHub của Dịch vụ tổng hợp.
Lỗi DECRYPTION_KEY_NOT_FOUND
Ví dụ:
                "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": []
                    }
                }
            
Séc Attribution Reporting API

Đối với Attribution Reporting API, lỗi này có thể xảy ra do một vấn đề với việc đăng ký điều kiện kích hoạt. Kiểm tra để đảm bảo rằng họ đã đăng ký điều kiện kích hoạt với đúng đám mây bằng cách sử dụng trường aggregation_coordinator_origin (hướng dẫn tại đây). Bạn cũng có thể cung cấp báo cáo được mã hoá bằng AWS cho việc triển khai Dịch vụ tổng hợp trên Google Cloud hoặc báo cáo được mã hoá bằng Google Cloud cho việc triển khai trên AWS. Yêu cầu họ xác thực điểm cuối khoá công khai nào đã được dùng để mã hoá các báo cáo có thể tổng hợp. Đối với Google Cloud, trường `aggregation_coordinator_origin` trong báo cáo có thể tổng hợp phải là https://publickeyservice.msmt.gcp.privacysandboxservices.com. Đối với AWS, trường này là https://publickeyservice.msmt.aws.privacysandboxservices.com.

Private Aggregation API

Đối với Private Aggregation API, bạn sẽ phải xác định `aggregationCoordinatorOrigin` bằng ví dụ trong phần Lựa chọn điều phối viên tổng hợp trong phần giải thích về Private Aggregation API. Vui lòng chỉ định https://publickeyservice.msmt.gcp.privacysandboxservices.com làm aggregationCoordinatorOrigin.

Ví dụ:

                sharedStorage.run('someOperation', {'privateAggregationConfig':
                {'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});

            
Lỗi DECRYPTION_KEY_FETCH_ERROR
Ví dụ:
                "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."
                                }
                            ]
                        }
                }
            
Séc Trong trường hợp có vấn đề về chế độ gỡ lỗi hoặc tệp nhị phân chưa được phê duyệt, việc sử dụng đúng tệp nhị phân sẽ khắc phục được vấn đề. Làm theo hướng dẫn tại đây để sử dụng AMI được tạo sẵn hoặc tự tạo AMI.

Hãy hoàn tất các bước sau để xác minh:

  1. Bạn có thể sử dụng công cụ aggregatable_report_converter để chuyển đổi các báo cáo có thể tổng hợp mà bạn thu thập được từ điểm cuối .well-known sang AVRO và tạo khoá miền đầu ra. (Lưu ý: Tệp miền đầu ra phải là chuỗi byte có thứ tự byte lớn gồm 16 byte.)

  2. Làm theo các bước trong lớp học lập trình dành cho nhà cung cấp dịch vụ đám mây công cộng của bạn để thu thập báo cáo gỡ lỗi và chạy một công việc Dịch vụ tổng hợp bằng cách sử dụng các khoá miền đầu ra: a. Google Cloud: làm theo các bước từ 3.1.2 đến 3.2.3 trong Codelab Dịch vụ tổng hợp của Google Cloud b. Amazon Web Services: làm theo các bước từ 4.2 đến 5.3 của Lớp học lập trình về AWS cho Dịch vụ tổng hợp.

Nếu lệnh này trả về phản hồi SUCCESS, thì lượt chuyển đổi của bạn đang hoạt động.

Các báo cáo tổng hợp của bạn có còn nguyên vẹn không?

Xác minh rằng báo cáo tổng hợp, khoá miền đầu ra và thông tin được chia sẻ của bạn vẫn còn nguyên vẹn. Tham khảo mã mẫu để chuyển đổi báo cáo có thể tổng hợp và tạo tệp miền nếu bạn muốn biết thêm thông tin.

Sau đây là những lỗi API mà bạn có thể gặp phải tương ứng với vấn đề này:

Lỗi INPUT_DATA_READ_FAILED
Điểm cuối createJob
Séc Trường input_data_bucket_name, input_data_blob_prefix, output_data_bucket_nameoutput_data_blob_prefix trong yêu cầu createJob có chính xác không? Vị trí dữ liệu báo cáo đầu vào có các báo cáo cần xử lý không? Bạn có quyền đọc từ vị trí lưu trữ cho các báo cáo và miền đầu ra không?

Hãy hoàn tất các bước sau để xác minh:

  1. Xác minh báo cáo tổng hợp:

    • Tạo báo cáo tổng hợp và sử dụng công cụ aggregatable_report_converter để chuyển đổi miền đầu ra thành định dạng AVRO.
    • Chạy yêu cầu createJob bằng báo cáo có thể tổng hợp này và tệp miền đầu ra.
    • Nếu hàm này trả về SUCCESS, tức là báo cáo có thể tổng hợp vẫn còn nguyên vẹn. Nếu thao tác này trả về lỗi, thì có thể bạn gặp vấn đề với báo cáo có thể tổng hợp hoặc cả báo cáo và miền.
    • Chuyển sang bước tiếp theo để kiểm tra tệp miền.
  2. Xác minh tệp miền đầu ra:

    • Tạo tệp miền đầu ra và sử dụng công cụ aggregatable_report_converter để tạo báo cáo có thể tổng hợp.
    • Chạy yêu cầu createJob bằng báo cáo có thể tổng hợp này và tệp miền đầu ra.
    • Nếu phương thức này trả về SUCCESS, tức là miền đầu ra vẫn còn nguyên vẹn và mã của bạn gặp vấn đề khi tạo báo cáo có thể tổng hợp.
    • Chuyển sang bước tiếp theo để kiểm tra shared_info.
  3. Xác minh thông tin được chia sẻ:

    • Xác minh rằng bạn đã bật báo cáo gỡ lỗi. Các báo cáo đã bật tính năng gỡ lỗi sẽ có trường debug_cleartext_payload.
    • Tạo báo cáo gỡ lỗi để dùng với công cụ kiểm thử cục bộ và dùng debug_cleartext_payload làm tải trọng.
    • Chạy công cụ kiểm thử cục bộ bằng tệp miền của bạn. Nếu đây là SUCCESS, tức là tệp shared_info của bạn đã bị giả mạo.

Nếu bạn nghi ngờ có thêm lỗi hoặc hành vi giả mạo, hãy thu thập báo cáo tổng hợp JSON, khoá miền, báo cáo tổng hợp AVRO đã tạo và miền đầu ra, rồi chuyển sang các bước tiếp theo.

Kiểm tra phiên bản triển khai mới

Xác minh rằng phiên bản Dịch vụ tổng hợp của bạn vẫn được hỗ trợ. Sau khi xác định phiên bản bạn đang sử dụng, hãy kiểm tra danh sách các bản phát hành Dịch vụ tổng hợp và xác nhận rằng phiên bản của bạn không có cảnh báo ngừng hỗ trợ: This release has reached its end of support on { date }. Hướng dẫn sau đây về cách xác định phiên bản bạn đã triển khai là dành cho các đám mây công khai được hỗ trợ.

Các bước dành cho Google Cloud

  1. Chuyển đến phần Compute Engine > Phiên bản máy ảo.
  2. Nhấp vào phiên bản máy ảo có -worker- trong tên.
  3. Tìm phần Custom Metadata rồi tìm khoá tee-image-reference.
  4. Giá trị của tee-image-reference sẽ chứa số phiên bản. Ví dụ: số phiên bản của đường dẫn sau là v2.9.1. Đây là những hình ảnh được tạo sẵn và lưu trữ trong Artifact Registry của một dự án trên Google Cloud.
    • Lưu ý: Điều này có liên quan nếu bạn đang sử dụng các tài sản được tạo sẵn. Nếu không, điều này phải khớp với những gì bạn đã đặt tên và gắn thẻ cho hình ảnh của mình. (ví dụ: us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1)

Các bước dành cho Amazon Web Services

  1. Chuyển đến EC2 Instances (Các phiên bản EC2) trong bảng điều khiển Amazon Web Services.
  2. Nhấp vào phiên bản có tên aggregation-service-operator-dev-env.
  3. Trên trang phiên bản, hãy tìm mục Details (Chi tiết) > AMI (Amazon Machine Image)
  4. Bạn nên thêm tên phiên bản vào đường dẫn hình ảnh. Ví dụ: số phiên bản của đường dẫn sau là v2.9.1.
    • Lưu ý: Điều này có liên quan nếu bạn đang sử dụng các tài sản được tạo sẵn. Nếu không, điều này phải khớp với những gì bạn đã đặt tên và gắn thẻ cho hình ảnh của mình. (ví dụ: aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)

Các bước tiếp theo

Nếu bạn không thấy giải pháp cho vấn đề về Aggregation Service, hãy thông báo cho chúng tôi bằng cách gửi vấn đề trên GitHub hoặc gửi biểu mẫu hỗ trợ kỹ thuật.