Utiliser des ID temporaires

Une fonctionnalité puissante de BatchJobService est qu' elle accepte l'utilisation d'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éez le groupe d'annonces lors d'une opération ultérieure, vous pouvez ensuite le référencer par ce nom de ressource. Le -1 que vous avez spécifié sera 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 apparaître après l'opération de la campagne dans la liste des opérations.
  • Les noms de ressources temporaires ne sont pas mémorisés dans les tâches ni dans les requêtes de mutation. Pour référencer une ressource créée dans une tâche ou une requête de mutation précédente, utilisez son nom de ressource réel.
  • Pour une seule tâche ou requête de mutation, chaque nom de ressource temporaire doit utiliser un nombre négatif unique, même s'il provient de différents types de ressources. Si un ID temporaire est réutilisé dans une seule 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 référençons également ce groupe d'annonces lors de la création d'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 lors d'une opération précédente dans 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.