Can Anyone Give me some tips for my Scripts

118 views
Skip to first unread message

B2C OnlineMarketing

unread,
Jan 27, 2015, 4:29:51 AM1/27/15
to adwords...@googlegroups.com
Hi Everyone,
I had writen a script to check keywords which averageCpc are higher than 0.69,Mark the keywords red and set status as 'pause',then send an email to my email box with keywords info,and create a sheet to save the check list.
When I preview my script,It report error in the funciton setSheetData 'Invalid reporting query: INVALID_PREDICATE_VALUE: 0.69. (line 70)' and in the email,The info cann't new line.

Could you please give me some tips,I am new to adwords Script,This is my first Script for practice。

Thanks.


 function main() { 
 var labelName = "High Price Keywords"; 
 var labelDescription = "High Price Keywords AverageCpc More Than $0.69"; 
 var labelColor = "red"; 
 var timerange = "LAST_30_DAYS";
 var eMail = "15818...@139.com";  
 
 var subject = "High Price Keywords Alert"; 


   
  AdWordsApp.createLabel(labelName, labelDescription, labelColor); 
   
 var keywordIter = AdWordsApp.keywords()
 .forDateRange(timerange) 
 .withCondition("AverageCpc > 0.69")
 .withCondition("Clicks > 1")
 .withCondition("Status = ENABLED").get(); 
 
 var keyworkInfo="";
   
 while (keywordIter.hasNext()) { 
      var keyword = keywordIter.next(); 
      var stats = keyword.getStatsFor(timerange); 
      keyword.applyLabel(labelName); 
      keyword.pause();
      keyworkInfo+="Campaign \t Group \t Keywords \t AverageCpc \t Click \t Impression \t Cost";
      keyworkInfo+= keyword.getCampaign().getName()+"\t"+ keyword.getAdGroup().getName()+"\t"+keyword.getText()+"\t"
      +stats.getAverageCpc().toFixed(2)+"\t"+stats.getClicks()+"\t"+stats.getImpressions() +"\t"+stats.getCost();+"<br / >";
  } 

   
if(keyworkInfo!="")
  sendEmail(eMail,subject,keyworkInfo);
  writeToSheet(timerange);
}

function sendEmail(to,subject,message){
var logoUrl =
var logoBlob = UrlFetchApp
        .fetch(logoUrl)
        .getBlob()
        .setName('logoBlob');
MailApp.sendEmail({
    to: to,
    subject: subject,
    htmlBody: "<img src='cid:logo'><br>" +message,
    inlineImages:
      {
        logo: logoBlob
      }
  });
    Logger.log("Send Mail to "+to+"\n"+message); 
}

function writeToSheet(timerange){
  var today = new Date(); 
  today.getDate(); 
  Utilities.formatDate(today, "PST", "yyyy-MM-dd"); 
  var spreadsheet = SpreadsheetApp.create("High Price Keywords Check for " + today); 
  var sheet = spreadsheet.getActiveSheet(); 
  setSheet(sheet);
  setHeadings(sheet);
  setSheetData(sheet,timerange);
}

function setSheetData(sheet,timerange){
  var maxAverageCpc=0.69;
  var report = AdWordsApp.report( 
    "SELECT CampaignName,AdGroupName,AverageCpc,Clicks,Impressions,Cost " + 
    " FROM KEYWORDS_PERFORMANCE_REPORT " + 
    " WHERE " + 
    " AverageCpc >  "+maxAverageCpc + 
    " AND Clicks > 1 " + 
     " AND Status = ENABLED " + 
    
    " DURING "+timerange); 
var rows = report.rows();

while(rows.hasNext()) { 
  var row = rows.next(); 
  writeData(sheet,row); 
}
}

function setSheet(sheet){

    sheet.setColumnWidth(1, 160); // Campaign 
    sheet.setColumnWidth(2, 160); // Ad Group 
    sheet.setColumnWidth(3, 160); // Keywords 
    var cell = sheet.getRange("D:G");// Centers Columns D:G 
    cell.setHorizontalAlignment("center");
    setHeadings(sheet); 
    var cell = sheet.getRange("A:G"); 
    cell.setFontFamily("Lato"); 
    cell.setFontSize("10");
}

 function setHeadings(sheet){ 
    //sheet.getActiveSheet(); 
    var range = sheet.getRange("A1:G1"); 
    range.setFontColor("White"); 
    range.setBackground("#7492af"); 
    sheet.getRange("A4").setValue("Campaign"); 
    sheet.getRange("B4").setValue("Ad Group"); 
    sheet.getRange("C4").setValue("Keywords"); 
    sheet.getRange("D4").setValue("Average Cpc"); 
    sheet.getRange("E4").setValue("Click"); 
    sheet.getRange("F4").setValue("Impression"); 
    sheet.getRange("G4").setValue("Cost"); 
  }

function writeData(sheet,dataRow){
  var campaignName = dataRow['CampaignName']; 
  var adGroupName = dataRow['AdGroupName']; 
   var keywords = dataRow['Keywords']; 
  var averageCpc = dataRow['AverageCpc']; 
  var clicks = dataRow['Clicks']; 
  var impressions = dataRow['Impressions']; 
  var cost = dataRow['Cost']; 
  parseFloat(averageCpc); 
  Math.round(averageCpc); 
  parseFloat(cost); 
  sheet.appendRow([campaignName, adGroupName,keywords, averageCpc, clicks, impressions, cost]);
}

Anash Oommen

unread,
Jan 29, 2015, 2:10:15 AM1/29/15
to adwords...@googlegroups.com
Hi,

AverageCpc should be in micros (1 USD = 1000000 micros). So the right condition would be AverageCpc > 690000.

Cheers,
Anash P. Oommen,
AdWords Scripts Team.
Reply all
Reply to author
Forward
0 new messages