Gli script Google Ads supportano le bozze e gli esperimenti delle campagne, 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 applicare 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, suddividere l'esperimento in una campagna indipendente 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 base esistente utilizzando un
DraftBuilder
e fornendo 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 in Scripts. 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 ulteriori informazioni, consulta
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 della campagna, puoi eseguire una delle seguenti operazioni:
Se non vuoi utilizzare 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();
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.
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) conterrà la campagna di base, mentre l'altro (chiamato gruppo sperimentale) conterrà una nuova bozza di campagna che potrai personalizzare seguendo i passaggi descritti sopra per la bozza prima di pianificare l'esperimento.
Quando crei un esperimento, assicurati di impostare quanto segue nel generatore:
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
. withStartDate
ewithEndDate
- Specifica la data di inizio e la data di fine della campagna. Specifica il formato
YYYYMMdd
. withType
SEARCH_CUSTOM
oDISPLAY_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 quali erano i tuoi obiettivi durante la creazione. 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 ulteriori 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 poi 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 Completato può comunque essere rimosso, applicato o sottoposto a graduazione e le statistiche sul rendimento della 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. L'eliminazione 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:
Puoi iniziare ad applicare le modifiche e, come per le bozze, non riceverai una notifica al termine del processo.
experiment.startApplying();
Puoi impostare la campagna di prova 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, pertanto è necessario 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 AdsApp.drafts()
.
Gestione degli errori
I seguenti metodi che riguardano 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 sono riuscite. L'interfaccia utente di Google Ads mostra gli stati Applicato o Attivo dopo il completamento corretto 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 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 con errore in anteprima solo se ritieni che la causa sia dovuta a limitazioni della modalità di anteprima.