שימוש במסננים של קבוצות של כרטיסי מוצר במשימות של עריכה בכמות גדולה

כשעובדים עם מסננים של קבוצות כרטיסי מוצר בהקשר של AdGroupCriterion.listing_group או AssetGroupListingGroupFilter, חשוב לקחת בחשבון את ההיבטים הבאים כשמתכננים את השילוב.

פיצול באצווה

אם יש פעולות ב<term ref="batch job">משימה באצווה</term> שמכילות קריטריונים של קבוצת מודעות או מסננים של <term ref="asset group">קבוצת נכסים</term> של <term ref="listing group">קבוצה של כרטיסי מוצר</term>, הפעולות ב<term ref="batch job">משימה באצווה</term> מפולחות לאצוות משנה מרובות כשהן מתקבלות על ידי שרת 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.