4.4 Gestione delle campagne

Introduzione


È importante dare ai commercianti la possibilità di modificare la loro campagna dopo averla creata. Gli aspetti più critici che dovrebbero essere in grado di modificare sono i seguenti:

  • Budget
  • Stato (in pausa, in abilitazione, in rimozione)
  • Targeting geografico (consigliato ma facoltativo)
  • Qualsiasi altro campo incluso nell'interfaccia di creazione della campagna

Indicazioni per l'UX


Mostrare l'elenco delle campagne nella pagina Panoramica e in una pagina separata nell'ambito dei report sul rendimento delle campagne. Consenti agli utenti di mettere in pausa, eliminare e modificare le campagne.

pmax_campaign

La modifica di una campagna deve consentire al commerciante di modificare gli stessi campi su cui ha fornito input durante la creazione di una campagna. Di seguito è riportato un esempio di come potrebbe essere questo:

edit_pmax

Indicazioni tecniche


Dopo aver creato una campagna Performance Max per la vendita al dettaglio, puoi modificare le seguenti impostazioni:

  • Nome campagna
  • Budget della campagna
  • Campaign status
  • Criteri di targeting della campagna

Puoi trovare una panoramica dettagliata su come modificare le risorse nella Guida per gli sviluppatori. Puoi modificare una risorsa specifica utilizzando l'endpoint di servizio esposto per modificare la risorsa (ad esempio, CampaignService.MutateCampaigns) o apportare modifiche in più risorse diverse utilizzando la funzionalità di modifica collettiva disponibile utilizzando l'endpoint GoogleAdsService.Mutate.

Se possibile, ti consigliamo di apportare modifiche collettive per ridurre il numero di operazioni necessarie per aggiornare una campagna. Alla luce di questo, devi progettare la tua architettura utilizzando l'endpoint GoogleAdsService.Mutate anziché i singoli endpoint delle risorse. Ciò consente inoltre di estendere le funzionalità in futuro.

Gli esempi successivi presuppongono che gli ID pertinenti siano già memorizzati nel database locale.

Nome campagna

Per aggiornare il nome di una campagna, devi modificare il campo Campaign.name.

Non deve contenere caratteri null (punto di codice 0x0), feed di linee NL (punto di codice 0xA) o ritorno a capo (punto di codice 0xD).

Budget della campagna

È considerata una best practice aggiornare un budget esistente invece di sostituirlo con uno nuovo. In questo modo, la campagna spende come previsto e non comporta una pubblicazione eccessiva.

Devi solo aggiornare il valore del budget e non modificare altri campi, aumentando il valore della spesa GIORNALIERO.

Python
budget_resource_name = client.get_service(
        "CampaignBudgetService"
    ).campaign_budget_path(customer_id, budget_id)

mutate_operation = client.get_type("MutateOperation")
campaign_budget = mutate_operation.campaign_budget_operation.update

campaign_budget.resource_name = budget_resource_name

# update the budget amount to the new value

campaign_budget.amount_micros = 50000000

client.copy_from(
    mutate_operation.campaign_budget_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_budget._pb),
)
return mutate_operation

Campaign status

Per aggiornare lo stato (attivato/in pausa/rimuovi) di una campagna, devi modificare il campo Campaign.status e assegnare lo stato pertinente dall'enumerazione CampaignStatus.

Puoi trovare un esempio di modifica dello stato della campagna nel codice campione per update campaign.

Criteri campagna

Quando aggiorni i criteri della campagna, devi solo fornire la possibilità di aggiornare i criteri esposti all'utente. Questa opzione è impostata come minimo per il targeting geografico e potenzialmente per il targeting per lingua. Puoi trovare un esempio di aggiornamento di un criterio della campagna nel codice campione per aggiornare il modificatore di offerta per criterio della campagna.

Per aggiornare i criteri di targeting geografico, aggiorna CampaignCriterion.location in base al valore della nuova costante di targeting geografico.

Python
criterion_rname = client.get_service(
    "CampaignCriterionService"
    ).campaign_criterion_path(
    customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the geo to the update geo targeting

campaign_criterion.location.geo_target_constant = (
   geo_target_constant_service.geo_target_constant_path("1022762")
) # Brooklyn

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation

Per aggiornare i criteri di targeting per lingua, devi aggiornare il valore del valore CampaignCriterion.language con la nuova costante lingua.

Python
campaign_criterion_service = client.get_service("CampaignCriterionService")

criterion_rname = campaign_criterion_service.campaign_criterion_path(
   customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the language to the updated language
# For a list of all language codes, see:
# https://developers.google.com/google-ads/api/data/codes-formats#languages
campaign_criterion.language.language_constant = (
    googleads_service.language_constant_path("1000")
)  # English

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation