Wagtail Analytics
(Last Updated 12/17/19 for Wagtail v2.x)
This module provides a simple dashboard of Google Analytics data, integrated into the Wagtail admin UI. Tested on Wagtail 2.0+.
Instructions
- Create a service account and download the JSON key (Credentials > Create Credentials > API key)
- Make sure the Analytics API is enabled for your project (See issue 2)
- Add the service account email address as a read-only user in Google Analytics (Admin > User Management)
- Find the ID for your Google Analytics property (Admin > Property > View Settings, note: this is NOT the key that begins with "UA-")
- Store your JSON key somewhere safe, and do not check it into your repo
pip install wagalytics
- Add 'wagalytics' to your INSTALLED_APPS
- Add 'wagtailfontawesome' to INSTALLED_APPS if it's not there already
- Update your settings:
GA_KEY_FILEPATH = '/path/to/secure/directory/your-key.json'
or when using environment variables (e.g. Heroku):
GA_KEY_CONTENT = 'content_of_your_key.json'
GA_VIEW_ID = 'ga:xxxxxxxx'
If you get CryptoUnavailableError errors, you probably need to pip install PyOpenSSL
and/or pip install pycrypto
. See StackOverflow.
Ensure that your code snippet is included on each page you want to be tracked (likely by putting it in your base.html template.) (Admin > Property > Tracking Code)
Multisite Support
To enable multisite support you'll need to update your Wagalytics settings and have wagtail.contrib.settings
installed. Sites can use a GA_KEY_FILEPATH
or a GA_KEY_CONTENT
key, but it's best not to use both.
In the snippet below, you'll see site_id
. This is the ID (Primary Key) of your Wagtail Site.
# Use either the GA_KEY_FILEPATH or the GA_KEY_CONTENT setting on your sites,
# but don't use both
WAGALYTICS_SETTINGS = {
site_id: {
'GA_VIEW_ID': 'ga:xxxxxxxx',
'GA_KEY_FILEPATH': '/path/to/secure/directory/your-key.json',
},
site_id: {
'GA_VIEW_ID': 'ga:xxxxxxxx',
'GA_KEY_CONTENT': 'content_of_your_key.json',
}
}
For every Wagalytics site you add in your multisite WAGALYTICS_SETTINGS
you'll need to make sure you have the proper GA View ID and API Key. One View ID and API Key won't work for all your sites automatically.
Here's a working example of multisite WAGALYTICS_SETTINGS:
WAGALYTICS_SETTINGS = {
# My default site. 2 is the site ID. This one uses GA_KEY_FILEPATH.
2: {
'GA_VIEW_ID': 'ga:xxxxxxxx',
'GA_KEY_FILEPATH': '/path/to/secure/directory/your-key.json',
},
# The secondary site. 3 is the Site ID. This one uses GA_KEY_CONTENT.
3: {
'GA_KEY_CONTENT': 'content_of_your_key.json',
'GA_VIEW_ID': 'ga:xxxxxxxx',
}
}
Wagalytics Developers
Developers will need to carry out the following steps after cloning wagalytics:
- Ensure NodeJS & NPM are installed
- Run
npm install
thennpm run build
in the top level wagalytics directory
You will need to run npm run build
anytime the javascript source is updated.
TODO
- allow configuration of results
- better styling, e.g. using chart.js
- Throw an error if the relevant settings aren't available
- add per-page results
Notes
This module doesn't help with recording user activity. See the Wagtail docs and StackOverflow for pointers on how to avoid gathering data during preview and testing.
Contributors
- Thijs Kramer
- Stefan SchΓ€rmeli
- Alex Gleason
- James Ramm
- Jake Kent
- Kalob Taulien
- Julius Parishy