תכונה חזקה של BatchJobService
היא התמיכה בשימוש במזהים זמניים.
כדי לעשות זאת, צריך לציין את resource_name
של המשאב החדש כך שישתמש במזהה שלילי. לדוגמה, אם יוצרים קמפיין ומציינים את שם המשאב שלו בתור customers/<YOUR_CUSTOMER_ID>/campaigns/-1
, כשיוצרים את קבוצת המודעות בפעולה מאוחרת יותר, אפשר להפנות אליה לפי שם המשאב הזה, וה--1
שציינתם יוחלף באופן אוטומטי במזהה בפועל של הקמפיין שנוצר.
ריכזנו כאן כמה דברים שחשוב לזכור כשמשתמשים בשמות של משאבים זמניים:
- אפשר להשתמש בשם משאב זמני רק אחרי שמגדירים אותו במשאב. בדוגמה הבאה, הפעולה של קבוצת המודעות תופיע אחרי הפעולה של הקמפיין ברשימת הפעולות.
- שמות המשאבים הזמניים לא נשמרים בין משימות או בקשות לשינוי (mutate). כדי להפנות למשאב שנוצר במשימה קודמת או בבקשה קודמת לשינוי, צריך להשתמש בשם המשאב בפועל.
- במשימה אחת או בבקשה אחת לשינוי, לכל שם של משאב זמני צריך להיות מספר שלילי ייחודי, גם אם מדובר בסוגי משאבים שונים. אם משתמשים שוב במזהה זמני במשימה אחת או בבקשה אחת לשינוי, תוחזר שגיאה.
דוגמה
כדי לתת דוגמה קונקרטית יותר למצב שצוין למעלה, נניח שאתם רוצים להוסיף קמפיין, קבוצת מודעות ומודעה בבקשת 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
לא נחוץ כי אין פעולה נוספת שמפנה אליו.