שימוש במזהים זמניים

אחת התכונות העוצמתיות של BatchJobService היא התמיכה בשימוש במזהים זמניים.

כדי לעשות את זה, מציינים את ה-resource_name של המשאב החדש כך שישתמש במזהה שלילי. לדוגמה, אם יוצרים קמפיין ומציינים את שם המשאב שלו בתור customers/<YOUR_CUSTOMER_ID>/campaigns/-1, כשיוצרים את קבוצת המודעות בפעולה מאוחר יותר אפשר להפנות אליו לפי שם המשאב הזה, וה--1 שצוין יוחלף במזהה בפועל של הקמפיין שנוצר באופן אוטומטי.

כמה דברים שחשוב לזכור כשמשתמשים בשמות של משאבים זמניים:

  • אפשר להשתמש בשם זמני של משאב רק אחרי שהוגדר במשאב. בדוגמה הבאה, הפעולה של קבוצת המודעות צריכה להופיע ברשימת הפעולות אחרי פעולת הקמפיין.
  • שמות זמניים של משאבים לא נשמרים במשימות ובבקשות לשינוי. כדי להפנות למשאב שנוצר במשימה קודמת או בבקשת שינוי, יש להשתמש בשם המשאב בפועל.
  • במשימה אחת או בבקשת שינוי אחת, כל שם משאב זמני צריך להשתמש במספר שלילי ייחודי, גם אם הם מסוגי משאבים שונים. אם משתמשים שוב במזהה זמני במשימה אחת או בבקשת שינוי אחת, מוחזר שגיאה.

דוגמה

כדי לתת דוגמה מעשית יותר למצב שצוין למעלה, נניח שאתם רוצים להוסיף קמפיין, קבוצת מודעות ומודעה לבקשת API אחת. כדאי ליצור מבנה לבקשה שמקביל למבנה הבא:

mutate_operations: [
  {
    campaign_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1",
        ...
      }
    }
  },
  {
    ad_group_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2",
        campaign: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1"
        ...
      }
    }
  },
  {
    ad_group_ad_operation: {
      create: {
        ad_group: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2"
        ...
      }
    }
  },
]

שימו לב שבקבוצת המודעות נעשה שימוש במזהה זמני חדש, כי אי אפשר לעשות שימוש חוזר ב--1 שבו השתמשנו בקמפיין, ובנוסף אנחנו מפנים לקבוצת המודעות הזו כשיוצרים מודעה ברמת קבוצת המודעות. קבוצת המודעות עצמה מפנה לשם המשאב שהגדרנו לקמפיין בפעולה קודמת בבקשה, אבל resource_name ב-ad_group_ad_operation לא נחוץ כי אין פעולה נוספת שמפנה אליו.