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:
- 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.
- 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:
- 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.
- 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.
- 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.
- 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')
});
}