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
Campaignutilise le point de terminaisonCampaignService.MutateCampaignspour créer, modifier ou supprimer des campagnes. - Mutations groupées : le point de terminaison
GoogleAdsService.Mutateencapsule 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,
BatchJobServiceexécute les opérations de manière asynchrone sans risquer de provoquer des délais d'expiration des requêtes synchrones. Contrairement àGoogleAdsService.Mutate,BatchJobServices'exécute toujours avec une sémantique d'échec partiel et ne prend pas en charge le modevalidate_onlyni les opérations d'action (book_campaigns_operation,quote_campaigns_operation). Étant donné que l'échec partiel est toujours actif,BatchJobServicerejette les opérations de ressources dont les services sous-jacents ne prennent pas en charge l'échec partiel (commeCustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationetCustomerConversionGoalOperation) avecMutateError.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.Mutatevous 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.