Como usar IDs temporários
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Um recurso avançado 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, suponha que você crie uma campanha e especifique o nome do recurso dela
como customers/<YOUR_CUSTOMER_ID>/campaigns/-1
. Ao criar o grupo de anúncios em uma operação posterior, você pode fazer referência a ele pelo nome do recurso, e 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 definido em um
recurso. No exemplo a seguir, a operação do grupo de anúncios precisa aparecer depois da 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
Suponha que você queira adicionar uma campanha, um grupo de anúncios e um anúncio em uma única solicitação de API. Você criaria uma estrutura para sua solicitação análoga à seguinte:
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 podemos reutilizar o -1
usado na campanha. Também fazemos referência a esse grupo de anúncios ao criar um anúncio
do grupo de anúncios. O grupo de anúncios faz referência ao nome do recurso que estabelecemos 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.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-27 UTC.
[null,null,["Última atualização 2025-08-27 UTC."],[[["\u003cp\u003e\u003ccode\u003eBatchJobService\u003c/code\u003e allows the use of temporary IDs (negative numbers) for new resources within a single job, enabling you to reference them in subsequent operations within the same request.\u003c/p\u003e\n"],["\u003cp\u003eTemporary resource names must be unique within a single job or mutate request and are not remembered across different jobs or requests; use actual resource names for referencing resources created earlier.\u003c/p\u003e\n"],["\u003cp\u003eResources with temporary IDs must be defined before being referenced by other operations within the same request, ensuring the order of operations reflects dependencies.\u003c/p\u003e\n"]]],[],null,["# Using temporary IDs\n\nA powerful feature of [`BatchJobService`](/google-ads/api/reference/rpc/v21/BatchJobService) is that\nit supports the use of temporary IDs.\n\nYou can do this by specifying the new resource's `resource_name` to use a\nnegative ID. For example, suppose you create a campaign and specify its resource name\nas `customers/\u003cYOUR_CUSTOMER_ID\u003e/campaigns/-1`. When you create the\nad group in a later operation, you can then reference it by that resource name\nand the `-1` you specified will be replaced by the actual ID of the created\ncampaign automatically.\n\nHere are some things to keep in mind when using temporary resource names:\n\n- A temporary resource name can only be used after it's been defined in a resource. In the following example, the ad group operation would have to appear after the campaign operation in the list of operations.\n- Temporary resource names are not remembered across jobs or mutate requests. To reference a resource created in a previous job or mutate request, use its actual resource name.\n- For a single job or mutate request, each temporary resource name must use a unique negative number, even if they are from different resource types. If a temporary ID is reused in a single job or mutate request, then an error is returned.\n\n### Example\n\nSuppose you want to add a campaign, an ad group, and an ad in a single API\nrequest. You would create a structure for your request analogous to the\nfollowing: \n\n mutate_operations: [\n {\n campaign_operation: {\n create: {\n resource_name: \"customers/\u003cYOUR_CUSTOMER_ID\u003e/campaigns/-1\",\n ...\n }\n }\n },\n {\n ad_group_operation: {\n create: {\n resource_name: \"customers/\u003cYOUR_CUSTOMER_ID\u003e/adGroups/-2\",\n campaign: \"customers/\u003cYOUR_CUSTOMER_ID\u003e/campaigns/-1\"\n ...\n }\n }\n },\n {\n ad_group_ad_operation: {\n create: {\n ad_group: \"customers/\u003cYOUR_CUSTOMER_ID\u003e/adGroups/-2\"\n ...\n }\n }\n },\n ]\n\nA new temporary ID is used for the ad group, since we can't reuse the `-1` that\nwe used for the campaign. We also reference this ad group when creating an ad\ngroup ad. The ad group itself references the resource name we established for\nthe campaign in an earlier operation in the request, while `resource_name` in\n`ad_group_ad_operation` is not necessary since no further operation is\nreferencing it."]]