Utiliser des ID temporaires

BatchJobService offre une fonctionnalité efficace : il est compatible avec l'utilisation d'ID temporaires.

Pour ce faire, spécifiez le paramètre resource_name de la nouvelle ressource afin d'utiliser un ID à exclure. Par exemple, si vous créez une campagne et spécifiez customers/<YOUR_CUSTOMER_ID>/campaigns/-1 comme nom de ressource, lorsque vous créerez le groupe d'annonces lors d'une opération ultérieure, vous pourrez le référencer avec 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 points à garder à l'esprit 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 ci-dessous, l'opération de groupe d'annonces doit apparaître après l'opération de campagne dans la liste des opérations.
  • Les noms de ressources temporaires ne sont pas mémorisés dans les tâches ou 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'ils proviennent de types de ressources différents. Si un ID temporaire est réutilisé dans une seule tâche ou requête de mutation, une erreur est renvoyée.

Exemple

Pour donner un exemple plus concret de la situation mentionnée ci-dessus, 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 semblable à celle-ci:

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"
        ...
      }
    }
  },
]

Notez qu'un nouvel ID temporaire est utilisé pour le groupe d'annonces, car nous ne pouvons pas réutiliser l'élément -1 que nous avons utilisé pour la campagne. Nous faisons également référence à ce groupe d'annonces lors de la création de l'annonce correspondante. 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 précédente opération de la demande. En revanche, resource_name dans ad_group_ad_operation n'est pas nécessaire, car aucune autre opération ne le référence.