Rascunhos e experiências de campanha

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:

  1. 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();
    
  2. 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.

  3. 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 e withEndDate
Especifica as datas de início e término da campanha. Especifique no formato YYYYMMdd.
withType
SEARCH_CUSTOM ou DISPLAY_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:

    1. 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();
      
    2. 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.