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 alterações em campanhas das redes de pesquisa e Display.

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

Um experimento executa uma campanha personalizável em paralelo à campanha original e mostra anúncios a uma porcentagem específica do tráfego. Com base nos resultados, você pode aplicar as alterações à 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 com base em uma campanha de base usando um DraftBuilder e fornecendo um nome exclusivo. A campanha de base precisa ser uma campanha de pesquisa, da rede de pesquisa com expansão para a Rede de Display ou de display (exceto campanhas de apps para dispositivos 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 uma DraftOperation, uma operação típica em scripts. Consulte nosso guia sobre criadores para mais detalhes.

Um draft é identificado de forma exclusiva pela combinação do ID da campanha 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 da campanha de base, você propaga as alterações por meio da campanha de rascunho.

Uma campanha de rascunho, assim 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");

Lembre-se de que as verificações da política de anúncios são feitas em uma campanha de rascunho assim como na campanha de base. Não é possível realizar um experimento em uma campanha de rascunho que tem anúncios que violam a política.

Executar o rascunho

Após provisionar a campanha de rascunho, você poderá:

  1. Se não quiser usar as alterações, basta remover o rascunho. A remoção do rascunho é irreversível, mas ainda pode ser visualizada em Todos os rascunhos na guia "Rascunhos" da IU do Google Ads.

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

    draft.startApplying();
    

    Esse método inicia o processo de aplicação das atualizações à campanha de base, de modo que o rascunho tenha o status Aplicando... na interface do Google Ads. No entanto, o método não vai enviar uma notificação quando o processo for concluído.

  3. Se você quiser testar suas alterações primeiro, use o rascunho para criar uma experiência.

Experimentos

Criar um experimento

Uma experiment é semelhante a um rascunho e também é criada com base em uma campanha de base. Crie 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 de 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 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 experimental. 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 do experimento. Este é apenas um lembrete para si mesmo quais eram suas metas ao criá-lo. Um bom valor padrão é [{metric: 'CLICKS', direction: 'INCREASE'}].

A porcentagem de divisão de tráfego determina qual parte do tráfego vai receber 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 de forma exclusiva por um único ID. Consulte ExperimentSelector.withIds() para ver mais informações.

Provisionar a campanha experimental

Assim como uma draft, uma experiment não é uma campanha. Em vez disso, ele relaciona a campanha de base, o rascunho e a campanha experimental. Os campos de uma campanha experimental podem ser modificados, com as seguintes exceções:

  • name
  • status
  • data de início
  • data de término
  • budget
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

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

Após o término do experimento

Ao final do experimento, você tem algumas opções. Recomendamos deixar o experimento completamente concluído para que a veiculação de anúncios seja interrompida, mas que você ainda possa interagir com ele. Um experimento concluído ainda pode ser removido, aplicado ou graduado, e as estatísticas de desempenho da campanha dela ainda podem ser acessadas.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Se você não gostar do experimento com base nas estatísticas, remova o experimento, o que também vai remover a campanha experimental. A remoção do experimento é irreversível, mas ainda pode ser visualizada em Todos os experimentos na guia "Experimentos" da IU do Google Ads.

    experiment.remove();
    
  • Se os resultados do experimento forem satisfatórios, você terá duas opções:

    1. Comece a aplicar as alterações e, assim como nos rascunhos, você não vai receber uma notificação quando o processo for concluído.

      experiment.startApplying();
      
    2. É possível definir a campanha experimental como uma campanha independente e totalmente operacional, sem afetar a campanha de base. Esse processo, conhecido como graduação, é concluído imediatamente e requer 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 campanhas normais: todos os campos são modificáveis e podem ser veiculados como uma campanha 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 apresenta a noção de entidades base. As campanhas de rascunho e experimental e os grupos de anúncios delas são diferentes das campanhas de base originais. É por isso que Campaign e AdGroup agora têm métodos para acessar a campanha de base e o grupo de anúncios: getBaseCampaign() e getBaseAdGroup().

Esses métodos retornam a entidade que faz a chamada se forem chamados por uma campanha ou um grupo de anúncios base. As entidades dentro de campanhas e grupos de anúncios, como palavras-chave e anúncios, também receberam esses métodos.

Para ajudar a acompanhar as entidades 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 experimentais e de rascunho que têm a campanha de chamada como 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 abaixo, que envolvem rascunhos e experimentos, continuam 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 as conclusões de startApplying() e startScheduling(), respectivamente. Ele indica Não foi possível aplicar ou Não foi possível criar após a falha, o que permite clicar para conferir os erros.

Também é possível que alguns métodos falhem na fase de visualização, mas tenham êxito depois de serem executados. Por exemplo, após a criação de um rascunho:

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

Essa ação falhará no modo de visualização, pois não pode acessar a campanha de rascunho imediatamente.

Da mesma forma, criar um experimento e tentar buscar imediatamente a campanha de rascunho vai falhar no modo de visualização, já que o rascunho não foi criado.

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