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 mudanças 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 especificada de 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 a partir de uma campanha de base 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 para dispositivos móveis na 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 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 atualizações na campanha de base, você propaga as mudanças pela campanha de rascunho.

Uma campanha de 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í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 a política.

Executar o rascunho

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

  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 visualizado 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, aplique-as:

    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 vai 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 também é criado a partir de uma campanha base. Você cria um experiment com um ExperimentBuilder. Isso vai criar automaticamente um experimento com dois "braços" 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 todos os seguintes itens no criador:

withCampaign
A campanha em que você quer que o experimento se baseie.
withTrafficSplitPercent
Quanto do tráfego vai para o grupo de controle. 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 por um único ID. Veja mais informações em ExperimentSelector.withIds().

Provisionar a campanha experimental

Assim como uma draft, uma 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");

É possível fazer mudanças no nome, na data de início e 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 que você conclua o experimento 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 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 e, assim como nos rascunhos, 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 que um novo orçamento seja definido.

      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 básicas

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 de 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().

Os novos métodos Campaign.draftCampaigns() e Campaign.experimentCampaigns() permitem 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().

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 na fase de visualização, mas sejam bem-sucedidos após a execução. Por exemplo, após a criação de um rascunho:

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

Isso vai falhar no modo de visualização, porque não é possível 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 continue com um script com falha na visualização somente se você acreditar que a causa é devido a limitações no modo de visualização.