ปัจจัยหลายอย่างอาจทำให้เกิดปัญหาขณะทํางานกับบริการรวบรวมข้อมูล ซึ่งรวมถึงการจัดรูปแบบรายงาน ปัญหาเกี่ยวกับโดเมนเอาต์พุต และปัญหาเกี่ยวกับผู้ประสานงาน คุณจึงจำเป็นต้องทำความเข้าใจแหล่งที่มาของข้อผิดพลาดและข้อมูลเมตาที่มีอยู่ในข้อผิดพลาดเพื่อทำการวิเคราะห์ปัญหาได้อย่างถูกต้อง
หัวข้อคำแนะนำ:
- ยืนยันการตั้งค่า API การวัดผลของไคลเอ็นต์
- การแก้ปัญหาการตั้งค่าแหล่งที่มาของการรายงาน
- การแก้ปัญหาเกี่ยวกับรายงานรวม
- ตรวจสอบเวอร์ชันของการติดตั้งใช้งาน
ยืนยันการตั้งค่า API การวัดผลของไคลเอ็นต์
หลังจากยืนยันว่าเซิร์ฟเวอร์ต้นทางได้รับการลงทะเบียนอย่างถูกต้องแล้ว ให้ทำตามขั้นตอนต่อไปนี้
ตรวจสอบวิธีเรียกให้รายงานแสดง ตรวจสอบว่าคุณได้รับรายงานในรูปแบบที่ถูกต้องตาม API ที่ใช้
- Attribution Reporting API
- สําหรับ Attribution Reporting API ให้ตรวจสอบว่าคุณได้ลงทะเบียนแหล่งที่มา (เหตุการณ์และสรุป) เรียบร้อยแล้ว หากต้องการลงทะเบียนทริกเกอร์ (เหตุการณ์และสรุป) ให้ตรวจสอบว่า JSON ที่ส่งไปยัง
Attribution-Reporting-Register-Trigger
ถูกต้องโดยใช้เครื่องมือตรวจสอบส่วนหัว (อ่านเพิ่มเติมในรายงานสรุปของ Attribution Reporting API)
- สําหรับ Attribution Reporting API ให้ตรวจสอบว่าคุณได้ลงทะเบียนแหล่งที่มา (เหตุการณ์และสรุป) เรียบร้อยแล้ว หากต้องการลงทะเบียนทริกเกอร์ (เหตุการณ์และสรุป) ให้ตรวจสอบว่า JSON ที่ส่งไปยัง
- Private Aggregation API
- คุณสามารถรายงานใน Private Aggregation API โดยใช้ฟังก์ชัน
contributeToHistogram
ตรวจสอบว่าคุณส่งคีย์และค่าของที่เก็บข้อมูล คีย์ที่เก็บข้อมูลควรอยู่ในรูปแบบBigInt
(อ่านเพิ่มเติมเกี่ยวกับ Private Aggregation API)
- คุณสามารถรายงานใน Private Aggregation API โดยใช้ฟังก์ชัน
- Attribution Reporting API
หากคุณเรียกใช้รายงานตามที่แนะนำแต่ยังคงพบปัญหาอยู่ ให้ตรวจสอบว่ามีข้อผิดพลาดในคอนโซลนักพัฒนาซอฟต์แวร์ Chrome ทั้งในแ็บ "คอนโซล" และ "เครือข่าย" หรือไม่
หากต้องการการสนับสนุนเพิ่มเติมในการแก้ปัญหาเกี่ยวกับไคลเอ็นต์ API เหล่านี้ โปรดไปที่คําแนะนําในการแก้ไขข้อบกพร่องสําหรับ Attribution Reporting API และ Private Aggregation API + Shared Storage
การแก้ปัญหาการตั้งค่าต้นทางการรายงาน
เซิร์ฟเวอร์ต้นทางของการรายงานคือที่ที่คุณประกาศ.well-known
ปลายทางที่ถูกต้องซึ่งจะส่งรายงานที่รวบรวมได้ ยืนยันว่าได้ลงทะเบียนและจดทะเบียนเซิร์ฟเวอร์ต้นทางการรายงานที่ติดตั้งใช้งานอย่างถูกต้อง
แหล่งที่มาของการรายงานของคุณได้รับรายงานไหม
ยืนยันว่าได้ลงทะเบียนและจดทะเบียนเซิร์ฟเวอร์ต้นทางการรายงานที่ติดตั้งใช้งานอย่างถูกต้องแล้ว เซิร์ฟเวอร์นี้เป็นเซิร์ฟเวอร์ที่คุณประกาศ.well-known
ปลายทางที่ถูกต้องซึ่งจะส่งรายงานที่รวบรวมได้
Measurement API ฝั่งไคลเอ็นต์ | ปลายทางที่รวบรวมข้อมูลได้ซึ่งตรงกัน |
---|---|
การรายงานการระบุแหล่งที่มา | POST /.well-known/attribution-reporting/report-aggregate-attribution |
การรวมข้อมูลส่วนตัว + พื้นที่เก็บข้อมูลที่ใช้ร่วมกัน (ชุดค่าผสม) | POST /.well-known/private-aggregation/report-shared-storage |
การรวมข้อมูลส่วนตัว + Protected Audience (ชุดค่าผสม) | POST /.well-known/private-aggregation/report-protected-audience |
หลังจากยืนยันว่าเซิร์ฟเวอร์ต้นทางได้รับการลงทะเบียนอย่างถูกต้องแล้ว ให้ทำตามขั้นตอนต่อไปนี้
ตรวจสอบวิธีเรียกให้รายงานแสดง ตรวจสอบว่าคุณได้รับรายงานในรูปแบบที่ถูกต้องตาม API ที่ใช้
หากคุณเรียกใช้รายงานตามที่แนะนำแต่ยังคงพบปัญหาอยู่ ให้ตรวจสอบว่ามีข้อผิดพลาดในคอนโซลนักพัฒนาซอฟต์แวร์ Chrome ทั้งในส่วนแท็บ "คอนโซล" และ "เครือข่าย" หรือไม่
หากต้องการการสนับสนุนเพิ่มเติมเกี่ยวกับการแก้ปัญหาสำหรับไคลเอ็นต์ 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 ถูกต้องหรือไม่ ระบบจะแปลงที่เก็บข้อมูลเป็นรูปแบบฐาน 16 ของ 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 ไปยังบริการรวบรวมข้อมูลใน 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 และสร้างคีย์โดเมนเอาต์พุต (หมายเหตุ: ไฟล์โดเมนเอาต์พุตควรเป็นสตริงไบต์แบบ Big-endian ขนาด 16 ไบต์)ทําตามขั้นตอนในโค้ดแล็บสําหรับผู้ให้บริการระบบคลาวด์สาธารณะเพื่อรวบรวมรายงานการแก้ไขข้อบกพร่องและเรียกใช้งานบริการรวมข้อมูลโดยใช้คีย์โดเมนเอาต์พุต ดังนี้ ก. Google Cloud: ทำตามขั้นตอนที่ 3.1.2 ถึง 3.2.3 ของบริการรวบรวมข้อมูล Google Cloud Codelab ข. 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 ทุกเครื่องที่จัดสรรใน Google Cloud โดย Terraform ควรมีข้อมูลเมตานี้ (ข้อมูลเมตา
tee-image-reference
ในโมดูลเวิร์กเกอร์)
- หมายเหตุ: VM ทุกเครื่องที่จัดสรรใน Google Cloud โดย Terraform ควรมีข้อมูลเมตานี้ (ข้อมูลเมตา
- ค่าของ
tee-image-reference
จะมีหมายเลขเวอร์ชัน ตัวอย่างเช่น หมายเลขเวอร์ชันของเส้นทางต่อไปนี้คือv2.9.1
เหล่านี้คือรูปภาพที่สร้างขึ้นล่วงหน้าซึ่งอยู่ในรีจิสทรีอาร์ติแฟกต์ของโปรเจ็กต์ 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 หรือส่งแบบฟอร์มการสนับสนุนด้านเทคนิค