Muter des ressources

L'API Google Ads propose plusieurs façons de modifier les ressources en fonction de votre cas d'utilisation :

  • Les services de ressources effectuent des mutations : chaque ressource mutable dispose d'un service dédié qui exécute les opérations pour ce type de ressource spécifique. Par exemple, la ressource Campaign utilise le point de terminaison CampaignService.MutateCampaigns pour créer, modifier ou supprimer des campagnes.
  • Mutations groupées : le point de terminaison GoogleAdsService.Mutate encapsule une séquence d'opérations de mutation sur plusieurs types de ressources (et, dans la version 23 et ultérieures, les opérations d'action compatibles telles que la réservation ou la création de devis pour des campagnes) dans une seule requête synchrone.
  • Jobs par lots asynchrones : pour les mutations à grande échelle ou les charges de travail de longue durée, BatchJobService exécute les opérations de manière asynchrone sans risquer de provoquer des délais d'expiration des requêtes synchrones. Contrairement à GoogleAdsService.Mutate, BatchJobService s'exécute toujours avec une sémantique d'échec partiel et ne prend pas en charge le mode validate_only ni les opérations d'action (book_campaigns_operation, quote_campaigns_operation). Étant donné que l'échec partiel est toujours actif, BatchJobService rejette les opérations de ressources dont les services sous-jacents ne prennent pas en charge l'échec partiel (comme CustomerOperation, CampaignConversionGoalOperation, ConversionGoalCampaignConfigOperation, CustomConversionGoalOperation et CustomerConversionGoalOperation) avec MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE.

Avantages des mutations groupées

L'utilisation de GoogleAdsService.Mutate présente les avantages suivants (consultez les bonnes pratiques concernant les mutations pour obtenir des conseils sur l'implémentation) :

  • Actions groupées sur différents services de ressources : alors que les appels de service de ressources individuels n'acceptent que les opérations pour un seul type de ressource, GoogleAdsService.Mutate vous permet de modifier plusieurs types de ressources en un seul appel.
  • Noms de ressources temporaires : vous pouvez attribuer des ID entiers négatifs (tels que customers/CUSTOMER_ID/campaigns/-1) aux entités parent nouvellement créées et faire référence à ces ID temporaires dans les opérations enfants de la même requête.

Grâce à ces fonctionnalités, vous pouvez utiliser GoogleAdsService.Mutate pour créer une hiérarchie de campagne entière de manière atomique afin que toutes les opérations réussissent ou échouent ensemble, ou définir partial_failure sur true pour valider les opérations valides de manière indépendante.