Utiliser des ID temporaires
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Une fonctionnalité puissante de BatchJobService
est qu'elle permet d'utiliser des ID temporaires.
Pour ce faire, spécifiez le resource_name
de la nouvelle ressource afin d'utiliser un ID négatif. Par exemple, supposons que vous créez une campagne et que vous spécifiez son nom de ressource comme customers/<YOUR_CUSTOMER_ID>/campaigns/-1
. Lorsque vous créerez le groupe d'annonces dans une opération ultérieure, vous pourrez y faire référence par ce nom de ressource. L'-1
que vous avez spécifié sera alors automatiquement remplacé par l'ID réel de la campagne créée.
Voici quelques éléments à retenir lorsque vous utilisez des noms de ressources temporaires :
- Un nom de ressource temporaire ne peut être utilisé qu'après avoir été défini dans une ressource. Dans l'exemple suivant, l'opération du groupe d'annonces doit figurer après l'opération de la campagne dans la liste des opérations.
- Les noms de ressources temporaires ne sont pas conservés d'une tâche ou d'une requête de mutation à l'autre.
Pour référencer une ressource créée dans une requête de mutation ou un job précédent, utilisez son nom de ressource réel.
- Pour une seule requête de tâche ou de mutation, chaque nom de ressource temporaire doit utiliser un nombre négatif unique, même s'ils proviennent de différents types de ressources. Si un ID temporaire est réutilisé dans une même tâche ou requête de mutation, une erreur est renvoyée.
Exemple
Supposons que vous souhaitiez ajouter une campagne, un groupe d'annonces et une annonce dans une seule requête API. Vous devez créer une structure pour votre requête analogue à la suivante :
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"
...
}
}
},
]
Un nouvel ID temporaire est utilisé pour le groupe d'annonces, car nous ne pouvons pas réutiliser le -1
que nous avons utilisé pour la campagne. Nous faisons également référence à ce groupe d'annonces lorsque nous créons une annonce de groupe d'annonces. Le groupe d'annonces lui-même fait référence au nom de ressource que nous avons établi pour la campagne dans une opération précédente de la requête, tandis que resource_name
dans ad_group_ad_operation
n'est pas nécessaire, car aucune autre opération ne le référence.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/27 (UTC).
[null,null,["Dernière mise à jour le 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."]]