כשעובדים עם מסננים של קבוצות כרטיסי מוצר בהקשר של 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.