Simpel link-checker til Adwords

Simpelt Adwords script, der checker alle aktive annonceurl’er samt undersidelinks for døde links og sender derefter en mail.

Der laves ingen ændringer – såsom labels – på kontoen.


function main(){
  
  //Indtast din email her!
  var email = "Indsæt mail"
  
  var account_name = AdWordsApp.currentAccount().getName()
  var kontonr = AdWordsApp.currentAccount().getCustomerId()
  
  var deadurls = []
  
  var deadurlscount = 0;

  
  
  //Hent aktive annoncegrupper i aktive kampagner
  
var adGroupSelector = AdWordsApp
     .adGroups()
     .withCondition("CampaignStatus = ENABLED")
     .withCondition("Status = ENABLED")


 var adGroupIterator = adGroupSelector.get();
 while (adGroupIterator.hasNext()) {
   
   var adGroup = adGroupIterator.next()
   	
   //Tag fat i annoncer i aktive annoncegrupper
   
   var adSelector = adGroup.ads()

   var adIterator = adSelector.get();
   
   while (adIterator.hasNext()) {   
     var ad = adIterator.next(); 
     
     //Tag fat i aktive annoncer
     
     var currentstatus = ad.isPaused()
     if (currentstatus != false) { continue }
     
     else {
       
       //Test urler og læg i deadurls array, hvis funktionen fejler
       
     var currenturl = ad.urls().getFinalUrl();
     var annoncetype = ad.getType();
       if (annoncetype == "EXPANDED_DYNAMIC_SEARCH_AD"){continue}
     var aktuelannoncegruppe = ad.getAdGroup().getName();
     var aktuelkampagne = ad.getCampaign().getName();;
       
    
       
       
       var result = testurl(currenturl)
       if (result != undefined) {
         deadurlscount++;
         Logger.log(result);
         Logger.log(deadurlscount)
         deadurls.push("<b>Fejlkode: " + result[0] + "</b><br>" + annoncetype + "<br>Kampagne: '" + aktuelkampagne + "' <br>Annoncegruppe: '" + aktuelannoncegruppe  + "'<br>URL: " + result[1])
                                }}}}
  
  //Tag fat i sitelinks og gå gennem samme proces
  var sl = AdWordsApp.extensions().sitelinks().get();  
  while (sl.hasNext()) {
    var sitelink = sl.next();
    var currentslurl = sitelink.urls().getFinalUrl()
    var slresult = testurl(currentslurl)
    if (slresult != undefined) {
         deadurlscount++;
         Logger.log(slresult);
         Logger.log(deadurlscount)
         deadurls.push("<b>Fejlkode: " + slresult[0] + "</b><br>" + "Sitelink" + "<br>" + slresult[1])
  }
  }
  
 
  
  //Lav tekst-streng ud af array 
  
  var text = "<b>" + account_name + ": " + kontonr + "</b><br><br>Følgende annonce(r) ser ud til at have det <font color='red'>dårligt</font>: <br><br>"
  for (i = 0; i < deadurls.length; i++) { 
   text += deadurls[i] + "<br><br>";
   }

  //Send mail med indholdet
  Logger.log("Antal URL'er i knibe: " + deadurlscount)
  if (deadurlscount > 0) { sendmail(email, deadurlscount + " URL(er) i nød på " + account_name, text + "<br><br><b>Hej, hej! :)</b>") }
}

//Funktion til url-test
function testurl(url){
  try {
  
  response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
  var code = response.getResponseCode();
  if (code != "200.0")  { return [code, url]; }
  if (code == "200.0")  { return }
  }
  
  catch(err){ return ["Udefinerbar fejl", url]; }
  
   }


  //Mailfunktion
function sendmail(email, emne, body){
  MailApp.sendEmail({to: email, subject: emne,  htmlBody: body})
   }