Os scripts do Google Ads são compatíveis com rascunhos e experimentos de campanha, que são usados para preparar e testar mudanças nas campanhas das redes de pesquisa e de display.
Um rascunho é um clone de uma campanha existente que não veicula anúncios próprios, mas pode ser usado para preparar mudanças sem modificar a campanha original. As mudanças preparadas podem ser aplicadas à campanha de base.
Um experimento executa uma campanha personalizável em paralelo à campanha original e mostra anúncios para uma porcentagem especificada do tráfego. Com base nos resultados do experimento, você pode aplicar as mudanças à campanha original, ramificar o experimento para uma campanha independente ou abandonar a campanha experimental.
Este guia explica o fluxo de trabalho básico para trabalhar com rascunhos e experimentos em um script.
Rascunhos
Criar um rascunho
Um rascunho é feito de uma campanha de base existente usando um
DraftBuilder
e fornecendo um nome exclusivo. A campanha base precisa ser de pesquisa, da rede de pesquisa com inclusão da Rede de Display ou de display (exceto campanhas para apps móveis da Rede de Display) e não pode ter um orçamento compartilhado.
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()
retorna um
DraftOperation
,
uma operação típica em scripts. Consulte nosso
guia para criadores de conteúdo para mais
detalhes.
Um draft
é identificado de forma exclusiva pela combinação do ID da campanha de base e do ID do rascunho. Consulte
DraftSelector.withIds()
para mais informações.
Provisionar a campanha de rascunho
Um objeto draft
relaciona uma campanha de base e uma campanha de rascunho. Para preparar atualizações
na campanha de base, propague as mudanças pela campanha de rascunho.
Uma campanha rascunho, como qualquer outra, tem métodos para receber e definir vários atributos, como critérios, grupos de anúncios, lances e anúncios.
const draftCampaign = draft.getDraftCampaign();
draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");
As verificações de política de publicidade são realizadas em uma campanha de rascunho da mesma forma que na campanha base. Não é possível realizar um experimento de uma campanha de rascunho que tenha anúncios que violam a política.
Executar o rascunho
Depois de provisionar a campanha de rascunho, faça uma destas ações:
Se você não quiser usar as mudanças, basta remover o rascunho. A remoção do rascunho é irreversível, mas ele ainda pode ser acessado em Todos os rascunhos na guia "Rascunhos" da interface do Google Ads.
draft.remove();
Se você decidir manter as mudanças feitas no rascunho, poderá aplicá-las:
draft.startApplying();
Esse método inicia o processo de aplicação das atualizações à campanha de base. Assim, o rascunho terá o status Aplicando... na interface do Google Ads. No entanto, o método não notifica você quando o processo é concluído.
Se você quiser testar as mudanças primeiro, use o rascunho para criar um experimento.
Experimentos
Criar um experimento
Um experiment
é semelhante a um rascunho e também é criado com base em uma campanha. Você cria um experiment
com um
ExperimentBuilder
.
Isso cria automaticamente um experimento com dois "braços" que representam as diferentes partes dele. Um grupo (chamado de grupo de controle) vai conter a campanha de base, e o outro (chamado de grupo de tratamento) vai ter uma nova campanha de rascunho que você vai personalizar de acordo com as etapas do rascunho acima antes de programar o experimento.
Ao criar um experimento, defina todos os itens a seguir no criador:
withCampaign
- A campanha em que você quer basear o experimento.
withTrafficSplitPercent
- Quanto do tráfego vai para o grupo de tratamento. Para 50%, especifique
50
. withStartDate
ewithEndDate
- Especifica as datas de início e término da campanha. Especifique no formato
YYYYMMdd
. withType
SEARCH_CUSTOM
ouDISPLAY_CUSTOM
, dependendo da rede que você está usando.withSuffix
- Especifica um sufixo que será adicionado ao nome da campanha de tratamento quando ela for criada.
withGoals
- Especifica as metas deste experimento. Isso é apenas um lembrete para você
do que você queria alcançar ao criar o documento. Um bom valor padrão é
[{metric: 'CLICKS', direction: 'INCREASE'}]
.
A porcentagem de divisão de tráfego determina qual parte do tráfego vai mostrar anúncios da campanha experimental em vez da campanha de base. Por isso, cada campanha de base pode ter apenas um experimento em execução por vez.
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();
Ao contrário dos rascunhos, os experimentos são identificados exclusivamente por um único ID. Veja
mais informações em
ExperimentSelector.withIds()
.
Provisionar a campanha experimental
Assim como um draft
, um experiment
não é uma campanha. Em vez disso, ele relaciona a campanha base, o rascunho e a campanha experimental. Os campos de uma campanha de experimento podem ser modificados, com as seguintes exceções:
- nome
- status
- data de início
- data de término
- orçamento
const experimentCampaign = experiment.getExperimentCampaign();
// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");
// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");
As mudanças no nome, na data de início e na data de término podem ser feitas no experimento, e depois serão propagadas para a campanha experimental.
// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");
// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);
Para iniciar o experimento, chame experiment.startScheduling()
. Esse é um processo assíncrono, já que precisa copiar todas as configurações da campanha de base.
Após o término do experimento
Quando o experimento terminar, você terá algumas opções. Recomendamos que você deixe o experimento terminar completamente para que ele pare de veicular anúncios, mas você ainda possa interagir com ele. Um experimento concluído ainda pode ser removido, aplicado ou promovido, e as estatísticas de performance da campanha continuam acessíveis.
experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
Se você não estiver satisfeito com o experimento com base nas estatísticas, remova-o, o que também remove a campanha experimental. A remoção do experimento é irreversível, mas ele ainda pode ser acessado em Todos os experimentos na guia "Experimentos" da interface do Google Ads.
experiment.remove();
Se você estiver satisfeito com os resultados do experimento, terá duas opções:
Você pode começar a aplicar as mudanças e, assim como com os rascunhos, não vai receber uma notificação quando o processo for concluído.
experiment.startApplying();
Você pode estabelecer a campanha experimental como uma campanha independente e totalmente operacional, sem afetar a campanha de base. Esse processo, conhecido como conclusão, é concluído imediatamente e exige a definição de um novo orçamento.
const budget = AdsApp.budgets() .withCondition(`campaign_budget.id = ${budgetId}`) .get() .next(); experiment.graduate(budget);
A nova campanha não pode mais compartilhar um orçamento com a campanha de base, o que exige um novo orçamento. As campanhas graduadas são como as normais, já que todos os campos podem ser modificados e elas podem servir como uma campanha de base para mais rascunhos e experimentos.
Outras considerações
Entidades básicas
A introdução de rascunhos e experimentos nos scripts do Google Ads também apresenta a noção de entidades de base. As campanhas de rascunho e experimentais e os grupos de anúncios nelas são diferentes das campanhas base originais. Por isso, Campaign
e AdGroup
agora têm métodos para acessar a campanha base e o grupo de anúncios: getBaseCampaign()
e getBaseAdGroup()
.
Esses métodos retornam a entidade de chamada se forem chamados por uma campanha ou um grupo de anúncios básicos. As entidades em campanhas e grupos de anúncios, como palavras-chave e anúncios, também recebem esses métodos.
Para ajudar a acompanhar as entidades básicas, as campanhas receberam os métodos
isBaseCampaign()
,
isDraftCampaign()
e
isExperimentCampaign()
.
Com os novos métodos
Campaign.draftCampaigns()
e
Campaign.experimentCampaigns()
é possível acessar todas as campanhas de rascunho e experimentais que têm a
campanha de chamada como base. No entanto, não é possível selecionar campanhas
de rascunho com
CampaignSelector.withCondition()
;
use
AdsApp.drafts()
em vez disso.
Tratamento de erros
Os métodos a seguir que envolvem rascunhos e experimentos são executados quando o script é executado, mas podem falhar de forma assíncrona:
Draft.startApplying()
Experiment.startApplying()
Experiment.startScheduling()
Aguarde para verificar se essas operações foram bem-sucedidas. A interface do Google Ads mostra os status Aplicado ou Ativo após a conclusão bem-sucedida de startApplying()
e startScheduling()
, respectivamente. Além disso, ele indica Não é possível aplicar ou Não é possível criar em caso de falha, permitindo que você clique para ver os erros.
Também é possível que alguns métodos falhem na fase de prévia, mas sejam bem-sucedidos após a execução. Por exemplo, depois de criar um rascunho:
const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.
Isso vai falhar no modo de prévia porque não é possível acessar a campanha de rascunho imediatamente.
Da mesma forma, criar um experimento e tentar buscar imediatamente a campanha de rascunho dele vai falhar no modo de visualização, já que o rascunho não é criado.
Por isso, verifique os registros abaixo da lista de scripts depois de executá-los e continue com um script que falhou na prévia somente se você acreditar que a causa é devido a limitações no modo de prévia.