Bozze ed esperimenti di campagna

Gli script Google Ads supportano esperimenti ed bozze di campagna, utilizzati per preparare e testare le modifiche da apportare alle campagne sulla rete di ricerca e sulla Rete Display.

Una bozza è un clone di una campagna esistente che non pubblicherà i propri annunci, ma può essere utilizzata per integrare le modifiche senza modificare la campagna originale. Le modifiche in fasi possono poi essere applicate alla campagna di base.

Un esperimento pubblica una campagna personalizzabile parallelamente alla campagna originale e mostra gli annunci a una determinata percentuale di traffico. In base ai risultati dell'esperimento, puoi applicare le modifiche alla campagna originale, associare l'esperimento a una campagna indipendente oppure abbandonare la campagna sperimentale.

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

Bozze

Creare una bozza

Viene creata una bozza da una campagna di base esistente utilizzando un elemento 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 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 DraftOperation, un'operazione tipica degli script. Consulta la nostra guida ai costruttori per ulteriori dettagli.

Un draft viene identificato in modo univoco dalla combinazione del suo ID campagna di base e 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 bozza di campagna. Per via degli aggiornamenti alla campagna di base, devi propagare le modifiche alla bozza di campagna.

Una bozza di campagna, come qualsiasi altra campagna, prevede 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 così come per la campagna di base. Non puoi eseguire un esperimento da una bozza di campagna contenente 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 potrà 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, quindi lo stato della bozza sarà Applicazione in corso... nell'interfaccia utente di Google Ads. Tuttavia, il metodo non ti invierà una notifica al termine del processo.

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

Esperimenti

Creare un esperimento

Un experiment è simile a una bozza e viene creato a partire da una campagna di base. Puoi creare un experiment con un ExperimentBuilder. In questo modo, verrà creato automaticamente un esperimento con due "braccia" 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 potrai personalizzare in base ai passaggi della bozza sopra riportata prima di pianificare l'esperimento.

Quando crei un esperimento, assicurati di impostare tutti i seguenti valori nello strumento di creazione:

withCampaign
La campagna su cui vuoi basare l'esperimento.
withTrafficSplitPercent
La quantità di traffico che verrà destinata al gruppo sperimentale. Per 50%, specifica 50.
withStartDate e withEndDate
Specifica le date di inizio e di fine della campagna. Specifica in formato YYYYMMdd.
withType
SEARCH_CUSTOM o DISPLAY_CUSTOM, a seconda della rete in uso.
withSuffix
Specifica un suffisso che verrà aggiunto al nome della campagna sperimentale quando viene creata.
withGoals
Specifica gli obiettivi di questo esperimento. Questo è solo un promemoria per ricordarti quali erano i tuoi obiettivi al momento della creazione. Un buon valore predefinito è [{metric: 'CLICKS', direction: 'INCREASE'}].

La percentuale di suddivisione del traffico determina in quale porzione di traffico verranno mostrati gli annunci della campagna sperimentale anziché 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ù, visita la pagina ExperimentSelector.withIds().

Eseguire il provisioning della campagna sperimentale

Analogamente a un draft, un experiment stesso non è una campagna. ma piuttosto la campagna di base, la bozza e la campagna sperimentale. I campi di una campagna sperimentale sono modificabili, con le seguenti eccezioni:

  • nome
  • status
  • 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, alle date di inizio e di fine dell'esperimento, dopodiché verranno applicate 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 della campagna di base.

Al termine dell'esperimento

Al termine dell'esperimento, hai a disposizione alcune opzioni. Ti consigliamo di attendere il completamento completo dell'esperimento, in modo che la pubblicazione degli annunci venga interrotta ma tu possa continuare a interagire con l'esperimento. Un esperimento Terminato può comunque essere rimosso, applicato o aggiornato e le statistiche sul rendimento della relativa campagna sono ancora accessibili.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Se non ti soddisfa l'esperimento in base alle statistiche, puoi rimuovere l'esperimento e rimuovere anche la campagna sperimentale. La rimozione dell'esperimento è irreversibile, ma può comunque essere visualizzata 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, proprio come per le bozze, non riceverai notifiche al termine del processo.

      experiment.startApplying();
      
    2. Puoi impostare la campagna sperimentale come campagna indipendente e completamente operativa, senza influire sulla campagna di base. Questa procedura, nota come gradazione, 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 classificate sono come le normali campagne, in quanto tutti i loro campi sono modificabili e possono fungere da campagna di base per più 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 delle campagne e i rispettivi gruppi di annunci sono diversi dalle campagne di base originali, motivo per cui Campaign e AdGroup ora dispongono di metodi per accedere alla campagna di base e al gruppo di annunci: getBaseCampaign() e getBaseAdGroup().

Questi metodi restituiscono l'entità chiamante se richiamata da una campagna di base o da un gruppo di annunci. Anche le entità all'interno delle campagne e dei gruppi di annunci, come parole chiave e annunci, sono stati dotati di questi metodi.

Per aiutarti a monitorare le entità di base, alle campagne sono stati disponibili i metodi isBaseCampaign(), isDraftCampaign() e isExperimentCampaign().

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

Gestione degli errori

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

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

Attendi per verificare se queste operazioni hanno esito positivo. L'interfaccia utente di Google Ads mostra gli stati Applicato o Attivo dopo il completamento di startApplying() e startScheduling(), rispettivamente. Inoltre, indica Impossibile richiedere l'applicazione 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 abbiano effetto dopo l'esecuzione, ad esempio dopo aver creato una bozza:

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

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

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

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