We are proud to announce Matomo 3.4.0: a new release of Matomo Analytics bringing more than 130 changes including new features, many small improvements and a few bug fixes.

What’s new?

As part of the upcoming GDPR compliance project (most of the GDPR features will be available in our next releases due in April and May), we have improved the Opt-out iframe feature and you can now customise the Opt-out text color, font family, font size, and background color.

In this release, we’ve also improved how you can export your data from Matomo. When you click the export icon, you will now see a window where you can select between the different data formats, how many rows to export, and other options to help you get the data you need in seconds (all data exports use the Reporting APIs).

Continuing on making Matomo more usable and simple, we made improvements such as: a better print version of Matomo reports, re-designed the annotations in graphs, new keyboard shortcuts (press ? to see the whole list), and the ability to switch to the Zen Mode (where the left menu and the top bar collapse) to enter the engaging full screen view. Also, all users can now log in with either their username or their email address.

The core platform was also improved in several ways. In the JS tracker you can now record when your users logout by using the new resetUserId method (especially useful for Single page applications). When segmenting your reports and users via the API, or when building custom reports, you will benefit from new date segments. And to let you fully automate how Matomo is set up for your new customers, you can now leverage our new Dashboards API. And as usual, we’ve added lots of new bots, brands, devices and a few more spammers.

132 tickets have been closed by more than 26 contributors!

After You Update

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

Database upgrade

This release does not contain any major database upgrade.

Platform Changes

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

In this 3.4.0 release there are New features and New APIs. Read more in Platform Changelog for Developers to see all changes to the platform and APIs.

Note: the Marketplace showcases more than 68 plugins already compatible with Matomo 3 and this is just the beginning. Matomo is your universal data analytics platform!

New and updated SDKs (Tracking API Clients)

The Matomo team offers official SDKs (Tracking API Clients) for measuring your mobile apps and any other kind of apps.

Congratulations to the SDK maintainers and contributors for these great releases!

New and updated guides and FAQs



New plugins

By third party developers:

Need help upgrading Matomo?

Read the Updating Matomo user guide or for more help contact the Matomo experts.

List of 132 tickets closed in Matomo 3.4.0

  • #12141 JS Tracker, New method `resetUserId` to de-assign a user id after a logout [by @znerol, @mattab]
  • #8314 Let user select how many records / rows to export when clicking for example CSV export
  • #12455 Let me customise the opt-out iframe: fonts, color, sizes
  • #12560 Email reports sent via the cron core:archive task do not contain reports that depend on idsite
  • #12459 Shows icon to disable/enable Zen Mode (full screen view) [by @ryyee99, @mattab]
  • #12472 Added custom URL parameters to style the optOut iframe [by @Jouveer, @mattab]
  • #12587 New Dashboard API methods: `copyDashboardToUser`, `createNewDashboardForUser`, `removeDashboard` and `resetDashboardLayout` [by @sgiehl, @mattab]
  • #12495 Give developers the possibility to compare translation keys in different languages [by @tsteur]
  • #12521 Add more date segments: visitEndServerDate visitEndServerDayOfMonth visitEndServerDayOfWeek visitEndServerDayOfYear, etc. [by @tsteur]
  • #12625 scrollTo feature not working anymore, notifications not visible etc
  • #12637 Chrome: Selecting the tracking code with one click does not work anymore
  • #12443 Small performance improvement in custom tracker [by @tsteur, @mattab]
  • #12469 Fix a possible issue when there are more than 2 billion visits tracked and system is 32 bits [by @mattab]
  • #12451 Format sparklines better
  • #12458 Popover: position the minimise and reload icons correctly [by @Jouveer, @mattab]
  • #12464 Align icon in Row Evolution popover [by @danikachhour, @mattab]
  • #12465 Page Overlay: Replace images with font icons [by @sgiehl]
  • #12476 Improvements to Annotations listing design [by @carmenliao, @mattab]
  • #12485 Move site selector loading indicator to the left [by @Findus23, @sgiehl]
  • #12486 improve styling of shortcut help [by @Findus23, @sgiehl]
  • #12487 update checker display issues [by @sgiehl]
  • #12490 Adds new icons to UI demo page [by @sgiehl, @mattab]
  • #12530 Fixes position of activity indicator [by @sgiehl]
  • #12570 DeviceDetection, display themed « refresh » button [by @alcalyn, @sgiehl]
  • #9063 Remove word « website » from website selector [by @tsteur]
  • #11660 Better adblock detection during setup
  • #11959 Allow to login by Email as well as Username
  • #12279 Hide widgets not working without internet connection if disabled in config [by @sgiehl, @mattab]
  • #12456 Add new keyboard shortcuts for Top/Bottom of page
  • #12475 Embed Widgets page: added link to the Embed reports user guide [by @ryyee99, @mattab]
  • #12479 Improvement maintenance mode message to show a message based on record_statistics value [by @ryyee99, @mattab]
  • #9263 Add possibility to toggle (show/hide) left menu [by @tsteur]
  • #12448 Login and Reset password: improved fields [by @Jouveer, @mattab]
  • #12489 Renames piwik font to matomo [by @sgiehl, @mattab]
  • #12645 updates piwik/* and matomo/* composer packages [by @sgiehl]
  • #7556 UserID « Signing out use-case » – actions still attributed to the same Visitor [by @znerol, @mattab]
  • #11825 E-Mail Report: Page URL Links shifted after « Others » [by @sgiehl]
  • #12168 Page Overlay Information boxes are displayed under menus and divs [by @sgiehl]
  • #12280 Twig Filesystem: Warning – realpath(): open_basedir restriction in effect [by @sgiehl]
  • #12369 Browser widget bug with pagination [by @sgiehl]
  • #12373 Visitor Profile « First visit » does not always show the very first visit [by @sgiehl]
  • #12374 Do not use segment to fetch additional visits for visitor profile [by @sgiehl, @mattab]
  • #12394 Move public static functions out of Live controller [by @sgiehl]
  • #12396 Show error message if visitor in visitor profile could not be found instead of fatal error [by @tsteur, @mattab]
  • #12478 GeoIP re-attribution: debug output now shows changes to visits geo-location [by @lwille, @mattab]
  • #12500 When generating URLs, only strip PATH_INFO when it is not empty [by @mattab]
  • #12545 JS Tracker: expected no warning in the console when addTracker multiple times [by @mattab, @tsteur]
  • #12578 Cloud visualisation may display error « Key 1 for array with keys 0 does not exist » [by @sgiehl]
  • #12619 Ensure to also install plugins when there is a POST request [by @tsteur, @sgiehl]
  • #12621 Trigger DB failed exception also for POST API requests [by @tsteur]
  • #12514 [automatic translation update] Updated 2074 strings in 49 languages (hr, de, bn, bs, cy, ta, am, be, bg, ca, eu, gl, he, hu, is, ka, ar, cs, da, el, es, et, fa, fi, fr, hi, id, it, ja, lt, nl, pl, pt-br, ru, sq, sr, sv, tr, uk, zh-cn, zh-tw, ko, nb, nn, pt, ro, th, vi, lv) [by @sgiehl]
  • #12629 [automatic translation update] Updated 1628 strings in 49 languages (bs, ca, el, et, eu, fi, fr, ja, ka, ko, nb, nl, pl, pt-br, sk, sl, sq, sv, tl, tr, vi, zh-cn, zh-tw, it, ar, be, bg, cs, da, de, es, fa, he, hi, hu, id, is, nn, pt, ro, ru, sr, th, uk, lt, lv, ta, gl, bn) [by @sgiehl]
  • #11958 Export overlay for Datatables [by @sgiehl, @mattab]
  • #12103 Fix Tibetan cities display on China’s city map [by @fengkaijia, @sgiehl]
  • #12356 Adding some more did you know sections [by @tsteur, @mattab]
  • #12359 Rename metrics that start with « Total » and remove the word Total
  • #12447 Improved Print Versions [by @danikachhour, @mattab]
  • #12449 Changed Feeds URL to HTTPS [by @Jouveer, @mattab]
  • #12450 Websites manager, exclude IP addresses, explain that CIDR notation is supported [by @Jouveer, @mattab]
  • #12462 Modals popover can now be closed with keyboard [by @Jouveer, @mattab]
  • #12463 Aligned all icons to left of menus [by @Jouveer, @mattab]
  • #12491 improve integration in Firefox Quantum and Chrome Android [by @Findus23, @mattab]
  • #12493 During installer, better detect adblockers that may block Matomo css/js files [by @Findus23, @mattab]
  • #12496 Assorted events and changes [by @diosmosis, @tsteur]
  • #12501 Ignore shared hoster files in integrity check [by @Findus23, @sgiehl]
  • #12502 During installation, trim inputs in the database setup page to avoid whitespaces issues [by @mattab]
  • #12518 Use renamed composer packages [by @sgiehl]
  • #12520 Adds audio icon to matomo font [by @sgiehl, @mattab]
  • #12532 Use more font icons instead of images [by @sgiehl]
  • #12538 Better handling of POST tracking requests when page is unloaded (using sendBeacon) [by @tsteur, @mattab]
  • #12541 Fix others row might not be replaced in subtables of others row [by @tsteur]
  • #12542 Update reports cache at least once every hour [by @tsteur, @mattab]
  • #12556 Allow plugins to define custom action types [by @sgiehl]
  • #12561 Update error message in API/UI if date is before 1992 (#12559) [by @simivar, @sgiehl]
  • #12568 Add new Filesystem.allCachesCleared event after all caches cleared. [by @diosmosis, @tsteur]
  • #12579 Key visitsAggregated does not exist as the array is empty in _profileSummaryVisits.twig
  • #12590 Developer documentation: the list of all segments is missing the « Metrics » segments [by @diosmosis]
  • #12591 Update component-cache version to 1.0.2. [by @diosmosis, @tsteur]
  • #12602 JS Tracker, cross domain tracking: new method to get the URL parameters to forward the Visitor id value (&pk_vid=xyz) [by @diosmosis]
  • #12603 Add getCrossDomainLinkingUrlParameter() to allow users to add pk_vid to dynamic links. [by @diosmosis, @mattab]
  • #12607 Allow deleting first dashboard for automation purposes. [by @diosmosis, @mattab]
  • #12608 Better handling of situation when there are no dashboards for a user [by @sgiehl]
  • #12614 Define root path for twig file loader [by @sgiehl, @mattab]
  • #12618 Make dimensions cache site aware since CustomDimensions adds different dimensions based on the current site. [by @diosmosis, @mattab]
  • #12626 Makes report generation site aware [by @sgiehl, @mattab]
  • #12632 Add third party cookie domain setting [by @diosmosis, @mattab]
  • #12652 Show a special offer if one is defined for a plugin [by @tsteur]
  • matomo-org/searchengine-and-social-list
  • #41 add Telegram Messenger [by @Findus23, @sgiehl]
  • #42 Adds detection for search engine Tarmot [by @sgiehl]
  • #43 Add package.json to make the repo compliant with NPM
  • #45 Add Pinterest country specific TLDs to social list [by @boris-hocde, @sgiehl]
  • #46 mention that first URL will be used for icon [by @Findus23, @sgiehl]
  • matomo-org/matomo-icons
  • #9 Improve brand icons
  • matomo-org/device-detector
  • #5257 Port to more languages
  • #5609 Additional browsers [by @sgiehl]
  • #5696 Adds detection for Doro and Teclast devices [by @sgiehl]
  • #5699 Bugfix/bot parser discard details [by @wazelin, @sgiehl]
  • #5700 Added recognition of ukr.net mail proxy and rambler mail image proxy [by @unisender-dev, @sgiehl]
  • #5701 Some LOGICOM smartphones are being detected as BOT’s [by @sgiehl]
  • #5703 New 3rd party .NET Library
  • #5704 Adds detection for some new bots [by @sgiehl]
  • #5705 Adds detection for various new devices and brands [by @sgiehl]
  • #5706 Added support for Windows IoT 10.0 devices [by @nickurt, @sgiehl]
  • #5707 Adds detection for Noblex, STK & Azumi Mobile devices [by @sgiehl]
  • #5708 Adds detection for EKO devices [by @sgiehl]
  • #5709 Lenovo tab4 and sentry [by @weberdever, @sgiehl]
  • #5710 Adds detection for some Samsung devices [by @cb8, @sgiehl]
  • #5711 Adds bot-detection for 3 site monitors [by @NanneHuiges, @sgiehl]
  • #5712 Adds bot-parsers as injectionable objects [by @NanneHuiges, @sgiehl]
  • #5714 Add support for various mobile devices [by @cb8, @sgiehl]
  • #5715 Add NetSurf browser and engine [by @J5lx, @sgiehl, @Findus23]
  • #5716 Added Symfony 4 YAML parser compatibility. [by @klizas, @sgiehl]
  • #5718 Improved detection of Sony TV models [by @JanMachEU, @sgiehl]
  • #5719 StatusCake Bot [by @converdo, @sgiehl]
  • #5720 HubSpot Website Grader Bot detection [by @sgiehl]
  • #5721 Added detection for LG models like 49UJ6307 [by @JanMachEU, @sgiehl]
  • #5722 Web Browser as Chrome detected [by @sgiehl]
  • #5723 Detection of Samsung SmartTV models from 2016-17 [by @JanMachEU, @sgiehl]
  • #5724 Detection of LG OLED models [by @JanMachEU, @sgiehl]
  • #5725 Detection of short Sony models [by @JanMachEU, @sgiehl]
  • #5726 Added detection for Hisense brand [by @JanMachEU, @sgiehl]
  • matomo-org/referrer-spam-blacklist
  • #651 Add uptime-[as|eu|us].net [by @woodardj, @spmedia]
  • #652 Add theautoprofit.ml [by @spmedia]
  • #653 Change composer name to matomo/referrer-spam-blacklist [by @sgiehl]
  • matomo-org/tracker-proxy
  • #27 PHP Warning: curl_setopt(): You must pass either an object or an array with the CURLOPT_HTTPHEADER argument ?
  • matomo-org/component-cache
  • #17 Rename Piwik -> Matomo [by @sgiehl]
  • #18 Make File::getFilename() public and return correct value in File::doFlush(). [by @diosmosis, @tsteur]
  • matomo-org/component-decompress
  • #12 Rename Piwik -> Matomo [by @sgiehl]
  • matomo-org/component-ini
  • #8 Rename Piwik -> Matomo [by @sgiehl]
  • matomo-org/matomo-log-analytics
  • #206 Piwik is now Matomo [by @mattab]
  • #208 Adding two options –add-to-date & –request-suffix [by @diosmosis, @mattab]

We are together creating the best open analytics platform in the world. You can help make Matomo even more awesome by getting involved in Matomo!