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

وقتی با فیلترهای گروه فهرستگان در بافت 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 یکسانی دارند تکرار کنید.