L'utilizzo del servizio dedicato di una risorsa è il modo più diretto per creare, aggiornare o rimuovere entità di un singolo tipo di risorsa nell'API Google Ads.
Endpoint di mutazione
Ogni risorsa modificabile ha un tipo di servizio e di operazione corrispondente. Per modificare una risorsa utilizzando il servizio dedicato, compila uno dei seguenti campi dell'operazione e invialo all'endpoint di modifica del servizio:
- Crea (
create): un nuovo oggetto risorsa da creare. - Aggiornamento (
update): l'oggetto risorsa modificato, accompagnato da unupdate_maskche specifica i campi modificati. - Rimuovi (
remove): la stringaresource_namedella risorsa di destinazione da rimuovere.
Ad esempio, per creare un nuovo Campaign, completa i seguenti
passaggi:
- Crea un oggetto
Campaigncon gli attributi che hai scelto. - Assegnalo al campo
createdi unCampaignOperation. - Invia l'operazione in un
MutateCampaignsRequestaCampaignService.MutateCampaigns.
Lo stesso pattern si applica a tutti i servizi specifici per le risorse nell'API Google Ads:
AdGroup: passa unAdGroupOperationaAdGroupService.MutateAdGroups.CampaignCriterion: passa unCampaignCriterionOperationaCampaignCriterionService.MutateCampaignCriteria.
Il seguente payload JSON REST illustra una richiesta a
CampaignService.MutateCampaigns:
{
"customerId": "CUSTOMER_ID",
"operations": [
{
"create": {
"name": "Interplanetary Cruise #1",
"advertisingChannelType": "SEARCH",
"status": "PAUSED",
"manualCpc": {},
"campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
"containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
}
}
],
"partialFailure": false,
"validateOnly": false
}
Operazioni multiple e limitazioni
Poiché il campo operations di una richiesta di modifica viene ripetuto, una singola richiesta può contenere più operazioni (fino a 10.000 operazioni per richiesta) per quel tipo di risorsa. Per impostazione predefinita, tutte le operazioni nella richiesta vengono eseguite in modo atomico
a meno che tu non imposti partial_failure su true.
Tuttavia, i servizi di risorse individuali presentano due importanti limitazioni:
- Tipo di risorsa singolo:una richiesta a un servizio di risorse può modificare solo le risorse gestite da quel servizio specifico.
- Nessun ID risorsa temporaneo o riferimento incrociato:le operazioni in una chiamata mutate specifica per la risorsa vengono elaborate in modo indipendente. Non puoi assegnare
ID negativi temporanei (ad esempio
customers/CUSTOMER_ID/campaigns/-1) o fare riferimento a entità appena create da altre operazioni nella stessa richiesta.
Se devi modificare più tipi di risorse in una singola richiesta o fare riferimento a nomi di risorse temporanei in operazioni dipendenti, utilizza GoogleAdsService.Mutate.
Differenze specifiche della versione
Tieni presente le seguenti differenze tra le versioni dell'API Google Ads supportate quando modifiche alle risorse:
- Servizi di obiettivi del ciclo di vita:nella versione 25 e successive, tutti gli obiettivi del ciclo di vita, inclusi
Acquisizione di nuovi clienti (
new_customer_acquisition_goal_settings), Fidelizzazione dei clienti (retention_goal_settings) e Fidelizzazione (loyalty_retention_goal_settings), vengono modificati tramiteGoalService.MutateGoalseCampaignGoalConfigService.MutateCampaignGoalConfigsutilizzando un campooperationsripetuto standard. Questo sostituisceCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalseCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals(che vengono utilizzati per l'acquisizione di nuovi clienti nella versione 24 e precedenti e accettano un singolo campooperation). - Campi di data e ora della campagna:quando crei o aggiorni un
Campaign, la versione 23 e successive utilizzanostart_date_timeeend_date_time(yyyy-MM-dd HH:mm:ss), sostituendo i campi solo datastart_dateeend_dateutilizzati nella versione 22. - Modificabilità dell'attestazione dei contenuti sintetici:sebbene
Asset.synthetic_content_infoeAd.synthetic_content_infovengano visualizzati nello schema per la versione 22 e successive, i campisynthetic_content_info.advertiser_attestation.statusesynthetic_content_info.advertiser_attestation.sourcesono modificabili solo nella versione 23 e successive (system_attestationè sempreOUTPUT_ONLY). Il tentativo di modificare i sottocampiadvertiser_attestationnella versione 22 restituisce un errore di campo immutabile ("The field attempted to be mutated is immutable"o"Field cannot be set").