임시 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는 더 이상 참조하는 작업이 없으므로 필요하지 않습니다.