L'API Google Ads offre diversi modi per modificare le risorse a seconda del caso d'uso:
- Mutazioni del servizio di risorse: ogni risorsa modificabile ha un servizio dedicato che esegue operazioni per quel tipo di risorsa specifico. Ad esempio, la risorsa
Campaignutilizza l'endpointCampaignService.MutateCampaignsper creare, aggiornare o rimuovere le campagne. - Mutazioni collettive: l'endpoint
GoogleAdsService.Mutateaggrega una sequenza di operazioni di mutazione su più tipi di risorse (e operazioni di azione supportate, come la prenotazione o la generazione di preventivi per le campagne) in un'unica richiesta sincrona. - Job batch asincroni: per mutazioni su larga scala o workload a lunga esecuzione,
BatchJobServiceesegue le operazioni in modo asincrono senza rischiare timeout delle richieste sincrone. A differenza diGoogleAdsService.Mutate,BatchJobServiceviene sempre eseguito con la semantica di errore parziale e non supporta la modalitàvalidate_onlyo le operazioni di azione (book_campaigns_operation,quote_campaigns_operation). Poiché l'errore parziale è sempre attivo,BatchJobServicerifiuta le operazioni sulle risorse i cui servizi sottostanti non supportano l'errore parziale (comeCustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationeCustomerConversionGoalOperation) conMutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE.
Vantaggi delle modifiche collettive
L'utilizzo di GoogleAdsService.Mutate offre i seguenti vantaggi
(consulta le best practice per la modifica per indicazioni
sull'implementazione):
- Azioni raggruppate in diversi servizi di risorse: mentre le singole chiamate ai servizi di risorse accettano solo operazioni per un singolo tipo di risorsa,
GoogleAdsService.Mutateti consente di modificare più tipi di risorse in un'unica chiamata. - Nomi delle risorse temporanei: puoi assegnare ID con numeri interi negativi (ad esempio
customers/CUSTOMER_ID/campaigns/-1) alle entità principali appena create e fare riferimento a questi ID temporanei nelle operazioni secondarie all'interno della stessa richiesta.
Con queste funzionalità, puoi utilizzare GoogleAdsService.Mutate per creare un'intera gerarchia di campagne in modo atomico, in modo che tutte le operazioni vengano eseguite o non vengano eseguite insieme, oppure impostare partial_failure su true per eseguire il commit delle operazioni valide in modo indipendente.