Reports

  • Google Ads reports offer faster data retrieval for basic structural information compared to campaign management methods.

  • You can create a text report by using AdsApp.search and iterating through the results to log campaign data.

  • Alternatively, you can generate a spreadsheet report using AdsApp.report and exporting it to a new spreadsheet.

  • Reports can be filtered by label using a GAQL query with the CONTAINS ANY clause and the label's resource name.

Create a text report

 function 
  
 runReport 
 () 
  
 { 
  
 // 
  
 Google 
  
 Ads 
  
 reports 
  
 return 
  
 data 
  
 faster 
  
 than 
  
 campaign 
  
 management 
  
 methods 
  
 // 
  
 and 
  
 can 
  
 be 
  
 used 
  
 to 
  
 retrieve 
  
 basic 
  
 structural 
  
 information 
  
 on 
  
 // 
  
 your 
  
 Account 
 , 
  
 Campaigns 
 , 
  
 AdGroups 
 , 
  
 Ads 
 , 
  
 Keywords 
 , 
  
 etc 
 . 
  
 You 
  
 can 
  
 refer 
  
 to 
  
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 api 
 / 
 docs 
 / 
 reporting 
 / 
 overview 
  
 // 
  
 for 
  
 more 
  
 details 
 . 
  
 // 
  
 See 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 api 
 / 
 fields 
 / 
 latest 
 / 
 overview 
 #list-of-all-resources 
  
 // 
  
 for 
  
 all 
  
 the 
  
 supported 
  
 report 
  
 types 
 . 
  
 // 
  
 See 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 api 
 / 
 docs 
 / 
 query 
 / 
 overview 
  
 for 
  
 // 
  
 details 
  
 on 
  
 how 
  
 to 
  
 use 
  
 GAQL 
 , 
  
 the 
  
 query 
  
 language 
  
 for 
  
 reports 
 . 
  
 // 
  
 See 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 api 
 / 
 docs 
 / 
 reporting 
 / 
 uireports 
  
 // 
  
 for 
  
 details 
  
 on 
  
 how 
  
 to 
  
 map 
  
 an 
  
 Google 
  
 Ads 
  
 UI 
  
 feature 
  
 to 
  
 the 
  
 corresponding 
  
 // 
  
 reporting 
  
 API 
  
 feature 
 . 
  
 const 
  
 searchResults 
  
 = 
  
 AdsApp 
 . 
 search 
 ( 
  
 'SELECT campaign.name, metrics.clicks, metrics.impressions, metrics.cost_micros ' 
  
 + 
  
 'FROM   campaign ' 
  
 + 
  
 'WHERE  metrics.impressions < 10 ' 
  
 + 
  
 ' AND   segments.date DURING LAST_30_DAYS' 
 ); 
  
 for 
  
 ( 
 const 
  
 row 
  
 of 
  
 searchResults 
 ) 
  
 { 
  
 const 
  
 campaignName 
  
 = 
  
 row 
 . 
 campaign 
 . 
 name 
 ; 
  
 const 
  
 clicks 
  
 = 
  
 row 
 . 
 metrics 
 . 
 clicks 
 ; 
  
 const 
  
 impressions 
  
 = 
  
 row 
 . 
 metrics 
 . 
 impressions 
 ; 
  
 const 
  
 cost 
  
 = 
  
 row 
 . 
 metrics 
 . 
 costMicros 
 ; 
  
 console 
 . 
 log 
 ( 
 ` 
 $ 
 { 
 campaignName 
 }, 
  
 $ 
 { 
 clicks 
 }, 
  
 $ 
 { 
 impressions 
 }, 
  
 $ 
 { 
 cost 
 } 
 ` 
 ); 
  
 } 
 } 

Create a spreadsheet report

 function 
  
 exportReportToSpreadsheet 
 () 
  
 { 
  
 const 
  
 spreadsheet 
  
 = 
  
 SpreadsheetApp 
 . 
 create 
 ( 
 'INSERT_REPORT_NAME_HERE' 
 ); 
  
 const 
  
 report 
  
 = 
  
 AdsApp 
 . 
 report 
 ( 
  
 'SELECT campaign.name, metrics.clicks, metrics.impressions, metrics.cost_micros ' 
  
 + 
  
 'FROM   campaign ' 
  
 + 
  
 'WHERE  metrics.impressions < 10 ' 
  
 + 
  
 ' AND   segments.date DURING LAST_30_DAYS' 
 ); 
  
 report 
 . 
 exportToSheet 
 ( 
 spreadsheet 
 . 
 getActiveSheet 
 ()); 
 } 

Filter entities by label

 function 
  
 filterReportByLabelIds 
 () 
  
 { 
  
 const 
  
 label 
  
 = 
  
 AdsApp 
 . 
 labels 
 () 
 . 
 withCondition 
 ( 
  
 "label.name = 'High performance campaigns'" 
 ) 
 . 
 get 
 () 
 . 
 next 
 (); 
  
 const 
  
 query 
  
 = 
  
 ` 
 SELECT 
  
 campaign 
 . 
 name 
 , 
  
 metrics 
 . 
 clicks 
 , 
  
 metrics 
 . 
 impressions 
 , 
  
 metrics 
 . 
 cost_micros 
  
 from 
  
 ` 
  
 + 
  
 ` 
 campaign 
  
 WHERE 
  
 campaign 
 . 
 labels 
  
 CONTAINS 
  
 ANY 
  
 ` 
  
 + 
  
 ` 
 [ 
 $ 
 { 
 label 
 . 
 getResourceName 
 ()}] 
  
 AND 
  
 segments 
 . 
 date 
  
 DURING 
  
 THIS_MONTH 
 '; 
  
 const 
  
 report 
  
 = 
  
 AdsApp 
 . 
 report 
 ( 
 query 
 ); 
  
 for 
  
 ( 
 const 
  
 row 
  
 of 
  
 report 
 . 
 rows 
 ()) 
  
 { 
  
 const 
  
 campaignName 
  
 = 
  
 row 
 [ 
 'campaign.name' 
 ]; 
  
 const 
  
 clicks 
  
 = 
  
 row 
 [ 
 'metrics.clicks' 
 ]; 
  
 const 
  
 impressions 
  
 = 
  
 row 
 [ 
 'metrics.impressions' 
 ]; 
  
 const 
  
 cost 
  
 = 
  
 row 
 [ 
 'metrics.cost_micros' 
 ]; 
  
 Logger 
 . 
 log 
 ( 
 ` 
 $ 
 { 
 campaignName 
 }, 
  
 $ 
 { 
 clicks 
 }, 
  
 $ 
 { 
 impressions 
 }, 
  
 $ 
 { 
 cost 
 } 
 ` 
 ); 
  
 } 
 } 
Design a Mobile Site
View Site in Mobile | Classic
Share by: