This is the second in our series of Development Updates. In our last update, we were deep in the middle of our race towards Piwik 2.0. We are now nearing its completion. We’ve accomplished a lot in the last two months, and Piwik 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 Piwik itself. Piwik instances that run Piwik 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 Piwik as lean as possible, we’ve also moved the following plugins from Piwik 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 Piwik more extensible and developer friendly.

Plugins can create new report visualizations

Piwik 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 Piwik 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 Piwik 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 Piwik a certain way.
  • Generate empty test files for an existing plugin.
  • Watch the Piwik log file.
  • Run unit and integration tests for all of Piwik or for just one plugin.

To see every available command, run the following command in the root of your Piwik 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, Piwik 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 Piwik plugin developer: making more things possible for her/him and making them easier to accomplish. Despite this, we’ve managed to improve Piwik 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 Piwik a platform for tracking anything.

At the moment, Piwik will track visits on websites. But Piwik 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 Piwik after Piwik 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 Piwik works with IE8+

And since we’ve made so many changes in the last couple of months, we decided to extensively test Piwik on IE8 to make sure Piwik 2.0 works like a charm under this browser.

Conclusion

We’ve spent a lot of time making sure plugins can extend Piwik 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 Piwik do new and interesting things!

If you’re a Piwik 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!


Piwik Core Team

Piwik is liberating web analytics by offering an open platform with built-in privacy. Piwik is used on more than 1 million websites worldwide and is translated in 53 languages. The Marketplace enables the community to create innovation in the world of web analytics. Roadmap - Get involved.