Support center for flex.bi version 4.0
Google Analytics from REST API
Create new source application
Go to Source Data tab and Add new source application and select REST API application type. To fill fields with default values, in field Import definition paste example source application definition.
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 (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):
- 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 - https://developers.google.com/identity/protocols/OAuth2WebServer#creatingcred)
Please specify there Authorized redirect URIs as Redirect URL that you see in flex.bi REST API source parameters page.
After registration you will get your application Client ID and Client Secret - please paste them in flex.bi REST API source parameters page corresponding fields.
If you will create several Google Analytics REST API sources in your flex.bi 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 - 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:
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.
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 flex.bi 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: