L'API Google Ads propose plusieurs façons de modifier des ressources en fonction de votre cas d'utilisation :
- Modifications du service de ressources : chaque ressource modifiable dispose d'un service dédié qui exécute des 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. - Modifications groupées : le point de terminaison
GoogleAdsService.Mutateencapsule une séquence d'opérations de modification sur plusieurs types de ressources (et les opérations d'action compatibles, comme 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 dépasser le délai avant expiration des requêtes synchrones. Contrairement àGoogleAdsService.Mutate,BatchJobServices'exécute toujours selon la sémantique d'échec partiel et n'est pas compatible avec 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 sont pas compatibles avec l'échec partiel (commeCustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationetCustomerConversionGoalOperation) avecMutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE.
Avantages des mutations groupées
L'utilisation de GoogleAdsService.Mutate offre les avantages suivants (consultez les bonnes pratiques concernant les mutations pour obtenir des conseils d'implémentation) :
- Actions groupées sur différents services de ressources : alors que les appels de services 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 d'entiers négatifs (tels que
customers/CUSTOMER_ID/campaigns/-1) aux entités parentes nouvellement créées et référencer 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, de sorte que toutes les opérations réussissent ou échouent ensemble, ou définir partial_failure sur true pour valider les opérations valides indépendamment.