Snippets

Frederick Vallaeys AdWords Emergency Button

Updated by Frederick Vallaeys

File snippet.js Modified

  • Ignore whitespace
  • Hide word diff
 function main() {
   
-  var urlToPause = "www.optmyzr.com"; // put in the domain that's broken
+  var urlToPause = "mydomain.com"; // put in the domain that's broken
   var labelText = "Emergency Button Pushed"; // Put in the text for the AdWords label to attach 
-  var mode = "resume"; // Put in either pause or resume (resume is used to find items paused by this script and re-emnable them)
+  var mode = "pause"; // Put in either pause or resume (resume is used to find items paused by this script and re-emnable them)
   
   var adGroupsToPause = new Array();
   var adGroupsToResume = new Array();
Updated by Frederick Vallaeys

File snippet.js Modified

  • Ignore whitespace
  • Hide word diff
   
   var urlToPause = "www.optmyzr.com"; // put in the domain that's broken
   var labelText = "Emergency Button Pushed"; // Put in the text for the AdWords label to attach 
-  var mode = "pause"; // Put in either pause or resume (resume is used to find items paused by this script and re-emnable them)
+  var mode = "resume"; // Put in either pause or resume (resume is used to find items paused by this script and re-emnable them)
   
   var adGroupsToPause = new Array();
   var adGroupsToResume = new Array();
       'FROM   FINAL_URL_REPORT ' +
       'WHERE  AdGroupStatus = ENABLED ' + 
       'AND EffectiveFinalUrl CONTAINS_IGNORE_CASE "' + urlToPause + '" ' +
-      'AND Impressions >= 0 ' +
-      'DURING LAST_30_DAYS');
+      'AND Impressions >= 0 ' );
     
     var rows = report.rows();
     while (rows.hasNext()) {
         Logger.log('Enabled: ' + adGroup.isEnabled());
         adGroup.applyLabel(labelText);
         adGroup.pause();
-        
       }
     }
   }
   
   // RE-ENABLE PAUSED AD GROUPS
   else if(mode.toLowerCase().indexOf("resume") != -1) {
-  
     // GET THE LABEL ID
     var labelIterator = AdWordsApp.labels().withCondition('Name = "' + labelText + '"').get();
-    
     while(labelIterator.hasNext()) {
       var label = labelIterator.next();
       var labelId = label.getId();
-      Logger.log("Label " + labelText + " has ID: " + labelId);
     }
     // GET AD GROUPS THAT USE THE LABEL
     var report = AdWordsApp.report(
-      'SELECT AdGroupName, AdGroupId ' +
+      'SELECT AdGroupName, AdGroupId, Labels ' +
       'FROM   ADGROUP_PERFORMANCE_REPORT ' +
-      'WHERE  LabelIds CONTAINS_ANY [' + labelId + ']');
+      'WHERE  Labels CONTAINS_ANY [' + labelId + '] '
+    );
     
     var rows = report.rows();
     while (rows.hasNext()) {
       var row = rows.next();
       var adGroupName = row['AdGroupName'];
       var adGroupId = row['AdGroupId'];
-      Logger.log(adGroupName + " has the label " + labelText);
       if(adGroupsToResume.indexOf(adGroupId) == -1) {
-        Logger.log(adGroupName + " contains the final URL " + urlToPause);
         adGroupsToResume.push(adGroupId);
       }
     } 
     // RESUME THESE AD GROUPS
-    for(var i = 0; i < adGroupsToResume.length; i++) {
-      var adGroupId = adGroupsToResume[i];
-      Logger.log("ad group ID: " + adGroupId);
-      var adGroupIterator = AdWordsApp.adGroups()
-      //.withCondition('Id = "INSERT_CAMPAIGN_NAME_HERE"')
-      .withCondition('Id IN ['+ adGroupId + ']')
-      .get();
-      if (adGroupIterator.hasNext()) {
-        var adGroup = adGroupIterator.next();
-        Logger.log('Ad Group Name: ' + adGroup.getName());
-        Logger.log('Enabled: ' + adGroup.isEnabled());
-        adGroup.removeLabel(labelText);
-        adGroup.enable();
-        
-      }
+    var adGroupIterator = AdWordsApp.adGroups()
+    .withIds(adGroupsToResume)
+    .get();
+    while(adGroupIterator.hasNext()) {
+      var adGroup = adGroupIterator.next();
+      adGroup.removeLabel(labelText);
+      adGroup.enable();
     }
   }
 }
Updated by Frederick Vallaeys

File snippet.js Modified

  • Ignore whitespace
  • Hide word diff
 function main() {
   
-  var urlToPause = "optmyzr.com";
-  var labelText = "Emergency Button Pushed";
-  var mode = "resume"; // Put in either pause or resume
+  var urlToPause = "www.optmyzr.com"; // put in the domain that's broken
+  var labelText = "Emergency Button Pushed"; // Put in the text for the AdWords label to attach 
+  var mode = "pause"; // Put in either pause or resume (resume is used to find items paused by this script and re-emnable them)
   
   var adGroupsToPause = new Array();
   var adGroupsToResume = new Array();
       'SELECT AdGroupName, AdGroupId ' +
       'FROM   FINAL_URL_REPORT ' +
       'WHERE  AdGroupStatus = ENABLED ' + 
-      'AND EffectiveFinalUrl CONTAINS_IGNORE_CASE "' + urlToPause + '"' );
+      'AND EffectiveFinalUrl CONTAINS_IGNORE_CASE "' + urlToPause + '" ' +
+      'AND Impressions >= 0 ' +
+      'DURING LAST_30_DAYS');
     
     var rows = report.rows();
     while (rows.hasNext()) {
       var adGroupId = row['AdGroupId'];
       
       if(adGroupsToPause.indexOf(adGroupId) == -1) {
-        Logger.log(adGroupName + " contains the final URL " + urlToPause);
+        Logger.log(adGroupName + " contains the final URL " + urlToPause + " (" + adGroupId + ")");
         adGroupsToPause.push(adGroupId);
       }
     }
       Logger.log("ad group ID: " + adGroupId);
       var adGroupIterator = AdWordsApp.adGroups()
       //.withCondition('Id = "INSERT_CAMPAIGN_NAME_HERE"')
-      .withCondition('Id = '+ adGroupId)
+      .withCondition('Id IN ['+ adGroupId + ']')
       .get();
       if (adGroupIterator.hasNext()) {
         var adGroup = adGroupIterator.next();
       }
     }
   }
+  
   // RE-ENABLE PAUSED AD GROUPS
   else if(mode.toLowerCase().indexOf("resume") != -1) {
   
     // GET AD GROUPS THAT USE THE LABEL
     var report = AdWordsApp.report(
       'SELECT AdGroupName, AdGroupId ' +
-      'FROM   AD_PERFORMANCE_REPORT ' +
+      'FROM   ADGROUP_PERFORMANCE_REPORT ' +
       'WHERE  LabelIds CONTAINS_ANY [' + labelId + ']');
     
     var rows = report.rows();
       var row = rows.next();
       var adGroupName = row['AdGroupName'];
       var adGroupId = row['AdGroupId'];
-      
+      Logger.log(adGroupName + " has the label " + labelText);
       if(adGroupsToResume.indexOf(adGroupId) == -1) {
         Logger.log(adGroupName + " contains the final URL " + urlToPause);
         adGroupsToResume.push(adGroupId);
       }
     } 
+    // RESUME THESE AD GROUPS
+    for(var i = 0; i < adGroupsToResume.length; i++) {
+      var adGroupId = adGroupsToResume[i];
+      Logger.log("ad group ID: " + adGroupId);
+      var adGroupIterator = AdWordsApp.adGroups()
+      //.withCondition('Id = "INSERT_CAMPAIGN_NAME_HERE"')
+      .withCondition('Id IN ['+ adGroupId + ']')
+      .get();
+      if (adGroupIterator.hasNext()) {
+        var adGroup = adGroupIterator.next();
+        Logger.log('Ad Group Name: ' + adGroup.getName());
+        Logger.log('Enabled: ' + adGroup.isEnabled());
+        adGroup.removeLabel(labelText);
+        adGroup.enable();
+        
+      }
+    }
   }
 }
Created by Frederick Vallaeys

File snippet.js Added

  • Ignore whitespace
  • Hide word diff
+function main() {
+  
+  var urlToPause = "optmyzr.com";
+  var labelText = "Emergency Button Pushed";
+  var mode = "resume"; // Put in either pause or resume
+  
+  var adGroupsToPause = new Array();
+  var adGroupsToResume = new Array();
+  
+  if(mode.toLowerCase().indexOf("pause") != -1) {
+    // Create the Label
+    AdWordsApp.createLabel(labelText, "paused by script due to broken site", "red");
+    
+    // GET AD GROUPS THAT USE THE URL
+    var report = AdWordsApp.report(
+      'SELECT AdGroupName, AdGroupId ' +
+      'FROM   FINAL_URL_REPORT ' +
+      'WHERE  AdGroupStatus = ENABLED ' + 
+      'AND EffectiveFinalUrl CONTAINS_IGNORE_CASE "' + urlToPause + '"' );
+    
+    var rows = report.rows();
+    while (rows.hasNext()) {
+      var row = rows.next();
+      var adGroupName = row['AdGroupName'];
+      var adGroupId = row['AdGroupId'];
+      
+      if(adGroupsToPause.indexOf(adGroupId) == -1) {
+        Logger.log(adGroupName + " contains the final URL " + urlToPause);
+        adGroupsToPause.push(adGroupId);
+      }
+    }
+    
+    
+    
+    // PAUSE THESE AD GROUPS
+    for(var i = 0; i < adGroupsToPause.length; i++) {
+      var adGroupId = adGroupsToPause[i];
+      Logger.log("ad group ID: " + adGroupId);
+      var adGroupIterator = AdWordsApp.adGroups()
+      //.withCondition('Id = "INSERT_CAMPAIGN_NAME_HERE"')
+      .withCondition('Id = '+ adGroupId)
+      .get();
+      if (adGroupIterator.hasNext()) {
+        var adGroup = adGroupIterator.next();
+        Logger.log('Ad Group Name: ' + adGroup.getName());
+        Logger.log('Enabled: ' + adGroup.isEnabled());
+        adGroup.applyLabel(labelText);
+        adGroup.pause();
+        
+      }
+    }
+  }
+  // RE-ENABLE PAUSED AD GROUPS
+  else if(mode.toLowerCase().indexOf("resume") != -1) {
+  
+    // GET THE LABEL ID
+    var labelIterator = AdWordsApp.labels().withCondition('Name = "' + labelText + '"').get();
+    
+    while(labelIterator.hasNext()) {
+      var label = labelIterator.next();
+      var labelId = label.getId();
+      Logger.log("Label " + labelText + " has ID: " + labelId);
+    }
+    // GET AD GROUPS THAT USE THE LABEL
+    var report = AdWordsApp.report(
+      'SELECT AdGroupName, AdGroupId ' +
+      'FROM   AD_PERFORMANCE_REPORT ' +
+      'WHERE  LabelIds CONTAINS_ANY [' + labelId + ']');
+    
+    var rows = report.rows();
+    while (rows.hasNext()) {
+      var row = rows.next();
+      var adGroupName = row['AdGroupName'];
+      var adGroupId = row['AdGroupId'];
+      
+      if(adGroupsToResume.indexOf(adGroupId) == -1) {
+        Logger.log(adGroupName + " contains the final URL " + urlToPause);
+        adGroupsToResume.push(adGroupId);
+      }
+    } 
+  }
+}
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.