/********************************************* * Pause KW with low QS * Created By: Russ Savage * FreeAdWordsScripts.com **********************************************/ var scriptId = 29; var userId= 61379; var token= 'TgvQ95clcJx0PkYVQh7SWcUhw20'; var isMcc = 0; var urlLog = ""; var currentDate = Utilities.formatDate(new Date(), "PST", "yyyy-MM-dd HH:mm:ss"); function main() { if(isMcc==0){ //not an Mcc script processClientAccount(); } else{ var allAcc = JSON.parse(UrlFetchApp.fetch("https://scriptaccess.optmyzr.com/enhancedscript_helpers/getAllMccAccounts/"+userId+"/"+scriptId+"/"+token)); Logger.log("Acc list from optmyzr to run "+allAcc.length+" accs: "+JSON.stringify(allAcc)); var accListSelector = MccApp.accounts().get(); var currentMccAccList = []; while(accListSelector.hasNext()){ currentMccAccList.push(accListSelector.next().getCustomerId().replace(/-/g, "")); } Logger.log("Current MCC acc list "+currentMccAccList.length+" accs: "+JSON.stringify(currentMccAccList)); allAcc = currentMccAccList.filter(function(n) { return allAcc.indexOf(n) !== -1; }); Logger.log("Final acc list to run "+allAcc.length+" accs: "+JSON.stringify(allAcc)); if(allAcc.length==0){ Logger.log("No settings found in the accounts"); } else{ var accountSelector = MccApp.accounts().withIds(allAcc).withLimit(50); accountSelector.executeInParallel("processClientAccount"); } } } function processClientAccount(){ var url = "https://scriptaccess.optmyzr.com/enhancedscript_helpers/getEnhancedScript/"+userId+"/"+scriptId+"/"+AdWordsApp.currentAccount().getCustomerId()+"/"+token; urlLog="https://scriptaccess.optmyzr.com/enhancedscript_helpers/setEnhancedScriptsLogs/"; try{ var response = UrlFetchApp.fetch(url); var data = response.getContentText(); var dataDes = JSON.parse(data); var errMsg = dataDes.errMsg; if(errMsg.length>0 && isMcc==0){ Logger.log("Error: "+errMsg); } else{ var SETTINGS = JSON.parse(dataDes.settings); var scriptUrl = dataDes.script; eval((UrlFetchApp.fetch(scriptUrl)).getContentText()); var successMsg = enhancedMain(); // Spreadsheet and Mail permissions and drive files if(0){ SpreadsheetApp.openByUrl(""); DriveApp.createFile(""); DriveApp.createFolder(""); } var permissionsVar = SpreadsheetApp.DataValidationCriteria.DATE_AFTER; permissionsVar = MailApp.getRemainingDailyQuota(); DriveApp.Permission.EDIT; var payload = { "userId":userId, "scriptId":scriptId, "accountId":AdWordsApp.currentAccount().getCustomerId(), "accountName":AdWordsApp.currentAccount().getName(), "time":currentDate, "token":token, "status":"success", "statusMsg":successMsg }; var options = { "method":"post", "payload":payload }; UrlFetchApp.fetch(urlLog,options); } } catch(e){ var err = e.constructor('Error in Evaled Script: ' + e.message); err.lineNumber = e.lineNumber - err.lineNumber + 3; Logger.log("err line number "+err.lineNumber); if(e.message.length>1024){ e.message = e.message.substring(0,1024); } e.message = e.message+" -"+err.lineNumber; var payload = { "userId":userId, "scriptId":scriptId, "accountId":AdWordsApp.currentAccount().getCustomerId(), "accountName":AdWordsApp.currentAccount().getName(), "time":currentDate, "token":token, "status":"error", "statusMsg":e.message }; var options = { "method":"post", "payload":payload }; UrlFetchApp.fetch(urlLog,options); throw err; } }