Utiliser des ID temporaires

L'une des fonctionnalités majeures de BatchJobService est qu'elle prend en charge l'utilisation d'identifiants temporaires.

Pour ce faire, spécifiez le paramètre resource_name de la nouvelle ressource afin d'utiliser un à exclure. Par exemple, si vous créez une campagne et spécifiez son nom de ressource en tant que customers/<YOUR_CUSTOMER_ID>/campaigns/-1, puis lorsque vous créez groupe d'annonces lors d'une opération ultérieure, vous pouvez y faire référence à l'aide du nom de ressource et l'-1 que vous avez spécifié sera remplacé par l'ID réel de la campagne créée. automatiquement.

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 un ressource. Dans l'exemple ci-dessous, l'opération pour le 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 ou les demandes de mutation. pour référencer une ressource créée dans une tâche ou une requête de mutation précédente, utilisez la fonction le nom réel de la ressource.
  • Pour une seule tâche ou requête de mutation, chaque nom de ressource temporaire doit utiliser un des nombres négatifs uniques, même s'ils proviennent de types de ressources différents. Si lorsqu'un ID temporaire est réutilisé dans une seule requête de tâche ou de mutation, une erreur est renvoyé.

Exemple

Pour donner un exemple plus concret à la situation mentionnée ci-dessus, supposons que vous vous souhaitez ajouter une campagne, un groupe d'annonces et une annonce dans une même requête API. Toi créerait pour votre requête une structure 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 le réutiliser -1 que nous avons utilisé pour la campagne. Ce groupe d'annonces est également référencé lorsque créer une annonce de groupe d'annonces. Le groupe d'annonces lui-même fait référence au nom de la ressource 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 l'opération s'y réfère.