Create new source application

Go to Source Data tab and Add new source application and select REST API application type.

REST API source parameters

In the next step, you will need to provide REST API source parameters which will be used to retrieve the data. See example:

In Source data URL provide customized Google Analytics REST API URL which returns the data ( Change at least following URL parameters (corresponding to Google Analytics API Reference Guide):

  • ids - The unique table ID of the form ga:XXXX, where XXXX is the Analytics view (profile) ID for which the query will retrieve the data.
  • metrics - A list of comma-separated metrics, such as ga:sessions,ga:bounces.
  • dimensions - A list of comma-separated dimensions for your Analytics data, such as ga:browser,ga:city.

To reduce server load Google Analytics REST API provides pagination, default by 1000 records.

Choose Pagination option "Offset and limit parameter" and enter following parameters:

  • Offset parameter - start-index
  • Limit parameter - max-results

To get Client ID and Client secret you must create web application credentials in API console Credentials page (more information can be found here -

Please specify there Authorized redirect URIs as Redirect URL that you see in REST API source parameters page.

After registration you will get your application Client ID and Client Secret - please paste them in REST API source parameters page corresponding fields.

If you will create several Google Analytics REST API sources in your account then you can use the same Client ID and Client Secret for all these REST API sources.

Restrict requested data set by providing Scope value -

Fill Authorize URL with "" (access_type=offline is a must to get refresh token from Google Analytics REST API) and Token URL with ""

Click Add custom JavaScript code to add custom JavaScript code that will process received data:

function formatDate(s) {
return s.substr(0,4)+'-'+s.substr(4,2)+'-'+s.substr(6,2);
return, function(row) {
var rowdoc = {};
for (var i = 0; i < doc.columnHeaders.length; i++) {
var name = doc.columnHeaders[i].name.replace(/^ga:/, '');
rowdoc[name] = name == 'date' ? formatDate(row[i]) : row[i];
rowdoc["Project"] = "Project 1";
return rowdoc;

You can add own custom/calculated values, like in this example value for "Project" property.

Enable Analytics API

Next you need to enable Analytics API. In order to do that you must go to console Dashboard page, click on the "ENABLE APIS AND SERVICES" and add "Analytics API" to the list:

Authorize access to REST API source

In the first time you will be redirected to source application authorization page where you will need to authorize access to source application data.

Source columns mapping

Example of Google Analytics import column mappings

Google Analytics source application definition example

If you would like to use this Google Analytics import example from this tutorial then you can use the following source application definition:

Expand source
  "application_type": "rest_api",
  "application_params": {
    "source_params": {
      "url": "",
      "skip_ssl_verification": "0",
      "pagination": "offset_limit",
      "authentication_type": "oauth2",
      "content_type": "json",
      "oauth2_scope": "",
      "oauth2_authorize_url": "",
      "oauth2_token_url": "",
      "custom_javascript_code": "function formatDate(s) {\n  return s.substr(0,4)+'-'+s.substr(4,2)+'-'+s.substr(6,2);\n}\n\nreturn, function(row) {\n  var rowdoc = {};\n  for (var i = 0; i < doc.columnHeaders.length; i++) {\n    var name = doc.columnHeaders[i].name.replace(/^ga:/, '');\n    rowdoc[name] = name == 'date' ? formatDate(row[i]) : row[i];\n  }\n  rowdoc[\"Project\"] = \"Project 1\";\n  return rowdoc;\n});",
      "offset_parameter": "start-index",
      "limit_parameter": "max-results",
      "limit_value": 1000
  "source_cube_name": "GA_TEST3",
  "columns": [
      "name": "date",
      "data_type": "date",
      "dimension": "Time"
      "name": "PageLoadTime",
      "data_type": "integer"
      "name": "Project",
      "data_type": "string"


If you have some issues please read analytics API troubleshooting section. To reset the authorization you can remove your app from your google account.