Gli script Google Ads supportano le bozze e gli esperimenti sulle campagne, che vengono utilizzati per preparare e testare le modifiche alle campagne sulla rete di ricerca e display.
Questa guida spiega il workflow di base per lavorare con bozze ed esperimenti in uno script.
Bozze
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 preparate possono essere applicate alla campagna di base.
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 una campagna display (esclusa la campagna per app mobile sulla 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.
Una draft è identificata in modo univoco dalla combinazione dell'ID campagna di base e dell'ID della bozza. Per ulteriori informazioni, consulta DraftSelector.withIds().
Provisioning della campagna bozza
Un oggetto draft mette in relazione una campagna di base e una campagna bozza. Per preparare gli aggiornamenti alla campagna di base, devi propagare le modifiche tramite la campagna bozza.
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 relative agli annunci vengono eseguiti per una bozza di campagna come per la campagna di base. Non potrai eseguire un esperimento da una campagna bozza che contiene annunci che violano le norme.
Esegui la bozza
Dopo aver eseguito il provisioning della campagna bozza, puoi eseguire una delle seguenti operazioni:
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();Se decidi di mantenere le modifiche apportate alla bozza, puoi procedere e applicarle:
draft.startApplying();Questo metodo avvia la procedura di applicazione degli aggiornamenti alla campagna di base, quindi 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.
Se vuoi testare prima le modifiche, puoi utilizzare la bozza per creare un esperimento.
Esperimenti
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 in una campagna indipendente o abbandonare la campagna sperimentale.
Crea un esperimento
Un experiment è simile a una bozza e viene creato anche da una campagna di base.
Puoi creare un experiment con un ExperimentBuilder. In questo modo, verrà creato automaticamente un esperimento con due "gruppi" 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 campagna bozza che personalizzerai (seguendo i passaggi per la bozza mostrati in precedenza) prima di pianificare l'esperimento.
Quando crei un esperimento, assicurati di impostare tutti i seguenti elementi nel builder:
withCampaign- La campagna su cui vuoi basare l'esperimento.
withTrafficSplitPercent- La percentuale di traffico che verrà indirizzata al gruppo sperimentale. Per il 50%, specifica
50. withStartDateewithEndDate- Specifica la data di inizio e la data di fine della campagna. Specifica nel formato
YYYYMMdd. withType- `
SEARCH_CUSTOMSEARCH_CUSTOM` o `DISPLAY_CUSTOMDISPLAY_CUSTOM`, a seconda della rete che utilizzi. 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 degli obiettivi che avevi quando l'hai creato. Un buon valore predefinito è
[{metric: 'CLICKS', direction: 'INCREASE'}].
La percentuale di suddivisione del traffico determina la parte di traffico a cui 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 ulteriori informazioni, consulta
ExperimentSelector.withIds().
Provisioning della campagna sperimentale
Analogamente a una draft, un experiment non è una campagna. Piuttosto, 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");
È possibile apportare modifiche al nome, alla data di inizio e alla data di fine dell'esperimento, dopodiché 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 una procedura asincrona, 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 termini completamente, in modo che smetta di pubblicare annunci, ma tu possa comunque interagire con esso. Un esperimento Terminato può comunque essere rimosso, applicato o promosso 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, rimuovendo 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 sei soddisfatto dei risultati dell'esperimento, hai due opzioni:
Puoi iniziare ad applicare le modifiche e, come per le bozze, non riceverai una notifica al termine della procedura.
experiment.startApplying();Puoi stabilire la campagna sperimentale come campagna indipendente e completamente operativa, senza influire sulla campagna di base. Questa procedura, nota come promozione, 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 promosse 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 la nozione di entità di base. Le campagne bozza e sperimentali e i gruppi di annunci al loro interno sono distinti dalle campagne di base originali, motivo per cui
Campaign e AdGroup ora hanno 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, hanno ricevuto questi metodi.
Per tenere traccia delle entità di base, le campagne hanno ricevuto i
isBaseCampaign(), isDraftCampaign() e
isExperimentCampaign() metodi.
I nuovi metodi Campaign.draftCampaigns() e
Campaign.experimentCampaigns() consentono di accedere a tutte le campagne bozza e
sperimentali che hanno la campagna chiamante come campagna di base.
Tuttavia, non puoi selezionare le campagne bozza con
CampaignSelector.withCondition(); utilizza AdsApp.drafts() invece.
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()
Dovresti attendere per verificare se queste operazioni hanno esito positivo. L'interfaccia utente di Google Ads mostra gli stati Applicato o Attivo dopo il completamento riuscito di startApplying() e startScheduling(), rispettivamente. In caso di errore, indica Impossibile applicare o Impossibile creare, consentendoti di fare clic per visualizzare gli errori.
È anche possibile che alcuni metodi non riescano nella fase di anteprima, ma abbiano esito positivo dopo l'esecuzione, ad esempio dopo la creazione di una bozza:
const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.
Questa operazione non riuscirà in modalità di anteprima perché non può accedere immediatamente alla campagna bozza.
Allo stesso modo, la creazione di un esperimento e il tentativo immediato di recuperare la relativa campagna bozza non riusciranno 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.