ปัจจัยหลายอย่างอาจทำให้เกิดปัญหาขณะใช้บริการรวบรวมข้อมูล ซึ่งรวมถึงการจัดรูปแบบรายงาน ปัญหาโดเมนเอาต์พุต และปัญหาเกี่ยวกับผู้ประสานงาน คุณจึงควรทำความเข้าใจแหล่งที่มาของข้อผิดพลาดและข้อมูลเมตาที่ข้อผิดพลาดนั้นมีอยู่ เพื่อวิเคราะห์ปัญหาได้อย่างถูกต้อง
หัวข้อในคู่มือ:
- ยืนยันการตั้งค่า API การวัดผลฝั่งไคลเอ็นต์
- การแก้ปัญหาการตั้งค่าแหล่งที่มาของการรายงาน
- การแก้ปัญหาเกี่ยวกับรายงานรวม
- ตรวจสอบเวอร์ชันการติดตั้งใช้งาน
ยืนยันการตั้งค่า API การวัดผลฝั่งไคลเอ็นต์
หลังจากยืนยันว่าเซิร์ฟเวอร์ต้นทางได้รับการลงทะเบียนอย่างถูกต้องแล้ว ให้ทำตามขั้นตอนต่อไปนี้
ตรวจสอบวิธีเรียกใช้รายงาน ตรวจสอบว่าคุณได้รับรูปแบบรายงานที่ถูกต้องตาม API ที่ใช้
- Attribution Reporting API
- สำหรับ Attribution Reporting API ให้ตรวจสอบว่าคุณได้ลงทะเบียนแหล่งที่มา (Event และ Summary) เรียบร้อยแล้ว หากต้องการลงทะเบียนทริกเกอร์ (Event และ Summary) ให้ตรวจสอบว่า JSON ที่ส่งไปยัง
Attribution-Reporting-Register-Triggerถูกต้องโดยใช้เครื่องมือตรวจสอบส่วนหัว (อ่านเพิ่มเติมเกี่ยวกับรายงานสรุปของ Attribution Reporting API)
- สำหรับ Attribution Reporting API ให้ตรวจสอบว่าคุณได้ลงทะเบียนแหล่งที่มา (Event และ Summary) เรียบร้อยแล้ว หากต้องการลงทะเบียนทริกเกอร์ (Event และ Summary) ให้ตรวจสอบว่า JSON ที่ส่งไปยัง
- Private Aggregation API
- การรายงานใน Private Aggregation API สามารถทําให้เสร็จสมบูรณ์ได้โดยใช้ฟังก์ชัน
contributeToHistogramตรวจสอบว่าคุณส่งคีย์และค่าของที่เก็บข้อมูล คีย์ที่เก็บข้อมูลควรอยู่ในรูปแบบBigInt(อ่านเพิ่มเติมเกี่ยวกับ Private Aggregation API)
- การรายงานใน Private Aggregation API สามารถทําให้เสร็จสมบูรณ์ได้โดยใช้ฟังก์ชัน
- Attribution Reporting API
หากคุณทริกเกอร์รายงานตามที่แนะนำ แต่ยังคงพบปัญหาอยู่ ให้ตรวจสอบว่ามีข้อผิดพลาดที่สังเกตได้ในคอนโซลนักพัฒนาซอฟต์แวร์ Chrome ทั้งในแท็บ "Console" และ "Network" หรือไม่
หากต้องการรับการสนับสนุนด้านการแก้ปัญหาเพิ่มเติมสำหรับ API ไคลเอ็นต์เหล่านี้ โปรดไปที่ คำแนะนำในการแก้ไขข้อบกพร่องสำหรับ Attribution Reporting API และ Private Aggregation API + พื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
การแก้ปัญหาการตั้งค่าต้นทางการรายงาน
เซิร์ฟเวอร์ต้นทางของการรายงานคือที่ที่คุณประกาศ.well-knownปลายทางที่ถูกต้องซึ่งสอดคล้องกัน
ซึ่งจะมีการส่งรายงานที่รวบรวมได้ไปให้
ตรวจสอบว่าเซิร์ฟเวอร์ต้นทางการรายงานที่ติดตั้งใช้งานได้รับการลงทะเบียนอย่างถูกต้อง
ต้นทางการรายงานของคุณได้รับรายงานหรือไม่
ตรวจสอบว่าเซิร์ฟเวอร์ต้นทางสำหรับการรายงานที่ติดตั้งใช้งานได้รับการลงทะเบียน
และลงทะเบียนอย่างถูกต้อง เซิร์ฟเวอร์นี้คือที่ที่คุณประกาศ.well-knownปลายทางที่ถูกต้องซึ่งสอดคล้องกันซึ่งจะมีการส่งรายงานที่รวบรวมได้
ไปให้
| API การวัดผลฝั่งไคลเอ็นต์ | ปลายทางที่รวบรวมได้ที่ตรงกัน |
|---|---|
| Attribution Reporting | POST /.well-known/attribution-reporting/report-aggregate-attribution |
| การรวมข้อมูลส่วนตัว + พื้นที่เก็บข้อมูลที่ใช้ร่วมกัน (รวมกัน) | POST /.well-known/private-aggregation/report-shared-storage |
| Private Aggregation + Protected Audience (Combo) | POST /.well-known/private-aggregation/report-protected-audience |
หลังจากยืนยันว่าเซิร์ฟเวอร์ต้นทางได้รับการลงทะเบียนอย่างถูกต้องแล้ว ให้ทำตามขั้นตอนต่อไปนี้
ตรวจสอบวิธีเรียกใช้รายงาน ตรวจสอบว่าคุณได้รับรูปแบบรายงานที่ถูกต้องตาม API ที่ใช้
หากคุณทริกเกอร์รายงานตามที่แนะนำ แต่ยังคงพบปัญหาอยู่ ให้ตรวจสอบว่ามีข้อผิดพลาดในคอนโซลนักพัฒนาซอฟต์แวร์ Chrome ทั้งในแท็บ "คอนโซล" และ "เครือข่าย" หรือไม่
หากต้องการรับการสนับสนุนด้านการแก้ปัญหาเพิ่มเติมสำหรับ Client API เหล่านี้ โปรดดูคำแนะนำในการแก้ไขข้อบกพร่องสำหรับ Attribution Reporting API และ Private Aggregation API + Shared Storage
การแก้ปัญหาเกี่ยวกับรายงานรวม
รายงานรวมสร้างขึ้นโดย API การวัดผลฝั่งไคลเอ็นต์และส่งไปยัง
แหล่งที่มารายงานของคุณ ปลายทางการรายงานของคุณควรแปลงรายงานเหล่านี้เป็นรูปแบบ AVRO
หากมีปัญหาเกี่ยวกับ Conversion นี้ หรือหากรายงานไม่สมบูรณ์ คุณอาจเห็นข้อผิดพลาดในบริการรวบรวมข้อมูล
รายงานที่รวบรวมได้แปลงค่าอย่างถูกต้องหรือไม่
ตรวจสอบว่าปลายทางการรายงาน (.well-known/…) แปลงรายงาน JSON ที่รวบรวมได้ที่ระบุอย่างถูกต้องเป็น AVRO
ข้อผิดพลาดของ API ที่จะเกิดขึ้นเนื่องจากปัญหานี้มีดังนี้
| ข้อผิดพลาด | DECRYPTION_ERROR |
|---|---|
| ตัวอย่าง |
"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": []
}
}
|
| ตรวจสอบ |
ซึ่งอาจเกิดจากข้อผิดพลาดในการถอดรหัส ซึ่งอาจเกิดจากรายงาน AVRO ที่สร้างไม่ถูกต้อง ไม่ว่าจะเป็นรายงาน AVRO แบบรวบรวมได้หรือ AVRO ของโดเมนเอาต์พุต รายงาน AVRO ที่รวบรวมได้สร้างขึ้นอย่างถูกต้องหรือไม่ คุณจะต้องถอดรหัสเพย์โหลดแบบ Base64 และแปลงเป็นอาร์เรย์ไบต์ ตรวจสอบว่ารายงานอยู่ในรูปแบบ Avro นอกจากนี้ ให้ตรวจสอบว่าโดเมนเอาต์พุต AVRO ถูกต้อง ระบบจะแปลงที่เก็บข้อมูลเป็นรูปแบบเลขฐานสิบหก Unicode ที่หลีกเลี่ยงอักขระ จากนั้นจึงแปลงเป็นอาร์เรย์ไบต์
หากเห็นจำนวนข้อผิดพลาดมากกว่า 1 รายการ คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดได้ในหน้า GitHub ของบริการรวบรวมข้อมูล
|
| ข้อผิดพลาด | DECRYPTION_KEY_NOT_FOUND |
|---|---|
| ตัวอย่าง |
"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": []
}
}
|
| ตรวจสอบ |
Attribution Reporting API
สำหรับ Attribution Reporting API ข้อผิดพลาดนี้อาจเกิดจากปัญหาเกี่ยวกับการลงทะเบียนทริกเกอร์ ตรวจสอบว่าได้ลงทะเบียนทริกเกอร์กับระบบคลาวด์ที่ถูกต้องโดยใช้ฟิลด์ aggregation_coordinator_origin (วิธีการที่นี่) นอกจากนี้ คุณยังอาจส่งรายงานที่เข้ารหัสด้วย AWS ไปยังการติดตั้งใช้งาน Aggregation Service ใน Google Cloud หรือส่งรายงานที่เข้ารหัสด้วย Google Cloud ไปยังการติดตั้งใช้งานใน AWS ได้ด้วย ขอให้ผู้ให้บริการตรวจสอบว่าใช้ปลายทางคีย์สาธารณะใดในการเข้ารหัสรายงานแบบรวม สำหรับ Google Cloud ฟิลด์ `aggregation_coordinator_origin` ในรายงานที่รวบรวมได้ควรเป็น https://publickeyservice.msmt.gcp.privacysandboxservices.com สำหรับ AWS ควรเป็น https://publickeyservice.msmt.aws.privacysandboxservices.com Private Aggregation APIสําหรับ Private Aggregation API คุณจะต้องกําหนด `aggregationCoordinatorOrigin` โดยใช้ตัวอย่างในส่วนการเลือกเครื่องมือประสานงานการรวบรวมข้อมูลในคำอธิบาย Private Aggregation API โปรดระบุ https://publickeyservice.msmt.gcp.privacysandboxservices.com เป็น เช่น
sharedStorage.run('someOperation', {'privateAggregationConfig':
{'aggregationCoordinatorOrigin': ' https://publickeyservice.msmt.gcp.privacysandboxservices.com'}});
|
| ข้อผิดพลาด | DECRYPTION_KEY_FETCH_ERROR |
|---|---|
| ตัวอย่าง |
"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."
}
]
}
}
|
| ตรวจสอบ | ในกรณีที่เกิดปัญหาเกี่ยวกับไบนารีที่ไม่ได้รับอนุมัติหรือโหมดแก้ไขข้อบกพร่อง การใช้ไบนารีที่ถูกต้องจะช่วยแก้ปัญหาได้ ทำตามวิธีการที่นี่เพื่อใช้ AMI ที่สร้างไว้ล่วงหน้าหรือสร้าง AMI ด้วยตนเอง |
ทำตามขั้นตอนต่อไปนี้ให้ครบถ้วนเพื่อยืนยัน
คุณสามารถใช้เครื่องมือ
aggregatable_report_converterเพื่อแปลงรายงานที่รวบรวมได้จากปลายทาง .well-known เป็น AVRO และสร้างคีย์โดเมนเอาต์พุต (หมายเหตุ: ไฟล์โดเมนเอาต์พุตควรเป็นสตริงไบต์แบบบิ๊กเอนเดียนขนาด 16 ไบต์)ทําตามขั้นตอนในโค้ดแล็บสําหรับผู้ให้บริการระบบคลาวด์สาธารณะเพื่อรวบรวม รายงานการแก้ไขข้อบกพร่องและเรียกใช้ชื่องานบริการรวมข้อมูลโดยใช้คีย์โดเมนเอาต์พุต ของคุณ ก. Google Cloud: ทำตามขั้นตอนที่ 3.1.2 ถึง 3.2.3 ของ Aggregation Service Google Cloud Codelab b. Amazon Web Services: ทำตามขั้นตอนที่ 4.2 ถึง 5.3 ของ Aggregation Service AWS Codelab
หากได้รับคำตอบเป็น SUCCESS แสดงว่า Conversion ทำงานได้
รายงานที่รวบรวมได้ยังคงอยู่ไหม
ตรวจสอบว่ารายงานรวม คีย์โดเมนเอาต์พุต และข้อมูลที่แชร์ยังคง ครบถ้วน ดูโค้ดตัวอย่าง เพื่อแปลงรายงานที่รวบรวมได้และสร้างไฟล์โดเมนหากต้องการ ข้อมูลเพิ่มเติม
ข้อผิดพลาดของ API ที่คุณอาจเห็นซึ่งสอดคล้องกับปัญหานี้มีดังนี้
| ข้อผิดพลาด | INPUT_DATA_READ_FAILED |
|---|---|
| ปลายทาง | createJob |
| ตรวจสอบ |
ฟิลด์ input_data_bucket_name, input_data_blob_prefix, output_data_bucket_name และ output_data_blob_prefix ในคำขอ createJob ถูกต้องหรือไม่ ตำแหน่งข้อมูลรายงานอินพุตมีรายงานที่จะประมวลผลไหม คุณมีสิทธิ์อ่านจากตำแหน่งที่จัดเก็บสำหรับรายงานและโดเมนเอาต์พุตไหม
|
ทำตามขั้นตอนต่อไปนี้ให้ครบถ้วนเพื่อยืนยัน
ยืนยันรายงานรวม
- สร้างรายงานรวมและใช้เครื่องมือ
aggregatable_report_converterเพื่อแปลงโดเมนเอาต์พุตเป็นรูปแบบAVRO - เรียกใช้
createJobคำขอด้วยรายงานที่รวบรวมได้และไฟล์โดเมนเอาต์พุตนี้ - หากฟังก์ชันนี้แสดงผล
SUCCESSแสดงว่ารายงานที่รวบรวมได้ยังคงอยู่ครบถ้วน หากการดำเนินการนี้แสดงข้อผิดพลาด แสดงว่าคุณมีปัญหาเกี่ยวกับรายงานที่รวบรวมได้ หรือทั้งรายงานและโดเมน - ไปตรวจสอบไฟล์โดเมนในขั้นตอนถัดไป
- สร้างรายงานรวมและใช้เครื่องมือ
ยืนยันไฟล์โดเมนเอาต์พุต
- สร้างไฟล์โดเมนเอาต์พุตและใช้
aggregatable_report_converterเครื่องมือเพื่อสร้างรายงานที่รวบรวมได้ - เรียกใช้
createJobคำขอด้วยรายงานที่รวบรวมได้และไฟล์โดเมนเอาต์พุตนี้ - หากคำสั่งนี้แสดงผลเป็น
SUCCESSแสดงว่าโดเมนเอาต์พุตยังคงอยู่และ โค้ดของคุณมีปัญหาในการสร้างรายงานที่รวบรวมได้ - ทำต่อในขั้นตอนถัดไปเพื่อตรวจสอบ
shared_info
- สร้างไฟล์โดเมนเอาต์พุตและใช้
ยืนยันข้อมูลที่แชร์
- ตรวจสอบว่าคุณมีรายงานที่เปิดใช้การแก้ไขข้อบกพร่อง รายงานที่เปิดใช้การแก้ไขข้อบกพร่องจะมีฟิลด์
debug_cleartext_payload - สร้างรายงานการแก้ไขข้อบกพร่องเพื่อใช้กับเครื่องมือทดสอบในเครื่องและใช้
debug_cleartext_payloadเป็นเพย์โหลด - เรียกใช้เครื่องมือทดสอบในเครื่องด้วยไฟล์โดเมน หากเป็น
SUCCESSแสดงว่ามีการดัดแปลงไฟล์shared_info
- ตรวจสอบว่าคุณมีรายงานที่เปิดใช้การแก้ไขข้อบกพร่อง รายงานที่เปิดใช้การแก้ไขข้อบกพร่องจะมีฟิลด์
หากสงสัยว่ามีข้อผิดพลาดหรือการดัดแปลงเพิ่มเติม ให้รวบรวมรายงานรวม JSON
คีย์โดเมน รายงานรวมที่สร้างขึ้น AVRO และโดเมนเอาต์พุต แล้ว
ไปที่ขั้นตอนถัดไป
ตรวจสอบเวอร์ชันการติดตั้งใช้งานใหม่
ตรวจสอบว่าระบบยังรองรับบริการรวบรวมข้อมูลเวอร์ชันที่คุณใช้อยู่ เมื่อทราบเวอร์ชันที่ใช้อยู่แล้ว ให้ตรวจสอบรายการการเปิดตัวบริการรวบรวมข้อมูล
และยืนยันว่าเวอร์ชันของคุณไม่มีคำเตือนเกี่ยวกับการสิ้นสุดการสนับสนุน
This release has reached its end of support on { date } วิธีการต่อไปนี้สำหรับการพิจารณาว่าคุณได้ติดตั้งใช้งานเวอร์ชันใดมีไว้สำหรับ
ระบบคลาวด์สาธารณะที่รองรับ
ขั้นตอนสำหรับ Google Cloud
- ไปที่ Compute Engine > อินสแตนซ์ VM
- คลิกอินสแตนซ์เครื่องเสมือนที่มี
-worker-ในชื่อ - ค้นหาส่วน
Custom Metadataแล้วค้นหาคีย์tee-image-reference- หมายเหตุ: VM ทุกเครื่องที่ Terraform จัดสรรใน Google Cloud ควรมีข้อมูลเมตานี้ (
tee-image-referenceข้อมูลเมตาในโมดูล Worker)
- หมายเหตุ: VM ทุกเครื่องที่ Terraform จัดสรรใน Google Cloud ควรมีข้อมูลเมตานี้ (
- ค่าของ
tee-image-referenceจะมีหมายเลขเวอร์ชัน เช่น หมายเลขเวอร์ชันของเส้นทางต่อไปนี้คือv2.9.1ซึ่งเป็นอิมเมจที่สร้างไว้ล่วงหน้าซึ่งอยู่ใน Artifact Registry ของโปรเจ็กต์ Google Cloud- หมายเหตุ: ข้อมูลนี้เกี่ยวข้องหากคุณใช้ชิ้นงานที่สร้างไว้ล่วงหน้า หากไม่ได้ใช้ ชิ้นงานควรตรงกับสิ่งที่คุณตั้งชื่อและติดแท็กรูปภาพด้วยตนเอง
(ตัวอย่าง:
us.docker.pkg.dev/<gcp_project_name>/artifacts:aggregation-service- container-artifacts-worker_mp_go_prod:2.9.1)
- หมายเหตุ: ข้อมูลนี้เกี่ยวข้องหากคุณใช้ชิ้นงานที่สร้างไว้ล่วงหน้า หากไม่ได้ใช้ ชิ้นงานควรตรงกับสิ่งที่คุณตั้งชื่อและติดแท็กรูปภาพด้วยตนเอง
(ตัวอย่าง:
ขั้นตอนสำหรับ Amazon Web Services
- ไปที่อินสแตนซ์ EC2 ในคอนโซล Amazon Web Services
- คลิกอินสแตนซ์ที่มีชื่อ
aggregation-service-operator-dev-env - ในหน้าอินสแตนซ์ ให้ค้นหารายละเอียด > AMI (Amazon Machine Image)
- ชื่อเวอร์ชันควรอยู่ในเส้นทางรูปภาพ เช่น หมายเลขเวอร์ชันของเส้นทางต่อไปนี้คือ
v2.9.1- หมายเหตุ: ข้อมูลนี้เกี่ยวข้องหากคุณใช้ชิ้นงานที่สร้างไว้ล่วงหน้า หากไม่ได้ใช้ ชิ้นงานควรตรงกับสิ่งที่คุณตั้งชื่อและติดแท็กรูปภาพด้วยตนเอง
(ตัวอย่าง:
aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)
- หมายเหตุ: ข้อมูลนี้เกี่ยวข้องหากคุณใช้ชิ้นงานที่สร้างไว้ล่วงหน้า หากไม่ได้ใช้ ชิ้นงานควรตรงกับสิ่งที่คุณตั้งชื่อและติดแท็กรูปภาพด้วยตนเอง
(ตัวอย่าง:
ขั้นตอนถัดไป
หากไม่เห็นวิธีแก้ปัญหาเกี่ยวกับบริการรวบรวมข้อมูล โปรดแจ้งให้เราทราบโดย ส่งปัญหาใน GitHub หรือส่งแบบฟอร์มขอรับการสนับสนุนด้านเทคนิค