Recently, we released a powerful set of new APIs to track visitors, page views and goal conversions: Matomo (Piwik) Tracking APIs
- Simple Image Tracker
- Matomo Tracking API
You can call the Matomo Tracking API using your favorite programming language, over HTTP.
Matomo comes with the PHP Client ready to use, providing a very easy way to track visits, page views, goal conversions, and also set Visitor details (user agent, language, URL, Referer URL, etc.).
Clients for Perl, Python, Java or Ruby will hopefully be contributed by Matomo users in the future. Please let us know if you are interested to contribute your client.
- Advanced Image Tracker
The PHP Client can send direct requests to the Matomo API, but it can also generate an advanced image tag. The advanced image tag requires to be loaded in an HTML context.
Tracking API documentation
Learn more about tracking data using the new APIs in the official documentation: Matomo Tracking API documentation.
How Matomo used the new API to improve code quality and stability
We have made great progress recently regarding our Quality Assurance effort.
Using the new Tracking APIs, we added automated tests that
- create website and goals
- generate controlled hits to the Tracker
- tracking pages
- some of which have excluded URL parameters
- tracking clicks and downloads
- tracking Goals
- matching URLs
- for several days
- for several websites
- with custom referers (direct entry, websites, search, campaigns)
- with custom browsers and OS
- tracking pages
- generate hits with invalid states
- excluded IPs
- invalid websites
- simulate search bot visits
- Using the Metadata API, we get the list of all Analytics Reports API functions available in Matomo.
We then call each function over http, and record the output XML containing the API output.
- We check that the returned XML is the same as the expected XML.
Using these set of tests, we are now able to detect very easily any regression introduced in the Tracking, Archiving or API code.
Tests now run continuously on Jenkins, our build server. Learn more about our QA process and efforts
Please let us know what you think in the comments.