This is the second in our series of Development Updates. In our last update, we were deep in the middle of our race towards Matomo (Piwik) 2.0. We are now nearing its completion. We’ve accomplished a lot in the last two months, and Matomo 2.0 will soon be out the door.
What we’ve accomplished
Launched the Marketplace
We mentioned the plugin marketplace in our last update. We’ve finally launched it and, more importantly, now use it within Matomo itself. Matomo instances that run Matomo 2.0 will be able to search for and install plugins & themes that are made available on the marketplace:
In order to keep Matomo as lean as possible, we’ve also moved the following plugins from Matomo core to the marketplace:
The PleineLune theme mentioned in the last update has been put on the marketplace.
Improved Extensibility and Developer Friendliness
In order to further enable plugin developers, we’ve been hard at work making Matomo more extensible and developer friendly.
Plugins can create new report visualizations
Matomo comes with a couple different ways to visualize your report data. The default view is a table that pages through report rows. You can also view reports as pie graphs, bar graphs or line graphs. It is now possible for plugins to provide their own custom report visualizations.
As a Matomo user, you’ll be able to install new plugins that let you view your reports in new ways. We’ve already created one new visualization that displays reports as treemaps:
View and download it here.
Allowed plugins to define their own settings
Plugins can now define their own configuration settings. These settings can be specific to individual users or can affect all users, and will automatically be displayed on the Plugin settings admin page:
Command line tool for plugin development
To aid in plugin development, we’ve created a new command line tool. The tool exists in a file called console in the root Matomo directory and can do the following things, each with just one command:
- Generate plugin files (such as the plugin descriptor file, the API.php file, the plugin settings class file etc.) individually so you can start coding right away.
- Generate whole dummy plugins and themes so you can quickly see how to extend Matomo a certain way.
- Generate empty test files for an existing plugin.
- Watch the Matomo log file.
- Run unit and integration tests for all of Matomo or for just one plugin.
To see every available command, run the following command in the root of your Matomo install:
$ ./console list
Allowed plugins to bundle unit and integration tests
We’ve also allowed plugins to bundle their own tests. Plugin developers can now use test driven development to ensure their plugins do what they’re supposed to and have as few bugs as possible.
Changed how plugins archive data
We’ve performed a major clean-up to the code that creates and caches report data. Now, instead of cramming archiving logic into two event handlers, Matomo plugins encapsulate that logic in new Archiver classes. Read this to learn more about archiving and read this to learn more about the Archiver class this.
Improved Usability
Our main focus these last two months has been on the Matomo plugin developer: making more things possible for her/him and making them easier to accomplish. Despite this, we’ve managed to improve Matomo as well.
Notifications
We’ve added a new way for plugins to communicate with the user, called notifications:
These messages are better looking and less intrusive than dialog boxes, and are very easy for plugin developers to create.
Geolocation Accuracy with IP Anonymization
In the past, geolocation of IP addresses was rendered less accurate when used with IP anonymization. But not anymore. Now, if you use IP anonymization, and you set the use_anonymized_ip_for_visit_enrichment
INI configuration setting to 0
, the full IP address will be used in geolocation.
Allow websites to be categorized
We’ve added a new column to the table that stores website information. This column, named type, allows websites to be tagged with a sort of categorization. While this doesn’t seem like much of a change, it is in fact a very important one. It is the first step in making Matomo a platform for tracking anything.
At the moment, Matomo will track visits on websites. But Matomo can be used to track more including user activity on mobile apps or even customer activity in a brick and mortar store. This is one of the directions we will be taking Matomo after Matomo 2.0 is released and this change is the first step on that path.
Improved usability of the plugin & theme listings
We’ve separated active plugins from inactive plugins so you can quickly see which plugins aren’t active and why:
Using first party cookies in the PHP tracker
The PHP tracker now updates client cookies so users of it will have better, more accurate analytics data.
QA Improvements
Finally, we’ve held onto our commitment to strong Quality Assurance and yet again improved our QA suite. Now our tests for the piwik.js JavaScript Tracker are run on Travis, and our entire test suite is run with MYSQLI as well as PDO.
Made sure Matomo works with IE8+
And since we’ve made so many changes in the last couple of months, we decided to extensively test Matomo on IE8 to make sure Matomo 2.0 works like a charm under this browser.
Conclusion
We’ve spent a lot of time making sure plugins can extend Matomo in interesting ways and making sure plugin developers can easily create plugins.
If you’re a plugin developer this means you’ll very soon be able to start making Matomo do new and interesting things!
If you’re a Matomo user this means in a couple months time there’ll be a marketplace brimming with new plugins and themes for you to try!
Hasta la vista, until next time!