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

What’s new?

This release focuses on stability and reliability.

In terms of new features, under Evolution graphs, you can now easily change the period shown in the graph.

Many small improvements were made to the archiving in terms of reliability and performance especially with relation to invalidating older reports, and when there are many segments or websites.

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.

141 tickets have been closed by more than 19 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.3.0 release there are breaking changes, upcoming breaking changes, New config.ini.php settings. 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 141 tickets closed in Matomo 4.3.0

    matomo-org/matomo
  • #4481 Display Inline help icon linking to User Guide, for all features with a user guide [by @diosmosis]
  • #16776 When accessing UI with unsupported browser throw error and suggest to use other browser [by @flamisz]
  • #17488 Remove the “Visitor ID” segment when the “Visitor profile” feature has been disabled [by @flamisz]
  • #17336 Setting process_new_segments_from not respected when archiving bigger periods [by @flamisz]
  • #17242 Performance report table not displayed properly [by @flamisz]
  • #15021 Show periods labels in the evolution graphs to make it easier to change period [by @flamisz]
  • #17301 Store the segment hash in the DB table [by @flamisz]
  • #17444 Invalidate segment data on update only if the definition changes [by @sgiehl]
  • #10578 Display the “oops” red error message, only when there was an error, do not show it when user clicks away to load another menu or page
  • #17199 Allow selecting password_hash algorithm [by @Findus23, @diosmosis]
  • #17259 Performance metrics issues after 4.2 update [by @flamisz]
  • #17374 Row evolution on subtables can cause errors randomly [by @sgiehl]
  • #17561 Marketplace: “more” link does not work [by @flamisz]
  • #17285 Ask for password confirmation before installing all plugins [by @sgiehl, @diosmosis]
  • #17378 vendor/composer/installed.json is exposed publicly [by @sgiehl]
  • #17436 Escape URL in geolocation admin error message [by @sgiehl, @diosmosis]
  • #17503 detect brute force login attempts from different ip addresses [by @diosmosis]
  • #17524 Ensure redirects in HTTP class are only done to allowed protocols (for cURL) [by @sgiehl, @diosmosis]
  • #17539 Use Common::safe_unserialize for session data [by @sgiehl, @diosmosis]
  • #17327 Add plugin name as comment to SQL query
  • #17463 Email export as TSV format [by @sgiehl]
  • #17104 Error Message notification is not hidden when navigating to a new page [by @flamisz]
  • #17163 JS Error tracking should record the same error only once per page view [by @flamisz]
  • #17173 Improve tracker performance when using custom dimensions (one less update query per tracking request)
  • #17422 Don’t load review logos if they are not shown
  • #17237 Unwanted date filter automatically added to Live.getLastVisitsDetails [by @flamisz]
  • #17379 Initiate range archiving if an archive is invalidated, the request is from the browser, and browser archiving is authorized [by @diosmosis]
  • #17407 Exporting “Visitor Profile” data results in “Your session has expired due to inactivity. Please log in to continue.” [by @sgiehl]
  • #17497 Re-allow tracking bots
  • #17519 Allow invalidating empty site [by @diosmosis]
  • #16787 Improve no data tracked yet please set up tracking code screen [by @flamisz]
  • #16790 When a period has no data, but raw data, show a message [by @flamisz]
  • #17108 In “Help” screen, show first the section “How can we help?” [by @flamisz]
  • #17162 the “Compare to” button design has slightly regressed on firefox only [by @flamisz]
  • #17389 icon for informational system check [by @Findus23, @diosmosis]
  • #17416 better systemcheck error boxes [by @Findus23, @diosmosis]
  • #16922 replace generate:plugin warning with pointer to guide [by @flamisz]
  • #16990 When showing the Export URL, clarify that users must use their app token (instead of displaying a token_auth that only works in their session)
  • #17243 rename testcookie to make it clear it is created by Matomo [by @Findus23, @diosmosis]
  • #17352 Don’t allow enforcing 2FA unless the superuser has set it up already
  • #5056 French Guiana shows up as France in maps and reports [by @sgiehl]
  • #15203 France regions are not up-to-date
  • #16803 Ask users to refer us to other friends [by @flamisz]
  • #17086 Translation missed on “Create a new user” [by @flamisz]
  • #17366 Improve configuration of rearchive_reports_in_past_last_n_months setting [by @diosmosis]
  • #17421 more markdown friendly system checks [by @Findus23, @diosmosis]
  • #17424 Run Javascript tests with node/puppeteer as well as Phantomjs [by @sgiehl]
  • #17330 Add date period to segment archive queries [by @flamisz]
  • #14065 Avoid double HTML entities / special characters encoding [by @flamisz]
  • #16222 Hide Unique Visitors from email reports when the metric is not activated for this period [by @diosmosis]
  • #16374 Site Search hover help bug [by @TheCrowned]
  • #16637 core/Cookie.php:Cookie->delete() don’t set secure and SameSite.
  • #17070 Prevent new username from using existing user email address [by @flamisz]
  • #17080 Matomo comparing month report with same month when clicking on the last day of the month [by @flamisz]
  • #17092 fatal error: Modulo by zero: method=imageGraph while widht = 0
  • #17209 CSV reports can fail because HTTP Content-Disposition header has invalid characters in the filename field [by @flamisz]
  • #17267 trackPageView still sends page performance report after disablePerformanceTracking [by @tsteur]
  • #17304 archiving: look for all usable done flag types when checking for existing child periods [by @diosmosis]
  • #17335 Widgetize request with token_auth param fails if superuser session exists [by @flamisz]
  • #17362 Installer starts over after asking super user details
  • #17445 Ensure correct no access message is shown [by @sgiehl]
  • #17496 work around group_concat max len being too small in ArchiveSelector.getArchiveIds [by @diosmosis]
  • #8126 Our work process when changing or removing a public API from the Matomo platform [by @mattab]
  • #17317 Making it easier to know when a code review is required [by @tsteur]
  • #8127 Developer Changelog and documenting changes in the Matomo Platform [by @mattab]
  • #16994 In core:invalidate-report-data match segments by ID, name or definition … [by @diosmosis]
  • #17110 Add informational diagnostic for archive invalidations table. [by @diosmosis]
  • #17151 Use https for urls in visitor details if host is defined with https in site [by @sgiehl, @diosmosis]
  • #17268 Do not append performance metrics to page view log if performance tracking disabled [by @ufoproger, @diosmosis]
  • #17278 Fix Marketplace falsely thinks a plugin is installed when it is not [by @tsteur, @diosmosis]
  • #17289 remove dangling invalidation check (no longer needed) [by @diosmosis]
  • #17295 Prevent possible warning during GeoIP2 update if providers aren’t initialised [by @tsteur, @sgiehl]
  • #17314 remove deletion of old archives in CronArchive since we do this in ArchiveWriter, and it is buggy here [by @diosmosis]
  • #17321 Make sure not to clear the tracker cache so often when invalidating in core:archive [by @diosmosis]
  • #17325 Allow configuring segments to not be rearchived when rearchiving reports in the past. [by @diosmosis]
  • #17326 Add –skip-cache-clear option to core:update command … [by @diosmosis]
  • #17331 allow forcing Archive to not initiate archiving for child archives [by @diosmosis]
  • #17332 Add extra core:archive log for initiation of logging [by @diosmosis]
  • #17333 Add event tags to top and bottom of body [by @MHarmony, @diosmosis]
  • #17345 Require password confirmation for more plugin operations. [by @diosmosis]
  • #17357 Ensure login allow list is not checked for authenticated tracking requests [by @sgiehl, @diosmosis]
  • #17364 check for openssl extension [by @Findus23, @diosmosis]
  • #17365 Warning in 2fa setting: gmdate() expects parameter 2 to be int [by @tsteur, @diosmosis]
  • #17387 Apache 2.4+ compatibility for misc/cron/.htaccess [by @jorisdrenth, @diosmosis]
  • #17396 Use ranking query in custom dimensions archiver [by @diosmosis]
  • #17400 Disallow enable 2FA requirement when user doesn’t have 2FA enabled [by @andyjdavis, @diosmosis]
  • #17402 fix ScheduledReports.sendReport API [by @Findus23, @diosmosis]
  • #17437 Do not allow setting partial archives to DONE_INVALIDATED [by @diosmosis]
  • #17438 [automatic submodule updates] [by @github-actions[bot], @sgiehl]
  • #17447 INI process_new_segments_from: allow processing segments X days before last edit day [by @sgiehl, @diosmosis]
  • #17457 Workaround error in Overlay when site has no URLs [by @diosmosis]
  • #17461 Add get-segment-sql development command for debugging [by @diosmosis]
  • #17477 Add comment about using shop@innocraft.com for premium features [by @diosmosis]
  • #17490 Add diagnostic that checks if server directories that should be private are accessible [by @diosmosis]
  • #17515 no links in copy-paste system check [by @Findus23, @tsteur]
  • #17517 Do not confuse normal rows with the label “-1” w/ the summary row [by @diosmosis]
  • #17528 require password confirmation when resetting 2fa [by @diosmosis]
  • #17537 add new ini config to enable/disable the php profiler feature [by @diosmosis]
  • #17538 Add option to skip log purging check when invalidating archives in the rare cases it is needed. [by @diosmosis]
  • #17540 more neutral wording and other style improvements [by @Findus23, @sgiehl]
  • #17547 If no archives names are requested when querying archive data, do not initiate archiving. [by @diosmosis]
  • #17569 Make sure summary row subtables are included in the serialized representaion of a datatable tree. [by @diosmosis, @tsteur]
  • matomo-org/device-detector
  • #6604 iOS/macOS apps not detected correctly
  • #6656 Adds detection for Lumin OS and Helio browser [by @liviuconcioiu, @sanchezzzhak]
  • #6671 Adds detection for DVKBuntu operating system [by @liviuconcioiu, @sgiehl]
  • #6694 Detect new brands: Seatel, 3GNET, IT, Jiake, Malata, Ditecma, Datamini, Newsday and Detect devices for existing brands: Leotec, Navon, Evolveo, Cherry Mobile, iPro, Odys, Iris, Maxwest, iTel [by @sanchezzzhak]
  • #6695 Detect new brands: iQ&T, Pixela, Datalogic, Navitel, Naomi Phone, Mantra, Maximus, Navcity, Linnex and Detect devices for existing brands: Inco, MicroMax, IMO Mobile, Blu, Kzen, Cherry Mobile, Altron, Evercoss, Leagoo, Leader Phone, Lava [by @sanchezzzhak]
  • #6698 Fixes detection for Aloha browser [by @zudwalex, @sanchezzzhak]
  • #6699 Detect library: Embarcadero URI Client and app: Rucket Chat and bots: Ryowl, Sputnik Favicon Bot, Sputnik Image Bot, Hatena Favicon [by @sanchezzzhak]
  • #6700 Detect new brands: Suzuki, Nabi, Gresso, G-Touch, FaRao Pro, StrawBerry, Smartab, Subor, SuperTab, Pendoo, Engel and Detect devices for existing brands: Sugar, TrekStor, Ghia, Lenovo, Freetel, Lark, Zidoo, Sony, Siragon, SPC, Karbonn, Bitel, Cloudfone, Navon, Ritmix, Starlight, Zuum, Blu, Dune HD, Philco [by @sanchezzzhak, @sgiehl]
  • #6702 Detect new brands: Genesis, InfoKit, Bllocm, Huskee, SKG, SOLE, SOLO, OINOM and Detect devices for existing brands: Xiaomi, Beelink, Meizu, NOA, HTC, Azumi, Motorola, iRulu, Multilaser, Hotwav, Condor, ProScan, Philco, iBall, Q-Touch, QMobile, Kempler & Strauss, Danew, Qilive, Solone, Accent, True, Chuwi [by @sanchezzzhak, @sgiehl]
  • #6705 Detect new brand INCAR [by @sanchezzzhak, @sgiehl]
  • #6706 Detect apps: Pandora, NPR One, Wirtschafts Woche, Microsoft Outlook, TVirl, ChMate, 2tch, Ciisaa, BB2C, twinkle, JaneStyle, JaneView, BathyScaphe, Live5ch [by @sanchezzzhak]
  • #6708 Detect new brands: Singtech, Maze Speed, Sunny, True Slim, OASYS, TEENO, v-mobile, Aspera, Vision Touch, NOBUX, Hitech and Detect devices for existing brands: MSI, Siragon, FireFly, Blu, SFR, Starmobile, Starlight, iBrit, Sico, Casper, Lenovo, Maxwest, STF Mobile, Karbonn, Evercoss, ZTE, Sky, Alba, Azumi, Hisense, Inco, Lava, Alcatel, öwn, Videocon, EXO, Forstar, iBall, Wink [by @sanchezzzhak]
  • #6711 Detect lib: Mikrotik Fetch and Detect bots: Odnoklassniki Bot, Mediatoolkit Bot, ZoominfoBot, WeViKaBot, SEOkicks, Plukkie, Comscore [by @sanchezzzhak]
  • #6715 Add detect bots: SurdotlyBot, Gowikibot, SabsimBot, LumtelBot, PiplBot, WooRank [by @sanchezzzhak]
  • #6716 Detect new brand: F150 and Detect devices for existing brands: Archos, OnePlus, Alcatel, POCO, Oppo, BQ, Doogee, Samsung, Huawei, Vivo, Xiaomi, CUBOT, Blackview, Realme, General Mobile, Teclast [by @sanchezzzhak, @sgiehl]
  • #6718 feat(bots): Detects AppSignal bot [by @achedeuzot, @sanchezzzhak]
  • #6720 Missing LG WebOS SmartTV
  • #6721 Detect version webos and detect brand LG [by @sanchezzzhak]
  • #6723 Detect devices for existing brands: Xiaomi, TCL, Alcatel, Hisense, Huawei, Digma, Irbis, Cricket, Hyundai, Apple, Lenovo, AT&T, LG, Motorola, Kyocera, Lanix, OnePlus, iPro, Dell, Zuum, Polaroid, CHIA and Detect library Akka HTTP [by @sanchezzzhak]
  • #6724 Adds detection for GRequests library and fix PHPCS [by @liviuconcioiu, @sanchezzzhak]
  • #6727 Detect new brands: BilimLand and Detect devices for existing brands: Motorola, TCL, AllDocube, Highscreen, Tecno Mobile, Huawei, 3Q, Meizu, Xiaomi, Microsoft, Realme, Black Fox, POCO, BQ, Telefunken, Fly, DEXP, Digma, Oukitel, Explay, Torex, Chuwi, Ulefone, Doogee, iTel, Allview, Advan, Gionee [by @sanchezzzhak]
  • #6728 Detect browser OceanHero [by @sanchezzzhak]
  • #6729 Detect new brands: GFive, Greentel, Kyowon, LT, ONYX BOOX, Topway, MAC AUDIO, BrightSign and Detect devices for existing brands: Alcatel, Asus, Samsung, POCO, Realme, Xiaomi, OnePlus, Sony, Allwinner, ZTE, TCL, Vivo, Huawei, Artel, HP, Blu, CUBOT, Ravoz, LG, T-Mobile, Lava, iBall, Touchmate, Mito, Karbonn, Tecno Mobile, QMobile, Videocon, Essentielb, Mobiistar, Yes, LG, Yezz, Logic, Kyocera [by @sanchezzzhak, @sgiehl]
  • #6730 Device BookReader. What type of device should I specify in the definition?
  • #6734 Improves detect desktop and detect devices for brand: Dell [by @sanchezzzhak, @sgiehl]
  • #6736 Adds detection bot Yahoo! Mail Proxy [by @sanchezzzhak]
  • #6737 Improved version detection for Midori Browser [by @sanchezzzhak]
  • #6738 Detect new brands: KINGZONE, Fourel, M-Tech, Fantec, 2F Mobile, AURIS, YUHO and Detect devices for existing brands: Meizu, Microsoft, HP, Twoe, Huawei, Konrow, Acer, Centric, Asus, Dell, Xolo, InFocus, iBall, IKU Mobile, Venso, DEXP, IUNI, Keneksi, Medion, Advan, Contixo, Iris, Digma, Ziox, HTC, Leagoo, Oysters, Oukitel, Beelink, QMobile, Energy Sistem, Artel, MyPhone, Vivax, Xiaomi, Cherry Mobile, Krüger&Matz, Blaupunkt, GOCLEVER, S-TELL, Qumo, Karbonn, Condor, Torex, Savio, Yu [by @sanchezzzhak, @sgiehl]
  • #6741 Adds detection for Binance mobile app [by @liviuconcioiu, @sanchezzzhak]
  • matomo-org/tag-manager
  • #308 Using special characters in variable name results in errors in trigger configuration [by @flamisz]
  • #309 Changing MTM Container Name or Description leads to HTTP 414 URI Too Long when many container versions [by @sgiehl]
  • matomo-org/matomo-log-analytics
  • #249 Improve gzip detection (or allow override) for rotated files
  • #308 Remove colons from timezone [by @mwithheld, @sgiehl]
  • matomo-org/referrer-spam-list
  • #1260 Add doreenblog.online [by @ericguirbal, @spmedia]
  • #1261 Add vanessablog.online [by @ericguirbal, @spmedia]
  • #1262 Add wandamary.online [by @ericguirbal, @spmedia]
  • #1263 Add eets.net [by @ericguirbal, @spmedia]
  • matomo-org/component-ini
  • #16 write multi dim array to valid ini [by @typomedia, @diosmosis]
  • #17 apply more encoding w/ tests [by @diosmosis, @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!