使用暫時 ID

BatchJobService 的強大功能是支援使用暫時 ID。

如要這麼做,請指定新資源的 resource_name 使用負面 ID。舉例來說,如果您建立廣告活動並將資源名稱指定為 customers/<YOUR_CUSTOMER_ID>/campaigns/-1,那麼在後續作業中建立廣告群組時,您可以使用該資源名稱參照該廣告群組,而您指定的 -1 會自動替換為已建立廣告活動的實際 ID。

使用暫時性資源名稱時,請注意下列事項:

  • 您必須先在資源中定義臨時資源名稱,才能使用該名稱。在下方範例中,廣告群組作業必須在作業清單中的廣告活動作業之後顯示。
  • 系統不會記住工作或變異要求中的暫時資源名稱;如要參照先前工作或變異要求中建立的資源,請使用實際資源名稱。
  • 對於單一工作或變異要求,每個暫時資源名稱都必須使用專屬的負數,即使它們來自不同的資源類型也一樣。如果在單一工作或變異要求中重複使用暫時 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,而且在建立廣告群組廣告時,也會參照這個廣告群組。廣告群組本身會參照我們在要求中先前作業中為廣告活動建立的資源名稱,而 ad_group_ad_operation 中的 resource_name 則不必要,因為沒有其他作業會參照該名稱。