Page Summary
-
Code examples are provided for interacting with the Google Analytics API to retrieve account, web property, and profile information.
-
You can get statistics for an Analytics profile, including sessions, using the
Analytics.Data.Ga.getmethod. -
The content includes examples for running multi-channel funnel reports and real-time Analytics reports.
-
Filtering data for an Analytics profile based on dimensions like browser and country is demonstrated.
Get an Analytics account
function getAccountByName () { var accountName = 'INSERT_ACCOUNT_NAME_HERE' ; var accounts = Analytics . Management . Accounts . list (); for ( var i = 0 ; i < accounts . items . length ; i ++ ) { if ( accountName == accounts . items [ i ] . name ) { console . log ( 'Account ID: %s, Name = %s' , accounts . items [ i ] . id , accounts . items [ i ] . name ); } } return ; }
Get a web property
function getWebPropertyById () { var accountId = 'INSERT_ACCOUNT_ID_HERE' ; var webPropertyId = 'INSERT_WEB_PROPERTY_ID_HERE' ; var webProperty = Analytics . Management . Webproperties . get ( accountId , webPropertyId ); console . log ( 'Web Property ID: %s , Name: %s ' , webProperty . id , webProperty . name ); }
List all profiles
function listAllProfiles () { var accountId = 'INSERT_ACCOUNT_ID_HERE' ; var webPropertyId = 'INSERT_WEB_PROPERTY_ID_HERE' ; var profiles = Analytics . Management . Profiles . list ( accountId , webPropertyId ); for ( var i = 0 ; i < profiles . items . length ; i ++ ) { console . log ( 'Profile ID: %s, Name: %s' , profiles . items [ i ] . id , profiles . items [ i ] . name ); } }
Get stats for an Analytics profile
function getStatsForProfileId () { var profileId = 'INSERT_PROFILE_ID_HERE' ; // Dates should be in yyyy - mm - dd format . var startDate = 'INSERT_START_DATE_HERE' ; var endDate = 'INSERT_END_DATE_HERE' ; var results = Analytics . Data . Ga . get ( 'ga:' + profileId , startDate , endDate , 'ga:sessions' ); console . log ( 'Profile Name: %s ' , results . profileInfo . profileName ); console . log ( 'Total Sessions: %s ' , results . rows [ 0 ][ 0 ]); }
Run a multi-channel funnel report
function runMultiChannelFunnelReport () { // See https : // support . google . com / analytics / answer / 1191180 to learn more about // multi - channel funnel reports in Google Analytics . var profileId = 'INSERT_PROFILE_ID_HERE' ; // Dates should be in yyyy - mm - dd format . var startDate = 'INSERT_START_DATE_HERE' ; var endDate = 'INSERT_END_DATE_HERE' ; var results = Analytics . Data . Mcf . get ( 'ga:' + profileId , startDate , endDate , 'mcf:totalConversions' , // List of all metrics to retrieve . { 'dimensions' : 'mcf:sourcePath' , 'sort' : '-mcf:totalConversions' , 'max-results' : 25 } ); var headers = [] ; for ( var i = 0 ; i < results . columnHeaders . length ; i ++ ) { headers . push ( results . columnHeaders [ i ] . name ); } console . log ( headers . join ( ',' )); for ( var i = 0 ; i < results . rows . length ; i ++ ) { var rowData = [] ; var row = results . rows [ i ] ; for ( var j = 0 ; j < row . length ; j ++ ) { var cell = row [ j ] ; var dataType = results . columnHeaders [ j ] . dataType ; if ( dataType == 'MCF_SEQUENCE' ) { rowData . push ( getStringFromMcfSequence ( cell . conversionPathValue )); } else { rowData . push ( cell . primitiveValue ); } } console . log ( rowData . join ( ',' )); } }
Filter stats for an Analytics profile
function filterStats () { var profileId = 'INSERT_PROFILE_ID_HERE' ; var results = Analytics . Data . Ga . get ( 'ga:' + profileId , '2014-01-01' , // Start date in yyyy - mm - dd format . '2014-01-15' , // End date in yyyy - mm - dd format . 'ga:sessions' , // List of all metrics to retrieve . { // Filter for Firefox browser users in the USA . See // https : // developers . google . com / analytics / devguides / reporting / core / v3 / reference #filters // for filter syntax , and // https : // developers . google . com / analytics / devguides / reporting / core / dimsmets // for the list of supported Dimensions and Metrics . 'filters' : 'ga:browser==Firefox;ga:country==United States' } ); console . log ( 'View (Profile) Name: %s ' , results . profileInfo . profileName ); console . log ( 'Total Sessions: %s ' , results . rows [ 0 ][ 0 ]); }
Run real-time Analytics report
function runRealTimeReport () { // See https : // support . google . com / analytics / answer / 1638635 to learn more about // real - time reporting . var profileId = 'INSERT_PROFILE_ID_HERE' ; var results = Analytics . Data . Realtime . get ( 'ga:' + profileId , 'rt:activeUsers' , { 'dimensions' : 'rt:medium' } ); var headers = [] ; for ( var i = 0 ; i < results . columnHeaders . length ; i ++ ) { headers . push ( results . columnHeaders [ i ] . name ); } console . log ( headers . join ( ',' )); for ( var i = 0 ; i < results . rows . length ; i ++ ) { var rowData = [] ; var row = results . rows [ i ] ; for ( var j = 0 ; j < row . length ; j ++ ) { var cell = row [ j ] ; rowData . push ( cell ); } console . log ( rowData . join ( ',' )); } }

