使用临时 ID

BatchJobService 的一个强大功能是, 支持使用临时 ID。

为此,您可以指定新资源的 resource_name 以使用 排除 ID。例如,如果您创建了一个广告系列,并指定其资源名称 设为 customers/<YOUR_CUSTOMER_ID>/campaigns/-1,则在创建 那么您可以通过资源名称来引用该广告组 您指定的 -1 将被替换为所创建广告系列的实际 ID 。

使用临时资源名称时,请注意以下事项:

  • 临时资源名称只有在 资源。在下面的示例中,广告组操作 在操作列表中的广告系列操作之后。
  • 系统无法跨作业或 mutate 请求记住临时资源名称; 要引用在上一个作业或 mutate 请求中创建的资源,请使用其 实际资源名称
  • 对于单个作业或 mutate 请求,每个临时资源名称必须使用 唯一负数,即使它们来自不同的资源类型也是如此。如果 在单个作业或 mutate 请求中重复使用了临时 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,该广告组将使用新的临时 ID。 我们为广告系列使用的 -1,在广告展示时也会引用此广告组 制作广告组广告。广告组本身会引用 已在该请求的早期操作中为广告系列创建,而 不需要 ad_group_ad_operation 中的 resource_name,因为没有进一步的 操作会引用它。