Bate-papo e Feedback
786 Usuários online agora
786 Usuários online agora
Perguntas, ideias e feedback para a Comunidade: um espaço para assuntos não relacionados diretamente a AdWords, Analytics ou Google Meu Negócio. Para perguntas sobre produto, usar as comunidades
Guie-me
star_border
Responder

[Script] Verificar se as páginas de destino estão online

[ Editado ]
Antigo Principal Colaborador

Pessoal, segue script escrito por mim, que avisa via email, quando algo está errado na url de destino de algum anúncio.

 

 

function main() {

	var CONTA = "Nome da conta"; // pode alterar
	var EMAIL_ALERTAS = "Email para receber o alerta"; // pode alterar
	  
	var mensagem = ""; // não altere

	var AdIterator = AdWordsApp.ads().get();

	while (AdIterator.hasNext()) {

		var ad = AdIterator.next();
		var adGroup = ad.getAdGroup();
		var campaign = ad.getCampaign();
		
		var url = ad.getDestinationUrl();
		
		if (campaign.isEnabled() && ad.isEnabled()) {

			if (isValid(url) && !isOnline(url)) {
			
				mensagem += "URL: " + url + "\n";
				mensagem += "Campanha: " + campaign.getName() + " \n"; 
				mensagem += "Grupo: " + adGroup.getName() + " \n\n\n";
			}
		
		}

	}
  
	if(mensagem) {

		Logger.log(mensagem);
		
		MailApp.sendEmail(EMAIL_ALERTAS, "[Alerta] Algo de errado com a(s) url(s) da conta " + CONTA, mensagem);

	} else {

		Logger.log("Nenhum alerta");

	}

}

function isOnline(url) {

	try {

		var resposta = UrlFetchApp.fetch(url, { muteHttpExceptions: false});

		if (resposta.getResponseCode() == 200) {
			return true;
		}

	} catch (e) {}

	return false;
  
}

function isValid(url) {
  return /^[a-z]+:\/\//i.test(url);
}

Enquanto lê isso, os concorrentes clicam nos anúncios dos seus clientes.
Especialistas responderamverified_user

Muito bom Bruno! Obrigada por compartilhar com o pessoal!

Mestre ✭ ✭ ✭
Muito bom Bruno! Obrigada por compartilhar com o pessoal!
___
Circule-me no Google+
AdWords nas redes sociais: Google+ | Facebook | Twitter

show Bruno! Parabéns

Principal Colaborador
show Bruno! Parabéns

___

"Você não precisa de uma empresa de 100 funcionários para desenvolver aquela ideia" ~Larry Page

Segue versão mais avançada do script: /* Versão: 2....

[ Editado ]
Antigo Principal Colaborador

Segue versão mais avançada do script:

 

 

/* 

Versão: 2.1.2
Data: 18/10/2013

*/

function main() {

	var CONTA = "Nome da conta";
	var EMAIL_ALERTAS = "seu@email.com.br";
	var MARCADOR = "problema";
	var PAUSAR = true;

	var mensagem = "";
	var listaUrlProblema = [];
	var listaUrlNormal = [];

	var campaignIterator = AdWordsApp.campaigns().withCondition("Status = ENABLED").get();

	while (campaignIterator.hasNext()) {

		var campaign = campaignIterator.next();

		var adGroupIterator = campaign.adGroups().withCondition("Status = ENABLED").get();

		while (adGroupIterator.hasNext()) {

			var adGroup = adGroupIterator.next();

			var adIterator = adGroup.ads().withCondition("Status = ENABLED").get();

			var keywordIterator = adGroup.keywords().withCondition("Status = ENABLED").get();

			while (adIterator.hasNext()) {

				var ad = adIterator.next();
				
				var url = ad.getDestinationUrl();
				
				if(MARCADOR && !hasLabel(ad, MARCADOR)) {
				
					if (isValid(url) && !inArray(url, listaUrlNormal)) {
						
						if (inArray(url, listaUrlProblema) || !isOnline(url)) {
					
							listaUrlProblema.push(url);
						  
							if (MARCADOR) {
								createLabel(MARCADOR);
								ad.applyLabel(MARCADOR);
							}
							
							if (PAUSAR) {
								ad.pause();
							}
							
							mensagem += "URL: " + url + "\n";
							mensagem += "Campanha: " + campaign.getName() + " \n"; 
							mensagem += "Grupo: " + adGroup.getName() + " \n";
							
							if (PAUSAR) {
								mensagem += "Ação: anúncio pausado\n";
							}
							
							if (MARCADOR) {
								mensagem += "Marcador: \"" + MARCADOR + "\"\n";
							}
							
							mensagem += "\n\n\n";
						
						} else {
							
							listaUrlNormal.push(url);
						
						}
						
					}
				
				}

			}
			
			while (keywordIterator.hasNext()) {

				var keyword = keywordIterator.next();
				
				var url = keyword.getDestinationUrl();
				
				if(MARCADOR && !hasLabel(keyword, MARCADOR)) {
				
					if (isValid(url) && !inArray(url, listaUrlNormal)) {
						
						if (inArray(url, listaUrlProblema) || !isOnline(url)) {
					
							listaUrlProblema.push(url);
						  
							if (MARCADOR) {
								createLabel(MARCADOR);
								keyword.applyLabel(MARCADOR);
							}
							
							if (PAUSAR) {
								keyword.pause();
							}
							
							mensagem += "URL: " + url + "\n";
							mensagem += "Campanha: " + campaign.getName() + " \n"; 
							mensagem += "Grupo: " + adGroup.getName() + " \n";
							mensagem += "Palavra: " + keyword.getText() + " \n";
							
							if (PAUSAR) {
								mensagem += "Ação: palavra pausado\n";
							}
							
							if (MARCADOR) {
								mensagem += "Marcador: \"" + MARCADOR + "\"\n";
							}
							
							mensagem += "\n\n\n";
						
						} else {
							
							listaUrlNormal.push(url);
						
						}
						
					}
				
				}

			}

		}

	}

	if (mensagem) {

		Logger.log(mensagem);
		
		MailApp.sendEmail(EMAIL_ALERTAS, "[Alerta] Verifique as urls de destino da conta " + CONTA, mensagem);

	} else {

		Logger.log("Nenhum alerta");

	}

}

function isValid(url) {
	return /^[a-z]+:\/\//i.test(url);
}

function isOnline(url) {

	try {

      var resposta = UrlFetchApp.fetch(url, {muteHttpExceptions: false, followRedirects: false});

		if (resposta.getResponseCode() == 200) {
			return true;
		}

	} catch (e) {}

	return false;

}

function createLabel(name) {

	var labelIterator = AdWordsApp.labels().withCondition("Name = " +name).get();

	if (!labelIterator.hasNext()) {
		AdWordsApp.createLabel(name);
	}

}

function inArray(needle, haystack) {

    var length = haystack.length;
	
    for(var i = 0; i < length; i++) {
        if(haystack[i] == needle) return true;
    }
	
    return false;
	
}

function hasLabel(el, label) {
 return el.labels().withCondition("Name = '" + label + "'").get().hasNext();
}

Enquanto lê isso, os concorrentes clicam nos anúncios dos seus clientes.

Ele faz exatamente o que? Como faço a instalação? Desculp...

[ Editado ]
Calouro ✭ ✭ ✭

Ele faz exatamente o que? Como faço a instalação? 

Caio, acesse esse link para saber como instalar: https://...

Antigo Principal Colaborador
Caio, acesse esse link para saber como instalar: https://www.pt.adwords-community.com/t5/Artigos-de-Usuários/Introdução-ao-Google-Adwords-Script/ba-p...

A primeira versão simplesmente envia um email caso encontre um anúncio onde a url de destino não retorne 200.

A segunda versão pausa o anúncio ou palavra-chave e adiciona um marcador.

Enquanto lê isso, os concorrentes clicam nos anúncios dos seus clientes.

Muito Obrigado Bruno, Parabéns! Tu pretende implementar,...

[ Editado ]
Calouro ✭ ✭ ✭

Muito Obrigado Bruno, Parabéns! Tu pretende implementar, no mesmo script, anúncio reprovado devido erros no texto ? Teria como?

Sensacional !! Obrigado Bruno !!

Estrela em Ascensão
Sensacional !! Obrigado Bruno !!
_ _ _ _ _
Att Ricardo Fernandes


Re: Segue versão mais avançada do script: /* Versão: 2....

Estudante ✭
Obrigado! Sensacional!