عند العمل مع فلاتر مجموعات البيانات في سياق
AdGroupCriterion.listing_group أو
AssetGroupListingGroupFilter، يجب مراعاة
الاعتبارات التالية عند تصميم عملية الدمج.
تقسيم الدفعات
إذا كانت هناك أي عمليات في مهمة مجمّعة تحتوي على معايير المجموعة الإعلانية أو فلاتر مجموعات البيانات في مجموعات مواد العرض، يتم تقسيم العمليات في المهمة المجمّعة إلى عدة دفعات فرعية عند تلقّيها من خادم Google Ads API. على عكس العمليات العادية في مهمة مجمّعة، يتم التعامل مع كل دفعة فرعية تحتوي على عمليات فلترة مجموعات البيانات بشكل منفصل.
يتم تحديد طريقة تقسيم المهام المجمّعة التي تحتوي على فلاتر مجموعات البيانات إلى مهام مجمّعة فرعية وفقًا للعوامل التالية:
- نوع فلتر مجموعة البيانات
AdGroupأوAssetGroupالتي يستهدفها فلتر مجموعة البيانات- ترتيب العمليات
يمكنك تجميع العمليات حسب:
- يتم تجميع كل عمليات
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:
- بالنسبة إلى مجموعات بيانات
AdGroupCriterionOperation، قد تلاحظ أنّ العمليات المتتالية التي تستهدفAdGroupنفسها قد تعذّرت بسبب الخطأCriterionError.LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION(Product group operations are atomic within the same ad group. This operation failed because another operation targeting the same ad group ID was invalid.). - بالنسبة إلى عمليات
AssetGroupListingGroupFilterOperation، قد تلاحظ أنّ العمليات المتتالية التي تستهدفAssetGroupنفسه تعذّر إكمالها بسبب الخطأBatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE.
تشير هذه الأخطاء إلى أنّه تم التراجع عن العملية في هذا الفهرس لأنّ
عملية أخرى في الدفعة الفرعية الذرية نفسها تعذّر إكمالها. لتحديد السبب الأساسي للمشكلة، يمكنك تكرار رسائل status في كل BatchJobResult قبل وبعد operation_index خطأ المعاملة للعمليات التي تشارك معرّف AdGroup أو AssetGroup نفسه.