I've seen some questions posted around the forums asking about enabling or pausing keywords on a given day. It is pretty simple to do using labels and scripts. The following script will run through your account and look for keywords labeled with "Pause on
Thanks,
Russ
/**************************************************
* Pause or Enable Campaigns, Keywords or Ads on a Given Date
* Version 1.2
* Changelog v1.2 - Added ability to pause Campaigns
* Changelog v1.1 - Added ability to run on Ads
* Created By: Russ Savage
* FreeAdWordsScripts.com
**************************************************/
var ENTITY = 'Keyword'; //or Ad or Campaign
var PAUSE_PREFIX = "Pause on "; //look for labels "Pause on 2013-04-11"
var ENABLE_PREFIX = "Enable on "; //look for labels "Enable on 2013-04-11"
function main() {
var todayStr = Utilities.formatDate(new Date(), AdWordsApp.currentAccount().getTimeZone(), "yyyy-MM-dd");
var pauseStr = PAUSE_PREFIX+todayStr;
var enableStr = ENABLE_PREFIX+todayStr;
Logger.log("Looking for labels: " + [pauseStr,enableStr].join(' and '));
var labelsArray = buildLabelArray(pauseStr,enableStr);
if(labelsArray.length > 0) {
var labelsStr = "['" + labelsArray.join("','") + "']";
var entityIter;
if(ENTITY === 'Keyword') {
entityIter = AdWordsApp.keywords().withCondition("LabelNames CONTAINS_ANY "+labelsStr).get();
} else if(ENTITY === 'Ad') {
entityIter = AdWordsApp.ads().withCondition("LabelNames CONTAINS_ANY "+labelsStr).get();
} else if(ENTITY === 'Campaign') {
entityIter = AdWordsApp.campaigns().withCondition("LabelNames CONTAINS_ANY "+labelsStr).get();
} else {
throw 'Invaid ENTITY type. Should be Campaign, Keyword or Ad. ENTITY:'+ENTITY;
}
while(entityIter.hasNext()) {
var entity = entityIter.next();
pauseEntity(entity, pauseStr);
enableEntity(entity, enableStr);
}
}
}
//Helper function to build a list of labels in the account
function buildLabelArray(pauseStr,enableStr) {
var labelsArray = [];
try {
var labelIter = AdWordsApp.labels().withCondition("Name IN ['"+pauseStr+"','"+enableStr+"']").get();
while(labelIter.hasNext()) {
labelsArray.push(labelIter.next().getName());
}
return labelsArray;
} catch(e) {
Logger.log(e);
}
return [];
}
//Helper function to pause entities
function pauseEntity(entity, pauseStr) {
var labelIter = entity.labels().withCondition("Name = '"+pauseStr+"'").get();
if(labelIter.hasNext()) {
entity.pause();
entity.removeLabel(pauseStr);
}
}
//Helper function to enable entities
function enableEntity(entity, enableStr) {
var labelIter = entity.labels().withCondition("Name = '"+enableStr+"'").get();
if(labelIter.hasNext()) {
entity.enable();
entity.removeLabel(enableStr);
}
}