Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In Source data URL provide customized Google Analytics REST API URL which returns the data (https://www.googleapis.com/analytics/v3/data/ga?ids=ga:XXXX&start-date=2016-10-01&end-date=2017-11-30&metrics=ga%3APageLoadTime&dimensions=ga%3Adate). Change at least following URL parameters (corresponding to Google Analytics API Reference Guide):

...

Restrict requested data set by providing Scope value - https://www.googleapis.com/auth/analytics.readonly

Fill Authorize URL with "https://accounts.google.com/o/oauth2/auth?access_type=offline" (access_type=offline is a must to get refresh token from Google Analytics REST API) and Token URL with "https://accounts.google.com/o/oauth2/token"

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


 

Code Block
function formatDate(s) {
return s.substr(0,4)+'-'+s.substr(4,2)+'-'+s.substr(6,2);
}
 
return _.map(doc.rows, 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.

...

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
titleExpand source



Code Block
{
  "application_type": "rest_api",
  "application_params": {
    "source_params": {
      "url": "https://www.googleapis.com/analytics/v3/data/ga?ids=ga:XXXX&start-date=2016-10-01&end-date=2017-11-30&metrics=ga%3APageLoadTime&dimensions=ga%3Adate",
      "skip_ssl_verification": "0",
      "pagination": "offset_limit",
      "authentication_type": "oauth2",
      "content_type": "json",
      "oauth2_scope": "https://www.googleapis.com/auth/analytics.readonly",
      "oauth2_authorize_url": "https://accounts.google.com/o/oauth2/auth?access_type=offline",
      "oauth2_token_url": "https://accounts.google.com/o/oauth2/token",
      "custom_javascript_code": "function formatDate(s) {\n  return s.substr(0,4)+'-'+s.substr(4,2)+'-'+s.substr(6,2);\n}\n\nreturn _.map(doc.rows, 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"
    }
  ]
}