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

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

Các chủ đề trong hướng dẫn:

Xác minh việc thiết lập API đo lường ứng dụng

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 định dạng báo cáo chính xác theo API đang được sử dụng:

    • Attribution Reporting API
    • Private Aggregation API (API tổng hợp riêng tư)
      • Bạn có thể hoàn tất báo cáo trong Private Aggregation API bằng cách sử dụng hàm contributeToHistogram. Đảm bảo rằng bạn đang truyền khoá và giá trị của bộ chứa. Khoá bộ chứa 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 trong cả thẻ "Bảng điều khiển" và "Mạng" không.

Nếu bạn cần được hỗ trợ thêm về cách khắc phục sự cố cho các API ứng dụng này, hãy tiếp tục tham khảo 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 gốc báo cáo

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

Nguồn gốc 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ủ gốc báo cáo đã triển khai của bạn đã được đăng ký và đăng ký đúng cách. Đây là máy chủ mà bạn đã khai báo đúng điểm cuối .well-known tương ứng mà báo cáo tổng hợp sẽ được gửi đến.

API đo lường phía máy khách Điểm cuối có thể tổng hợp trùng khớp
Báo cáo phân bổ POST /.well-known/attribution-reporting/report-aggregate-attribution
Tích hợp riêng tư + Bộ nhớ dùng chung (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 định dạng báo cáo chính xác 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 trong cả thẻ "Bảng điều khiển" và "Mạng" không.

Nếu bạn cần được hỗ trợ thêm về cách khắc phục sự cố cho các API ứng dụng này , hãy tiếp tục tham khảo 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

Báo cáo tổng hợp được tạo bằng API đo lường phía máy khách và được gửi đến nguồn báo cáo của bạn. Điểm cuối báo cáo của bạn sẽ 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 bản thân báo cáo không còn nguyên vẹn, bạn có thể thấy lỗi trong Dịch vụ tổng hợp.

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

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

Sau đây là các lỗi API có thể xuất hiện 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": []
                    }
                }
            
Kiểm tra Đ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 chính xác, cho dù đó là báo cáo AVRO có thể tổng hợp hay báo cáo AVRO miền đầu ra. Báo cáo AVRO tổng hợp có được tạo chính xác không? Bạn cần giải mã tải trọng bằng base64 và chuyển đổi thành một mảng byte. Đảm bảo rằng báo cáo có đị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 bộ chứa được chuyển đổi sang định dạng hex unicode đã thoát, sau đó chuyển đổi thành một mảng byte. Nếu thấy nhiều số lỗi, bạn có thể tìm hiểu thêm về các lỗi đó trong 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": []
                    }
                }
            
Kiểm tra Attribution Reporting API

Đối với Attribution Reporting API, lỗi này có thể là do vấn đề về việc đăng ký điều kiện kích hoạt. Kiểm tra để đảm bảo rằng họ đã đăng ký trình 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 của họ hoặc báo cáo được mã hoá bằng Google Cloud cho việc triển khai AWS của họ. 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 tổng hợp. Đối với Google Cloud, trường "aggregation_coordinator_origin" trong báo cáo 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 cách sử dụ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."
                                }
                            ]
                        }
                }
            
Kiểm tra Trong trường hợp gặp vấn đề về tệp nhị phân hoặc chế độ gỡ lỗi chưa được phê duyệt, hãy sử dụng tệp nhị phân phù hợp để khắc phục vấn đề. Hãy làm theo hướng dẫn tại đây để sử dụng AMI 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 tổng hợp mà bạn đã thu thập từ điểm cuối .well-known thành AVRO và tạo các khoá miền đầu ra. (Lưu ý: Tệp miền đầu ra phải là chuỗi byte big-endian 16 byte.)

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

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.

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ẻ vẫn còn nguyên vẹn. Hãy tham khảo mã mẫu để chuyển đổi báo cáo tổng hợp và tạo tệp miền nếu bạn muốn biết thêm thông tin.

Dưới đây là các lỗi API mà bạn có thể thấy tương ứng với vấn đề này:

Lỗi INPUT_DATA_READ_FAILED
Điểm cuối createJob
Kiểm tra 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ó báo cáo cần xử lý không? Bạn có quyền đọc từ vị trí lưu trữ cho 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 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 tổng hợp vẫn còn nguyên vẹn. Nếu lệnh này trả về lỗi, thì có thể bạn gặp vấn đề với báo cáo tổng hợp hoặc cả báo cáo và miền.
    • Hãy tiếp tục kiểm tra tệp miền trong bước tiếp theo.
  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 tổng hợp.
    • Chạy yêu cầu createJob bằng báo cáo tổng hợp này và tệp miền đầu ra.
    • Nếu hàm này trả về SUCCESS, thì tức là miền đầu ra vẫn còn nguyên vẹn và có vấn đề với mã của bạn để tạo báo cáo tổng hợp.
    • Tiếp tục bước tiếp theo để kiểm tra shared_info.
  3. Xác minh thông tin được chia sẻ:

    • Đảm bảo 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 để sử dụng với công cụ kiểm thử cục bộ và sử 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, thì tức là tệp shared_info của bạn đã bị can thiệp.

Nếu bạn nghi ngờ có thêm lỗi hoặc hành vi can thiệp, hãy thu thập báo cáo tổng hợp JSON, khoá miền, báo cáo AVRO tổng hợp đã tạo và miền đầu ra, rồi tiếp tục 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 được phiên bản bạn đang sử dụng, hãy kiểm tra danh sách 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 để xác định phiên bản bạn đã triển khai là dành cho các đám mây công cộng đượ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 thực thể máy ảo có tên chứa -worker-.
  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à các hình ảnh được tạo sẵn nằm trong Cấu phần phần mềm của dự án Google Cloud.
    • Lưu ý: Tên này sẽ phù hợp nếu bạn đang sử dụng các thành phần tạo sẵn. Nếu không, tên này phải khớp với tên và thẻ mà bạn đã đặt cho hình ả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 phần EC2 Instances (Phiên bản EC2) trong bảng điều khiển Amazon Web Services.
  2. Nhấp vào thực thể có tên aggregation-service-operator-dev-env.
  3. Trên trang thực thể, hãy tìm mục Chi tiết > AMI (Hình ảnh máy Amazon)
  4. Tên phiên bản phải có trong đườ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 ý: Tên này sẽ phù hợp nếu bạn đang sử dụng các thành phần tạo sẵn. Nếu không, tên này phải khớp với tên và thẻ mà bạn đã đặt cho hình ả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ề Dịch vụ tổng hợp, 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.