So I put together the following script that you can use to automatically create a label-based countdown for elements that you want to ignore in your scripts. Each time you add new elements to your account, you can apply a label to it using the format LABEL_PREFIX_
In the scripts that you want to ignore new elements, add the following function to the bottom of the script (before the last curly brace):
function _build_label_list() {
//Build a list of labels to exclude in your .withCondition()
var LABEL_PREFIX = 'days_left_';
var label_iter = AdWordsApp.labels().withCondition("Name STARTS_WITH '"+LABEL_PREFIX+"'").get();
var label_array = [];
while(label_iter.hasNext()) { label_array.push(label_iter.next().getName()); }
return "'"+label_array.join("','")+"'"
}
And then add the following
.withCondition("LabelNames CONTAINS_NONE ["+_build_label_list()+"]") to any iterators you have in your other scripts. Good luck, and if you have any questions, feel free to ask.
Thanks,
Russ
//-----------------------------------
// Label Countdown
// Created By: Russ Savage
// FreeAdWordsScripts.com
//-----------------------------------
function main() {
var LABEL_PREFIX = "days_left_"; // you can change this if you want
// First lets build a list of labels to work with
var label_iter = AdWordsApp.labels().withCondition("Name STARTS_WITH '"+LABEL_PREFIX+"'").get();
var labels_array = [];
while(label_iter.hasNext()) {
labels_array.push(label_iter.next().getName());
}
if(labels_array.length > 0) {
var labels_str = "['" + labels_array.join("','") + "']";
// grab all the keywords with the labels we want to countdown
var kw_iter = AdWordsApp.keywords().withCondition("LabelNames CONTAINS_ANY "+labels_str).get();
while(kw_iter.hasNext()) {
var kw = kw_iter.next();
var l_iter = kw.labels().withCondition("Name STARTS_WITH '"+LABEL_PREFIX+"'").get();
var label = l_iter.next(); // lazy here because we know this keyword has a label
var days_left = parseInt(label.getName().substr(LABEL_PREFIX.length)) - 1;
kw.removeLabel(label.getName());
if(days_left != 0) {
var new_label_name = LABEL_PREFIX+days_left;
// Create a new label if it doesn't exist
if(labels_array.indexOf(new_label_name) == -1) {
AdWordsApp.createLabel(new_label_name);
labels_array.push(new_label_name);
}
kw.applyLabel(new_label_name);
}
}
}
}