Piwik/Matomo support for uData
Project description
udata-piwik
This plugin provide integration between udata and Piwik/Matomo
Compatibility
udata-piwik requires Python 2.7+ and udata.
Installation
Install udata.
Remain in the same virtual environment (for Python) and use the same version of npm (for JS).
Install udata-piwik:
pip install udata-piwik
Modify your local configuration file of udata (typically, udata.cfg
) as following:
PLUGINS = ['piwik']
# Piwik/Matomo site IDs
# this site will track front (template) events
PIWIK_ID_FRONT = 1
# this site will track back (API) events
PIWIK_ID_API = 1
PIWIK_SCHEME = 'https'
PIWIK_URL = 'stats.data.gouv.fr'
PIWIK_AUTH = '<32-chars-auth-token-from-piwik>'
# `client.track` method `requests` timeout
PIWIK_TRACK_TIMEOUT = 60 # in seconds
# `client.analyze` method `requests` timeout
PIWIK_ANALYZE_TIMEOUT = 60 * 5 # in seconds
Optional configuration
# Content tracking options. Default: None
# - 'all': track all impressions
# - 'visible': track impressions of visible items only (default refresh: 750 ms)
PIWIK_CONTENT_TRACKING = 'visible'
Testing on local env
$ docker-compose up
$ pip install -r requirements/test.pip
$ pytest
Changelog
4.1.1 (2024-10-25)
- Remove protocol URL in template when enabling tracking (scheme is now provided by
PIWIK_SCHEME
) #289
4.1.0 (2024-04-23)
4.0.0 (2023-11-20)
- [BREAKING] Remove metrics computation with Matomo as a source (cf below) #273
- Replace mongo legacy image in CI #266
- Upgrade test and develop deps #284
Up until this version, metrics were tentatively computed from Matomo for pretty much every object of a udata instance. We found this method to be pretty inaccurate, since Matomo limits the number of records stored to roughly the most visited 1000 for a given "namespace". There's a way around that by using the data from the Live module of Matomo but it's not enabled on our instance for privacy reasons. We also needed to count hits that Matomo could not know of: resources (files) downloads made directly on our server.
Thus, this module now only does three things:
- inject the Matomo tracking code in the templates
- process events for tracking the API usage in Matomo
- process events for tracking some Matomo goals
Metrics computation is now handled by https://github.com/opendatateam/udata-metrics and does not use Matomo as a source.
:warning: Jobs to be unscheduled:
piwik-update-metrics
piwik-current-metrics
piwik-yesterday-metrics
3.1.0 (2021-09-16)
- Change udata-gouvfr dependency to udata-front following renaming #249
3.0.0 (2021-07-07)
- Ensure compatibility with udata-front and removed goals mechanism #245
2.1.4 (2021-05-06)
- Pin influx docker image version to prevent usign Influx v2 #239
2.1.3 (2021-05-05)
2.1.2 (2020-07-03)
- Add specific query for each model metrics #203
2.1.1 (2020-05-20)
- Remove object's id in error log message in order to have a cleaner message #195
2.1.0 (2020-05-12)
- Changed metrics system #185:
- Metrics are now stored into InfluxDB before being injected in udata's objects
- Udata piwik accesses influxDB throught udata-metrics
- The periodic job
piwik-update-metrics
needs to be scheduled in addition to existing jobs, in order to retrieve the views metrics in udata's objects - The command
update-metrics
was added to trigger the metrics injection manually
2.0.2 (2020-04-24)
- [fix] Do not expect a json response from tracking api #192
2.0.1 (2020-04-07)
- Do not expect a json response from tracking api #190
2.0.0 (2020-03-11)
1.5.1 (2019-12-31)
- Fix JS syntax when subscribing to goals #174
1.5.0 (2019-12-30)
- Independant Matomo site ids for front and api tracking :warning: breaking change, you need to set
PIWIK_ID_FRONT
andPIWIK_ID_API
in settings (they can be the same) #173
1.4.2 (2019-12-13)
- Improve detect_by_url error handling #171
1.4.1 (2019-05-15)
- Fix bulk handling of unicode URLs #139
1.4.0 (2019-03-27)
1.3.2 (2019-01-14)
- Add
PIWIK_SCHEME
config support #104
1.3.1 (2018-11-05)
- Ensure JS goals handling waits for
uData
object to be present #91
1.3.0 (2018-10-11)
- Advanced search tracking: display results count and categories (datasets, reuses, organizations) #88
- Lower jobs piriority to
low
#90 - Depends on
udata>=1.6.1
1.2.0 (2018-06-06)
- Simpler and more reliable metrics computation #54
1.1.1 (2018-03-15)
- Handle multiple resources for same url #49
1.1.0 (2018-03-13)
- Refactor
counter.handle_downloads
- fix #1421 - Switch to
flask-cli
and endpoint-based commands (requiresudata>=1.3
) #33 - Expose the new
udata.tasks
endpoint #39 - Expose the new
udata.views
endpoint #41 - Add content tracking options in configuration paramaters #42
1.0.2 (2017-12-20)
- Fix version number
- Fix README on pypi
1.0.1 (2017-12-20)
- Fix packaging issue
1.0.0 (2017-12-19)
- Add (automated) tests against a Piwik instance #20
- Handle download count on latest url for (community) resources #30
0.9.3 (2017-12-11)
- Add a timeout to
analyze()
#19
0.9.2 (2017-12-11)
- Add a timeout to
track()
#18
0.9.1 (2017-01-10)
- Fix build and packaging
0.9.0 (2017-01-10)
- First published release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file udata_piwik-4.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: udata_piwik-4.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.10.0 requests/2.24.0 setuptools/66.1.1 requests-toolbelt/1.0.0 tqdm/4.66.5 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ea20ef195bf4d57136a77b8bb39f7189256394342a7f255e09f708d3014596e |
|
MD5 | c66d5b5e63e6756306c2a20567236208 |
|
BLAKE2b-256 | 8e8d3f000b2dc6bcfea2c673fb1937f5a9e9b8eeef02734f9d19c94af8ec1082 |