Pra quem já está investindo no Google Ads, uma das configurações que mais incomodam é o chamado superfornecimento. Superfornecimento nada mais é do que a “liberdade” que o Google Ads tem de gastar o valor do orçamento acima do que foi configurado em uma campanha. Até outubro de 2017, o valor máximo que o Google Ads poderia gastar era de 20% acima do definido. Então, era possível configurar o orçamento levando em conta este detalhe. A partir desta data, algumas coisas mudaram. E deixaram (e ainda deixam) muita gente confusa. O Google Ads passou a “poder gastar” até 200% do nosso orçamento. Se marcamos o nosso orçamento diário em 10 reais, o Google pode usar até 20 reais em um dia. Segundo o Google, essa configuração é para balancear o tráfego. Se um dia gasta acima do configurado, em dias com pouco movimento gastará menos e assim ele consegue balancear. Mas calma lá. Nem tudo é tão ruim assim. Vamos listar algumas regras pra este cenário, segundo o próprio Google:

  1. No final do mês, o orçamento que poderá ser usado é de no máximo 30,4 vezes o orçamento configurado. Por exemplo, em uma campanha com orçamento de 10 reais, o valor máximo gasto no final do mês será de 30,4 x 10 = 304 reais.
  2. Nas campanhas de conversão, o Google pode gastar até mais de 200%. Nesses casos, o valor acima dos 200% retornará como crédito e pode ser verificado na área de pagamentos. Por exemplo, se nossa campanha está com orçamento diário de 10 reais, todo o valor acima de 20 reais gasto em um dia será devolvido.

Porque não gostamos do superfornecimento?

Pra nós que gerenciamos o orçamento dos clientes, essa mudança no superfornecimento do Google Ads não trouxe nenhum benefício e explicamos abaixo o porque:

  1. Falta de liberdade. Não existe a opção de aceitar ou não esse superfornecimento. Ou seja, o Google é quem gerencia isso, do jeito que ele acha melhor e precisamos somente aceitar e ver o orçamento ser gasto.
  2. Quem disse que haverá um dia com tráfego menor pra haver o balanceamento? Se não houver, em um dia com tráfego normal o gasto vai ser baixo pra que haja esse equilíbrio.
  3. Caso uma campanha não rode o mês todo não existe o cálculo de 30,4 vezes o orçamento diário e, caso haja superfornecimento nesse período, pagaremos o valor integral. O que dificulta em campanhas sazonais ou promoções.
  4. Pelos testes que fizemos com nossos clientes, o aumento do fornecimento não aumentou o número de conversões na mesma medida. Em nenhum cliente tivemos uma melhora nesse cenário. Ou seja, o que temos é somente o aumento de impressão e cliques, mas não uma melhora ou acompanhamento da qualidade dos clientes que clicam.

Como não gostamos nem um pouco dessa mudança, adaptamos o script que pausa as campanhas quando atingirem uma % do valor gasto acima do planejado e envia um e-mail avisando. Esse script roda de hora em hora verificando os gastos, por isso, pode gastar um pouco mais do que o esperado. E, quando virar o dia, no momento que rodar novamente, o orçamento vai ter zerado e as campanhas voltam a rodar. Com isso temos um pouco mais de controle sobre os gastos. Segue um passo a passo de como configurar o script e por último o script para usar.

Como configurar o script de superfornecimento do Google Ads

1 – Na interface do Google Ads, clique no ícone da chave inglesa no canto superior direito

2 – Vá para a área de Scripts 3 – Clique no botão “+” para criar um novo script

4 – Dê um novo nome ao script. No nosso caso o nome ficou “Superfornecimento”

5 – Apague o código que aparece na caixa do script e cole o código que disponibilizamos no final deste post

6 – Salve o script e clique no botão Visualizar.

7 – Clique agora no botão Autorizar para que possamos gerenciar as campanhas e enviar e-mail através deste script.

8 – Autorize a execução do script

9 – Feche o script e na tela de scripts, coloque para rodar de hora em hora Está pronto. A partir de agora, de hora em hora este script será rodado e, caso o orçamento de uma campanha esteja maior do que a % configurada, sua campanha será pausada, voltando a ficar ativa novamente no dia seguinte.

 
/******************************************
* Versão 1.0 
* Adaptado por: Agência AdExperts (adexperts.com.br)
* Adaptado de: http://www.freeadwordsscripts.com/2017/10/limit-adwords-overdelivery-to-any.html
*
* Instruções:
* Alterar as variáveis 'valorSuperfornecimento', 'from', e 'to' para 
******************************************/
function main() {
 /*
 * Alterar as seguintes variáveis
 */
 var valorSuperfornecimento = 0.2; // Coloque a % como decimal. 20% fica 0.2, por exemplo
 var from = 'emailorigem@seudiminio.com.br';
 var to = 'emaildestino@seudiminio.com.br';
 var pausou = 0;
 var voltou = 0;

 /*
 * Não alterar a partir daqui
 */
 var labelName = "Superfornecimento";
 var emailHeader = [];
 var emailFooter = [];
 var emailBody = [];
  
 emailHeader.push('<html>',
                 '<head></head>',
                 '<body>');

 emailFooter.push('</body>',
                 '</html>');

 //Se não existe a label, cria!
 var labelSelector = AdWordsApp.labels()
    .withCondition("Name CONTAINS "+labelName)

 var labelIterator = labelSelector.get();
 if (labelIterator.totalNumEntities() < 1)
 {
    AdWordsApp.createLabel(labelName, "Pausado por Superfornecimento");
 }

//pausa as campanhas com overdelivery
 var campaigns = AdWordsApp.campaigns()
  .withCondition("Status = ENABLED")
  .withCondition("Cost > 0")
  .forDateRange("TODAY");
   
 var campaignIterator = campaigns.get();
   
 while (campaignIterator.hasNext()) {
   var campaign = campaignIterator.next();
   var campaignName = campaign.getName();
   var budgetAmount = campaign.getBudget().getAmount();
   var costToday = campaign.getStatsFor("TODAY").getCost();
    
   if(costToday > budgetAmount * (1 + valorSuperfornecimento)) {
     Logger.log(campaignName + " gastou " + costToday + ", que é mais do que o permitido.");
     emailBody.push(campaignName + " gastou " + costToday + ", que é mais do que o permitido.");
     campaign.applyLabel(labelName);
     campaign.pause();
     pausou = 1;
   }
   else
   {
     Logger.log(campaignName + " gastou " + costToday);
   }
 }
           
 if (pausou == 1)
 	enviarEmail(from, to, '['+AdWordsApp.currentAccount().getName()+'] Campanha(s) pausada(s) por superfornecimento', emailHeader, emailBody, emailFooter);
  
//habilita campanhas com label e sem overdelivery
 var campaigns = AdWordsApp.campaigns()
  .withCondition("LabelNames CONTAINS_ANY ['"+labelName+"']");
   
 var campaignIterator = campaigns.get();
   
 while (campaignIterator.hasNext()) {
	var campaign = campaignIterator.next();
	var campaignName = campaign.getName();
	var budgetAmount = campaign.getBudget().getAmount();
	var costToday = campaign.getStatsFor("TODAY").getCost();
    
	if(costToday < budgetAmount * (1 + valorSuperfornecimento))
	{
      Logger.log(campaignName + " voltou a rodar.");
      emailBody.push(campaignName + " voltou a rodar.");
      campaign.removeLabel(labelName);
      campaign.enable();
      voltou = 1;
    }
 }
     
 if (voltou == 1)
 	enviarEmail(from, to, '['+AdWordsApp.currentAccount().getName()+'] Retorno da(s) campanha(s) pausada(s) por superfornecimento', emailHeader, emailBody, emailFooter);
}

// Função para envio do e-mail
function enviarEmail(from, to, subject, header, body, footer)
{
  MailApp.sendEmail({
      to: to,
      name: 'Adwords Script',
      subject: subject,
      htmlBody: header.join('\n') + body.join('\n') + footer.join('\n')
  });
}
Share This