임시 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"
        ...
      }
    }
  },
]

캠페인에 사용한 -1을 재사용할 수 없으므로 광고 그룹에 새 임시 ID가 사용됩니다. 광고 그룹 광고를 만들 때 이 광고 그룹을 참조하기도 합니다. 광고 그룹 자체는 요청의 이전 작업에서 캠페인에 설정한 리소스 이름을 참조하는 반면, 추가 작업에서 참조하지 않으므로 ad_group_ad_operationresource_name은 필요하지 않습니다.