استفاده از فیلترهای گروه فهرستگان در کارهای دسته‌ای

وقتی با فیلترهای گروه فهرستگان در زمینه 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 را هدف قرار می‌دهد نمی‌تواند ازنظر طول از ۲۰٬۰۰۰ عملیات فراتر رود. اما توصیه می‌شود تعداد عملیات‌ها از ۱۰٬۰۰۰ بیشتر نشود. چون هر AddBatchJobOperationsRequest به ۱۰٬۰۰۰ عملیات محدود است، یک زیردسته AdGroup از ۱۰٬۰۰۱ تا ۲۰٬۰۰۰ عملیات باید در حداقل دو درخواست AddBatchJobOperations متوالی بارگذاری شود.
  • یک زیردسته اتمی واحد از عملیات‌های متوالی AssetGroupListingGroupFilterOperation (create، update، و remove) که همان AssetGroup را هدف قرار می‌دهد نمی‌تواند از ۱۰٬۰۰۰ عملیات فراتر برود.
  • نقض هریک از این محدودیت‌های تعداد عملیات (یا فراتر رفتن از حد مجاز اندازه بایت سریالی‌شده داخلی سرور برای یک زیردسته) کار دسته‌ای را در آن زیردسته لغو می‌کند: هر زیردسته قبلی که قبلاً تکمیل شده است، متعهد باقی می‌ماند، درحالی‌که همه عملیات در زیردسته متخلف و هر زیردسته بعدی با InternalError.INTERNAL_ERROR ناموفق می‌شود.

عیب‌یابی

عملیات فیلتر گروه فهرستگان در کار دسته‌ای به‌عنوان یک تراکنش پردازش می‌شود، که می‌تواند منجر به سناریوهایی شود که در آن بسیاری از عملیات به‌دلیل تعداد کمی از عملیات اشتباه ناموفق می‌شوند. علاوه‌براین، به‌دلیل نحوه پردازش عملیات BatchJob، علت ریشه‌ای خرابی‌ها ممکن است در نمایه‌ای قبل یا بعداز خرابی‌های پایین‌دست ظاهر شود.

برای مثال، هنگام پردازش پاسخ از ListBatchJobResults:

این خطاها نشان می‌دهند که عملیات در آن نمایه بازگردانده شده است زیرا عملیات دیگری در همان زیردسته اتمی ناموفق بوده است. برای شناسایی علت ریشه‌ای مشکل، پیام‌های status را در هر BatchJobResult—قبل و بعداز operation_index خطای تراکنش—برای عملیات‌هایی که شناسه AdGroup یا AssetGroup یکسانی دارند تکرار کنید.