Neos Matomo Package
Track visits of your Neos site with Matomo (Piwik) Open Analytics Platform!
This package integrates the
Matomo Open Analytics Platform into Neos and is also compatible with older
- adds a Backend Module to your Neos instance which helps checking your configuration
- adds a tab to the Property Inspector, which shows time, device, OS and browser related statistics collected by Matomo
- adds a customizeable content element which allows visitors to opt-out of tracking in the frontend
- Matomo Tag Manger support
Initially this package was called
portachtzig/neos-piwik. Thanks to the creators @koernchen02 and @sarahRehbock for all their work!
Matomo - Open Analytics Platform https://matomo.org/
- cURL php extension for api calls
- Neos CMS >= 3.3
- Matomo >= 3.3
- A Matomo instance that is reachable via https
- A Neos Backend User with the Role Neos.Neos:Administrator
Compatibility with older versions
The version 2 of this package is still compatible with Piwik instances but might at some point not work anymore when Matomo gets a bigger update.
Always check that your tracking software is up-to-date and use the latest releases of this package if possible.
Run the following command in your site package
composer require --no-update flowpack/neos-matomo
composer update in your project root.
Instead of requiring
portachtzig/neos-piwik you should now require
flowpack/neos-matomo in your
Also if you use or override
Portachtzig.Neos.Piwik:StatsTabMixin you'll have to change the naming
in your own NodeType configurations to
In your configuration file you have to change the path
Portachtzig: Neos: Piwik:
Flowpack: Neos: Matomo:
Also we added caching for the api requests. Therefore by default the statistics will be kept up to 5 minutes before a refresh occurs.
After the package has been installed, there will be an additional Backend Module in Neos, called "Matomo". Depending on your current FLOW_CONTEXT you might want to flush the cache.
To connect Neos with your Matomo installation you just have to enter some properties
Settings.yaml to track your user's statistics. You can have the configuration in your site package
or add it during deployment.
You can also use the included backend module then to verify your configuration.
host Enter your Matomo installations hostname without protocol.
host You should always have your Matomo installation configured with https, but you can change it for testing purposes.
token_auth You have to enter a valid auth token of a Matomo user who has the
viewpermissions for the configured site.
idSite You have to enter the id of the site you configured in Matomo. This is also needed when using Matomo Tag Manager to allow showing statistics in the backend.
containerId You have to enter the id of the tag manager container you configured in Matomo. Here you can also use the longer ids generated for dev & staging environments.
apiTimeout You can change the default timeout of 10 seconds after which the backend will cancel requests to your Matomo installation.
This is an example of how it can look:
Flowpack: Neos: Matomo: host: 'tracking.example.org' protocol: 'https' token_auth: 'abcdefg1234567890' idSite: 1 containerId: 'abcdef' # Optional apiTimeout: 10 cacheLifetimeByPeriod: year: 86400 day: 3600
Tracking Opt-Out content element
This package provides a small configurable iframe content element for Neos which allows users to manually opt out of the tracking if "Do-Not-Track" is not enabled in their browser. The content of the iframe is loaded from the configured tracking host.
You can adjust all settings that Matomo offers via their API.
API request caching
By default the requests to the Matomo API will be cached depending on the period of the stat that is being checked. Some information is shown based on a period of a year. Here we use a default timeout of 1 day. Other stats are for one to several days. Here the preset for the timeout is 1 hour.
The timeouts by period can be overriden in your
Settings.yaml. See the example above.
You can override the cache backend settings of this package in your own
FlowpackNeosMatomo_ApiCache: backend: Neos\Cache\Backend\FileBackend backendOptions: defaultLifetime: 300
And if you don't want caching at all, just use the backend
Neos\Cache\Backend\NullBackend instead of the
Accessing the Matomo API
You can access the Matomo API through this package by injecting the
You can then use the public method
callAPI($methodName, $arguments = , $useCache = true) to call any API method
of Matomo and you will get the json decoded response as array.
Some methods will need specific user permissions, if your tokens user doesn't have them a error message will be in the
Multi site compatibility
The Matomo site id and token in the
Settings.yaml can also be defined as array and this way you can configure as many sites
as you want. The plugin will then check for the current sites nodename in this array.
If no matching site is found, the first entry will be used.
See this example with one token but several sites:
Flowpack: Neos: Matomo: host: tracking.example.org token_auth: 12345678910 idSite: myfirstsite: 1 mysecondsite: 2 mythirdsite: 2
And the same when used with tag manager:
Flowpack: Neos: Matomo: host: tracking.example.org token_auth: 12345678910 idSite: myfirstsite: 1 mysecondsite: 2 mythirdsite: 2 containerId: myfirstsite: 'abc' mysecondsite: 'def' mythirdsite: 'ghi'
Neos Matomo Package is released under the GPL v3 (or later) license.
Backend view with selected Matomo Panel in the Property Inspector
visits per day in the last month
visits per day in the last week
all time visits and page views (hits) of the selected page
visits per browser (all time)
visits per os (all time)
visits per device category (all time)