We are proud to announce the latest and greatest Piwik 2.16.0!

What’s new?

Piwik 2.16.0 is a release which includes more than 250 closed issues. To learn about the most important and visible changes, read our blog post: What’s new in Piwik 2.16.0?

This release is our Long Term Support release.

263 tickets have been closed by more than 30 contributors!

After You Update

  • Use the forums if you have any question or feedback (free support),
  • Please help us spread the word about Piwik! Maybe you can write about the project on your blog, website, twitter, talk about Piwik Analytics at conferences, or let your friends and colleagues know what is Piwik. Already 1,000,000+ websites have liberated their web analytics, and with your help we can grow the community!
  • To improve Piwik in your language consider contributing to translations,

Database upgrade

This release does not contain any major database upgrade.

Security release

This release is rated critical.

We have internally identified and fixed a XSS issue in Piwik. We highly recommend you to upgrade to this latest version. Learn more about how we keep Piwik secure.

Platform Changes

Piwik is an open analytics platform. In an effort to help Piwik developers learn about improvements and changes in the core APIs, we document the changes since the last release.

In this 2.16.0 release there are New features, New APIs, New commmands, Internal changes.

Read more in Platform Changelog for Developers to see all changes to the platform and APIs (you can also find it in the CHANGELOG.md in the root of your Piwik).

Note: the Marketplace showcases more than 57 plugins extending Piwik but we think this is just the beginning!

New and updated guides and FAQs

List of 263 tickets closed in Piwik 2.16.0

    piwik/piwik
  • #7411 Let me view all visitors who reached a specific goal via a link in all Goal reports
  • #9521 Allow any plugin system setting to be overwritten in the config file [by @tsteur]
  • #4314 Don’t let “admin” users see all other users in Piwik [by @tsteur, @mattab]
  • #9299 Multiple visits with each pageview when “/?pk_campaign” is used [by @tsteur]
  • #9192 No data in segmented visitor log for urls with ampersand [by @tsteur]
  • #8834 Publicise the LogViewer plugin [by @mattab]
  • #9526 Administration > Diagnostics > Config file lets Super User view all config values in the UI [by @tsteur, @mattab]
  • #9501 New segment DeviceBrand [by @sgiehl]
  • #9314 New segment: ActionType [by @tsteur, @mattab]
  • #9224 Add new segment ActionUrl [by @tsteur]
  • #9129 Custom Dimensions: making Custom Variables more powerful and easier to use [by @tsteur, @danmichaelo]
  • #9124 Adding new command config:set command to set INI config [by @diosmosis, @mattab]
  • #9068 Add Ability to Export ALL Records (new ‘all’ option in the Row limit selector)
  • #8076 New segment operators: “Starts with” and “Ends with” [by @tsteur]
  • #7213 Display the “Segmented Visitor Log” icon in sub-tables reports [by @diosmosis, @sgiehl]
  • #6766 Let Super User view and edit segments created by other users [by @mattab]
  • #9088 Piwik compatible with old Mysql 4.1 (cannot connect to DB since 2.15.0) [by @Joey3000]
  • #9082 Allow switching to 24h format for languages with AM/PM formatted timestamps as default [by @mattab]
  • #9428 when “Only track visits and actions when the action URL starts with one of the above URLs” is enabled for a website, action URLs on an Alias URL subdomain will not be tracked anymore
  • #9316 Running core:delete-logs-data with option –no-interaction doesn’t do anything
  • #9174 Improvements to search engine and social network detection [by @sgiehl, @mattab]
  • #8469 ./console customvariables:set-max-custom-variables should run in no interaction mode [by @sgiehl]
  • #6761 Events reports: option to view all columns: min, max and avg values [by @tsteur]
  • #4114 Number format thousands, decimal, abbreviate large numbers l10n
  • #9358 Exclude unknown urls: Check whether known URL starts with path if one is defined, do no longer match subdomains [by @tsteur, @mattab]
  • #9357 API response may include more unique visitors than actions [by @tsteur]
  • #9194 segment counts more conversion than All visits segment [by @tsteur]
  • #8813 VisitorMap sometimes does not show data when segment parameter is used and URL encoded [by @tsteur]
  • #6642 MySQL 5.7+ support [by @mattab]
  • #9341 JavaScript tracker code should be added immediately before the closing </head> section [by @mattab]
  • #9573 Themes: make currently selected menu item colors themable [by @tsteur]
  • #8128 Custom variables report bug – missing visits sum [by @mattab]
  • #6741 Add a command to generate a UI test for plugins
  • #9258 Allow to profile all archiving subrequests: forward PHP CLI parameters to CLI subrequests [by @tsteur]
  • #8546 Introducing Long Term Support for Piwik 2.X
  • #9379 Admin users don’t see all users but can now “Give an existing user view access” by entering the username [by @tsteur, @mattab]
  • #9320 When a path is specified in a website URL, Piwik will consider the path during tracking [by @tsteur, @mattab]
  • #9226 New API to create custom SMS providers in Piwik plugins [by @tsteur, @mattab]
  • #9143 New report ‘Personal settings > Custom Variables’ displays custom variable usage [by @tsteur, @mattab]
  • #9051 Release AnonymousPiwikUsageMeasurement plugin on the Marketplace [by @mattab]
  • #8393 apostrophe/single quote bug when showing ‘row evolution’ in ‘page titles’ section [by @sgiehl]
  • #7423 Only link to plugin MultiSites, if MultiSites is actually enabled
  • #9570 Show a warning when Piwik is used as a SuperUser via HTTP [by @ashleighpearson, @mattab]
  • #9535 Remove seeding in random number generator [by @Joey3000, @tsteur]
  • #9160 No error message is shown when a plugin fails to be installed
  • #7219 No data message in subtable renders too many columns
  • #9567 Google Publisher Plugin bot crawler isn’t excluded from visits
  • #9478 Adds “Segmented Visitor Log” icon to more reports and subtables [by @sgiehl]
  • #9432 Allow zoom to country in realtime visitor map [by @cyberbeat, @tsteur]
  • #9412 Add a direct link to “Create Goals” when website has had no visitor yet [by @sgiehl]
  • #7264 Warning – imagecopyresampled() expects parameter 2 to be resource
  • #6737 Update(s) available message for Plugins update may display several times [by @tsteur]
  • #9524 Query generated by Live plugin can be slow for large date ranges [by @tsteur]
  • #9329 Check whether string actually contains value to prevent from copying the string to reduce memory usage [by @mattab]
  • #9296 Transition and Overlay does not work when site-url contains &
  • #9112 Made Last Seen more human readable [by @ritvikgautam, @tsteur]
  • #9155 Close button icon in popovers has poor contrast [by @RobotHoboDanceParty, @tsteur, @mattab]
  • #9026 Improve design of Transitions – No data message [by @tsteur]
  • #8869 Favicon is unsharp / blurry on MacBook Retina displays [by @mattab]
  • #9603 Use username consistently instead of login [by @ashleighpearson, @mattab]
  • #9489 Visitor profile summary uses many different styles [by @tsteur]
  • #9436 Automatically reload the “No data has been recorded yet” page as soon as data has been tracked
  • #9398 Do not load a report by dimension as a widget so it remembers last used report settings [by @tsteur, @mattab]
  • #9266 In Popover, show the full title in a tooltip on hover on the title [by @sgiehl]
  • #9178 manage plugins: Link to Plugin Hompage opens in same browser tab [by @tsteur]
  • #9145 When the page is loaded over HTTPS but Piwik thinks it is loaded over HTTP, explain in a notification how to solve issue [by @tsteur]
  • #9025 Include the current site in the web site selector drop-down
  • #8569 in the website selector display tooltip with full website name [by @tsteur]
  • #9593 Make Search bar more accessible [by @RobotHoboDanceParty, @tsteur]
  • #9591 Tooltip on user icon for anonymous user should not say “Personal email report” [by @ashleighpearson]
  • #9577 Make Calendar usable with keyboard
  • #9571 ‘Escape key’ should collapse any expanded menu [by @Gabriel-Bowater, @tsteur]
  • #9562 Make Piwik usable with keyboard: implement proper tabindex order
  • #9560 Added aria-label to menu element. [by @nstallinger, @tsteur]
  • #9556 Page titles should include the date and period [by @RobotHoboDanceParty, @tsteur]
  • #9550 ‘Skip to main content’ should move cursor to the selectors bar
  • #9309 Improving SR readabilty of users’ menuitem in topBar [by @tassoman, @tsteur]
  • #9161 Automate some management of open source repos
  • #9148 Add WAI-ARIA features to main menu for better accessibility
  • #9480 Standardize password hash function usage [by @Joey3000, @tsteur]
  • #9470 Document need to call setApiUrl() in js/README.md [by @Joey3000, @tsteur]
  • #9321 Minor changes to Installation > Create Super User step for German users [by @sgiehl]
  • #7747 Make website manager take 100% of width [by @tsteur]
  • #7284 visitor-map.js calculating wrong height [by @sgiehl]
  • #7181 Report archives have tripled in size since update to 2.10 [by @diosmosis]
  • #5389 Visitor Log: move number of page reloads “3X” next to the action title
  • #3325 Support for POST in Piwik_Http::sendHttpRequest [by @tsteur]
  • #9587 New less variable for widget backgrounds and border. [by @RobotHoboDanceParty, @tsteur]
  • #9364 Make PHP tracking client PiwikTracker available through composer [by @JohnMaguire, @tsteur]
  • #9237 Profiler: allow to use either Xhprof PHP extension or locally built Xhprof from composer [by @mattab, @tsteur]
  • #9163 Remove SQLite dependency in tracker tests [by @tsteur]
  • #9632 Replace some characters in Email subject and Email attachments filename [by @mattab]
  • #9610 total time of visit is not the sum of times of page visits [by @tsteur]
  • #9584 The string CustomDimensions_IncreaseAvailableCustomDimensionsTitle was not loaded in javascript. Make sure it is added in the Translate.getClientSideTranslationKeys hook. [by @tsteur]
  • #9583 average time on page determined by using unique pageviews
  • #9575 Low clickthrough causes overlay to show 0% for links [by @mattab]
  • #9528 Mysql 5.7: The MySQL server is running with the –secure-file-priv option so it cannot execute this statement: LOAD DATA INFILE
  • #9504 Visit times could be more accurate when using the heartbeat timer Ping feature
  • #9493 Diagnostics RecommendedExtensionsCheck on HHVM 3.11 [by @tsteur]
  • #9481 Do not overwrite piwikUrl when host is localhost
  • #9447 Fixes escaping in tag clouds [by @sgiehl, @tsteur]
  • #9422 Giving view access to a user does not work when using another case [by @tsteur]
  • #9419 MySQL 5.7+ SQLSTATE[HY000]: General error: 2006 MySQL server has gone away – caused by plugin Actions [by @tsteur, @mattab]
  • #9418 Minimum event value” metric is not displayed in the Actions>Events report [by @mattab]
  • #9407 Login may fail with un-helpful message “Form security error” when SSL is mis-configured
  • #9393 “greater than” or “less than” symbol are html encoded (“&gt”,”&lt”) not url encoded (“%3e”,”%3c”) when put into bulk request
  • #9384 Visitor Log Link in Real Time Visitors Widgets results in page without title [by @sgiehl]
  • #9376 UsersManager might show an error when having only view access to current selected site
  • #9375 UsersManager: Website Selector lists websites with only view access [by @tsteur]
  • #9371 Wrong display resolution (Android) [by @tsteur]
  • #9365 Date range translations broken for some languages [by @sgiehl]
  • #9361 Goal revenue not accurately reported in Live.getLastVisitsDetails API [by @tsteur]
  • #9306 Tooltip with current selected segment may not show correct segment definition [by @tsteur]
  • #9298 DB: when unix_socket is used, do not use host and port [by @florisluiten, @tsteur]
  • #9260 Referrer name and keyword may be truncated after 255 bytes
  • #9257 When pk_campaign = (utm_campaign =) is used, which is utf-8, string will cut 70 “bytes” without boundary. [by @mattab]
  • #9247 Doubled meta robots tag [by @tsteur]
  • #9244 Warning: Invalid argument supplied for foreach() in Tracker/Visit/ReferrerSpamFilter.php [by @mattab]
  • #9239 In 2.15 archiving parameter –force-date-last-n=”11″ have no effect if there are no new visits since midnight [by @mattab]
  • #9209 Console generator: Do not automatically convert first character to uppercase [by @tsteur, @mattab]
  • #9201 RequestProcessors are used even if the plugin is not installed yet [by @tsteur]
  • #9171 generate:plugin should control the name provided against an appropriate regex [by @tsteur]
  • #9130 if JSON2 is not defined correctly, do not use it in piwik.js [JSON2.stringify is not a function] [by @tsteur]
  • #9125 piwik.js – throws error when used in xulrunner [by @tsteur]
  • #9117 Warning – strpos() expects parameter 1 to be string [by @tsteur]
  • #9090 SettingsServer.php – in_array() expects parameter 2 [by @tsteur]
  • #9087 Archive run fails after update to the latest stable version (when using LoginHttpAuth plugin) [by @diosmosis]
  • #9065 “Check for updates” does not check for plugins updates on Marketplace [by @tsteur]
  • #9052 Invalid time format for column visitor_localtime when importing MySQL data into MSSQL [by @mattab]
  • #9046 Let Live.getVisitorProfile http API return more than 10 visits (new parameter &limitVisits=X) [by @tsteur]
  • #8855 Summary in Visitor Profile does not show details of non-pageviews actions
  • #8721 HTTPS gives all IP’s 0.0.0.0
  • #6623 Column not found location_provider – Alter ignore was removed in MySQL 5.7.5
  • #9596 How do I install a new theme in Piwik?
  • #9370 Document better our “Track only visits for defined URLs” feature in FAQ
  • #9186 Document how to Upgrade Piwik without losing any tracking data
  • #9640 [automatic translation update] Updated 1064 strings in 49 languages (cs, it, pt-br, sv, lt, ar, be, bg, bs, ca, da, de, el, es, et, eu, fa, fi, fr, gl, he, hi, hr, hu, id, ja, ko, lv, nb, nl, nn, pl, pt, ro, ru, sk, sl, sq, sr, ta, te, th, tl, tr, uk, vi, zh-cn, zh-tw, am) [by @sgiehl]
  • #9548 [automatic translation update] Updated 181 strings in 24 languages (de, el, pl, sv, cs, pt-br, nb, bg, da, es, et, fi, fr, hi, it, ja, nl, ro, ru, sr, tl, vi, zh-cn, tr) [by @sgiehl]
  • #9454 [automatic translation update] Updated 110 strings in 43 languages (nb, tr, ar, bg, bs, ca, cs, da, de, el, es, et, fa, fi, fr, he, id, it, ja, nl, pl, pt-br, pt, ro, ru, sq, sr, sv, ta, th, tl, vi, zh-cn, hi, hu, ko, be, lt, lv, nn, sk, uk, zh-tw) [by @sgiehl]
  • #9394 [automatic translation update] Updated 603 strings in 10 languages (nb, hu, fr, ko, cs, el, it, pt-br, ru, de) [by @sgiehl]
  • #9325 [automatic translation update] Updated 215 strings in 10 languages (tr, cs, de, el, it, ja, pt-br, sl, ko, fr) [by @sgiehl]
  • #9222 [automatic translation update] Updated 636 strings in 12 languages (ko, nb, cs, de, el, fr, it, pt-br, ru, sk, tr, lt) [by @sgiehl]
  • #9153 [automatic translation update] Updated 270 strings in 22 languages (bg, cs, da, de, el, es, fi, fr, id, it, ja, ko, nb, nl, pl, pt-br, ru, sk, sl, sq, sr, sv) [by @sgiehl]
  • #9047 Changed PHP 5.3 support message to more generic “next major version” … [by @sarelvdwalt, @tsteur]
  • #8211 PhpStorm code style: switch to PSR-2 [by @mattab]
  • #9559 Add meaningful tooltip on the calendar selector [by @ashleighpearson, @mattab]
  • #9486 Allow up to 63 characters TLD in email address [by @sebastianpiskorski, @tsteur]
  • #9455 Fix function header (comment only) [by @Joey3000, @sgiehl]
  • #9439 Update Bundle of CA Root Certificates in Piwik, and add Let’s encrypt cert (cacert.pem) [by @mattab]
  • #9414 Fixes jumping effect in dashboard on widget hover [by @sgiehl, @tsteur, @mattab]
  • #9413 README: adding badges [by @spekulatius, @mattab]
  • #9385 Removed DB::tableExists method [by @mattab, @sgiehl]
  • #9356 CA Root Certificates must be updated for “Let’s encrypt”
  • #9297 Unrecognized browser
  • #9280 Make sure local time has valid time format [by @mattab, @tsteur]
  • #9279 –force-date-last-n should really force archiving, even if there was no visit recently [by @mattab]
  • #9278 Make transition and overlay row actions extendable by other plugins [by @tsteur, @mattab]
  • #9275 Limit the length of the plugin name when generating a plugin [by @halfdan, @tsteur]
  • #9272 Omnifixture Update for automated UI screenshot tests [by @sgiehl, @mattab]
  • #9269 Get rid of file_get_contents everywhere, also in tests
  • #9156 New config setting to disable the creation of New visits after midnight [by @peterbo, @mattab]
  • #9144 when PHP is 5.4, display a warning message notifying users to upgrade to PHP 5.5 [by @mattab, @tsteur]
  • #9141 Pull requests by community members: build artifacts should upload to our artifacts server
  • #9137 Make sql_mode compatibile with MySQL 4.1 [by @Joey3000, @mattab]
  • #9126 Attach official release package to GitHub releases
  • #9114 can not run tests as the table does not exist!
  • #8978 Widget: Plugins now work for IE11 [by @sgiehl, @mattab]
  • #8835 Use new travis infrastructure for travis tests [by @diosmosis]
  • #8802 Clarify meaning of “Search Result Pages” and search_count
  • #8695 Automatically run test against minimum/maximum supported Piwik version defined in plugin.json [by @tsteur]
  • #8501 In Visitor profile, some text displays out of the lightbox window [by @sgiehl]
  • piwik/piwik-log-analytics
  • #122 Added HTTP Basic access authentication via –auth-user and –auth-password [by @sgjava, @tsteur, @mattab]
  • #125 Parse the user in common log formats & derived formats. [by @diosmosis, @mattab]
  • #118 Avoid Python stdin buffering [by @antoninblanc, @mattab]
  • #110 Issue when generation_time_milli is 0 [by @gregoire-astruc, @mattab]
  • #16 import_logs.py doesn’t support Unicode characters with json format [by @diosmosis]
  • #4 Make import_logs.py IPv6 compatible for W3c extended / IIS log formats with tests [by @diosmosis, @mattab]
  • piwik/device-detector
  • #5419 Adds detection for new browser Brave [by @sgiehl]
  • #5415 Add detection for Google Publisher Plugin [by @sgiehl]
  • #5413 Adds detection for Mecer tablets [by @sgiehl]
  • #5412 Adds detection for Star devices… [by @sgiehl]
  • #5411 Adds detection for some ZTE devices [by @sgiehl]
  • #5410 Improves detection of HiSense devices [by @sgiehl]
  • #5409 Detection improvements for some devices [by @sgiehl]
  • #5408 Adds detection for Zeemi devices [by @sgiehl]
  • #5407 Adds detection for Goly devices [by @sgiehl]
  • #5406 Adds detection for Koridy devices [by @sgiehl]
  • #5405 Adds detection for various devices [by @sgiehl]
  • #5414 Detection improvements [by @sgiehl]
  • #5402 Adds detection for Bush devices [by @sgiehl]
  • #5401 Detection improvements for TVs [by @sgiehl]
  • #5400 Adds detection for ‘PHP Server Monitor’ [by @sgiehl]
  • #5397 Adds detection for iOcean, MEEG & KOPO devices [by @sgiehl]
  • #5396 Adds detection for GOCLEVER devices [by @sgiehl]
  • #5395 Adds detection for various brands and devices [by @sgiehl]
  • #5394 Adds detection for Hosin & Pomp devices [by @sgiehl]
  • #5393 Adds detection for Noain devices [by @sgiehl]
  • #5392 Adds detection for ThL devices [by @sgiehl]
  • #5391 Adds detection for Ouki devices [by @sgiehl]
  • #5390 Adds detection for EverTek’s EverSmart & EverStar [by @sgiehl]
  • #5386 Add detection for Coc Coc browser [by @hongquan, @sgiehl]
  • #5385 Detect bot WebSitePulse [by @sgiehl]
  • #5381 Added tests for the New Xbox One Experience [by @nickurt, @sgiehl]
  • piwik/referrer-spam-blacklist
  • #260 Added traffic-cash.xyz [by @spmedia, @mnapoli]
  • #256 Add top1-seo-service.com
  • #247 Added годом.рф [by @spmedia, @mnapoli]
  • #245 Add share-buttons.xyz [by @appeltauer, @mnapoli]
  • #244 Add с.новым.годом.рф
  • #242 Add site-70831006-1.snip.tw
  • #241 Add snip.tw [by @appeltauer, @mnapoli]
  • #240 Add 2your.site [by @mnapoli]
  • #238 Add trafficgenius.xyz [by @appeltauer, @mnapoli]
  • #237 Add for-your.website [by @appeltauer, @mnapoli]
  • #236 Add website-analyzer.info [by @appeltauer, @sgiehl]
  • #235 Add http://www.traffic2cash.xyz
  • #231 Add uptimechecker.com [by @appeltauer, @mnapoli]
  • #230 Add onlinetvseries.me [by @appeltauer, @mnapoli]
  • #228 Cleanup 7 subdomains [by @lembitk, @mnapoli]
  • #226 Adding traffic2cash.xyz [by @brodjustice, @mattab]
  • #225 Added w3javascript.com [by @spmedia, @mnapoli]
  • #224 Add nufaq.com [by @PickledDragon, @mnapoli]
  • #223 Added hdmoviecamera.net [by @spmedia, @mattab]
  • #220 add 1webmaster.ml [by @mnapoli]
  • #218 Add cyber-monday.ga [by @kkkrist, @mnapoli]
  • #217 Add nginx configuration instructions [by @pastudan, @mattab]
  • #215 Add dktr.ru [by @hubdotcom, @mnapoli]
  • #212 Add googlemare.com [by @appeltauer, @mnapoli]
  • #208 Add fast-wordpress-start.com [by @appeltauer, @mnapoli]
  • #206 New referrer spam from top1-seo-service.com [by @mnapoli]
  • #205 Add lsex.xyz [by @spmedia, @mnapoli]
  • #204 Add santasgift.ml [by @spmedia, @mnapoli]
  • #203 top1-seo-service.com new suggestion [by @mnapoli]
  • #202 Add rusexy.xyz [by @spmedia, @mnapoli]
  • #200 Add hosting-tracker.com [by @PickledDragon, @mnapoli]
  • #198 Add a CONTRIBUTING guide [by @mnapoli, @mattab]
  • #197 Add o-o-8-o-o.com to spammers.txt [by @victormours, @mnapoli]
  • #196 Update spammers.txt [by @curtash, @mnapoli, @eka7a]
  • #193 Add black-friday.ga [by @yguedidi, @mnapoli]
  • #191 Add ranksonic.net [by @yguedidi, @mnapoli]
  • #190 Add quit-smoking.ga
  • #189 Add cyber-monday.ga
  • #187 Add adf.ly [by @brodjustice, @mnapoli]
  • #184 Add scripted.com [by @zodthepossum, @mnapoli]
  • #137 Update for snip.to and get-your-social-buttons.info [by @PickledDragon, @mattab]
  • #136 Add wordpress-crew.net [by @fvdm, @mattab]
  • #130 Added copyrightclaims.org [by @lucavix, @mnapoli]
  • #129 Add alibestsale.com
  • #128 Add dbutton.net [by @appeltauer, @mattab]
  • #127 Add alibestsale.com [by @appeltauer, @mnapoli]
  • #114 Add pizza-imperia.com [by @micressor, @mnapoli]
  • #107 Added sitevaluation.org [by @fmorenoper, @mattab]
  • #89 Add yourserverisdown.com [by @samwaterston, @mnapoli, @mattab]
  • #84 www.acunetix-referrer.com [by @lembitk]
  • #79 Add burger-imperia.com [by @micressor, @mattab]
  • #77 Add blogtotal.de [by @sebastianbaar, @mattab]
  • #75 Add clicksor.com [by @rolandinsh, @mattab]
  • #26 Peer review process for referral spam hosts [by @mnapoli]
  • piwik/piwik-php-tracker
  • #17 deleteCookie() method should set the correct expiry [by @sgiehl, @mattab]
  • #15 Added possibility to set any custom tracking parameters for 3rd party plugins [by @tsteur, @mattab]
  • #13 add compatibility with PSR-1/PSR-2 standards [by @igorRovenki, @tsteur]

Did you know you can get involved in the project? Piwik needs you to create the best open analytics platform!