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