BatchJobService
的強大功能是支援使用臨時 ID。
方法是指定新資源的 resource_name
使用負值 ID。舉例來說,如果您建立了一個廣告活動,並將資源名稱指定為 customers/<YOUR_CUSTOMER_ID>/campaigns/-1
,那麼當您在後續作業中建立廣告群組時,可以按照該資源名稱參照該參照,然後把您指定的 -1
替換成所建立廣告活動的實際編號。
使用臨時資源名稱時,請注意下列事項:
- 臨時資源名稱只能在資源中定義之後才能使用。在以下範例中,廣告活動作業必須在廣告活動運作之後顯示在作業清單中。
- 系統不會記住工作或變化要求中的臨時資源名稱;如要參照在先前工作或 Variant 要求中建立的資源,請使用實際資源名稱。
- 針對單一工作或 DAI 要求,每個臨時資源名稱都必須使用不重複的負數,即使它們來自不同的資源類型也一樣。如果在單一工作或變化要求中重複使用臨時 ID,系統會傳回錯誤。
範例
為了更明確地說明上述情況,假設您想在單一 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"
...
}
}
},
]
請注意,由於新的廣告活動 ID 無法重複使用用於廣告活動的 -1
,因此建立廣告群組將會使用新的暫時 ID;此外,建立廣告群組廣告時也會參照這個廣告群組。廣告群組本身會參照先前在要求中為廣告活動建立的資源名稱,而不需要使用 ad_group_ad_operation
中的 resource_name
,因為無需進一步操作。