Utiliser des ID temporaires

L'une des principales fonctionnalités de BatchJobService est sa compatibilité avec l'utilisation d'ID temporaires.

Pour ce faire, spécifiez le resource_name de la nouvelle ressource pour utiliser un ID négatif. Par exemple, si vous créez une campagne et spécifiez le nom de sa ressource customers/<YOUR_CUSTOMER_ID>/campaigns/-1, vous pourrez y faire référence par la suite lorsque vous créerez le groupe d'annonces à l'aide de ce nom de ressource. La valeur -1 que vous avez spécifiée sera automatiquement remplacée par l'ID réel de la campagne créée.

Voici quelques points à prendre en compte lors de l'utilisation de 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 devrait 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 mutate. Pour référencer une ressource créée dans une tâche précédente ou une requête mutate, 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 numéro négatif unique, même s'il provient de types de ressources différents. Si un ID temporaire est réutilisé dans une seule tâche ou requête mutate, une erreur est renvoyée.

Exemple

Pour donner un exemple plus concret à 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'-1 que nous avons utilisé pour la campagne. Nous faisons également référence à 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 défini pour la campagne lors d'une opération précédente de la demande, tandis que resource_name dans ad_group_ad_operation n'est pas nécessaire, car aucune autre opération ne le fait référence.