임시 ID 사용

BatchJobService의 강력한 기능은 임시 ID 사용을 지원한다는 것입니다.

이렇게 하려면 음수 ID를 사용하도록 새 리소스의 resource_name를 지정하면 됩니다. 예를 들어 캠페인을 만들고 리소스 이름을 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는 추가 작업에서 참조하지 않으므로 필요하지 않습니다.