כשעובדים עם מסננים של קבוצות כרטיסי מוצר בהקשר של 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. בניגוד לפעולות רגילות בעבודת אצווה, כל אצווה משנית שמכילה פעולות סינון של קבוצת דפי מוצר מטופלת באופן אטומי.
הדרך שבה עבודות באצווה שמכילות מסננים של קבוצות כרטיסי מוצר מפולגות לאצוות משנה נקבעת לפי הגורמים הבאים:
- סוג המסנן של קבוצת כרטיסי המוצר
- המיקוד של מסנן הקבוצה של כרטיסי המוצר
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:
- יכול להיות שפעולות רצופות שמטרגטות את אותה
AdGroupקבוצת כרטיסי מוצרAdGroupCriterionOperationייכשלו עם השגיאה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.