Skip to main content

Piwik/Matomo support for uData

Project description

udata-piwik

Join the chat at https://gitter.im/opendatateam/udata

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.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)

  • Fix noscript img protocol #215
  • Add exception raise when analyze's API call fails #230

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)

  • Migrate to python3 🐍 #68
  • Migrate footer snippet to the new footer.snippets hook #157

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 and PIWIK_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)

  • Consolidate and expose default settings #119
  • Process API calls in bulk #120

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 (requires udata>=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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

udata_piwik-4.0.0-py2.py3-none-any.whl (9.7 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page