使用暫時 ID

BatchJobService 有一項強大功能,那就是支援使用臨時 ID。

您可以指定新資源的 resource_name 以使用負數 ID。舉例來說,如果您在建立廣告活動時指定其資源名稱為 customers/<YOUR_CUSTOMER_ID>/campaigns/-1,則您在後續作業中建立廣告群組時,可以用該資源名稱來參照該資源,而您指定的 -1 將由所建立廣告活動的實際 ID 取代。

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

  • 臨時資源名稱必須先在資源中定義,才能使用。在以下範例中,廣告群組作業必須在作業清單的廣告活動作業之後出現。
  • 系統不會跨工作或修改請求記住臨時資源名稱;如要參照先前工作或修改請求中建立的資源,請使用其實際資源名稱。
  • 如果是單一工作或 Mu 修改請求,每個臨時資源名稱都必須使用唯一的負數,即使資源來自不同的資源類型也一樣。如果在單一工作或 變更 請求中重複使用臨時 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,因為不會再參照該資源名稱。