عند استخدام فلاتر مجموعات بيانات في سياق 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.