flex-template-web/docs/analytics.md
2018-03-23 11:43:18 +02:00

37 lines
1.5 KiB
Markdown

# Analytics
The application supports tracking page views with pluggable analytics handlers.
## Google Analytics
Google Analytics (GA) is supported by default. The enable GA, set the GA tracker ID to the
environment variable `REACT_APP_GOOGLE_ANALYTICS_ID`;
## Custom analytics handler
If you want to add a new analytics library, you can do as follows:
1. Add the analytics library script
If the analytics library has an external script, add the library script tag to the
[src/public/index.html](../public/index.html) file. If you need more control, see how the GA
script is added in [server/renderer.js](../server/renderer.js).
1. Create a handler
To track page views, create a custom handler e.g. in
[src/analytics/handlers.js](../src/analytics/handlers.js). The handler should be a class that
implements a `trackPageView(url)` method.
Note that the `url` parameter might not be the same as in the URL bar of the browser. It is the
canonical form of the URL. For example, in the listing page it doesn't have the dynamic title
slug in the middle. This allows unified analytics and correct tracking of pages that can be
accessed from multiple different URLs.
If you analytics library takes the page URL from the browser, you might need to override that
behavior to use the canonical URL that is given to the method.
1. Initialise the handler
Initialise the handler in the `setupAnalyticsHandlers()` function in
[src/index.js](../src/index.js).