Google Analytics 360
- Prateek Duble
- Anton Kai
Google Analytics 360 is a web analytics service offered by Google that tracks and reports website traffic, currently as a platform inside the Google Marketing Platform brand. Google Analytics 360 (GA 360) source plugin would allow users to get granular level reporting data leveraging Google Analytic's reporting API. The plugin would deliver GA 360 data in batch as well as streaming mode and would allow users to pick from a variety of metrics and dimensions available under Google Analytics 360 reporting API.
User Expectations
- User would like to enable GA360 API to start retieving GA360 data
- User would like to have full flexibility in picking metrics and dimension for Google Analytics 360 dataset
- User would like to control the dates for which the report data will be generated
- User would like to use advanced option such as sampling size that allows her to balance between speed and accuracy of the reporting data
- User would be able to configure if the data is needed in batch mode or streaming mode.
Plugin Type
- Batch Source
- Batch Sink
- Real-time Source
- Real-time Sink
- Action
- Post-Run Action
- Aggregate
- Join
- Spark Model
- Spark Compute
User Configurations
Option Level | User Configuration Label | Label Description | Variable | User Widget | Notes |
---|---|---|---|---|---|
General | Authorization token | Authorization token to access Google Analytics reporting API | authorizationToken | Text Box | https://developers.google.com/analytics/devguides/reporting/core/v4/authorization |
Google Analytics View | The GA view ID from which to retrieve data | viewId | Text Box | ||
Data retrieval options | Start Date | Start date for the report data | startDate | Text Box | Should allow to choose "today" as an option |
End Date | End date for the report data | endDate | Text Box | Should allow few standard options such as last 30, 60 and 90 days | |
Metrics | Quantitative measurements. For example, the metric ga:users indicates the total number of users for the requested time period | metricsList | Drop Down | All the available metrics - https://developers.google.com/analytics/devguides/reporting/core/dimsmets | |
Dimensions | Attributes of your data. For example, the dimension ga:city indicates the city, for example, "Paris" or "New York" | dimensionsList | Drop Down | All the available dimensions - https://developers.google.com/analytics/devguides/reporting/core/dimsmets | |
Advanced | Sampling Level (for batch only) | Desired report sample size | sampleSize | Drop Down | Possible Values: DEFAULT, SMALL, LARGE |
Poll interval (for streaming only) | The amount of time to wait between each poll in minutes | pollInterval | Number | Default value: 1 minute |
For “Start Date” and “End Date” parameters examples see Reporting API doc.
Design / Implementation Tips
Plugin will be implemented using official Google Analytics Java client library V4, authentication will be performed using access token. Output schema must be automatically generated from selected metrics and dimensions.
Output schema completely based on Metric and Dimension items. All fields are nullable strings.
References
- Reporting API documentation - https://developers.google.com/analytics/devguides/reporting/core/v4/
- Google Analytics reporting API explorer: https://developers.google.com/apis-explorer/?hl=en_US#p/analyticsreporting/v4/
- Sample Java application with Reporting API: https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-java
- Method for getting reporting data: https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet
- Realtime API get method: https://developers.google.com/analytics/devguides/reporting/realtime/v3/reference/data/realtime/get
- Example realtime dashboard with Google Analytics 360: https://hackernoon.com/using-the-google-real-time-reporting-api-71ce3f6ceee4
Table of Contents
Checklist
- User stories documented
- User stories reviewed
- Design documented
- Design reviewed
- Feature merged
- Examples and guides
- Integration tests
- Documentation for feature
- Short video demonstrating the feature