We are proud to announce Matomo 4.4.0: a new release of Matomo Analytics.

What’s new?

This is a maintenance release where we focused on making Matomo more reliable and more secure. The most visible change is that users will now receive email notifications to a user whenever their settings are changed (2FA, token_auth created or updated, the user details are updated or deleted), and super users will also receive an email when security settings are changed (brute force logic, 2FA, cors changes).

We are grateful for all community members who reported feedback and suggestions, our awesome team of translators for their work, and our Premium features customers and Matomo Cloud hosting customers for their amazing support.

143 tickets have been closed by more than 23 contributors!

After You Update

  • Please help us spread the word! Maybe you can write about the project on your blog, website, twitter, talk at conferences or let your friends and colleagues know what is Matomo. Already 1,000,000+ websites are keeping full control of their web analytics with Matomo!
  • Use the forums if you have any question or feedback (free support),
    or purchase a Support Plan to get professional support and guidance.
  • To improve Matomo in your language consider contributing to translations.
  • You can also support our efforts by purchasing valuable Premium Features for Matomo or try our Matomo Cloud solution.

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 4.4.0 release there are Breaking Changes, New config.ini.php setting, and a new command. Read more in Platform Changelog for Developers to see all changes to the platform and APIs.

Note: the Marketplace showcases more than 90 plugins already compatible with Matomo 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.

New and updated guides and FAQs

New:

New plugins

By third party developers:

Need help upgrading Matomo?

Read the Updating Matomo user guide or for more help we offer paid support plans.

List of 143 tickets closed in Matomo 4.4.0

    matomo-org/matomo
  • #17531 Send email notifications to a user whenever their settings are changed (2FA, token_auth, user is updated or deleted), and to super users when security settings are changed (brute force logic, 2FA, cors changes) [by @flamisz, @diosmosis]
  • #17626 widget: minimize and reload icon [by @sgiehl]
  • #17417 setting the cookie domain even when cookies are disabled for compatibility with « Require Cookie Consent » feature [by @justinvelluppillai]
  • #14977 Show more clearly the freshness of reports when looking at Today or This week [by @flamisz]
  • #17615 Insights widget shows only « Others » page titles [by @flamisz]
  • #17759 Uncaught exception in API: Piwik\Exception\UnexpectedWebsiteFoundException: An unexpected website was found in the request: website id was set to ‘-1’ . in core/Site.php [by @sgiehl]
  • #14190 Allow web cron via POST [by @justinvelluppillai]
  • #17661 Ensure redirects from logme method are only done to trusted hosts [by @sgiehl, @diosmosis]
  • #17665 Disable logme functionality by default [by @sgiehl, @diosmosis]
  • #17677 Ensure login is correctly detected for brute force detection when using logme feature [by @sgiehl, @diosmosis]
  • #17789 Make error messages not leak potentially sensitive information when db connection fails [by @justinvelluppillai, @diosmosis]
  • #17281 JS Tracking code should validate with the W3C validator [by @justinvelluppillai]
  • #17585 System Check showing warning when max_execution_time is set to -1 in PHP.ini [by @justinvelluppillai]
  • #17625 Sticky « Maximize » tooltip [by @sgiehl]
  • #17636 Support for Tracker INI settings to be set for each website [by @diosmosis]
  • #17679 <wbr> can be displayed in tooltip in « Row Evolution » [by @sgiehl]
  • #17755 New console command « core:version » outputs the Matomo version information [by @ziegenberg]
  • #17628 « Rows to display » cannot be changed if a row is expanded [by @justinvelluppillai]
  • #17632 Improve purge log data logic to improve speed, and avoid locks in some cases [by @tsteur, @diosmosis]
  • #17718 for AWS Aurora users and when using a DB Reader: new INI setting to enable aurora read replica read committed for fixing purge lag performance issue [by @justinvelluppillai, @diosmosis]
  • #17654 Fix redirect link not working after plugin activation [by @Findus23, @diosmosis]
  • #17678 Fix parameters of UsersManager.addUser.end event [by @sgiehl, @diosmosis]
  • #17737 Warning – session_regenerate_id(): Cannot regenerate session id – session is not active [by @sgiehl]
  • #17479 UI: Disabling browser archiving is not clear it does not disable browser archiving for segment [by @justinvelluppillai]
  • #17068 Publish new Cloudflare App for Matomo
  • #17687 PHP 8.1 compatibility: fix « Deprecated – glob(): Passing null to parameter #2 ($flags) of type int is deprecated » [by @Findus23, @diosmosis]
  • #17688 PHP 8.1 compatibility, fix « Warning – foreach() argument must be of type » [by @Findus23, @diosmosis]
  • #17693 PHP 8.1 compatibility, fix « Deprecated – explode(): Passing null to parameter » [by @Findus23, @diosmosis]
  • #17527 Add link to new FAQ how to make the diagnostic “Managing processes via CLI” show Ok [by @mattab, @diosmosis]
  • #17635 Allow plugins to abort sending emails via ‘Mail.send’ event [by @diosmosis]
  • #17655 JS Tracker: new setPageViewId function to override the pageviewid and not have it auto generated [by @JE4GLE, @diosmosis]
  • #17726 Add possiblity to open sites manager and directly edit a specific site using URL parameter [by @tsteur, @diosmosis]
  • #17727 Make anchor links on Admin General Settings page work [by @tsteur]
  • #17742 Fix preselection in site selector form fields [by @sgiehl, @diosmosis]
  • #17764 Matomo application logs can now be written in syslog and errorlog [by @mwithheld, @diosmosis]
  • #12217 Bad filesystem detection (NFS)
  • #15780 Outlink and download tracking not working for links added after DOM ready (which many are these days eg angular, vue.js, react, … SPA). [by @flamisz]
  • #16672 In Tag Manager, Manage Containers page is blank [by @tsteur]
  • #17001 When embedding a widget with the « Multisites » report (All websites), the links are not working [by @justinvelluppillai]
  • #17441 Exporting main metrics with a period of « week » as CSV produces broken exports [by @ziegenberg]
  • #17454 JS Tracking code may generate « The operation is insecure » warnings with specific Firefox settings [by @justinvelluppillai]
  • #17617 Make sure that all segment archives are invalidated when invalidating all visits archives [by @diosmosis]
  • #17641 ComparisonRowGenerator::compareTables() must implement interface Piwik\\DataTable\\DataTableInterface or be null,
  • #17653 In Diagnostics, fix edge case « Warning – trim() expects parameter 1 to be string, array given » [by @diosmosis, @sgiehl]
  • #17670 When using PDO to connect to the database, a failed connection might trigger a PDOException [by @sgiehl, @diosmosis]
  • #17675 Make sure overlay API requests send force_api_session as POST param [by @diosmosis]
  • #17694 Fix issue « Call to a member function getMainUrl() on null » in permission checks in siteWithoutData method [by @sgiehl]
  • #17728 Fix few bugs in sparklines visualisation when there is no row [by @tsteur, @diosmosis]
  • #17770 activating non-existing plugin via console plugin:activate results in uncaught exception and plugin is listed as installed afterwards [by @diosmosis]
  • #17771 If table prefix is not specified, the database abilities diagnostic can fail [by @diosmosis, @sgiehl]
  • #17775 Call to a member function getSubtableDimension() on null in core/DataTable/Filter/PivotByDimension.php [by @sgiehl]
  • #17776 Call to undefined method Piwik\\DataTable\\Map::getRowFromLabel() in plugins/UserCountry/API.php [by @sgiehl]
  • #17782 in PHP 8.0, when enabling MySQL SSL, got a HTTP 500
  • #16754 Update PHP extension requirements & deprecate Common::mb_* methods [by @sgiehl, @diosmosis]
  • #17382 more private Referrer-Policy: use strict-origin-when-cross-origin [by @Findus23, @diosmosis]
  • #17472 Add query string to error logs [by @diosmosis]
  • #17576 Use CLI archiving in more places for more reliable archiving (by not using the ‘which’ tool) [by @diosmosis]
  • #17633 invalidate-report-data console to show a timestamp in the output [by @diosmosis]
  • #17657 Remove archive status locking since it is not needed anymore [by @diosmosis]
  • #17660 Ignore invalid capabilities instead of throwing an exception [by @sgiehl, @diosmosis]
  • #17664 Add extra info when two non-summable columns are added together for easier debugging [by @diosmosis]
  • #17668 Move tests documentation to developer website [by @tsteur, @diosmosis]
  • #17671 Link to Drupal or WebFlow Matomo FAQ when the website is detected to use it [by @sgiehl, @diosmosis]
  • #17681 Improves detection of local hostnames [by @sgiehl, @diosmosis]
  • #17765 add config to read the last IP address in the list of proxies rather than the first [by @diosmosis]
  • #17790 When reading IP address, do not ignore remote_addr if reading the last ip in proxy header lists [by @tsteur]
  • #17819 Add « AllowOverride » to faq/troubleshooting/how-do-i-fix-the-error-private-directories-are-accessible [by @tsteur]
  • #17822 Archiving may fail when also using roll up reporting [by @tsteur, @mattab]
  • matomo-org/device-detector
  • #5727 Make sure bot categories are consistent in bots.yml
  • #6624 Adds detection for iPadOS operating system [by @liviuconcioiu, @sanchezzzhak]
  • #6626 Adds detection for Maelstrom browser [by @liviuconcioiu, @sgiehl]
  • #6647 Adds detection for Arvin browser [by @liviuconcioiu, @sgiehl]
  • #6686 Adds detection for Mandarin browser [by @liviuconcioiu, @sgiehl]
  • #6697 Ensure the useragent is a string, to avoid php error
  • #6742 Detect new brands: Spectralink, Vega, Bleck, TurboPad and Detect devices for existing brands: DEXP, ZTE, MiXzo, Lava, VGO TEL, AT&T, CUBOT, Oysters, NEXON, Alfawise, CHIA, Mobicel, Casper, Wiko, Beeline, BIHEE, AllDocube, Xiaomi, Blu, Blackview, OPPO, Vivo, Realme, Motorola, Allwinner, MyPhone, TurboKids, Kivi, Vernee, Teclast [by @sanchezzzhak]
  • #6743 Adds detection for Odnoklassniki mobile app [by @sanchezzzhak, @sgiehl]
  • #6744 Adds detection for My World mobile app [by @sanchezzzhak, @sgiehl]
  • #6748 Detect new brand: STG Telecom and Detect devices for existing brands: Lava, Telenor, Mito, LT, IconBIT, Cloudfone, Bitmore, Tecno Mobile, Danew, LG, Mpman, EXO, Digma, Walton, EvroMedia, LG, Celkon, Huawei, Phicomm, Wiko [by @sanchezzzhak]
  • #6752 Detect devices for existing brands: Coolpad, Samsung, Sharp, Sony, Xiaomi, Kyocera [by @sanchezzzhak, @sgiehl]
  • #6753 Detect new brand: Revo, RoyQueen, Axioo and Detect devices for existing brands: Runbo, EE, E-Boda, Navon, Ramos, Invens, Karbonn, RoverPad, Q.Bell, GFive, Quantum. Sky, Vivax, SWISSMOBILITY, Oysters [by @sanchezzzhak]
  • #6754 Detect new brand: Rivo, Four Mobile and Detect devices for existing brands: Mito, Melrose, Medion, Manta Multimedia, Multilaser, M-Tech [by @sanchezzzhak, @sgiehl]
  • #6755 Detect new brand: New Balance, Astro, Cobalt, FMT, mPhone, WIWA and Detect devices for existing brands: Asus, Maxwest, Intex, Celkon, Woxter, LG, Zuum [by @sanchezzzhak]
  • #6756 Adds detection for Tecno Mobile devices [by @liviuconcioiu, @sanchezzzhak]
  • #6758 Detect new brand: Inch, Jeka, KREZ, Kurio, UZ Mobile, L-Max, UTime and Detect devices for existing brands: Vsmart, Unihertz, Huawei, Jinga, DNS, BB Mobile, Inco, Verico, ZTE, Highscreen, MyPhone, Oukitel, OnePlus, Alcatel, Xiaomi, Irbis, Zopo [by @sanchezzzhak]
  • #6760 Detect Tizen Browser for TV or Smartphone [by @sanchezzzhak]
  • #6762 Adds detection for Cookiebot [by @liviuconcioiu, @sanchezzzhak]
  • #6763 Detect new brand: Xtratech, Tambo, XGIMI, AOYODKG, Raspberry and Detect devices for existing brands: Kodak, OnePlus, Sky, Hometech, Mobicel, Maxwest, Turbo-X, Vastking, Vonino, Huawei [by @sanchezzzhak]
  • #6765 Adds Improved Roku detection and detect app Netflix [by @sanchezzzhak, @sgiehl]
  • #6766 Adds improved detection ios 14.6 version [by @sanchezzzhak, @sgiehl]
  • #6769 Improves detection for Cricket, Kodak, Mobicel, Movic, Tecno Mobile, Ulefone brands [by @liviuconcioiu, @sanchezzzhak]
  • #6772 Detect new brand: Smotreshka and Detect devices for existing brands: Verykool, Timovi, Telenor, Maxwest, Walton, TechPad, YUHO, Mobiistar, Swipe, CUBOT, Xiaomi, OnePlus, Vivo, P-UP, Wiko, Realme, Alcatel, Sharp, Rombica, Asus, Huawei, NUU, Sico, Panasonic, Coolpad, Karbonn, IKU Mobile, Singtech, Doogee, Overmax, ZTE, Explay, IconBIT, Umax, DEXP, Dell, Elephone, Iris, Land Rover, Vivax, Chuwi, VGO TEL [by @sanchezzzhak, @sgiehl]
  • #6773 Adds detection for bots: GDNP, CensysInspect, NetSystemsResearch [by @liviuconcioiu, @sgiehl]
  • #6774 Improves version detection for iOS [by @liviuconcioiu, @sanchezzzhak]
  • #6776 Create new parser ShellTv and Detect new brands: Elekta, Loview, Yuno, YASIN, AMCV, ECON, Erisson, Leben, Novex, Starwind, Vargo, Gooweel and Detect devices for existing brands: Leagoo, CUBOT, Ginzzu, Ulefone, ZTE, Alcatel, Quantum, Ark, BB Mobile [by @sanchezzzhak]
  • #6777 Adds detection for various bots [by @liviuconcioiu, @sgiehl]
  • #6778 Adds detection for DIXON, FISE brands and improves detection for TechPad, Tecno Mobile devices [by @liviuconcioiu, @sanchezzzhak]
  • #6779 Detect devices for existing brands: Homtom, Huawei, Tecno Mobile, LG, LT Mobile, Prestigio, Blackview, OPPO, Tone, Vivo, SFR, Philips, Archos [by @sanchezzzhak]
  • #6781 Detect new brands: Blow, FNF, VAVA, iMan Detect devices for existing brands: HTC, Nvidia, vivo, QMobile, Teclast, LG, Azumi, Blu, Lava, Motorola, Tecno Mobile, Nomi, Vertex, Vestel, Hotwav, ZTE, Intex, iPro, Samsung, Digma, DEXP [by @sanchezzzhak, @sgiehl]
  • #6782 Detect new brand: ivvi Detect devices for existing brands: Alba, Tecno Mobile, HTC, Asus, AVH, LG, Polaroid, Vodafone, ZTE, Hisense, Xiaomi, Highscreen, Avvio, Vizio, Videocon, iVooMi, Huawei, Prestigio [by @sanchezzzhak, @sgiehl]
  • #6783 Adds detection for various bots [by @liviuconcioiu, @sanchezzzhak]
  • #6784 Improves detection for OnePlus and Vonino devices [by @liviuconcioiu, @sgiehl]
  • #6785 Duplicate shortcode GC in browser families
  • #6787 Adds Better Uptime Bot detection [by @Pierre-Lannoy, @sgiehl]
  • #6788 Detect new brand: Dragon Touch and Detect devices for existing brands: Starmobile, Navon, QMobile, Xiaomi, Prestigio, Pixus, Navon, Digma, MicroMax, HP, Motorola, TCL, LG, CHIA, ViewSonic, Blackview, Vivo, Tecno Mobile, Vodafone, Cloudfone, MiXzo [by @sanchezzzhak, @sgiehl]
  • #6792 Detect apps: YakYak, Teams, Raindrop.io, Mailspring, Franz, Basecamp, Notion, Streamlabs OBS, Evernote, Vuhuv, OfferUp, Rambox Pro, TuneIn Radio, Strimio, Blitz and Fix detect SuperBird browser [by @sanchezzzhak, @sgiehl]
  • #6794 Adds detection for OpenFin Browser [by @sanchezzzhak, @sgiehl]
  • #6796 Detect new brand: AOpen and Detect devices for existing brands: Ok, Lenovo, Toshiba, Onda, OPPO, Amazon, LG, Huawei, Samsung, Safaricom, Multilaser, Kyocera, Motorola, Panasonic, FNF, Leotec, Pantech, Walton, Realme, Tecno Mobile, Wiko, Aligator, Lumus [by @sanchezzzhak, @sgiehl]
  • #6798 Adds detection for Edge WebView [by @liviuconcioiu, @sgiehl]
  • #6799 Detect new brand: AG Mobile and Detect devices for existing brands: Google, Pioneer, Sony, Ross&Moor, Nomi, Motorola, Prestigio, Jinga, UNIWA, Lenovo, LG, LeEco, Xiaomi, Hotwav, Panasonic, Bluboo, Meizu, UMIDIGI, Highscreen, Gooweel. Asus, BenQ, Doogee, Explay and Detect app: Google Fiber TV [by @sanchezzzhak, @sgiehl]
  • #6801 Detect 75 devices for brand LG [by @sanchezzzhak, @sgiehl]
  • #6803 Detect 86 new devices for brand LG [by @sanchezzzhak]
  • #6804 Detect new brands: DIGIFORS, FLYCAT, iOutdoor and Detect devices for existing brands: Thomson, S-TELL, Tecno Mobile, Prestigio, HTC, Nomi, Infinix, UMIDIGI, Inoi, RIM, LG, THL [by @sanchezzzhak, @sgiehl]
  • #6805 Adds detection for Gobuster bot/tool [by @sgiehl]
  • #6806 Detect devices for existing brands: Asus, Tecno Mobile, Blackview, Prestigio, OPPO, POCO, Xiaomi, ZTE, Vivo, Meizu [by @sanchezzzhak, @sgiehl]
  • #6807 Adds detection for K6 load testing tool [by @sgiehl]
  • #6808 Adds detection for Neevabot [by @liviuconcioiu, @sgiehl]
  • #6809 Update README.md [by @github-actions[bot], @sgiehl]
  • #6810 Detect new brands: VIWA, 3GO, Gretel, M-Horse and Detect devices for existing brands: Acer, Alcatel, ThL, Leagoo, Haier, 4Good, Supra, UMIDIGI, Meizu, Beeline, Highscreen, Cyrus, Vernee, DEXP, Jinga, QMobile, Doogee, Ulefone, Droxio, Explay, Oukitel, Nomu [by @sanchezzzhak]
  • matomo-org/referrer-spam-list
  • #1264 Add ahhjf.com, which redirects to xtraffic.plus. [by @skylarmt, @spmedia]
  • #1265 Add senacertificados.co [by @leorhenals, @spmedia]
  • #1266 Add faithe.top [by @ericguirbal, @spmedia]
  • #1267 Add bradleylive.xyz [by @ericguirbal, @spmedia]
  • #1268 Add kellyonline.xyz [by @ericguirbal, @spmedia]
  • #1269 Add kellyonline.xyz [by @skquinn, @spmedia]
  • #1270 Add primoblog.xyz [by @ericguirbal, @spmedia]
  • #1271 Add johnnyhaley.top [by @ericguirbal, @spmedia]
  • #1272 Add joyceblog.top [by @ericguirbal, @spmedia]
  • #1273 Add sarahmilne.top [by @ericguirbal, @spmedia]
  • #1274 exclude fineblog.top [by @antondollmaier, @spmedia]
  • #1275 Added yourtraffic.club [by @virtualize, @spmedia]
  • #1276 Add aucoinhomes.com [by @ericguirbal, @spmedia]
  • #1277 added botttraffic999.xyz to spammers list [by @evabat, @spmedia]
  • #1278 Add sloopyjoes.com.top [by @ericguirbal, @spmedia]
  • #1279 Add aoul.top [by @ericguirbal, @spmedia]
  • #1281 Add manwang.net [by @ericguirbal, @spmedia]
  • #1283 Add xmnb.net [by @ericguirbal, @spmedia]
  • matomo-org/tag-manager
  • #333 Error in import/export of container when using WhiteLabel plugin
  • matomo-org/matomo-log-analytics
  • #313 Reports signature files as downloads [by @Pierre-Lannoy, @sgiehl]
  • #316 Add Gandi VirtualHost log format [by @tups, @diosmosis]
  • #317 Make the –output option work again [by @sgiehl, @diosmosis]
  • matomo-org/searchengine-and-social-list
  • #80 add Brave Search [by @Findus23, @sgiehl]
  • matomo-org/component-ini
  • #18 Ability to switch to custom reader implementation rather than use read_ini_file [by @dhirtzbruch, @sgiehl]
  • #19 Support PHP versions from 7.2 to 8.0 [by @dhirtzbruch, @sgiehl]

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!