Piwik 2.2.0 is a major new release. This release is rated critical. Please update now.

We highly recommend that you upgrade your server to Piwik 2.2.0 today to benefit from design, performance and security improvements in this release.

What’s changed?

  • Piwik 2.2 helps you focus on your data
    • All reports: display as much text as possible before the label becomes truncated (useful when you want to see more data at a glance without having to hover to view the full label)
    • Make Datatables more readable and flatter – we have removed some borders.
    • On the dashboard, the Data Tables and graph icons are now hidden by default and are now available by clicking on the widget footer.
  • New features
    • Event Tracking: track your custom events with Piwik. An event is defined by a Category, an Action, an optional Name and an optional Value. Event Tracking is a powerful feature which can be used for many purposes!
    • Site Search reports are now available in Scheduled email reports and on Piwik Mobile
    • New Websites Groups (available on request) functionality now allows you to group a cluster of websites in the All Websites Dashboard.
  • Security fixes: we would like to warmly thank Security researchers Mateusz Goik and Vivek S. Jadhav for responsibly reporting two XSS security issues in Piwik which are now fixed in 2.2.0.
  • API breaking change for Plugins developers
    • Deprecated the function Schema::dropTables() and DbHelper::dropTables, for the new Db::dropTables()
    • Removed the code that was deprecated in 2.1.0. Learn more.

After You Update

  • Please help us spread the word about Piwik! Maybe you can write about the project on your blog, website, twitter, at conferences, or let your friends and colleagues know what is Piwik.
    Already 1,100,000 websites have liberated their web analytics but we need your help to grow the community!
  • After the update, if you get a white page or the CSS is not working (Piwik appears black and white), see this FAQ.
  • To improve Piwik in your language consider contributing to translations.
  • Use the forums if you have any question or feedback (free support)
  • Contact Piwik Partners for any enquiry, custom development or to learn more about making the most of Piwik (paid support)

New FAQs and User Guides

List of 79 tickets closed in Piwik 2.2.0

  • #3093 Make Dashboard widgets more readable and less busy-looking
  • #4965 Use new device-detector library in Piwik to detect browsers, systems, devices, brands and model
  • #2834 All reports: display as much text as possible before the label is truncated
  • #3810 Create unlimited number of custom variables slots! (we often need more than five)
  • #4843 Send Super Users an email when a new Piwik version is available
  • #4869 Show Site Search reports in Scheduled email reports and Piwik Mobile
  • #4898 Replace “Give us feedback” top menu link with “Help”
  • #4903 Add possibility to run multiple archiver in parallel
  • #4985 Make Datatables more readable and flatter, to let you focus on the data
  • #1169 Plugin can hook on events ‘before’ and ‘after’ other plugins
  • #2935 Write Installer/Updater screenshot tests
  • #4690 Introduce AngularJS to Piwik, first step: Website Selector rewrite
  • #4692 Introduce AngularJS to Piwik Platform: rewrite All Websites selector to use AngularJS
  • #4739 move UI unit tests away from PHP code and run directly in phantomjs w/ jasmine testing framework
  • #4796 Piwik will now use Semantic Versioning 2.0.0
  • #4878 VisitFrequency API: read pre 2.0 data
  • #264 Developer doc: script to auto generate list of available hooks in piwik
  • #2981 Loading Goal reports calls the API with segmentation which can be slow and should be pre-processed
  • #4189 UI unit tests
  • #4877 Add possibility to send feedback to the Piwik team in-context
  • #4899 Move language selector for logged in users to user settings
  • #4720 Date range show too many visitors when you include today
  • #3606 Continuous Integration server improvements
  • #4116 create & use API for coding UI controls that spans PHP/JavaScript
  • #4357 Post Event only to activated plugins
  • #4795 linking to #hash tag does not work after merging AngularJS
  • #4924 Allow Plugin Settings to be loaded within Tracker flow
  • #4942 Remove deprecated methods from code base
  • #4958 Deprecate API CoreAdminHome.getKnownSegmentsToArchive
  • #4959 Piwik Debian Package blog post
  • #4986 New template hooks to inject content from themes: Template.beforeTopBar, Template.beforeContent, Template.footer
  • #4991 API BREAKING: Deprecated the function Schema::dropTables() and DbHelper::dropTables, for the new Db::dropTables()
  • #2174 Show Websites by Group in ‘All websites’ dashboard
  • #3870 Calculate number of returning unique visitors
  • #4777 When period=range, exporting data below an evolution graph should export data per day
  • #4966 When API_datatable_default_limit=-1 in the config, ‘Export as’ should export all rows
  • #4967 When a plugin requires a max Piwik core version, disable the plugin on update
  • #4659 Custom Events should not trigger a conversion for Goal defined as matching an “Outlink”
  • #4687 Notice: Undefined offset: Y in core/DataArray.php on line 109
  • #4773 problem with puppet in vagrant
  • #4780 Scheduled Tasks/Cron stopped working
  • #4786 import_logs.py doesn’t acknowledge azw3 as download
  • #4817 Importing logs with –login and –password option doesn’t work in 2.1.0
  • #4824 Detect when shell_exec() has been disabled and use HTTP API instead
  • #4828 Column not found: 1054 Unknown column ‘log_conversion_item’ in ‘field list’
  • #4830 Class ‘\Piwik\Db\Schema\’ not found
  • #4833 Add new segment button not working in FF-27.x
  • #4856 Overlay: overwriting the API endpoint with setAPIUrl does not work in JS
  • #4857 when browser_archiving_disabled_enforce=1 the Auto archiver will not process the VisitFrequency reports
  • #4873 when Live plugin is disabled, do not show error in Segment value auto-suggest
  • #4886 When Provider plugin not installed yet: Mysqli error: Unknown column ‘log_visit.location_provider’ in ‘field list
  • #4909 Edge case: page view and ecommerce conversion tracked in the same second create wrong visitEcommerceStatus
  • #4926 When Real time map is loaded over https, it does not always load the SVG files over ssl
  • #4928 Notice: Trying to get property of non-object in ExampleRssWidget/RssRenderer.php
  • #4934 Log Analytics: import_logs does not work on windows (updatetoken.php fail)
  • #4938 piwik.js: setCustomVariable should not throw error when value is undefined
  • #4948 Warning: substr_compare(): The start position cannot exceed initial string length
  • #4951 Installation requirements incomplete
  • #4955 Undefined index: argv in …./core/CronArchive.php on line 894
  • #4957 Archiving should work on Synology NAS devices
  • #4961 not checked type of return value in \Piwik\Plugin\Manager::deactivateThemeIfTheme
  • #4962 Installer fails when php5-json isn’t installed.
  • #4963 Actions -> Pages export fail
  • #4974 htmlspecialchars(): Invalid multibyte sequence in argument vendor/twig/twig/lib/Twig/Extension/Core.php on line 968
  • #4999 Call to undefined function twig_lower_filter()
  • #5004 setSuperUserAccess overwrites login with any super user login
  • #4723 Update JQuery & JQueryUI
  • #1902 Piwik on Windows: SQL Server, Azure, Wincache
  • #2747 Changing super username
  • #3116 E-Commerce Reports should not aggregate data to -1
  • #3220 PHP API has an effect on Piwik option piwikUrl
  • #3749 Actions plugin has to be enabled for Visitor overview to work
  • #3873 Cannot create user with apostrophe in email address
  • #4508 htaccess rule causing geoip file to be 403 unloadable
  • #4513 Real time map animation for new visitors is not displayed anymore
  • #4747 Same chart on reports for multiple domains
  • #4781 Bad link for Segment Editor API
  • #4820 Not using $PHP_BIN for running php Scripts inside archive.sh
  • #4854 No “Add” button initially in Trusted Piwik Hostname settings