רוב השירותים מספקים ממשקי API סינכרוניים שבהם צריך לשלוח בקשה ולהמתין לתגובה, אבל ב-BatchJobService אפשר לבצע קבוצות של פעולות בכמה שירותים בלי להמתין באופן סינכרוני להשלמת הפעולות.
בניגוד לפעולות שינוי שספציפיות לשירות, משימה אחת ב-BatchJobService יכולה לפעול על אוסף מעורב של קמפיינים, קבוצות של מודעות, מודעות, קריטריונים, תוויות ונכסים. משימות שהוגשו מופעלות במקביל, ו-BatchJobService מנסה באופן אוטומטי לבצע שוב פעולות שנכשלו בגלל שגיאות זמניות, כמו שגיאות של הגבלת קצב של יצירת בקשות. Google Ads API עדיין סופר כל פעולה במסגרת המגבלה היומית על פעולות, בהתאם להוראות הספירה של פעולות API.
BatchJobService מאפשר גם להשתמש במזהים זמניים בבקשות, כדי שתוכלו לשלוח פעולות תלויות במשימה אחת.
תפעול
BatchJobService תומך בכל הפעולות שמפורטות ב-MutateOperation, שהשירות הבסיסי שלהן תומך בכשל חלקי, וגם בפעולות AssetGroupOperation ו-AssetGroupListingGroupFilterOperation, שמוחרגות באופן מפורש ומופעלות (יחד עם פעולות קשורות שתלויות זו בזו) בקבוצות משנה אטומיות.
מכיוון ש-Google Ads API מבצע פעולות רגילות בעבודה עם partial failure מופעל (למעט בתוך atomic sub-batches), אם עבודה מבוטלת או שפעולות בודדות נכשלות, הפעולות שהצליחו לא מבוטלות.
הפעולות הבאות ב-MutateOperation חייבות להיות אטומיות, והן לא תומכות בכשל חלקי. לכן אי אפשר להשתמש בהן במשימות באצווה. הוספה של אחת מהפעולות האלה למשימה באצווה מחזירה שגיאה מסוג MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE (או InternalError.INTERNAL_ERROR עבור BookCampaignsOperation ו-QuoteCampaignsOperation). במקום זאת, צריך להריץ אותן באמצעות GoogleAdsService.Mutate עם partial_failure שמוגדר ל-false (ו-validate_only שמוגדר ל-true עבור QuoteCampaignsOperation).
פעולות שלא נתמכות ב-BatchJobService
-
BookCampaignsOperation(זמין ב-MutateOperation) CampaignConversionGoalOperationConversionGoalCampaignConfigOperationCustomConversionGoalOperationCustomerConversionGoalOperationCustomerOperation-
QuoteCampaignsOperation(זמין ב-MutateOperation, מחייב להגדיר אתvalidate_onlyלערךtrue)