Hello,
We want to apply tracking templates at the account level for all accounts in our MCC (if possible) using Scripts, and at the campaign level if it's not possible to set them at the account level.
Below is the script I'm using to set them at the campaign level.
Earlier I tried including
account.urls().setTrackingTemplate(trackingTemplate);
and received an error about urls() not being available in object account
Is it possible to setTrackingTemplate for the accounts? Thanks in advance for your help!
function main() {
var timeZone = AdWordsApp.currentAccount().getTimeZone();
var spreadsheet = SpreadsheetApp.create("Tracking Template added to Campaigns - " + Utilities.formatDate(new Date(), timeZone, 'yyyyMMdd'));
var sheet = spreadsheet.getActiveSheet();
sheet.appendRow(['Account Name', 'Account ID', 'Campaign Name', 'Campaign ID']);
var trackingTemplate = "{lpurl}?campaign={campaignid}&content={creative}&keyword={keyword}&device={device}"
var accountIterator = MccApp.accounts()
.orderBy("Clicks ASC")
.withCondition("Clicks > 0")
.forDateRange("THIS_MONTH")
.withCondition("Name DOES_NOT_CONTAIN_IGNORE_CASE 'test'").get();
while (accountIterator.hasNext()) {
var account = accountIterator.next();
MccApp.select(account);
var cmpgn = AdsApp.campaigns()
.withCondition("AdvertisingChannelType = SEARCH")
.get();
while (cmpgn.hasNext()){
var a = cmpgn.next();
a.urls().setTrackingTemplate(trackingTemplate);
sheet.appendRow([account.getName(), account.getCustomerId(), a.getName(), a.getId()]);
}
}
Logger.log('Tracking Template added to: ' + spreadsheet.getUrl());
MailApp.sendEmail(RECIPIENT_EMAIL, 'Campaigns with tracking template applied.', spreadsheet.getUrl());
}