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 chế độ thiết lập API đo lường của ứng dụng
- Khắc phục sự cố khi thiết lập nguồn gốc báo cáo
- Khắc phục sự cố về báo cáo tổng hợp
- Kiểm tra phiên bản triển khai
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:
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
- Đối với Attribution Reporting API, hãy đảm bảo rằng bạn đã đăng ký thành công nguồn (Sự kiện và Tóm tắt). Để thực hiện quy trình Đăng ký điều kiện kích hoạt (Sự kiện và Tóm tắt), hãy đảm bảo rằng JSON được truyền vào
Attribution-Reporting-Register-Trigger
là chính xác bằng cách sử dụng công cụ xác thực tiêu đề. (Đọc thêm về Báo cáo tóm tắt của Attribution Reporting API)
- Đối với Attribution Reporting API, hãy đảm bảo rằng bạn đã đăng ký thành công nguồn (Sự kiện và Tóm tắt). Để thực hiện quy trình Đăng ký điều kiện kích hoạt (Sự kiện và Tóm tắt), hãy đảm bảo rằng JSON được truyền vào
- 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ạngBigInt
. (Đọc thêm về Private Aggregation API)
- 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
- Attribution Reporting API
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 API và Private 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:
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:
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 API và Private 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 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:
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.)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_name và output_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:
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ạngAVRO
. - 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.
- Tạo báo cáo tổng hợp và sử dụng công cụ
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
.
- Tạo tệp miền đầu ra và sử dụng công cụ
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ệpshared_info
của bạn đã bị can thiệp.
- Đả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
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
- Chuyển đến phần Compute Engine > Phiên bản máy ảo.
- Nhấp vào thực thể máy ảo có tên chứa
-worker-
. - Tìm phần
Custom Metadata
rồi tìm khoátee-image-reference
.- Lưu ý: Mỗi máy ảo do Terraform cung cấp trong Google Cloud phải có siêu dữ liệu này (siêu dữ liệu
tee-image-reference
trong mô-đun worker).
- Lưu ý: Mỗi máy ảo do Terraform cung cấp trong Google Cloud phải có siêu dữ liệu này (siêu dữ liệu
- 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
)
- 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ụ:
Các bước dành cho Amazon Web Services
- Chuyển đến phần EC2 Instances (Phiên bản EC2) trong bảng điều khiển Amazon Web Services.
- Nhấp vào thực thể có tên
aggregation-service-operator-dev-env
. - Trên trang thực thể, hãy tìm mục Chi tiết > AMI (Hình ảnh máy Amazon)
- 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
)
- 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ụ:
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.