Rascunhos e experiências de campanha

Os scripts do Google Ads oferecem suporte a rascunhos e experimentos de campanha, que são usados para preparar e testar mudanças nas campanhas das redes de pesquisa e Display.

Um rascunho é um clone de uma campanha atual que não veicula os próprios anúncios, mas pode ser usado para preparar alterações sem modificar a campanha original. As mudanças em etapas podem ser aplicadas à campanha de base.

Um experimento veicula uma campanha personalizável em paralelo à campanha original e mostra anúncios para uma porcentagem específica 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 é criado a partir de uma campanha de base atual usando um DraftBuilder e fornecendo um nome exclusivo. A campanha de base precisa ser de pesquisa, da rede de pesquisa com expansão para a Rede de Display ou de display (exceto campanha para apps para dispositivos móveis para a 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 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 base e uma campanha de rascunho. Para preparar as atualizações na campanha de base, você propaga as alterações pela campanha de rascunho.

Uma campanha de rascunho, como qualquer outra campanha, 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íticas de anúncios são feitas para uma campanha de rascunho da mesma forma que para a campanha base. Não é possível realizar um experimento em uma campanha de rascunho que tenha anúncios que violam as políticas.

Executar o rascunho

Depois de provisionar a campanha de rascunho, você poderá fazer o seguinte:

  1. Se você não quiser usar as mudanças, basta remover o rascunho. A remoção é irreversível, mas ainda será possível vê-lo em Todos os rascunhos na guia "Rascunhos" da interface do Google Ads.

    draft.remove();
    
  2. Se você decidir manter as alterações feitas no rascunho, poderá prosseguir e aplicá-las:

    draft.startApplying();
    

    Esse método inicia o processo de aplicação das atualizações na campanha base, de modo que o rascunho terá o status Aplicando... na interface do Google Ads. No entanto, o método não notificará você quando o processo for concluído.

  3. Se você quiser testar suas mudanças primeiro, use o rascunho para criar um experimento.

Experimentos

Criar um experimento

Um experiment é semelhante a um rascunho e é criado com base em uma campanha de base. Você cria um experiment com um ExperimentBuilder. Isso cria automaticamente um experimento com dois "grupos" que representam as diferentes partes do experimento. Um grupo (chamado de grupo de controle) vai conter a campanha base, e o outro (chamado de grupo de tratamento) vai conter 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 o seguinte no criador:

withCampaign
A campanha que você quer usar como base do experimento.
withTrafficSplitPercent
Quanto do tráfego vai para o grupo experimental. Para 50%, especifique 50.
withStartDate e withEndDate
Especifica a data 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 desse experimento. Isso é apenas um lembrete de quais eram suas metas ao criar o projeto. 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 esse motivo, cada campanha de base pode ter apenas um experimento ativo 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 de forma exclusiva com um único código. Veja mais informações em ExperimentSelector.withIds().

Provisionar a campanha experimental

Assim como uma draft, uma experiment em si não é uma campanha. Em vez disso, ele relaciona a campanha base, o rascunho e a campanha experimental. Os campos de uma campanha experimental 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");

É possível fazer mudanças no nome, na data de início e na data de término do experimento. Depois disso, elas vão ser 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, porque precisa copiar todas as configurações da campanha de base.

Depois que o experimento terminar

Ao final do experimento, você tem algumas opções. Recomendamos deixar o experimento terminar completamente para interromper a veiculação de anúncios, mas você ainda pode interagir com ele. Um experimento Concluído ainda pode ser removido, aplicado ou graduado, e as estatísticas de performance da campanha ainda estão 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 visualizado 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. Assim como nos rascunhos, você não vai receber notificações 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 base. Esse processo, conhecido como graduaçã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 base, o que exige um novo orçamento. As campanhas graduais são iguais às campanhas normais, porque todos os campos são modificáveis e elas podem servir como uma campanha de base para mais rascunhos e experimentos.

Outras considerações

Entidades base

A introdução de rascunhos e experimentos nos scripts do Google Ads também introduz 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 base. As entidades em campanhas e grupos de anúncios, como palavras-chave e anúncios, também receberam esses métodos.

Para ajudar a acompanhar as entidades de base, as campanhas receberam os métodos isBaseCampaign(), isDraftCampaign() e isExperimentCampaign().

Com os novos métodos Campaign.draftCampaigns() e Campaign.experimentCampaigns(), você pode acessar todas as campanhas de rascunho e experimental que têm a campanha de chamada como campanha base. No entanto, não é possível selecionar campanhas de rascunho com CampaignSelector.withCondition(). Em vez disso, use AdsApp.drafts().

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. E indica Não foi possível aplicar ou Não foi possível criar em caso de falha, permitindo que você clique para ver os erros.

Também é possível que alguns métodos falhem no estágio de visualização, mas sejam bem-sucedidos depois de executados. Por exemplo, após a criação de um rascunho:

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

Isso falhará no modo de visualização, porque não poderá acessar a campanha de rascunho imediatamente.

Da mesma forma, a criação de um experimento e a tentativa imediata de buscar a campanha de rascunho vão falhar no modo de visualização, já que o rascunho não é realmente criado.

Por esse motivo, verifique os registros abaixo da lista de scripts depois de executá-los e use um script com falha na visualização somente se você acreditar que a causa se deve a limitações no modo de visualização.