Analytics Data Service

The Analytics Data service allows you to use the Google Analytics Data API v1 in Apps Script. This API gives Google Analytics users programmatic access to Google Analytics 4 (GA4) report data.

Reference

For detailed information on this service, see the Google Analytics Data API v1 reference documentation .

Like all advanced services in Apps Script, the AnalyticsData service uses the same objects, methods, and parameters as the public API. For more information, see How method signatures are determined .

To report issues and find other support, see the Google Analytics Data API v1 support page .

Sample code

Run a report

The sample runs a report to retrieve the active users count by city and stores the results in a new spreadsheet.

advanced/analyticsData.gs
 /** 
 * Runs a report of a Google Analytics 4 property ID. Creates a sheet with the 
 * report. 
 */ 
 function 
  
 runReport 
 () 
  
 { 
  
 /** 
 * TODO(developer): Uncomment this variable and replace with your 
 *   Google Analytics 4 property ID before running the sample. 
 */ 
  
 const 
  
 propertyId 
  
 = 
  
 'YOUR-GA4-PROPERTY-ID' 
 ; 
  
 try 
  
 { 
  
 const 
  
 metric 
  
 = 
  
 AnalyticsData 
 . 
 newMetric 
 (); 
  
 metric 
 . 
 name 
  
 = 
  
 'activeUsers' 
 ; 
  
 const 
  
 dimension 
  
 = 
  
 AnalyticsData 
 . 
 newDimension 
 (); 
  
 dimension 
 . 
 name 
  
 = 
  
 'city' 
 ; 
  
 const 
  
 dateRange 
  
 = 
  
 AnalyticsData 
 . 
 newDateRange 
 (); 
  
 dateRange 
 . 
 startDate 
  
 = 
  
 '2020-03-31' 
 ; 
  
 dateRange 
 . 
 endDate 
  
 = 
  
 'today' 
 ; 
  
 const 
  
 request 
  
 = 
  
 AnalyticsData 
 . 
 newRunReportRequest 
 (); 
  
 request 
 . 
 dimensions 
  
 = 
  
 [ 
 dimension 
 ]; 
  
 request 
 . 
 metrics 
  
 = 
  
 [ 
 metric 
 ]; 
  
 request 
 . 
 dateRanges 
  
 = 
  
 dateRange 
 ; 
  
 const 
  
 report 
  
 = 
  
 AnalyticsData 
 . 
 Properties 
 . 
 runReport 
 ( 
 request 
 , 
  
 'properties/' 
  
 + 
  
 propertyId 
 ); 
  
 if 
  
 ( 
 ! 
 report 
 . 
 rows 
 ) 
  
 { 
  
 console 
 . 
 log 
 ( 
 'No rows returned.' 
 ); 
  
 return 
 ; 
  
 } 
  
 const 
  
 spreadsheet 
  
 = 
  
 SpreadsheetApp 
 . 
 create 
 ( 
 'Google Analytics Report' 
 ); 
  
 const 
  
 sheet 
  
 = 
  
 spreadsheet 
 . 
 getActiveSheet 
 (); 
  
 // Append the headers. 
  
 const 
  
 dimensionHeaders 
  
 = 
  
 report 
 . 
 dimensionHeaders 
 . 
 map 
 ( 
  
 ( 
 dimensionHeader 
 ) 
  
 = 
>  
 { 
  
 return 
  
 dimensionHeader 
 . 
 name 
 ; 
  
 }); 
  
 const 
  
 metricHeaders 
  
 = 
  
 report 
 . 
 metricHeaders 
 . 
 map 
 ( 
  
 ( 
 metricHeader 
 ) 
  
 = 
>  
 { 
  
 return 
  
 metricHeader 
 . 
 name 
 ; 
  
 }); 
  
 const 
  
 headers 
  
 = 
  
 [... 
 dimensionHeaders 
 , 
  
 ... 
 metricHeaders 
 ]; 
  
 sheet 
 . 
 appendRow 
 ( 
 headers 
 ); 
  
 // Append the results. 
  
 const 
  
 rows 
  
 = 
  
 report 
 . 
 rows 
 . 
 map 
 (( 
 row 
 ) 
  
 = 
>  
 { 
  
 const 
  
 dimensionValues 
  
 = 
  
 row 
 . 
 dimensionValues 
 . 
 map 
 ( 
  
 ( 
 dimensionValue 
 ) 
  
 = 
>  
 { 
  
 return 
  
 dimensionValue 
 . 
 value 
 ; 
  
 }); 
  
 const 
  
 metricValues 
  
 = 
  
 row 
 . 
 metricValues 
 . 
 map 
 ( 
  
 ( 
 metricValues 
 ) 
  
 = 
>  
 { 
  
 return 
  
 metricValues 
 . 
 value 
 ; 
  
 }); 
  
 return 
  
 [... 
 dimensionValues 
 , 
  
 ... 
 metricValues 
 ]; 
  
 }); 
  
 sheet 
 . 
 getRange 
 ( 
 2 
 , 
  
 1 
 , 
  
 report 
 . 
 rows 
 . 
 length 
 , 
  
 headers 
 . 
 length 
 ) 
  
 . 
 setValues 
 ( 
 rows 
 ); 
  
 console 
 . 
 log 
 ( 
 'Report spreadsheet created: %s' 
 , 
  
 spreadsheet 
 . 
 getUrl 
 ()); 
  
 } 
  
 catch 
  
 ( 
 e 
 ) 
  
 { 
  
 // TODO (Developer) - Handle exception 
  
 console 
 . 
 log 
 ( 
 'Failed with error: %s' 
 , 
  
 e 
 . 
 error 
 ); 
  
 } 
 } 
Create a Mobile Website
View Site in Mobile | Classic
Share by: