-
Notifications
You must be signed in to change notification settings - Fork 4
Analytics on the Admin app
Our Google Analytics (GA) implementation is wrapped in an abstraction layer, called a 'toolkit', to make our use consistent with other projects. The code was taken from GOVUK but is also used on other GDS projects such as Digital Marketplace.
GOVUK.Analytics is defined in app/assets/javascripts/analytics/analytics.js.
The code to set up the tracker is defined in app/assets/javascripts/analytics/init.js.
Our version of the toolkit provides methods for tracking pageviews and events. It currently includes:
- a Google Analytics universal tracker wrapper
- code to asynchronously load universal analytics
- a generic Analytics wrapper that allows a single tracker to be configured
The tracker is set up by creating a new instance of GOVUK.Analytics. The convention is to set it as window.GOVUK.analytics.
The Google Analytics library needs to be loaded before the tracker is set up. This is done by running:
window.GOVUK.Analytics.load();The tracker is configured by the options sent in when the instance is created.
| Argument | Description |
|---|---|
| trackingId (required) | Unique identifier for your GA account |
| cookieDomain (required) | Domain to associate the GA cookies with |
| anonymizeIp (required) | Anonymise user's IP addresses |
| allowAdFeatures (required) | Disable beacons used for advertising features |
| transport (required) | Transport mechanism used to register hits |
| expires (required) | Expiry date of GA cookies |
Once instantiated, the GOVUK.analytics object can be used to track virtual pageviews and send custom events.
Page tracking allows you to measure the number of views you had of a particular page on your web site.
See: https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#page
| Argument | Description |
|---|---|
| page (optional) | Path section of URL for page |
| title (optional) | Title of the page, if different to document.title
|
Note: Any UUIDs in path will be stripped before sending.
// Track current page
GOVUK.analytics.trackPageview();
// Track a custom path
GOVUK.analytics.trackPageview('/path');
// Use a custom title for the page
GOVUK.analytics.trackPageview('/path', 'Custom title');Event tracking allows you to measure how users interact with the content of your website. For example, you might want to measure how many times a button was pressed, or how many times a particular item was used.
See: https://developers.google.com/analytics/devguides/collection/analyticsjs/events
| Argument | Description |
|---|---|
| category (required) | Typically the object that was interacted with, eg "JavaScript error" |
| action (required) | The type of interaction, eg a Javascript error message |
| options.label (required) | The options argument, containing a label property to describe the event |
// Track a custom event
GOVUK.analytics.trackEvent('category', 'action', { 'label': 'missing field'});