Bozze ed esperimenti di campagna

Gli script Google Ads supportano le bozze e gli esperimenti delle campagne, utilizzati per preparare e verificare le modifiche alle campagne sulla rete di ricerca e sulla Rete Display.

Una bozza è un clone di una campagna esistente che non pubblica i propri annunci, ma può essere utilizzata per organizzare le modifiche senza modificare la campagna originale. Le modifiche messe in scena possono quindi essere applicate alla campagna di base.

Un esperimento esegue una campagna personalizzabile in parallelo alla campagna originale e mostra gli annunci a una percentuale specificata di traffico. In base ai risultati dell'esperimento, puoi applicare le modifiche alla campagna originale, ramificare l'esperimento a una campagna indipendente o abbandonare la campagna di prova.

Questa guida spiega il flusso di lavoro di base per lavorare con bozze ed esperimenti in uno script.

Bozze

Crea una bozza

Viene creata una bozza a partire da una campagna di base esistente utilizzando un elemento DraftBuilder e un nome univoco. La campagna di base deve essere una campagna sulla rete di ricerca, una campagna sulla rete di ricerca con espansione alla Rete Display o una campagna sulla Rete Display (escluse le campagne per app mobile per la Rete Display) e non deve avere un budget condiviso.

const campaign = AdsApp.campaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get()
    .next();

const draftBuilder = campaign.newDraftBuilder()
    .withName("INSERT_DRAFT_NAME_HERE")
    .build();

const draft = draftBuilder.getResult();

DraftBuilder.build() restituisce un DraftOperation, un'operazione tipica negli script. Per ulteriori dettagli, consulta la nostra guida ai costruttori.

Un draft è identificato in modo univoco dalla combinazione dell'ID campagna di base e dell'ID bozza. Per saperne di più, visita la pagina DraftSelector.withIds().

Esegui il provisioning della bozza di campagna

Un oggetto draft mette in relazione una campagna di base e una campagna di bozza. Per eseguire l'implementazione graduale degli aggiornamenti alla campagna di base, devi propagare le modifiche tramite la bozza della campagna.

Una campagna in bozza, come qualsiasi altra campagna, dispone di metodi per recuperare e impostare i vari attributi, come criteri, gruppi di annunci, offerte e annunci.

const draftCampaign = draft.getDraftCampaign();

draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");

Tieni presente che i controlli delle norme relative agli annunci vengono eseguiti per una bozza di campagna come per la campagna di base. Non potrai eseguire un esperimento da una bozza di campagna con annunci che violano le norme.

Esegui la bozza

Dopo aver eseguito il provisioning della bozza di campagna, puoi procedere in uno dei seguenti modi:

  1. Se non vuoi applicare le modifiche, puoi semplicemente rimuovere la bozza. La rimozione della bozza è irreversibile, ma la bozza può comunque essere visualizzata in Tutte le bozze nella scheda Bozze dell'interfaccia utente di Google Ads.

    draft.remove();
    
  2. Se decidi di mantenere le modifiche apportate nella bozza, puoi procedere e applicarle:

    draft.startApplying();
    

    Questo metodo avvia il processo di applicazione degli aggiornamenti alla campagna di base, pertanto la bozza avrà lo stato Applicazione in corso… nell'interfaccia utente di Google Ads. Tuttavia, il metodo non ti invia una notifica al termine del processo.

  3. Se vuoi prima testare le modifiche, puoi utilizzare la bozza per creare un esperimento.

Esperimenti

Crea un esperimento

Un experiment è simile a una bozza e viene creato anche da una campagna di base. Creazione di un experiment con un ExperimentBuilder. Verrà creato automaticamente un esperimento con due "gruppi" che rappresentano le diverse parti dell'esperimento. Un gruppo (chiamato gruppo di controllo) contiene la campagna di base, mentre l'altro (il gruppo sperimentale) conterrà una nuova bozza di campagna che personalizzerai in base ai passaggi relativi alla bozza sopra riportata prima di pianificare l'esperimento.

Quando crei un esperimento, assicurati di impostare quanto segue nel generatore:

withCampaign
La campagna su cui vuoi che si basi l'esperimento.
withTrafficSplitPercent
La percentuale di traffico che verrà indirizzata al gruppo sperimentale. Per il 50%, specifica 50.
withStartDate e withEndDate
Specifica la data di inizio e la data di fine della campagna. Specifica il formato YYYYMMdd.
withType
SEARCH_CUSTOM o DISPLAY_CUSTOM, a seconda della rete che utilizzi.
withSuffix
Specifica un suffisso che verrà aggiunto al nome della campagna di trattamento al momento della sua creazione.
withGoals
Specifica gli obiettivi di questo esperimento. Questo è solo un promemoria per ricordarti gli obiettivi che avevi quando l'hai creato. Un buon valore predefinito è [{metric: 'CLICKS', direction: 'INCREASE'}].

La percentuale di suddivisione del traffico determina la porzione di traffico a cui verranno mostrati gli annunci della campagna sperimentale anziché della campagna di base. Per questo motivo, ogni campagna base può avere un solo esperimento in esecuzione alla volta.

const experiment = AdsApp.newExperimentBuilder()
  .withCampaign(campaign)
  .withTrafficSplitPercent(50)
  .withStartDate("20230501")
  .withEndDate("20230601")
  .withType("SEARCH_CUSTOM")
  .withSuffix("experiment")
  .withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
  .build();

// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();

A differenza delle bozze, gli esperimenti sono identificati in modo univoco da un singolo ID. Per maggiori informazioni, consulta ExperimentSelector.withIds().

Esegui il provisioning della campagna sperimentale

Come un draft, un experiment non è una campagna. ma collega la campagna di base, la bozza e la campagna dell'esperimento. I campi di una campagna sperimentale sono modificabili, con le seguenti eccezioni:

  • nome
  • stato
  • data di inizio
  • data di fine
  • budget
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

È possibile apportare modifiche al nome, alla data di inizio e alla data di fine dell'esperimento, che verranno propagate alla campagna sperimentale.

// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");

// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);

Per avviare l'esperimento, chiama experiment.startScheduling(). Si tratta di un processo asincrono, in quanto deve copiare tutte le impostazioni dalla campagna di base.

Al termine dell'esperimento

Al termine dell'esperimento, hai a disposizione alcune opzioni. Ti consigliamo di lasciare che l'esperimento venga completato in modo che smetta di pubblicare annunci, ma puoi comunque interagire con esso. Un esperimento terminato può comunque essere rimosso, applicato o incrementato e le statistiche sul rendimento della relativa campagna sono ancora accessibili.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Se i risultati dell'esperimento non ti soddisfano, puoi rimuoverlo, eliminando anche la campagna sperimentale. La rimozione dell'esperimento è irreversibile, ma può comunque essere visualizzato in Tutti gli esperimenti nella scheda degli esperimenti dell'interfaccia utente di Google Ads.

    experiment.remove();
    
  • Se i risultati dell'esperimento ti soddisfano, hai due opzioni:

    1. Puoi iniziare ad applicare le modifiche e, come per le bozze, non riceverai una notifica al termine del processo.

      experiment.startApplying();
      
    2. Puoi impostare la campagna sperimentale come campagna indipendente e completamente operativa, senza influire sulla campagna di base. Questo procedura, nota come graduazione, viene completata immediatamente e richiede l'impostazione di un nuovo budget.

      const budget = AdsApp.budgets()
          .withCondition(`campaign_budget.id = ${budgetId}`)
          .get()
          .next();
      
      experiment.graduate(budget);
      

      La nuova campagna non può più condividere un budget con la campagna di base, il che richiede un nuovo budget. Le campagne con struttura a più livelli sono come le campagne normali in quanto tutti i loro campi sono modificabili e possono essere utilizzate come campagna di base per altre bozze ed esperimenti.

Altre considerazioni

Entità di base

L'introduzione di bozze ed esperimenti negli script Google Ads introduce anche la nozione di entità di base. Le bozze e le campagne sperimentali e i gruppi di annunci al loro interno sono distinti dalle campagne base originali, motivo per cui Campaign e AdGroup ora hanno metodi per accedere alla campagna base e al gruppo di annunci: getBaseCampaign() e getBaseAdGroup().

Questi metodi restituiscono l'entità chiamante se chiamata da una campagna o un gruppo di annunci di base. Anche le entità all'interno di campagne e gruppi di annunci, come parole chiave e annunci, hanno ricevuto questi metodi.

Per tenere traccia delle entità di base, alle campagne sono stati assegnati i metodi isBaseCampaign(), isDraftCampaign(), e isExperimentCampaign().

I nuovi metodi Campaign.draftCampaigns() e Campaign.experimentCampaigns() ti consentono di accedere a tutte le bozze e le campagne sperimentali che hanno la campagna di chiamata come campagna di base. Tuttavia, non puoi selezionare le campagne in bozza con CampaignSelector.withCondition(); utilizza invece AdsApp.drafts().

Gestione degli errori

I seguenti metodi che prevedono l'esecuzione di bozze ed esperimenti procedono quando lo script viene eseguito, ma potrebbero non riuscire in modo asincrono:

  • Draft.startApplying()
  • Experiment.startApplying()
  • Experiment.startScheduling()

Devi attendere per verificare se queste operazioni sono riuscite. La UI di Google Ads mostra gli stati Applicato o Attivo dopo i completamenti riusciti di startApplying() e startScheduling(), rispettivamente. Inoltre, indica Impossibile applicare o Impossibile creare in caso di errore, consentendoti di fare clic per visualizzare gli errori.

È anche possibile che alcuni metodi non vadano a buon fine nella fase di anteprima, ma riescano dopo l'esecuzione; ad esempio, dopo aver creato una bozza:

const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.

L'operazione non andrà a buon fine in modalità di anteprima perché non può accedere immediatamente alla bozza della campagna.

Analogamente, la creazione di un esperimento e il tentativo immediato di recuperare la campagna di bozza non andrà a buon fine in modalità di anteprima, poiché la bozza non viene effettivamente creata.

Per questo motivo, controlla i log sotto l'elenco di script dopo averli eseguiti e procedi con uno script che non è riuscito in anteprima solo se ritieni che la causa sia dovuta a limitazioni della modalità di anteprima.