یکی از ویژگیهای قدرتمند 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
ضروری نیست زیرا هیچ عملیات دیگری به آن ارجاع نمیدهد.