Um recurso importante do BatchJobService
é que ele
aceita o uso de IDs temporários.
Para fazer isso, especifique o resource_name
do novo recurso para usar um
ID negativo. Por exemplo, se você criar uma campanha e especificar o nome do recurso
como customers/<YOUR_CUSTOMER_ID>/campaigns/-1
, ao criar o
grupo de anúncios em uma operação posterior, poderá fazer referência a ele usando esse nome de recurso.
O -1
especificado será substituído automaticamente pelo ID real da campanha
criada.
Confira alguns pontos importantes ao usar nomes de recursos temporários:
- Um nome de recurso temporário só pode ser usado depois de ser definido em um recurso. No exemplo abaixo, a operação do grupo de anúncios precisa aparecer após a operação da campanha na lista de operações.
- Os nomes de recursos temporários não são lembrados em jobs ou solicitações de mutação. Para fazer referência a um recurso criado em um job ou solicitação de mutação anterior, use o nome real do recurso.
- Para um único job ou solicitação de mutação, cada nome de recurso temporário precisa usar um número negativo exclusivo, mesmo que sejam de tipos de recursos diferentes. Se um ID temporário for reutilizado em um único job ou solicitação de mutação, um erro será retornado.
Exemplo
Para dar um exemplo mais concreto da situação mencionada acima, suponha que você queira adicionar uma campanha, um grupo de anúncios e um anúncio em uma única solicitação de API. Você cria uma estrutura para sua solicitação semelhante a esta:
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"
...
}
}
},
]
Um novo ID temporário é usado para o grupo de anúncios, já que não é possível reutilizar
o -1
usado para a campanha. Também fazemos referência a esse grupo de anúncios ao
criar um anúncio de grupo de anúncios. O grupo de anúncios em si faz referência ao nome do recurso que
estabelecíamos para a campanha em uma operação anterior na solicitação, enquanto
resource_name
em ad_group_ad_operation
não é necessário, já que nenhuma outra
operação faz referência a ele.