Piwik 1.2 is a significant update that fixes bugs and adds new features, including first party cookies and custom variables.

It contains many database schema changes so please be careful when running the Update script, do not click multiple times and give it some time to finish. On large Piwik setups, make sure to run the Update Script from the Shell!

Please read the notes below. Enjoy!

Breaking Changes in the JS API

  • The deprecated JavaScript API methods setDownloadClass() and setLinkClass() have been removed. Please use setDownloadClasses() and setLinkClasses(), respectively (introduced in Piwik 0.4.2). setCustomData was also deprecated, you can now use setCustomVariable
  • The configuration setting, “reverse_proxy”, has been renamed to “assume_secure_protocol”. If your config/config.ini.php contains “reverse_proxy=1″, simply change this to “assume_secure_protocol=1″.
  • Deprecated setting “use_first_referer_to_determine_goal_referer” which is now a JS API method (see setConversionAttributionFirstReferrer() in conversion attribution js doc)

See also the new FAQs & How to:

After You Update

  • You may notice an uptick in unique visitors as return visitors are switched over to first party cookies.
  • If you are using cron-based archiving, make sure the archive.sh script has execute (x) permission set for the cron user.
  • Please use the forums for support.

List of issues fixed in this release

  • #1363 New Api function Actions.getPageUrls to make it easy to search for a given URL or path
  • #409 Implement first party cookie in Piwik
  • #1736 Segmentation in API
  • #1984 Custom Variables support: new JS API and new reports
  • #1916 Fix Edge case: each page is a new visit
  • #1698 archive.sh compatible with Freebsd (using /bin/sh instead of /bin/bash)
  • #1973 Work around php bug #53632 (CVE-ID: 2010-4645)
  • #1974 Archiving doesn’t work anymore on 1.1.x with the cron script
  • #1965 Can’t install automatically piwik 1.1.1 on some php 5.2 setups
  • #2056 Mails are again sent to the superuser and not to the creator
  • #1991 Goal matching regex – test for regression
  • #1966 Live! plugin performance issues
  • #2078 piwik.js: enableLinkTracking() not working in Safari/Chrome/Webkit
  • #1765 update to ZF 1.11.3
  • #1780 Missing index in mysql table piwik_options
  • #1625 CSS3 Support for IE 8 with CSS3PIE
  • #1373 Visitor Generator should update website ts_created field with earliest date
  • #1460 Workaround broken mod_security rules causing Piwik to not track visits
  • #334 UI: click on Next/Previous should scroll up for subtables
  • #1888 Piwik_Period_Day->toString() should support variable formats
  • #173 API responses sub tables should contain same metrics as parent tables (filters should be applied recursively)
  • #2018 PDF font text appear white in PDFs when read in google PDF reader
  • #555 UI: Widgets are too wide in dashboard:”goals” and “advanced” table view should be disabled in the dashboard
  • #1961 Reports do not send whilst set to a daily basis
  • #2115 piwik.js: configTrackerUrl cannot contain a “?” for GET request method
  • #1556 Installation – english labels inconsistency
  • #1709 Visitors > Settings > Wide screen report Mobile/Tablet screens
  • #752 piwik.js: Tracking middle clicks automatically (they do not fire onclick event)
  • #1553 Tracker API improvements : enable set IP and set server date & time
  • #1940 Detect output compression conflict
  • #1382 Sites Manager and Users Manager – Save Confusion
  • #1417 Disable tree-like structure in Actions>Page titles report
  • #1388 Page URLs should not record the hash part of the URL
  • #1600 Action datatables should use integer indexes rather than string indexes (smaller size and faster access)
  • #2015 Clarify reverse_proxy vs proxy headers
  • #1947 Live! real time reorders last visitors on display
  • #2027 Grey out the ‘Update’ button after click to prevent multiple starts of update
  • #2007 Performance: don’t store md5 as strings in the log tables
  • #2046 Installation: improve “Re-use existing tables”
  • #2067 Remove alpha/transparency layer from icons
  • #1827 Review use of preg_* functions on long strings
  • #2106 javascript: json2 and jslint updates
  • #1951 Add sentence to give count of Users and Websites at top of page
  • #1980 UI: Piwik admin UI should be consistent with main app (color, styles)
  • #1898 Page Titles report should be as complete as Page URLs report
  • #1803 Add a column “Alias” to Manage Users Access
  • #1740 UsersManager: Sort list of websites alphabetically
  • #739 piwik.js enhancements
  • #2061 Allow Users API to return specific users, rather than the full list
  • #2062 New API UsersManager.getUsersWithSiteAccess(idSite, access)
  • #2042 Add ‘category’ field to Websites, to allow easier bulk access management
  • #2068 Live! widget to work when embedded on a third party page with token_auth
  • #2051 PDF: usability – disabling of scheduled reports
  • #2099 UserAgentParser: misdetect Shiira and Safari
  • #2100 All websites dashboard config setting to set number of websites per page (50 by default)
  • #1107 Tracker: consecutive goal conversions from same visitor create new visit
  • #1950 Compressed assets not being removed on update
  • #1963 PDFReports: cron task stops with Error: Object of class Piwik_Date could not be converted to int (piwik/core/Date.php on line 47)
  • #1962 Object doesn’t support property/method in piwik.js and IE7
  • #1967 Install doesn’t work on free.fr (using 5.1.3RC4)
  • #1970 Add new user fails with message “The login has to be between 3…”
  • #1977 Consistency check fails for few files in some cases
  • #1976 Yandex search referers not tracked properly
  • #1968 Add cache busting string to download URL
  • #1979 Regression: UsersManager> Apply to all websites not working
  • #1829 Improve UI speed: cancel ajax requests on menu click
  • #1981 Scheduled PDF Reports very slow when thousands of websites in Piwik
  • #1993 SecurityInfo plugin: fileperms error with session.save_path
  • #1998 Performance Tracker: delete column and INDEX and reuse another one
  • #2001 Creation of directory /tmp/templates_c while using api
  • #1958 Broken json extension: Login not working in 1.1.1 for some users
  • #2004 SEO: Yahoo siteexplorer no longer expects URLs to be prefixed by http://
  • #2002 Performance: Denormalize one logging table
  • #2006 Countries/Continents: .cy Cyprus is in EU
  • #2020 Show ‘DB upgrade’ message on update, only when there is a schema update
  • #2023 SEO – Domain Age no longer fetching age
  • #2022 Actions > Exit/Entry pages Next/Previous links a bit buggy
  • #1949 Bug in yearly archiving in very rare case
  • #1848 ‘No data in this category. Try to “Include all popu…’ when accessing a subtable after pagination in Page URLs or Page titles reports
  • #2026 UI: Pages DataTable, many similar http requests triggered
  • #2047 DBStats: mysql_connect() dependency
  • #2052 Creation of PDF reports fails in some cases, uses too much memory
  • #2069 Exit rate should use visits to the page, not hits
  • #2093 PDF Reports don’t use user’s language
  • #2054 Live plugin: Incorrect representation of the Week results under “Visitors – Visitors log”
  • #2076 Visitor Log month view is incomplete
  • #1988 All websites report should not show unique visitors column for ‘year’