في ما يلي سير العمل المقترَح للتحقّق من سلامة عمليات تحميل الأحداث وشرائح الجمهور وتحديد المشاكل في بياناتك.
أرسِل طلبات لإرسال الأحداث أو إرسال أعضاء الجمهور أو إزالتهم.
تحقَّق من الحالة العامة لكل طلب. يكون الطلب ناجحًا إذا كانت
Statusتحتوي علىcodeيساوي0(القيمةOKفي التعداد، والاستجابة200 OKعلى بروتوكول HTTP)، وتعرضIngestEventsResponseأوIngestAudienceMembersResponseأوRemoveAudienceMembersResponse.إذا لم ينجح أحد الطلبات، عدِّله لحلّ الخطأ وأرسِله مرة أخرى.
إذا نجح أحد الطلبات، احفظ
request_idفي الاستجابة لتتمكّن من استرداد بيانات التشخيص في الخطوة التالية.انتظِر لمدة 30 دقيقة، ثم أرسِل طلب
RetrieveRequestStatusلكل ناجحrequest_id.كرِّر هذه الخطوة بشكل دوري لكل
request_idإلى أن تصل حالة الوجهة لكل وجهة إلىSUCCESSأوPARTIAL_SUCCESSأوFAILURE. استخدِم خوارزمية الرقود الأسي الثنائي للانتظار بين كل طلب.راجِع كل
RetrieveRequestStatusResponseللتأكّد من أنّ عمليات التحميل تعمل بشكلٍ سليم وتحديد أي مشاكل في بياناتك.أصلِح مشاكل البيانات.
ارجِع إلى الخطوة 1 وكرِّرها إلى أن تحلّ جميع المشاكل في عمليات التحميل.
أرسِل الطلبات
يتطلّب RetrieveRequestStatusRequest قيمة واحدة
request_id. أرسِل طلب حالة منفصلاً لكل رقم تعريف طلب حفظته من طلب عرض ناجح.
أرسِل RetrieveRequestStatusRequest
بشكل دوري باستخدام خوارزمية الرقود الأسي الثنائي إلى أن تصل request_status إلى
SUCCESS أو FAILURE أو PARTIAL_SUCCESS لكل وجهة في الطلب
الأصلي. قد يستغرق ذلك ما يصل إلى 24 ساعة، على الرغم من أنّ واجهة برمجة تطبيقات Data Manager API قد تُنهي معالجة بعض الطلبات في مدة قصيرة لا تتجاوز 30 دقيقة.
في ما يلي مثال على وقت انتظار أولي معقول وإعدادات إعادة المحاولة التي تحقّق التوازن بين النشاط واستخدام الحصص:
| الإعداد | القيمة |
|---|---|
| وقت الانتظار قبل أول طلب لبيانات التشخيص (بالدقائق) | 30 |
| مُضاعِف الرقود | 1.3 |
| الحد الأقصى للرقود (بالدقائق) | 60 (ساعة واحدة) |
| الحد الأقصى للوقت الإجمالي (بالدقائق) | 1440 (24 ساعة) |
في ما يلي تسلسل الطلبات والوقت المنقضي باستخدام هذه الإعدادات:
رسم بياني للدالة

البيانات
| المحاولة | الوقت منذ طلب العرض (سس:دد) | مدة التأخير قبل المحاولة | ملاحظات |
|---|---|---|---|
| 1 | 00:30 | 30.0 دقيقة | أول تحقّق من توفّر الحالة |
| 2 | 01:09 | 39.0 دقيقة | |
| 3 | 01:59 | 50.7 دقيقة | |
| 4 | 02:59 | 60.0 دقيقة | تم الآن تحديد الحد الأقصى للتأخير بساعة واحدة |
| 5 | 03:59 | 60.0 دقيقة | |
| 6 | 04:59 | 60.0 دقيقة | |
| 7 | 05:59 | 60.0 دقيقة | |
| 8 | 06:59 | 60.0 دقيقة | |
| 9 | 07:59 | 60.0 دقيقة | |
| 10 | 08:59 | 60.0 دقيقة | |
| 11 | 09:59 | 60.0 دقيقة | |
| 12 | 10:59 | 60.0 دقيقة | |
| 13 | 11:59 | 60.0 دقيقة | العلامة بعد 12 ساعة |
| 14 | 12:59 | 60.0 دقيقة | |
| 15 | 13:59 | 60.0 دقيقة | |
| 16 | 14:59 | 60.0 دقيقة | |
| 17 | 15:59 | 60.0 دقيقة | |
| 18 | 16:59 | 60.0 دقيقة | |
| 19 | 17:59 | 60.0 دقيقة | |
| 20 | 18:59 | 60.0 دقيقة | |
| 21 | 19:59 | 60.0 دقيقة | |
| 22 | 20:59 | 60.0 دقيقة | |
| 23 | 21:59 | 60.0 دقيقة | |
| 24 | 22:59 | 60.0 دقيقة | |
| 25 | 23:59 | 60.0 دقيقة | آخر طلب قبل الحد الأقصى للوقت الإجمالي البالغ 24 ساعة |
أضِف مقدارًا صغيرًا عشوائيًا من التذبذب إلى حالات التأخير في الرقود لمنع مشكلة "القطيع الصاخب" حيث يعيد العديد من العملاء المحاولة في الوقت نفسه.
مراجعة الإجابات
يحتوي request_status_per_destination في
RetrieveRequestStatusResponse على إدخال منفصل لـ
كل وجهة في طلب العرض المقابل.
على سبيل المثال، إذا كان IngestAudienceMembersRequest
يحتوي على 3 إدخالات في قائمة destinations لإرسال البيانات إلى 3 شرائح جمهور مختلفة، ستتضمّن استجابة الحالة 3 إدخالات في
request_status_per_destination (إدخال واحد لكل شريحة جمهور).
التحقّق من الحالة العامة للوجهة
كخطوة أولى، تحقَّق من الحقل request_status لتحديد ما إذا كانت
واجهة برمجة تطبيقات "إدارة البيانات" قد انتهت من معالجة البيانات الخاصة بـ destination في
RequestStatusPerDestination.
في ما يلي القيم المحتمَلة لـ request_status:
PROCESSING: لا تزال تتم معالجة البيانات الخاصة بالوجهة. لا يتم ملء التحذيرات والأخطاء للوجهة في هذه المرحلة.SUCCESS: اكتملت معالجة الطلب للوجهة بدون أي أخطاء. تحقَّق من التحذيرات التي تم وضع علامة عليها أثناء المعالجة.FAILURE: تعذّرت جميع السجلات الخاصة بالوجهة بسبب حدوث أخطاء. تحقَّق من التحذيرات والأخطاء لتحديد سبب تعذُّر جميع السجلات. تحقَّق أيضًا من التحذيرات التي تم وضع علامة عليها أثناء المعالجة.PARTIAL_SUCCESS: نجحت بعض السجلات الخاصة بالوجهة، ولكن تعذّرت سجلات أخرى بسبب حدوث أخطاء. تحقَّق من الأخطاء لتحديد سبب تعذُّر بعض السجلات. تحقَّق أيضًا من التحذيرات التي تم وضع علامة عليها أثناء المعالجة.
التحقّق من حالة الحدث أو الجمهور لكل وجهة
افحص حقل الحالة الذي يتطابق مع نوع طلب العرض. يتم ضبط حقل واحد فقط من الحقول التالية في كل RequestStatusPerDestination:
حالة عرض الأحداث
يتم ملء الحقل events_ingestion_status إذا كان الطلب
IngestEventsRequest.
تحقَّق من record_count في IngestEventStatus
للتأكّد من أنّ العدد الإجمالي للسجلات المستلَمة يتطابق مع
توقعاتك. يتضمّن record_count السجلات الناجحة والسجلات التي تعذّرت.
حالة عرض أعضاء الجمهور
يتم ملء الحقل audience_members_ingestion_status إذا كان الطلب
IngestAudienceMembersRequest. في ما يلي الحقل
IngestAudienceMembersStatus الذي يجب التحقّق منه
لكل نوع من بيانات الجمهور. يتم ضبط حقل واحد فقط من هذه الحقول.
user_data_ingestion_statusتحقَّق من
record_countفيIngestUserDataStatusللتأكّد من أنّ العدد الإجمالي للسجلات المستلَمة يتطابق مع توقعاتك. يتضمّنrecord_countالسجلات الناجحة والسجلات التي تعذّرت.تحقَّق من
user_identifier_countللتأكّد من أنّ عدد معرّفات المستخدمين المستلَمة يتطابق مع توقعاتك.إذا كان الطلب يحتوي على عدد كافٍ من السجلات، يتضمّن
upload_match_rate_rangeنطاق معدّل المطابقة للسجلات في الطلب.mobile_data_ingestion_statusتحقَّق من
record_countفيIngestMobileDataStatusللتأكّد من أنّ العدد الإجمالي للسجلات المستلَمة يتطابق مع توقعاتك. يتضمّنrecord_countالسجلات الناجحة والسجلات التي تعذّرت.تحقَّق من
mobile_id_countللتأكّد من أنّ عدد المعرّفات على الأجهزة الجوّالة المستلَمة يتطابق مع توقعاتك.pair_data_ingestion_statusتحقَّق من
record_countفيIngestPairDataStatusللتأكّد من أنّ العدد الإجمالي للسجلات المستلَمة يتطابق مع توقعاتك. يتضمّنrecord_countالسجلات الناجحة والسجلات التي تعذّرت.تحقَّق من
pair_id_countللتأكّد من أنّ عدد معرّفات PAIR المستلَمة يتطابق مع توقعاتك.ppid_data_ingestion_statusتحقَّق من
record_countفيIngestPpidDataStatusللتأكّد من أنّ العدد الإجمالي للسجلات المستلَمة يتطابق مع توقعاتك. يتضمّنrecord_countالسجلات الناجحة والسجلات التي تعذّرت.تحقَّق من
ppid_countللتأكّد من أنّ عدد معرّفات PPID المستلَمة يتطابق مع توقعاتك.user_id_data_ingestion_statusتحقَّق من
record_countفيIngestUserIdDataStatusللتأكّد من أنّ العدد الإجمالي للسجلات المستلَمة يتطابق مع توقعاتك. يتضمّنrecord_countالسجلات الناجحة والسجلات التي تعذّرت.تحقَّق من
user_id_countللتأكّد من أنّ عدد معرّفات المستخدمين المستلَمة يتطابق مع توقعاتك.composite_data_ingestion_statusتحقَّق من
record_countفيIngestCompositeDataStatusللتأكّد من أنّ العدد الإجمالي للسجلات المستلَمة يتطابق مع توقعاتك. يتضمّنrecord_countالسجلات الناجحة والسجلات التي تعذّرت.تحقَّق من
data_type_countsللتأكّد من أنّ عدد معرّفات المستخدمين يتطابق مع توقعاتك. تقدّم هذه القائمة تفصيلاً لجميع معرّفات المستخدمين المستلَمة (مثل عنوان البريد الإلكتروني ورقم الهاتف والعنوان الجغرافي وعنوان IP) حسبDataType.إذا كان الطلب يحتوي على عدد كافٍ من السجلات، يتضمّن
upload_match_rate_rangeنطاق معدّل المطابقة للسجلات في الطلب.
حالة إزالة أعضاء الجمهور
يتم ملء الحقل audience_members_removal_status إذا كان الطلب
RemoveAudienceMembersRequest. في ما يلي الحقل
RemoveAudienceMembersStatus الذي يجب التحقّق منه لكل
نوع من بيانات الجمهور. يتم ضبط حقل واحد فقط من هذه الحقول.
user_data_removal_status- حالة إزالة بيانات المستخدم.
mobile_data_removal_status- حالة إزالة بيانات الأجهزة الجوّالة.
pair_data_removal_status- حالة إزالة بيانات PAIR.
ppid_data_removal_status- حالة إزالة بيانات PPID.
user_id_data_removal_status- حالة إزالة بيانات معرّف المستخدم
composite_data_removal_status- حالة إزالة البيانات المركّبة
تحقَّق من record_count للتأكّد من أنّ العدد الإجمالي للسجلات المستلَمة يتطابق مع توقعاتك. يتضمّن record_count السجلات الناجحة والسجلات التي تعذّرت.
بالإضافة إلى ذلك، تحقَّق من user_identifier_count أو mobile_id_count أو pair_id_count أو ppid_count أو user_id_count للتأكّد من العدد الإجمالي لمعرّفات المستخدمين المستلَمة.
بالنسبة إلى البيانات المركّبة، تحقَّق من data_type_counts للتأكّد من أنّ عدد معرّفات المستخدمين يتطابق مع توقعاتك. تقدّم هذه القائمة تفصيلاً لجميع
معرّفات المستخدمين المستلَمة (مثل عنوان البريد الإلكتروني ورقم الهاتف والعنوان الجغرافي وعنوان
IP) حسب DataType.
التحقّق من التحذيرات والأخطاء
بالإضافة إلى حقول الحالة للوجهة ونوع الطلب، يحتوي
RetrieveRequestStatusResponse على تفصيل لـ
التحذيرات والأخطاء في الطلب.
- يشير الخطأ إلى أنّ واجهة برمجة التطبيقات رفضت السجلّ بالكامل.
- يشير التحذير إلى أنّ واجهة برمجة التطبيقات لم ترفض السجلّ، ولكن كان عليها تجاهل أجزاء من بيانات السجلّ.
على سبيل المثال، إذا كان Event يحتوي على بيانات مشفّرة
UserIdentifier و
AdIdentifiers مثل gclid، ولا يمكن فك تشفير بيانات
UserIdentifier، ستظلّ Data Manager API تعالج السجلّ باستخدام
AdIdentifiers ولكنها تعرض التحذير
PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR.
ومع ذلك، إذا لم يكن Event يحتوي على AdIdentifiers ولا يمكن فك تشفير بيانات UserIdentifier، سترفض واجهة برمجة تطبيقات "إدارة البيانات" السجلّ بالكامل وتُبلغ عن الخطأ PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROR لأنّ Event صالحًا يجب أن يحتوي على واحد على الأقل من ad_identifiers أو user_data.
في ما يلي حقول الاستجابة التي تحتوي على معلومات التحذيرات والأخطاء. يتم ملء هذه
الحقول عندما تصل الحالة العامة للوجهة
إلى SUCCESS أو PARTIAL_SUCCESS أو FAILURE.
warning_infoقائمة بكائنات
WarningCount. يحتوي كلWarningCountعلىreasonيتضمّن نوع التحذير، وrecord_countيشير إلى عدد السجلات التي تحتوي على هذا النوع من التحذيرات.تحقَّق من
warning_infoحتى إذا كانت حالة الوجهة العامة هيSUCCESS.error_infoقائمة بكائنات
ErrorCount. يحتوي كلErrorCountعلىreasonيتضمّن نوع الخطأ، وrecord_countيشير إلى عدد السجلات التي تعذّرت بسبب هذا النوع من الأخطاء.