ב-Google Ads API יש כמה דרכים לשנות משאבים, בהתאם לתרחיש לדוגמה:
- שינויים בשירות המשאבים: לכל משאב שניתן לשינוי יש שירות ייעודי שמבצע פעולות בסוג המשאב הספציפי הזה. לדוגמה, המשאב
Campaignמשתמש בנקודת הקצהCampaignService.MutateCampaignsכדי ליצור, לעדכן או להסיר קמפיינים. - שינויים בכמות גדולה: נקודת הקצה
GoogleAdsService.Mutateכוללת רצף של פעולות שינוי בכמה סוגי משאבים (ופעולות נתמכות כמו הזמנה או הצעת מחיר לקמפיינים) בבקשה סנכרונית אחת. - משימות אצווה אסינכרוניות: כשמדובר במוטציות בקנה מידה גדול או בעומסי עבודה ממושכים,
BatchJobServiceמבצע פעולות באופן אסינכרוני בלי להסתכן בזמן קצוב לתפוגה של בקשות סינכרוניות. בניגוד ל-GoogleAdsService.Mutate,BatchJobServiceתמיד פועל לפי סמנטיקה של כשל חלקי, ולא תומך במצבvalidate_onlyאו בפעולות (book_campaigns_operation,quote_campaigns_operation). מכיוון שכשל חלקי תמיד פעיל,BatchJobServiceדוחה פעולות במשאבים שהשירותים הבסיסיים שלהם לא תומכים בכשל חלקי (כמוCustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationו-CustomerConversionGoalOperation) עםMutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE.
היתרונות של שינויים בכמות גדולה
לשימוש ב-GoogleAdsService.Mutate יש את היתרונות הבאים (במאמר שיטות מומלצות לשימוש ב-Mutate מוסבר איך להטמיע את השיטה):
- פעולות מקובצות בשירותי משאבים שונים: קריאות לשירותי משאבים נפרדים מקבלות רק פעולות לסוג משאב אחד, אבל
GoogleAdsService.Mutateמאפשר לשנות כמה סוגי משאבים בקריאה אחת. - שמות זמניים של משאבים: אתם יכולים להקצות מזהים של מספרים שלמים שליליים (כמו
customers/CUSTOMER_ID/campaigns/-1) לישויות אם חדשות שנוצרו, ולהפנות למזהים הזמניים האלה בפעולות של ישויות צאצא באותה בקשה.
בעזרת היכולות האלה, אתם יכולים להשתמש ב-GoogleAdsService.Mutate כדי ליצור היררכיית קמפיינים שלמה באופן אטומי, כך שכל הפעולות יצליחו או ייכשלו ביחד, או להגדיר את partial_failure כ-true כדי לבצע פעולות תקינות באופן עצמאי.