Campaign performance report not showing values

435 views
Skip to first unread message

Lucas Ertola

unread,
Dec 9, 2016, 8:56:28 AM12/9/16
to AdWords Scripts Forum

Hi
Any idea why this code that is taken from the Code Snippets or Example's section is not showing me any report on the Log section when I run the script?
CODE:


function main() {
function runReport() {

 
var report = AdWordsApp.report(
     
'SELECT CampaignName, Clicks, Impressions, Cost ' +
     
'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
     
'DURING LAST_30_DAYS');

 
var rows = report.rows();
 
while (rows.hasNext()) {
   
var row = rows.next();
   
var campaignName = row['CampaignName'];
   
var clicks = row['Clicks'];
   
var impressions = row['Impressions'];
   
var cost = row['Cost'];
   
Logger.log(campaignName + ',' + clicks + ',' + impressions + ',' + cost);
 
}
}
}

RESULTS

Sven Reinhardt

unread,
Dec 9, 2016, 9:31:29 AM12/9/16
to AdWords Scripts Forum
Hi Lucas,

you're not querying any campaigns...
Try adding this before the bracket closing the main-function:

  var camp = AdWordsApp.campaigns().get();
 
 
while(camp.hasNext()){
   
var camps = camp.next();
    runReport
();
 
}

Greetings,
Sven

Tyler Sidell (AdWords Scripts Team)

unread,
Dec 9, 2016, 10:03:32 AM12/9/16
to AdWords Scripts Forum
Thanks Sven for that solution.

Lucas, I would suggest moving the runReport() function outside of the main() function.

function main() {
  runReport
();

}

function runReport() {
 
var report = AdWordsApp.report(
     
'SELECT CampaignName, Clicks, Impressions, Cost ' +
     
'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
     
'DURING LAST_30_DAYS');

 
var rows = report.rows();
 
while (rows.hasNext()) {
   
var row = rows.next();
   
var campaignName = row['CampaignName'];
   
var clicks = row['Clicks'];
   
var impressions = row['Impressions'];
   
var cost = row['Cost'];
   
Logger.log(campaignName + ',' + clicks + ',' + impressions + ',' + cost);
 
}
}

Thanks,
Tyler Sidell
AdWords Scripts Team
Message has been deleted

Tyler Sidell (AdWords Scripts Team)

unread,
Dec 9, 2016, 12:31:03 PM12/9/16
to AdWords Scripts Forum
Hi Lucas,

I had to delete your last post as you should not put personal information such as your email address in the public forum.  You can use the script below to email you the data that you are looking for.

function main() {
var html = '';  
var report = AdWordsApp.report(
     
'SELECT CampaignName, Amount, Impressions, Ctr ' +
     
'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
     
'DURING 20161207,20161208');


 
var rows = report.rows();

 
while (rows.hasNext()) {
   
var row = rows.next();

   
var campaign = row['CampaignName'];
   
var budget = row['Amount'];
   
var imp = row['Impressions'];
   
var ctr = row['Ctr'];
   
Logger.log('%s,%s,%s,%s',campaign, budget, imp, ctr);
   html
+= campaign + ',' + budget + ',' + imp + ',' + ctr + '<br/>';
   
}
var emailBody = [];
emailBody
.push(html);
MailApp.sendEmail({
        to
: 'EMAIL ADDRESS',
        subject
: 'Script Testing',
        htmlBody
: emailBody.join("\n")
     
});
}

Thanks,
Tyler Sidell
AdWords Scripts Team

Lucas Ertola

unread,
Dec 9, 2016, 5:04:15 PM12/9/16
to AdWords Scripts Forum
Tyler
Thank you for taking care and deleting my email. Ive totally forgot about it. As you have notice Im new on this, but Im excited for all the thing I can do with scripts and Im learning a lot every day, So I will probably keep writing in this forum where you had helped me to keep learning when I get stuck,

Thanks also for the example code!

Lucas Ertola

unread,
Dec 9, 2016, 5:43:27 PM12/9/16
to AdWords Scripts Forum
Tyler
On the Report Selector, any idea if its possible to use ORDER BY or LIMIT? When I try I get a message like this. Ive tried to write the query in different way but didnt make it work.
Invalid reporting query: ORDER_BY_CLAUSE_NOT_SUPPORTED: QueryError.ORDER_BY_CLAUSE_NOT_SUPPORTED. (line 3)

var report = AdWordsApp.report(
     
'SELECT CampaignName, Amount, Impressions, Ctr ' +
     
'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +

     
'WHERE Impressions > 5000 DURING 20161207,20161208 ORDER BY Impressions DESC');

Tyler Sidell (AdWords Scripts Team)

unread,
Dec 12, 2016, 10:38:27 AM12/12/16
to AdWords Scripts Forum
Hi Lucas,

Glad to hear that you are enjoying AdWords Scripts so far.  Please feel free to use the forum for any of your questions.  Just one recommendation would be to create new threads for new topics.  It's easier to keep track of the progress that way.

As for your reporting query inquiry, right now reports do not support Order By or Limit clauses.  One workaround would be to write your data to a spreadsheet and then use the sort() method afterwards to rearrange the rows.

Example:
function main() {
var url = 'SPREADSHEET_URL';  
var sheet = SpreadsheetApp.openByUrl(url).getActiveSheet();

var report = AdWordsApp.report(
     
'SELECT CampaignName, Amount, Impressions, Ctr ' +
     
'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
     
'DURING 20161207,20161208');

report
.exportToSheet(sheet);
sheet
.sort(3, false);

var emailBody = [];
emailBody
.push(url);
MailApp.sendEmail({
        to
: 'EMAIL_ADDRESS',
        subject
: 'Script Testing',

        htmlBody
: emailBody.join("\n")
     
});
}

Just replace SPREADSHEET_URL and EMAIL_ADDRESS above.

Thanks,
Tyler Sidell
AdWords Scripts Team

Reply all
Reply to author
Forward
0 new messages