استخدام فلاتر مجموعات بيانات المؤسسات في المهام المجمّعة

عند العمل مع فلاتر مجموعات البيانات في سياق AdGroupCriterion.listing_group أو AssetGroupListingGroupFilter، يجب مراعاة الاعتبارات التالية عند تصميم عملية الدمج.

تقسيم الدفعات

إذا كانت هناك أي عمليات في مهمة مجمّعة تحتوي على معايير المجموعة الإعلانية أو فلاتر مجموعات البيانات في مجموعات مواد العرض، يتم تقسيم العمليات في المهمة المجمّعة إلى عدة دفعات فرعية عند تلقّيها من خادم Google Ads API. على عكس العمليات العادية في مهمة مجمّعة، يتم التعامل مع كل دفعة فرعية تحتوي على عمليات فلترة مجموعات البيانات بشكل منفصل.

يتم تحديد طريقة تقسيم المهام المجمّعة التي تحتوي على فلاتر مجموعات البيانات إلى مهام مجمّعة فرعية وفقًا للعوامل التالية:

  1. نوع فلتر مجموعة البيانات
  2. AdGroup أو AssetGroup التي يستهدفها فلتر مجموعة البيانات
  3. ترتيب العمليات

يمكنك تجميع العمليات حسب:

  • يتم تجميع كل عمليات AssetGroupListingGroupFilterOperation المتتالية (create وupdate وremove) التي تستهدف AssetGroup نفسه معًا في دفعة فرعية ذرية (لا يوجد سلوك فشل جزئي).
  • يتم تجميع كل عمليات AdGroupCriterionOperation المتتالية (create وupdate وremove) لمعايير LISTING_GROUP (AdGroupCriterion.listing_group) التي تستهدف AdGroup نفسه معًا في دفعة فرعية ذرية (لا يوجد سلوك فشل جزئي).
  • يتم تجميع جميع العمليات المتتالية الأخرى معًا في دفعات فرعية غير ذرية (سلوك الفشل الجزئي).

يوضّح المخطّط البياني التالي هذا المفهوم. يمثّل كلّ مربّع رمادي مهمّة مجمّعة تم إرسالها باستخدام Google Ads API. داخل المربّعات الرمادية، يتم تجميع العمليات الفردية حسب اللون لتمثيل الدفعات الفرعية التي ينشئها خادم Google Ads API. يتوافق ترتيب العمليات في كلّ من المربّعات الرمادية مع الترتيب الذي تمت به إضافة العمليات إلى مهمة مجمّعة.

مخطّط بياني يعرض العمليات المجمّعة في مجموعات فرعية

القيود

عند العمل مع فلاتر مجموعات البيانات في سياق مهام الدفعات، تنطبق القيود التالية:

  • لا يمكن أن تتجاوز الدفعة الفرعية الذرية الواحدة من عمليات AdGroupCriterionOperation المتتالية (create وupdate وremove) لمعايير LISTING_GROUP (AdGroupCriterion.listing_group) التي تستهدف AdGroup نفسه 20,000 عملية في الطول. ومع ذلك، ننصح بعدم تجاوز 10,000 عملية. بما أنّ الحدّ الأقصى لكلّ AddBatchJobOperationsRequest هو 10,000 عملية، يجب تحميل دفعة فرعية من AdGroup تتضمّن من 10,001 إلى 20,000 عملية على مستوى طلبَين متتاليَين على الأقل من طلبات AddBatchJobOperations.
  • لا يمكن أن تتجاوز الدفعة الفرعية الذرية الواحدة من عمليات AssetGroupListingGroupFilterOperation المتتالية (create وupdate وremove) التي تستهدف AssetGroup نفسه 10,000 عملية.
  • في حال مخالفة أيّ من هذين الحدَّين الأقصيَين لعدد العمليات (أو تجاوز الحدّ الأقصى الداخلي لحجم البايت المتسلسل في الخادم لدفعة فرعية واحدة)، يتم إلغاء مهمة الدفعة في تلك الدفعة الفرعية: تظل أي دفعات فرعية سابقة تم إكمالها ملتزمة، في حين يتعذّر تنفيذ جميع العمليات في الدفعة الفرعية المخالفة وأي دفعات فرعية لاحقة مع ظهور الخطأ InternalError.INTERNAL_ERROR.

تحديد المشاكل وحلّها

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

على سبيل المثال، عند معالجة ردّ من ListBatchJobResults:

تشير هذه الأخطاء إلى أنّه تم التراجع عن العملية في هذا الفهرس لأنّ عملية أخرى في الدفعة الفرعية الذرية نفسها تعذّر إكمالها. لتحديد السبب الأساسي للمشكلة، يمكنك تكرار رسائل status في كل BatchJobResult قبل وبعد operation_index خطأ المعاملة للعمليات التي تشارك معرّف AdGroup أو AssetGroup نفسه.