วินิจฉัยสภาพแวดล้อม (ใหม่หรืออัปเกรด)

ปัจจัยหลายอย่างอาจทำให้เกิดปัญหาขณะใช้บริการรวบรวมข้อมูล ซึ่งรวมถึงการจัดรูปแบบรายงาน ปัญหาโดเมนเอาต์พุต และปัญหาเกี่ยวกับผู้ประสานงาน คุณจึงควรทำความเข้าใจแหล่งที่มาของข้อผิดพลาดและข้อมูลเมตาที่ข้อผิดพลาดนั้นมีอยู่ เพื่อวิเคราะห์ปัญหาได้อย่างถูกต้อง

หัวข้อในคู่มือ:

ยืนยันการตั้งค่า API การวัดผลฝั่งไคลเอ็นต์

หลังจากยืนยันว่าเซิร์ฟเวอร์ต้นทางได้รับการลงทะเบียนอย่างถูกต้องแล้ว ให้ทำตามขั้นตอนต่อไปนี้

  1. ตรวจสอบวิธีเรียกใช้รายงาน ตรวจสอบว่าคุณได้รับรูปแบบรายงานที่ถูกต้องตาม API ที่ใช้

    • Attribution Reporting API
    • Private Aggregation API
      • การรายงานใน Private Aggregation API สามารถทําให้เสร็จสมบูรณ์ได้โดยใช้ฟังก์ชัน contributeToHistogram ตรวจสอบว่าคุณส่งคีย์และค่าของที่เก็บข้อมูล คีย์ที่เก็บข้อมูลควรอยู่ในรูปแบบ BigInt (อ่านเพิ่มเติมเกี่ยวกับ Private Aggregation API)
  2. หากคุณทริกเกอร์รายงานตามที่แนะนำ แต่ยังคงพบปัญหาอยู่ ให้ตรวจสอบว่ามีข้อผิดพลาดที่สังเกตได้ในคอนโซลนักพัฒนาซอฟต์แวร์ 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

หลังจากยืนยันว่าเซิร์ฟเวอร์ต้นทางได้รับการลงทะเบียนอย่างถูกต้องแล้ว ให้ทำตามขั้นตอนต่อไปนี้

  1. ตรวจสอบวิธีเรียกใช้รายงาน ตรวจสอบว่าคุณได้รับรูปแบบรายงานที่ถูกต้องตาม API ที่ใช้

  2. หากคุณทริกเกอร์รายงานตามที่แนะนำ แต่ยังคงพบปัญหาอยู่ ให้ตรวจสอบว่ามีข้อผิดพลาดในคอนโซลนักพัฒนาซอฟต์แวร์ 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 เป็น aggregationCoordinatorOrigin

เช่น

                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 ด้วยตนเอง

ทำตามขั้นตอนต่อไปนี้ให้ครบถ้วนเพื่อยืนยัน

  1. คุณสามารถใช้เครื่องมือ aggregatable_report_converter เพื่อแปลงรายงานที่รวบรวมได้จากปลายทาง .well-known เป็น AVRO และสร้างคีย์โดเมนเอาต์พุต (หมายเหตุ: ไฟล์โดเมนเอาต์พุตควรเป็นสตริงไบต์แบบบิ๊กเอนเดียนขนาด 16 ไบต์)

  2. ทําตามขั้นตอนในโค้ดแล็บสําหรับผู้ให้บริการระบบคลาวด์สาธารณะเพื่อรวบรวม รายงานการแก้ไขข้อบกพร่องและเรียกใช้ชื่องานบริการรวมข้อมูลโดยใช้คีย์โดเมนเอาต์พุต ของคุณ ก. 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 ถูกต้องหรือไม่ ตำแหน่งข้อมูลรายงานอินพุตมีรายงานที่จะประมวลผลไหม คุณมีสิทธิ์อ่านจากตำแหน่งที่จัดเก็บสำหรับรายงานและโดเมนเอาต์พุตไหม

ทำตามขั้นตอนต่อไปนี้ให้ครบถ้วนเพื่อยืนยัน

  1. ยืนยันรายงานรวม

    • สร้างรายงานรวมและใช้เครื่องมือ aggregatable_report_converter เพื่อแปลงโดเมนเอาต์พุตเป็นรูปแบบ AVRO
    • เรียกใช้createJobคำขอด้วยรายงานที่รวบรวมได้และไฟล์โดเมนเอาต์พุตนี้
    • หากฟังก์ชันนี้แสดงผล SUCCESS แสดงว่ารายงานที่รวบรวมได้ยังคงอยู่ครบถ้วน หากการดำเนินการนี้แสดงข้อผิดพลาด แสดงว่าคุณมีปัญหาเกี่ยวกับรายงานที่รวบรวมได้ หรือทั้งรายงานและโดเมน
    • ไปตรวจสอบไฟล์โดเมนในขั้นตอนถัดไป
  2. ยืนยันไฟล์โดเมนเอาต์พุต

    • สร้างไฟล์โดเมนเอาต์พุตและใช้aggregatable_report_converter เครื่องมือเพื่อสร้างรายงานที่รวบรวมได้
    • เรียกใช้createJobคำขอด้วยรายงานที่รวบรวมได้และไฟล์โดเมนเอาต์พุตนี้
    • หากคำสั่งนี้แสดงผลเป็น SUCCESS แสดงว่าโดเมนเอาต์พุตยังคงอยู่และ โค้ดของคุณมีปัญหาในการสร้างรายงานที่รวบรวมได้
    • ทำต่อในขั้นตอนถัดไปเพื่อตรวจสอบ shared_info
  3. ยืนยันข้อมูลที่แชร์

    • ตรวจสอบว่าคุณมีรายงานที่เปิดใช้การแก้ไขข้อบกพร่อง รายงานที่เปิดใช้การแก้ไขข้อบกพร่องจะมีฟิลด์ debug_cleartext_payload
    • สร้างรายงานการแก้ไขข้อบกพร่องเพื่อใช้กับเครื่องมือทดสอบในเครื่องและใช้ debug_cleartext_payload เป็นเพย์โหลด
    • เรียกใช้เครื่องมือทดสอบในเครื่องด้วยไฟล์โดเมน หากเป็นSUCCESS แสดงว่ามีการดัดแปลงไฟล์ shared_info

หากสงสัยว่ามีข้อผิดพลาดหรือการดัดแปลงเพิ่มเติม ให้รวบรวมรายงานรวม JSON คีย์โดเมน รายงานรวมที่สร้างขึ้น AVRO และโดเมนเอาต์พุต แล้ว ไปที่ขั้นตอนถัดไป

ตรวจสอบเวอร์ชันการติดตั้งใช้งานใหม่

ตรวจสอบว่าระบบยังรองรับบริการรวบรวมข้อมูลเวอร์ชันที่คุณใช้อยู่ เมื่อทราบเวอร์ชันที่ใช้อยู่แล้ว ให้ตรวจสอบรายการการเปิดตัวบริการรวบรวมข้อมูล และยืนยันว่าเวอร์ชันของคุณไม่มีคำเตือนเกี่ยวกับการสิ้นสุดการสนับสนุน This release has reached its end of support on { date } วิธีการต่อไปนี้สำหรับการพิจารณาว่าคุณได้ติดตั้งใช้งานเวอร์ชันใดมีไว้สำหรับ ระบบคลาวด์สาธารณะที่รองรับ

ขั้นตอนสำหรับ Google Cloud

  1. ไปที่ Compute Engine > อินสแตนซ์ VM
  2. คลิกอินสแตนซ์เครื่องเสมือนที่มี -worker- ในชื่อ
  3. ค้นหาส่วน Custom Metadata แล้วค้นหาคีย์ tee-image-reference
  4. ค่าของ 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

  1. ไปที่อินสแตนซ์ EC2 ในคอนโซล Amazon Web Services
  2. คลิกอินสแตนซ์ที่มีชื่อ aggregation-service-operator-dev-env
  3. ในหน้าอินสแตนซ์ ให้ค้นหารายละเอียด > AMI (Amazon Machine Image)
  4. ชื่อเวอร์ชันควรอยู่ในเส้นทางรูปภาพ เช่น หมายเลขเวอร์ชันของเส้นทางต่อไปนี้คือ v2.9.1
    • หมายเหตุ: ข้อมูลนี้เกี่ยวข้องหากคุณใช้ชิ้นงานที่สร้างไว้ล่วงหน้า หากไม่ได้ใช้ ชิ้นงานควรตรงกับสิ่งที่คุณตั้งชื่อและติดแท็กรูปภาพด้วยตนเอง (ตัวอย่าง: aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)

ขั้นตอนถัดไป

หากไม่เห็นวิธีแก้ปัญหาเกี่ยวกับบริการรวบรวมข้อมูล โปรดแจ้งให้เราทราบโดย ส่งปัญหาใน GitHub หรือส่งแบบฟอร์มขอรับการสนับสนุนด้านเทคนิค