Bozze ed esperimenti di campagna

Gli script Google Ads supportano bozze ed esperimenti di campagna, che vengono utilizzati per preparare e testare 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 preparare le modifiche senza modificare la campagna originale. Le modifiche temporanee possono poi 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, creare una campagna indipendente a partire dall'esperimento o abbandonare la campagna sperimentale.

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

Bozze

Crea una bozza

Una bozza viene creata da una campagna di base esistente utilizzando un DraftBuilder e fornendo un nome univoco. La campagna di base deve essere una campagna sulla rete di ricerca, sulla rete di ricerca con espansione alla Rete Display o sulla Rete Display (esclusa la campagna 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 maggiori dettagli, consulta la nostra guida ai builder.

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

Esegui il provisioning della bozza di campagna

Un oggetto draft mette in relazione una campagna di base e una bozza di campagna. Per eseguire l'aggiornamento alla campagna di base, propaga le modifiche tramite la bozza di campagna.

Una campagna bozza, come qualsiasi altra campagna, ha metodi per ottenere e impostare i suoi vari attributi, come criteri, gruppi di annunci, offerte e annunci.

const draftCampaign = draft.getDraftCampaign();

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

I controlli delle norme pubblicitarie vengono eseguiti per una bozza di campagna proprio come per la campagna di base. Non potrai eseguire un esperimento da una bozza di campagna che contiene annunci che violano le norme.

Esegui la bozza

Dopo aver eseguito il provisioning della bozza di campagna, puoi eseguire una delle seguenti operazioni:

  1. Se non vuoi utilizzare le modifiche, puoi semplicemente rimuovere la bozza. La rimozione della bozza è irreversibile, ma 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 alla 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 invierà una notifica al termine della procedura.

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

Esperimenti

Crea un esperimento

Un experiment è simile a una bozza e viene creato a partire da una campagna di base. Crei un experiment con un ExperimentBuilder. In questo modo, verrà creato automaticamente un esperimento con due "bracci" che rappresentano le diverse parti dell'esperimento. Un gruppo (chiamato gruppo di controllo) conterrà la campagna di base, mentre l'altro (chiamato gruppo sperimentale) conterrà una nuova bozza di campagna che personalizzerai (come indicato nei passaggi per la bozza mostrata in precedenza) prima di pianificare l'esperimento.

Quando crei un esperimento, assicurati di impostare tutti i seguenti elementi nel generatore:

withCampaign
La campagna su cui vuoi basare l'esperimento.
withTrafficSplitPercent
Quale percentuale del traffico verrà assegnata al gruppo sperimentale. Per il 50%, specifica 50.
withStartDate e withEndDate
Specifica la data di inizio e di fine della campagna. Specifica nel 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 sperimentale al momento della creazione.
withGoals
Specifica gli obiettivi di questo esperimento. Questo è solo un promemoria per ricordarti quali erano i tuoi obiettivi quando l'hai creato. Un buon valore predefinito è [{metric: 'CLICKS', direction: 'INCREASE'}].

La percentuale di suddivisione del traffico determina la porzione di traffico in cui verranno mostrati gli annunci della campagna sperimentale anziché quelli della campagna di base. Per questo motivo, ogni campagna di 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 saperne di più, consulta ExperimentSelector.withIds().

Esegui il provisioning della campagna sperimentale

Analogamente a una draft, un experiment non è una campagna. ma mette in relazione la campagna di base, la bozza e la campagna sperimentale. 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");

Le modifiche al nome, alla data di inizio e alla data di fine possono essere apportate all'esperimento, dopo di 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 iniziare l'esperimento, chiama experiment.startScheduling(). Si tratta di un processo asincrono, in quanto devono essere copiate 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 termini completamente in modo che la pubblicazione degli annunci venga interrotta, ma tu possa comunque interagire con l'esperimento. Un esperimento con stato Terminato può comunque essere rimosso, applicato o completato e le statistiche sul rendimento della campagna sono ancora accessibili.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Se non sei soddisfatto dell'esperimento in base alle statistiche, puoi rimuoverlo, il che comporta anche la rimozione della campagna sperimentale. La rimozione dell'esperimento è irreversibile, ma può comunque essere visualizzato in Tutti gli esperimenti nella scheda 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 di prova come campagna indipendente e completamente operativa, senza influire sulla campagna di base. Questo processo, noto come uscita dalla fase di apprendimento, viene completato 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 di cui è stato eseguito l'upgrade sono come le campagne normali, in quanto tutti i loro campi sono modificabili e possono fungere da 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 il concetto di entità di base. Le campagne bozza e di prova e i gruppi di annunci al loro interno sono diversi dalle campagne originali di base, motivo per cui Campaign e AdGroup ora dispongono di metodi per accedere alla campagna e al gruppo di annunci di base: getBaseCampaign() e getBaseAdGroup().

Questi metodi restituiscono l'entità chiamante se vengono chiamati 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, dispongono di 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 di campagna e le campagne sperimentali che hanno la campagna chiamante come campagna di base. Tuttavia, non puoi selezionare le campagne bozza con CampaignSelector.withCondition(); utilizza AdsApp.drafts().

Gestione degli errori

I seguenti metodi che coinvolgono bozze ed esperimenti vengono eseguiti quando viene eseguito lo script, ma potrebbero non riuscire in modo asincrono:

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

Devi attendere per verificare se queste operazioni vanno a buon fine. L'interfaccia utente di Google Ads mostra gli stati Applicato o Attivo dopo il completamento di startApplying() e startScheduling(), rispettivamente. Inoltre, in caso di errore, viene visualizzato il messaggio Impossibile applicare o Impossibile creare, che ti consente di fare clic per visualizzare gli errori.

È anche possibile che alcuni metodi non funzionino nella fase di anteprima, ma funzionino dopo l'esecuzione, ad esempio dopo la creazione di 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 è possibile accedere immediatamente alla campagna bozza.

Allo stesso modo, la creazione di un esperimento e il tentativo immediato di recuperare la relativa bozza della campagna 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 degli script dopo averli eseguiti e procedi con uno script non riuscito in anteprima solo se ritieni che la causa sia dovuta a limitazioni della modalità di anteprima.