[Oct-Dec 2013] Matomo 2.0 Development Update!

Contents

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:

piwik_marketplace_client

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:

piwik_plugin_settings

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:

notification

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:

manage_pluins_active_inactive

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!

Enjoyed this post?
Join the 160,000+ subscribers who receive the Matomo Newsletter straight to their inbox every month
Get started with Matomo

A powerful web analytics platform that gives you and your business 100% data ownership and user privacy protection.

No credit card required.

Free forever.

Get started with Matomo

A powerful web analytics platform that gives you and your business 100% data ownership and user privacy protection.

No credit card required.

Free forever.