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_operation의 resource_name은 필요하지 않습니다.