כשעובדים עם מסננים של קבוצות של כרטיסי מוצר בהקשר של AdGroupCriterion.listing_group או AssetGroupListingGroupFilter, צריך להביא בחשבון את הדברים הבאים כשמתכננים את השילוב.
פיצול אצוות
אם יש פעולות ב-batch job שמכילות קריטריונים של קבוצות של מודעות או מסננים של קבוצות של נכסי דף נחיתה, הפעולות ב-batch job מפוצלות לכמה קבוצות משנה כשהן מתקבלות בשרת של Google Ads API. בניגוד לפעולות רגילות במשימה באצווה, כל קבוצת משנה שמכילה פעולות סינון של קבוצות מוצרים מטופלת באופן אטומי.
האופן שבו משימות באצווה שמכילות מסננים של קבוצות כרטיסי מוצר מפוצלות למשימות משנה באצווה נקבע לפי הגורמים הבאים:
- סוג המסנן של קבוצת כרטיסי המוצר
- המסנן של קבוצת כרטיסי המוצר מטרגט את
AdGroupאוAssetGroup - סדר הפעולות
חשוב לשים לב לאופן שבו הפעולות מקובצות:
- כל הפעולות של
AssetGroupListingGroupFilterOperation(create,updateו-remove) שמטרגטות את אותוAssetGroupמקובצות יחד באצווה אטומית (אין התנהגות של כשל חלקי). - כל הפעולות (
create,updateו-remove) שלAdGroupCriterionOperationהעוקבות בקריטריונים של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.