تشخيص بيئتك (جديدة أو تمت ترقيتها)

يمكن أن تؤدي عوامل متعدّدة إلى حدوث مشاكل أثناء العمل مع "خدمة التجميع"، بما في ذلك تنسيق التقارير ومشاكل نطاق الإخراج ومشاكل المنسّق. من المهم معرفة مصدر الخطأ وأي بيانات وصفية يحتوي عليها لكي تتمكّن من تشخيص المشكلة بدقة.

مواضيع الدليل:

التحقّق من إعداد واجهة برمجة التطبيقات لقياس أداء العملاء

بعد التأكّد من تسجيل خادم المصدر بشكل صحيح، أكمِل الخطوات التالية:

  1. تحقّق من كيفية بدء إعداد التقارير. تأكَّد من أنّك تتلقّى تنسيق التقرير الصحيح وفقًا لواجهة برمجة التطبيقات المستخدَمة:

  2. إذا كنت تُنشئ التقارير على النحو المُقترَح، ولكنّ المشكلة لا تزال قائمة، تحقّق ممّا إذا كانت هناك أخطاء تم رصدها في "وحدة تحكّم مطوّري برامج Chrome" في كلّ من علامتَي التبويب "وحدة التحكّم" و"الشبكة".

إذا كنت بحاجة إلى مزيد من المساعدة في تحديد المشاكل وحلّها في واجهات برمجة التطبيقات هذه، يمكنك الاطّلاع على إرشادات تصحيح الأخطاء في Attribution Reporting API وPrivate Aggregation API + Shared Storage.

تحديد المشاكل وحلّها في ما يتعلّق بإعداد مصدر إعداد التقارير

خادم مصدر إعداد التقارير هو المكان الذي أعلنت فيه عن نقاط نهاية .well-known الصحيحة والمقابلة التي سيتم إرسال التقارير القابلة للتجميع إليها. تأكَّد من أنّه تم تسجيل وخدمة تسجيل خادم مصدر إعداد التقارير الذي تم نشره بشكلٍ سليم.

هل يتلقّى مصدر إعداد التقارير بلاغات؟

تأكَّد من أنّه تم تسجيل وخدمة خادم مصدر إعداد التقارير الذي تم نشره بشكلٍ سليم. هذا هو الخادم الذي أعلنت فيه عن نقاط نهاية .well-known المناسبة والمقابلة التي سيتم إرسال التقارير القابلة للتجميع إليها.

واجهة برمجة تطبيقات القياس من جهة العميل نقطة نهاية مطابقة قابلة للتجميع
Attribution Reporting POST /.well-known/attribution-reporting/report-aggregate-attribution
"تجميع البيانات الخاصة" + "مساحة التخزين المشتركة" (مجموعة) POST ‎ /.well-known/private-aggregation/report-shared-storage
"التجميع الخاص" + "الجمهور المحمي" (مجموعة) POST ‎ /.well-known/private-aggregation/report-protected-audience

بعد التأكّد من تسجيل خادم المصدر بشكلٍ صحيح، أكمِل الخطوات التالية:

  1. تحقّق من كيفية بدء إعداد التقارير. تأكَّد من أنّك تتلقّى تنسيق التقرير الصحيح وفقًا لواجهة برمجة التطبيقات المستخدَمة:

  2. إذا كنت تُنشئ التقارير على النحو المُقترَح ولكنّ المشكلة لا تزال قائمة، تحقّق ممّا إذا كانت هناك أخطاء تم رصدها في "وحدة تحكّم مطوّري البرامج في Chrome" في كلّ من علامتَي التبويب "وحدة التحكّم" و"الشبكة".

إذا كنت بحاجة إلى مزيد من المساعدة في تحديد المشاكل وحلّها في واجهات برمجة التطبيقات هذه، يمكنك الاطّلاع على إرشادات تصحيح الأخطاء في Attribution Reporting API وPrivate Aggregation API + Shared Storage.

تحديد المشاكل في التقارير المجمّعة وحلّها

يتم إنشاء التقارير المجمّعة بواسطة واجهات برمجة التطبيقات لقياس الأداء من جهة العميل وإرسالها إلى مصدر إعداد التقارير. يجب تحويل هذه التقارير إلى تنسيق AVRO من قِبل نقطة نهاية إعداد التقارير. إذا كانت هناك مشاكل في هذه الإحالة الناجحة، أو إذا كانت التقارير نفسها غير سليمة، قد تظهر لك أخطاء في "خدمة التجميع".

هل يتم تحويل تقاريرك القابلة للتجميع بشكل صحيح؟

تأكَّد من أنّ نقطة نهاية إعداد التقارير (.well-known/…) تُحوّل بشكلٍ صحيح تقرير JSON القابل للتجميع إلى AVRO.

في ما يلي أخطاء واجهة برمجة التطبيقات التي قد تظهر بسبب هذه المشكلة:

خطأ 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، ثم يتم تحويلها إلى صفيف وحدات بايت. إذا ظهر لك أكثر من عدد أخطاء واحد، يمكنك الاطّلاع على مزيد من المعلومات حول الأخطاء في صفحة "خدمة التجميع" على 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 على أنّه 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 في خدمة التجميع Google Cloud Codelab ب. Amazon Web Services: اتّبِع الخطوات من 4.2 إلى 5.3 في Aggregation Service AWS Codelab.

إذا أدّى ذلك إلى عرض الردّ SUCCESS، يعني ذلك أنّ الإحالة الناجحة تعمل بشكلٍ سليم.

هل التقارير القابلة للتجميع سليمة؟

تأكَّد من أنّ التقرير المجمّع ومفاتيح نطاق الإخراج والمعلومات المشترَكة سليمة. يمكنك الرجوع إلى عيّنات الرموز البرمجية لتحويل التقارير القابلة للتجميع وإنشاء ملفات النطاقات إذا أردت معرفة مزيد من المعلومات.

في ما يلي أخطاء واجهة برمجة التطبيقات التي قد تظهر لك والتي ترتبط بهذه المشكلة:

خطأ 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.

إذا كنت تشتبه في حدوث أي أخطاء أو تلاعب آخر، اجمع تقرير AVRO المُجمَّع بتنسيق JSON ومفتاح النطاق وAVRO التقرير المُجمَّع الذي تم إنشاؤه ونطاق الإخراج، ثم انتقِل إلى الخطوات التالية.

فحص إصدار النشر الجديد

تأكَّد من أنّ إصدار "خدمة التجميع" لا يزال متوافقًا. بعد تحديد الإصدار الذي تستخدمه، اطّلِع على قائمة إصدارات "خدمة التجميع" وتأكَّد من أنّ إصدارك لا يتضمّن تحذيرًا بشأن إيقاف الدعم: This release has reached its end of support on { date }. إنّ التعليمات التالية لتحديد الإصدار الذي تم نشره مخصّصة للسحابة الإلكترونية العامة المتوافقة.

خطوات Google Cloud

  1. انتقِل إلى Compute Engine > مثيلات الأجهزة الافتراضية.
  2. انقر على مثيل الجهاز الافتراضي الذي يتضمّن -worker- في الاسم.
  3. ابحث عن القسم Custom Metadata ثم حدِّد مفتاح tee-image-reference.
  4. ستحتوي قيمة 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

  1. انتقِل إلى مثيلات EC2 في وحدة تحكّم Amazon Web Services.
  2. انقر على المثيل الذي يحمل الاسم aggregation-service-operator-dev-env.
  3. في صفحة المثيل، ابحث عن "التفاصيل" > AMI (صورة Amazon Machine).
  4. يجب تضمين اسم الإصدار في مسار الصورة. على سبيل المثال، هو رقم إصدار المسار التالي هو v2.9.1.
    • ملاحظة: يكون هذا الإجراء ذا صلة إذا كنت تستخدِم مواد العرض المُنشأة مسبقًا، أمّا إذا لم يكن الأمر كذلك، فيجب أن يتطابق مع الاسم الذي اخترته شخصيًا لمواد العرض التي أشرت إليها. (مثال: aggregation-service-enclave_2.9.1--2024-10-03T01-24-25Z)

الخطوات التالية

إذا لم يتم حلّ مشكلة "خدمة التجميع"، يُرجى إعلامنا بها من خلال إرسال مشكلة على GitHub أو إرسال نموذج الدعم الفني.