Send analytics data to Matomo using celery
Project description
Let your Django app perform server side analytics with Matomo. Server side analytics is a great way to get some analytics while respecting user privacy (only you see the data, no internet wide tracking) and performance (no js tracker needed!)
Quickstart
You'll need to have celery set up because making the Matomo request in your Django request would be really slow. This project will collect some data from a request using middleware, serialize it, and send it to celery. Works fine with the default celery json serializer. Running celery will not be described here.
- Install via pip
django-server-side-matomo
- Add to INSTALLED_APPS
'server_side_matomo',
- Add to MIDDLEWARE
'server_side_matomo.middleware.MatomoMiddleware'
- Set the following in settings.py
- MATOMO_SITE_ID = '1' # Your site's Matomo ID
- MATOMO_API_URL = 'https://your.site.com/piwik.php'
- MATOMO_TOKEN_AUTH = 'your auth token'
- MATOMO_TRACK_USER_ID = False # Set to True to track user ID. See https://matomo.org/docs/user-id/
Testing and Development
Only merge requests with unit tests will be accepted. Please open an issue first if you'd like to propose a feature. I don't plan to add many features to this project myself. Unless other people are interested in doing the work - I have no plans to support things like Google Analytics.
Testing
A Docker Compose file is provided to quickly try out the project. Just run in a web container:
./manage.py test
Tested with Django 3.0 and Python 3.7.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-server-side-matomo-2.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e80a36690acc941d8b1264866b8a985fecf6a7c2425a59843497456fa797640 |
|
MD5 | 87764c1b6959fd4b8004024dfad71db4 |
|
BLAKE2b-256 | ef022e8b42b2bd0454248a4936ccc92220da1626b7f2a9bd619d3db815e697e9 |
Hashes for django_server_side_matomo-2.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8968d4bed335d25975517125163ca09db27ddcf75511c595e6a9c983ea96b9ff |
|
MD5 | 5a91d71401dc9c5d71ce285fa2e1d42c |
|
BLAKE2b-256 | a6214ca59c84198f8848792b3d4f767aa2553d4372fe5f9e8013845b2f71a5c6 |