Google Analytics
Stay organized with collections Save and categorize content based on your preferences.
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(',')); } }
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-20 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[[["\u003cp\u003eThis webpage provides code samples demonstrating how to interact with Google Analytics accounts programmatically.\u003c/p\u003e\n"],["\u003cp\u003eThe code snippets cover functionalities such as retrieving account information, web property details, and user profile data.\u003c/p\u003e\n"],["\u003cp\u003eYou can use these code examples to access and analyze various Google Analytics reports, including real-time data, multi-channel funnels, and filtered stats.\u003c/p\u003e\n"],["\u003cp\u003eThe provided code is written in JavaScript and leverages the Google Analytics API.\u003c/p\u003e\n"],["\u003cp\u003eBy using these examples, developers can automate tasks, build custom dashboards, and integrate Google Analytics data into other applications.\u003c/p\u003e\n"]]],[],null,["Get an Analytics account \n\n```transact-sql\nfunction getAccountByName() {\n var accountName = 'INSERT_ACCOUNT_NAME_HERE';\n var accounts = Analytics.Management.Accounts.list();\n\n for (var i = 0; i \u003c accounts.items.length; i++) {\n if (accountName == accounts.items[i].name) {\n console.log('Account ID: %s, Name = %s', accounts.items[i].id,\n accounts.items[i].name);\n }\n }\n return;\n}\n```\n\nGet a web property \n\n```gdscript\nfunction getWebPropertyById() {\n var accountId = 'INSERT_ACCOUNT_ID_HERE';\n var webPropertyId = 'INSERT_WEB_PROPERTY_ID_HERE';\n\n var webProperty = Analytics.Management.Webproperties.get(\n accountId, webPropertyId);\n\n console.log('Web Property ID: %s, Name: %s', webProperty.id, webProperty.name);\n}\n```\n\nList all profiles \n\n```transact-sql\nfunction listAllProfiles() {\n var accountId = 'INSERT_ACCOUNT_ID_HERE';\n var webPropertyId = 'INSERT_WEB_PROPERTY_ID_HERE';\n\n var profiles = Analytics.Management.Profiles.list(accountId, webPropertyId);\n\n for (var i = 0; i \u003c profiles.items.length; i++) {\n console.log('Profile ID: %s, Name: %s', profiles.items[i].id,\n profiles.items[i].name);\n }\n}\n```\n\nGet stats for an Analytics profile \n\n```gdscript\nfunction getStatsForProfileId() {\n var profileId = 'INSERT_PROFILE_ID_HERE';\n\n // Dates should be in yyyy-mm-dd format.\n var startDate = 'INSERT_START_DATE_HERE';\n var endDate = 'INSERT_END_DATE_HERE';\n\n var results = Analytics.Data.Ga.get('ga:' + profileId, startDate,\n endDate, 'ga:sessions');\n\n console.log('Profile Name: %s', results.profileInfo.profileName);\n console.log('Total Sessions: %s', results.rows[0][0]);\n}\n```\n\nRun a multi-channel funnel report \n\n```transact-sql\nfunction runMultiChannelFunnelReport() {\n // See https://support.google.com/analytics/answer/1191180 to learn more about\n // multi-channel funnel reports in Google Analytics.\n\n var profileId = 'INSERT_PROFILE_ID_HERE';\n\n // Dates should be in yyyy-mm-dd format.\n var startDate = 'INSERT_START_DATE_HERE';\n var endDate = 'INSERT_END_DATE_HERE';\n\n var results = Analytics.Data.Mcf.get(\n 'ga:' + profileId,\n startDate,\n endDate,\n 'mcf:totalConversions', // List of all metrics to retrieve.\n {\n 'dimensions': 'mcf:sourcePath',\n 'sort': '-mcf:totalConversions',\n 'max-results': 25\n }\n );\n\n var headers = [];\n for (var i = 0; i \u003c results.columnHeaders.length; i++) {\n headers.push(results.columnHeaders[i].name);\n }\n console.log(headers.join(','));\n\n for (var i = 0; i \u003c results.rows.length; i++) {\n var rowData = [];\n\n var row = results.rows[i];\n for (var j = 0; j \u003c row.length; j++) {\n var cell = row[j];\n var dataType = results.columnHeaders[j].dataType;\n if (dataType == 'MCF_SEQUENCE') {\n rowData.push(getStringFromMcfSequence(cell.conversionPathValue));\n } else {\n rowData.push(cell.primitiveValue);\n }\n }\n console.log(rowData.join(','));\n }\n}\n```\n\nFilter stats for an Analytics profile \n\n```gdscript\nfunction filterStats() {\n var profileId = 'INSERT_PROFILE_ID_HERE';\n\n var results = Analytics.Data.Ga.get(\n 'ga:' + profileId,\n '2014-01-01', // Start date in yyyy-mm-dd format.\n '2014-01-15', // End date in yyyy-mm-dd format.\n 'ga:sessions', // List of all metrics to retrieve.\n {\n // Filter for Firefox browser users in the USA. See\n // https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters\n // for filter syntax, and\n // https://developers.google.com/analytics/devguides/reporting/core/dimsmets\n // for the list of supported Dimensions and Metrics.\n 'filters': 'ga:browser==Firefox;ga:country==United States'\n }\n );\n\n console.log('View (Profile) Name: %s', results.profileInfo.profileName);\n console.log('Total Sessions: %s', results.rows[0][0]);\n}\n```\n\nRun real-time Analytics report \n\n```transact-sql\nfunction runRealTimeReport() {\n // See https://support.google.com/analytics/answer/1638635 to learn more about\n // real-time reporting.\n\n var profileId = 'INSERT_PROFILE_ID_HERE';\n\n var results = Analytics.Data.Realtime.get(\n 'ga:' + profileId,\n 'rt:activeUsers',\n {\n 'dimensions': 'rt:medium'\n }\n );\n\n var headers = [];\n for (var i = 0; i \u003c results.columnHeaders.length; i++) {\n headers.push(results.columnHeaders[i].name);\n }\n console.log(headers.join(','));\n\n for (var i = 0; i \u003c results.rows.length; i++) {\n var rowData = [];\n\n var row = results.rows[i];\n for (var j = 0; j \u003c row.length; j++) {\n var cell = row[j];\n rowData.push(cell);\n }\n console.log(rowData.join(','));\n }\n}\n```"]]