{"plugins":[{"name":"AbTesting","displayName":"A\/B Testing","owner":"matomo-org","description":"Increase revenue and conversions by comparing different versions of your websites or apps & detect the winning variation that will grow your business!","homepage":"https:\/\/www.ab-tests.net","createdDateTime":"2016-10-25 21:08:10","donate":{},"support":[],"isTheme":false,"keywords":["Marketing","a\/b","tests","split","abtests","test","experiments","variation","variant","optimze","improve","cro"],"basePrice":220,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-12 06:05:17","latestVersion":"6.0.4","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/AbTesting\/images\/6.0.4\/0_Report.png","https:\/\/plugins.matomo.org\/AbTesting\/images\/6.0.4\/2_Manage_your_experiments_easily.png","https:\/\/plugins.matomo.org\/AbTesting\/images\/6.0.4\/3_Configure_your_experiments.png","https:\/\/plugins.matomo.org\/AbTesting\/images\/6.0.4\/4_Define_your_success_metrics.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/AbTesting.png","previews":[{"type":"demo","provider":"link","url":"https:\/\/demo.matomo.cloud\/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#?idSite=1&period=day&date=yesterday&category=AbTesting_Experiments&subcategory=General_Overview"},{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/jir37QyCctM","id":"jir37QyCctM"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/AbTesting","variations":[{"product_variation_id":130464,"price":"219","prettyPrice":"219EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130464&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130464","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/abtesting\/?attribute_type=1+to+4+users&add-to-cart=2446&variation_id=130464&aelia_cs_currency=EUR"},{"product_variation_id":130464,"price":"269","prettyPrice":"USD269","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130464&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130464","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/abtesting\/?attribute_type=1+to+4+users&add-to-cart=2446&variation_id=130464&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130465,"price":"1739","prettyPrice":"1739EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130465&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130465","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/abtesting\/?attribute_type=Up+to+20+users&add-to-cart=2446&variation_id=130465&aelia_cs_currency=EUR"},{"product_variation_id":130465,"price":"2089","prettyPrice":"USD2089","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130465&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130465","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/abtesting\/?attribute_type=Up+to+20+users&add-to-cart=2446&variation_id=130465&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130466,"price":"3459","prettyPrice":"3459EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130466&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130466","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/abtesting\/?attribute_type=Up+to+50+users&add-to-cart=2446&variation_id=130466&aelia_cs_currency=EUR"},{"product_variation_id":130466,"price":"4149","prettyPrice":"USD4149","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130466&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2446&variation_id=130466","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/abtesting\/?attribute_type=Up+to+50+users&add-to-cart=2446&variation_id=130466&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/abtesting\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"5.00","ratingCount":3,"reviewCount":3}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{},"versions":[{"name":"6.0.4","release":"2026-10-12 06:05:17","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/AbTesting\/6.0.4\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Find your website's winning formula by running A\/B tests. \u200b\u200bUse data to guide your design choices and watch your conversion rates rise.<\/p>\n\n<p>Choosing the right layout, images, or message can feel like a guessing game. Bring more certainty to this crucial part of your job with Matomo's A\/B Testing plugin.<\/p>\n\n<p>Start running A\/B tests without complex or expensive tools. Create experiments, compare different versions of your website and identify winners.<\/p>\n\n<h3>How A\/B Testing Works<\/h3>\n\n<h4>Decide Test Winners Without Complex Statistics<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Defining an A\/B test winner requires the use of statistics, a complicated and time-consuming task for most marketers. But with Matomo's A\/B Testing plugin, that's no longer the case.<\/p>\n<p>Get a detailed breakdown of your test's variations with all the metrics that matter. If one reaches statistical significance within the desirable detectable effect, you'll be informed right away so you can roll out the changes confidently.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/AbTesting\/image1.png\" style=\"margin-left:24px;\" alt=\"Decide Test Winners Without Complex Statistics\" \/>\n<\/div>\n<\/div>\n\n<h4>See How Your Tests Perform Over Time<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Watch how your A\/B tests unfold over weeks and months with the evolution report. Plot different key metrics and overlay audience segments to analyse your data in detail. Keep an eye on their progress and ensure everything runs smoothly.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/AbTesting\/image2.gif\" style=\"margin-left:24px;\" alt=\"See How Your Tests Perform Over Time\" \/>\n<\/div>\n<\/div>\n\n<h4>Define a Wide Range of Success Metrics<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Define up to three success metrics and adapt your experiments to what matters to you: higher conversions, orders, or more. It's A\/B testing; your way.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/AbTesting\/image3.png\" style=\"margin-left:24px;\" alt=\"Define a Wide Range of Success Metrics\" \/>\n<\/div>\n<\/div>\n\n<h4>Setting Up A\/B Tests Doesn't Get Any Easier<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Configure tests by giving them a name, hypothesis, and description (for reference). Then, define the number of variations and target pages to run, and you're good to go.<\/p>\n<p>Run experiments in minutes and enjoy faster growth with the A\/B Testing plugin.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/AbTesting\/image4.png\" style=\"margin-left:24px;\" alt=\"Setting Up A\/B Tests Doesn't Get Any Easier\" \/>\n<\/div>\n<\/div>\n\n<h4>Stay On Top of All Your A\/B Tests<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Gain a crystal-clear snapshot of your tests' performance. Look at how many visitors you get per version, how many actively entered the target page, and the overall conversion rate.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/AbTesting\/image5.jpg\" style=\"margin-left:24px;\" alt=\"Stay On Top of All Your A\/B Tests\" \/>\n<\/div>\n<\/div>\n\n<h3>Try A\/B Testing Today<\/h3>\n\n<p>Create unlimited A\/B tests with unlimited variations and tailored goals, and unlock the power of data-driven growth. Tailor every aspect of your site based on what resonates with your audience with Matomo's A\/B Testing plugin.<\/p>\n\n<p>Start your 30-day free trial and see your business growth compound.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>The user interface guides you through all stages from creating an experiment to interpreting the results.<\/li>\n<li>Run an experiment in the browser or on a server using the JavaScript A\/B testing framework.\n\n<ul>\n<li>All you need to do is to implement a method that defines what happens when a variation gets activated.<\/li>\n<li>Possibility to test entirely different versions of your website by using redirects.<\/li>\n<\/ul><\/li>\n<li>Run an experiment on a server (PHP, C#, Python, Ruby, ...).<\/li>\n<li>Run an experiment in applications, games and on mobile devices like Android or iOS in combination with pretty much any A\/B testing framework.<\/li>\n<li>Run an experiment to see how different search marketing campaigns, ad campaigns or email marketing campaigns influence the browsing behaviour on your website.<\/li>\n<li>Force the activation of a specific variation via a URL parameter so you can test it easily and share the URL with colleagues when you need to get each variation approved before running a test.<\/li>\n<\/ul>\n\n<h3>Reporting features<\/h3>\n\n<ul>\n<li>Get an overview over all experiments in just one page.<\/li>\n<li>Once an experiment is running:\n\n<ul>\n<li>Shows the description, hypothesis and goal of the experiment in the report of the experiment.<\/li>\n<li>Shows an evolution of your success metrics for each variation.<\/li>\n<li>Shows how the different variations compared between each other, for each of your success metrics.<\/li>\n<li>Shows notifications for each success metric once a potential winner or loser is detected.<\/li>\n<li>Makes sure the results are statistically significant and enough visitors or users have entered the experiment.<\/li>\n<\/ul><\/li>\n<li>Segment A\/B testing reports by any existing Matomo segments.<\/li>\n<li>Segment Matomo reports by experiments and variations.<\/li>\n<li>Access raw data for advanced custom analysis<\/li>\n<\/ul>\n\n<h3>Manage A\/B tests<\/h3>\n\n<ul>\n<li>Users with admin access can create unlimited A\/B tests (experiments).<\/li>\n<li>Assign as many variations to your experiment as you like.<\/li>\n<li>Define success metrics like:\n\n<ul>\n<li>Goal conversions,<\/li>\n<li>Goal revenue,<\/li>\n<li>Ecommerce orders,<\/li>\n<li>Ecommerce order revenue,<\/li>\n<li>Total conversions,<\/li>\n<li>Total revenue,<\/li>\n<li>Page views,<\/li>\n<li>Bounces,<\/li>\n<li>Visit length (time).<\/li>\n<\/ul><\/li>\n<li>Define which improvement rate you expect from an experiment.<\/li>\n<li>Define the Confidence Threshold you need to be statistically sure the change is not due to randomness.<\/li>\n<li>Define on which pages an experiment should (or should not) be activated.<\/li>\n<li>Define how much traffic the experiment should get in total.<\/li>\n<li>Allocate a different amount of traffic to your variations.<\/li>\n<li>Schedule your experiments to run from a start date and\/or to finish on a given date.<\/li>\n<li>Integrates with the <a href=\"https:\/\/plugins.matomo.org\/ActivityLog\">Activity log plugin<\/a> to let you monitor and audit changes to your A\/B tests.<\/li>\n<\/ul>\n\n<h3>Export and API features<\/h3>\n\n<ul>\n<li>HTTP API to create, update, start and finish experiments.<\/li>\n<li>HTTP API to fetch all A\/B testing reports and metrics overall and for each variation.<\/li>\n<li>Get access to all the raw data via MySQL for 100% data ownership.<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/ab-testing\/\">A\/B Testing User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/ab-testing\/\">A\/B Testing FAQ<\/a> help you getting started in running A\/B tests. \nThe <a href=\"https:\/\/developer.matomo.org\/guides\/ab-tests\">A\/B Testing developer guides<\/a> help you embedding and implementing A\/B tests into your project.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.4 - 2026-10-12\n- Fixed the status filter and search field on the Manage Experiments page overlapping or sitting out of line; they are now spaced evenly and their bottom edges line up<\/p>\n\n<p>6.0.3 - 2026-09-28\n- Relative report dates such as \"today\" or \"last 7 days\", and the end date of an experiment that is still running, are now resolved in the website's timezone, so an experiment's reported period no longer shifts to a neighbouring day for websites whose timezone differs from the server's<\/p>\n\n<p>6.0.2 - 2026-09-21\n- Fixed the setting to disable A\/B testing not being saved while a compliance policy disables it for a website\n- Experiments are now deleted only once the setting has been stored, and a deletion that does not complete is finished on the next save\n- Fixed a blank entry being added to the Activity Log when an experiment event carried no valid site or experiment id<\/p>\n\n<p>6.0.1 - 2026-09-14\n- Fixed the loading indicator showing as a white box in dark mode<\/p>\n\n<p>6.0.0 - 2026-08-13\n- Compatibility with Matomo 6<\/p>\n\n<p>5.5.3 - 2026-05-11\n- Updated A\/B test creation inline helptexts<\/p>\n\n<p>5.5.2 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.5.1 - 2026-02-02\n- updated api documentation\n- System setting disable field name updated<\/p>\n\n<p>5.5.0 - 2025-12-08\n- Added support for core CNIL policy control of setting values to disable AbTesting<\/p>\n\n<p>5.4.0 - 2025-11-24\n- Added option to disable AbTesting globally<\/p>\n\n<p>5.3.3 - 2025-07-07\n- Textual changes<\/p>\n\n<p>5.3.2 - 2025-05-26\n- Fixed permission error for user with write access when viewing manage screen\n- Fixed sort not working as expected<\/p>\n\n<p>5.3.1 - 2025-03-31\n- Adjusted client storage lifespan to 13 months<\/p>\n\n<p>5.3.0 - 2025-02-03\n- Added an option to forward all query params on redirect<\/p>\n\n<p>5.2.3 - 2024-11-04\n- Updated README.md<\/p>\n\n<p>5.2.2 - 2024-10-08\n- Updated configuration install to use isset instead of empty to set default values<\/p>\n\n<p>5.2.1 - 2024-09-23\n- Improved tooltip message for HyperLogLog metric<\/p>\n\n<p>5.2.0 - 2024-09-02\n- Added an option to use HyperLogLog to calculate estimated unique visitors instead of unique visitors to improve archiving performance<\/p>\n\n<p>5.1.4 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.1.3\n- Add cover image for marketplace\n- Added code to skip setting campaign parameters instead of initializing environment<\/p>\n\n<p>5.1.2\n- Fixed errors thrown when enabling the MarketingCampaignsReporting plugin<\/p>\n\n<p>5.1.1\n- Fixed warnings due to no variations defined when determining count to set filter_limit<\/p>\n\n<p>5.1.0\n- Added option to forward campaign URL parameters when redirecting\n- Allow more than 10 variations to show in experiment reports<\/p>\n\n<p>5.0.6\n- Updated README.md<\/p>\n\n<p>5.0.5\n- Fixes issue with report preferences not being specific to each experiment<\/p>\n\n<p>5.0.4\n- Reverses change from 5.0.3 as the root issue was addressed in core<\/p>\n\n<p>5.0.3\n- Fixes access error for users with write permission, when viewing manage screen<\/p>\n\n<p>5.0.2\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5<\/p>\n\n<p>5.0.0\n- Remove all references to AngularJS.<\/p>\n\n<p>4.2.6\n- Fixed wrong duration being displayed in summary<\/p>\n\n<p>4.2.5\n- Fixed HTML injection possibility<\/p>\n\n<p>4.2.4\n- Fix incompatibility with Matomo 4.14.0<\/p>\n\n<p>4.2.3\n- Added semantic type metadata for ABTesting metrics<\/p>\n\n<p>4.2.2\n- Fixed deprecation warnings for PHP 8.1<\/p>\n\n<p>4.2.1\n- Stopped using timezone to aggregate day report<\/p>\n\n<p>4.2.0\n- Migrate AngularJS code to Vue<\/p>\n\n<p>4.1.7\n- Fixed date range error bug in view report\n- \n4.1.6\n- Fixed deprecation warnings for PHP 8.1<\/p>\n\n<p>4.1.5\n- Fix orders abtesting metrics not aggregating properly after orders removed as success metric from experiment<\/p>\n\n<p>4.1.4\n- Improve archiving of unique visitor metrics<\/p>\n\n<p>4.1.3\n- Improve archiving of unique visitor metrics<\/p>\n\n<p>4.1.2\n- Fix unique visitor metrics in evolution chart\n- Add Czech translations<\/p>\n\n<p>4.1.1\n- Improve archiving for Roll-Up reporting<\/p>\n\n<p>4.1.0\n- More effiecient unique visitors processing\n- Reports can now be only viewed for the entire experiment date range when using the API<\/p>\n\n<p>6.0.8\n- jQuery compatibility w\/ wordpress\n- fix possible error SignificanceRate::setDataTableWithSamples() must be an instance of Piwik for nb_orders_revenue\n- add category help texts<\/p>\n\n<p>4.0.7\n- Fix version constraint<\/p>\n\n<p>4.0.6\n- Performance improvement<\/p>\n\n<p>4.0.5\n- Compatibility with PHP 8<\/p>\n\n<p>4.0.2\n- Compatibility with Matomo 4.x<\/p>\n\n<p>4.0.1\n- Compatibility with Matomo 4.x<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4.x<\/p>\n\n<p>3.2.18\n- Better support for Safari's new ITP\n- Added new tracker methods <code>AbTesting::disableWhenItp<\/code>, <code>AbTesting::disable<\/code>, <code>AbTesting::enable<\/code>, <code>AbTesting::isEnabled<\/code><\/p>\n\n<p>3.2.17\n- Ensure to set samesite flag when setting a cookie<\/p>\n\n<p>3.2.16\n- Fix a possible notice in RemainingVisitors calculation<\/p>\n\n<p>3.2.15\n- Prevent possible notice during archiving\n- Added new language\n- Better support for Matomo 3.12.0<\/p>\n\n<p>3.2.14\n- Use Reader DB in all archiver queries when configured<\/p>\n\n<p>3.2.13\n- Improvements for Matomo 3.12 to support faster segment archiving<\/p>\n\n<p>3.2.12\n- Show search box for entities\n- Support usage of a reader DB when configured<\/p>\n\n<p>3.2.11\n- Adjust help text for page targeting\n- Fix opacity for drop downs\n- Added new language<\/p>\n\n<p>3.2.10\n- title-text of JavaScript Tracking option help box shows HTML\n- Fix unsupported operand notice might appear under circumstances in the overview report<\/p>\n\n<p>3.2.9\n- Added various new languages\n- Removed configuration for original redirect url as it should be configured and could lead to issues if it is.<\/p>\n\n<p>3.2.8\n- Improve compatibility with Matomo 3.9<\/p>\n\n<p>3.2.7\n- Ensure the color of a warning in the test is readable<\/p>\n\n<p>3.2.6\n- Improve compatibility with Tag Manager<\/p>\n\n<p>3.2.5\n- Support more languages\n- Use new brand colors<\/p>\n\n<p>3.2.4\n- Add possibility to force multiple variations through a URL parameter when multiple tests are running on the same page<\/p>\n\n<p>3.2.3\n- Use API requests internally\n- View user can now request the experiment configuration<\/p>\n\n<p>3.2.2\n- Support new Write role<\/p>\n\n<p>3.2.1\n- Show experiment participation in visitor log<\/p>\n\n<p>3.2.0\n- Rename Experiments to A\/B tests<\/p>\n\n<p>3.1.11\n- Prevent possible fatal error when opening manage screen for all websites\n- Validate any entered regular expression when configuring an experiment\n- Ignore URL parameters \"pk_abe\" and \"pk_abv\" in page URLs\n- When tracking an A\/B test, do not validate the target page server side<\/p>\n\n<p>3.1.10\n- Renamed Piwik to Matomo<\/p>\n\n<p>3.1.9\n- Fix only max 100 experiments where loaded when managing experiments for one specific site.\n- Use better random number generators if available when using server side redirects feature.<\/p>\n\n<p>3.1.8\n - Make sure to find all matches for a root folder when \"equals simple\" is used<\/p>\n\n<p>3.1.7\n- Fix typo in example embed code\n- Improve variation detection by ignoring case<\/p>\n\n<p>3.1.6\n- Fix a possible notice during tracking\n- Make sure HTML entities can be used in page targets<\/p>\n\n<p>3.1.5\n- When using an \"equals exactly\" comparison, ignore a trailing slash when there is no path set<\/p>\n\n<p>3.1.4\n- Fix a server side redirect issue where a stored cookie value might be ignored for the original version<\/p>\n\n<p>3.1.3\n- Enrich System Summary widget<\/p>\n\n<p>3.1.2\n- Show manage experiments in reporting menu<\/p>\n\n<p>3.1.1\n- Show summary row in overview report<\/p>\n\n<p>3.1.0\n- Added possibility to define redirects in UI\n- Fix preview images was not shown<\/p>\n\n<p>3.0.2\n- Added new feature to force a specific variation via URL<\/p>\n\n<p>3.0.1\n- Added Experiments overview page\n- When creating a new experiment for an ecommerce shop, pre-select Ecommerce Orders and Ecommerce Revenue success metric automatically\n- Make sure A\/B Test reports work when range dates are disabled<\/p>\n\n<p>3.0.0 \n- Initial version<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/AbTesting\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"ActivityLog","displayName":"Activity Log","owner":"matomo-org","description":"Get a detailed audit log of all activities happening in your Matomo Analytics for increased security, risk management, and problem diagnostic.","homepage":"https:\/\/plugins.matomo.org\/ActivityLog","createdDateTime":"2016-10-25 21:06:10","donate":{},"support":[],"isTheme":false,"keywords":["security","monitoring","administration","log","activity","audit"],"basePrice":33,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-12 06:11:19","latestVersion":"6.0.4","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/ActivityLog\/images\/6.0.4\/activity_log.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/ActivityLog.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/ActivityLog","variations":[{"product_variation_id":130467,"price":"39","prettyPrice":"39EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130467&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130467","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/activitylog\/?attribute_type=1+to+4+users&add-to-cart=2478&variation_id=130467&aelia_cs_currency=EUR"},{"product_variation_id":130467,"price":"39","prettyPrice":"USD39","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130467&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130467","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/activitylog\/?attribute_type=1+to+4+users&add-to-cart=2478&variation_id=130467&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130468,"price":"279","prettyPrice":"279EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130468&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130468","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/activitylog\/?attribute_type=Up+to+20+users&add-to-cart=2478&variation_id=130468&aelia_cs_currency=EUR"},{"product_variation_id":130468,"price":"339","prettyPrice":"USD339","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130468&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130468","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/activitylog\/?attribute_type=Up+to+20+users&add-to-cart=2478&variation_id=130468&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130469,"price":"549","prettyPrice":"549EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130469&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130469","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/activitylog\/?attribute_type=Up+to+50+users&add-to-cart=2478&variation_id=130469&aelia_cs_currency=EUR"},{"product_variation_id":130469,"price":"659","prettyPrice":"USD659","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130469&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2478&variation_id=130469","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/activitylog\/?attribute_type=Up+to+50+users&add-to-cart=2478&variation_id=130469&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/activitylog\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"4.75","ratingCount":4,"reviewCount":4}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["security"],"promotions":{},"versions":[{"name":"6.0.4","release":"2026-10-12 06:11:19","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/ActivityLog\/6.0.4\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Review any actions performed by employees or clients. Find potential security breaches, enhance your accountability, and foster a culture of transparency.<\/p>\n\n<p>You're meticulous about your data, yet the thought of unnoticed actions or unauthorised changes concerns you. When questions arise, pinpointing responsibility feels like a guessing game. And if you ever got a security breach, you aren't sure you could find what caused it.<\/p>\n\n<p>Fortunately, there's a way to cast those worries aside and always have a clear trail at your fingertips.<\/p>\n\n<p>The Activity Log plugin keeps a record of all important activities performed by your users within Matomo's platform. View all activities that happened in the past in chronological order to see the actions taken by your employees (or clients) with their respective timestamps.<\/p>\n\n<h3>How Activity Log Works<\/h3>\n\n<h4>A Clear Timeline of Every Action Taken by Everyone in Your Matomo Instance<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Get a meticulous breakdown of user actions, letting you instantly identify who's linked to specific activities or events. <\/p>\n<p>Monitor data for any potential security breach or misuse of information before it's too late. <\/p>\n<p>Examine the issue in-depth and bring a layer of transparency to your organisation.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/ActivityLog\/image1.jpg\" style=\"margin-left:24px;\" alt=\"A Clear Timeline of Every Action Taken by Everyone in Your Matomo Instance\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Activity Log Today<\/h3>\n\n<p>Dive into a world where transparency meets security. With Activity Log, every decision is not only backed by data but empowered by it. Unravel the intricacies of user actions, safeguard your analytics, and navigate with unwavering confidence.<\/p>\n\n<p>Start your 30-day free trial today and keep your organisation ahead of any problems.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Logs all important activities a Matomo user can perform.<\/li>\n<li>Includes details such as who performed the action, what the action was, and when it was performed.<\/li>\n<li>Super Users can view activities of all users and filter by user.<\/li>\n<li>Users with view, write, or admin access can view their own activities.<\/li>\n<li>An Activity Log widget can be added to your Matomo dashboard to always have an eye on it.<\/li>\n<li>Export the Activity Log UI and embed it via an iframe to share it with others.<\/li>\n<li>Simple HTTP API provide all activity log entries as JSON, XML, ...<\/li>\n<li>Gravatar support can be enabled to see avatars next to your user's activities.<\/li>\n<\/ul>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Explore the frequently asked questions in the <a href=\"https:\/\/matomo.org\/subcategory\/activity-audit-log\/\">Matomo knowledge base<\/a>.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.4 - 2026-10-12\n- Added a new activity for plugin trial requests<\/p>\n\n<p>6.0.3 - 2026-10-05\n- Fixed the activity list sometimes ignoring a filter change made while the list was still loading\n- Fixed a user picked by clicking their name in the list not showing in the user filter, and Refresh then undoing that filter\n- Updated the UI test screenshots for the lighter default border colour in Matomo 6<\/p>\n\n<p>6.0.2 - 2026-09-28\n- Added new activities for the changes made on the privacy compliance page<\/p>\n\n<p>6.0.1 - 2026-09-14\n- Fixed the alignment of the activity type filter, which sat below the rest of the toolbar\n- Rebuilt the activity user filter on the standard select field, so it matches the type filter beside it and is readable in dark mode\n- Fixed the loading indicator showing as a white box in dark mode\n- Improved how activities are recorded<\/p>\n\n<p>6.0.0\n- Compatibility with Matomo 6\n- Add indexes to the activity log table to improve filtering performance on large installs\n- Activity entries sharing the same timestamp are now listed newest first (previously oldest first)<\/p>\n\n<p>5.1.9 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.1.8 - 2026-03-02\n- Updated marketplace screenshots<\/p>\n\n<p>5.1.7 - 2026-02-18\n- Added check back in for empty activities<\/p>\n\n<p>5.1.6 - 2026-02-16\n- Added new activity for CrashAnalytics pause\/resume for Matomo Cloud<\/p>\n\n<p>5.1.5 - 2026-02-09\n- Fixed issue where activities that used website id weren't being added<\/p>\n\n<p>5.1.4 - 2026-02-02\n- Updated API documentation\n- Added new activity to use when plugin activation is requested<\/p>\n\n<p>5.1.3 - 2025-10-27\n- Added check to limit date range for non-superusers by date_registered<\/p>\n\n<p>5.1.2 - 2025-10-13\n- Add two new params for PrivacyManager API change to setAnonymizeIpSettings method\n- Add new activity for when a report or configuration is copied<\/p>\n\n<p>5.1.1 - 2025-04-14\n- Adjusted the message when no activities are found<\/p>\n\n<p>5.1.0 - 2024-12-16\n- Added an option to filter activities by date and type<\/p>\n\n<p>5.0.7 - 2024-11-04\n- Updated README.md<\/p>\n\n<p>5.0.6 - 2024-10-21\n- Updated FAQ document to include a link of knowledge base instead of text<\/p>\n\n<p>5.0.5 - 2024-09-02\n- Added new activities to track GDPR export and find data subject action<\/p>\n\n<p>5.0.4 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.3\n- Added new activities to track events from GA Importer<\/p>\n\n<p>5.0.2\n- Added code to log correct user for resetPassword action<\/p>\n\n<p>5.0.1\n- Updated README.md<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p><strong>4.1.2<\/strong>\n- Added support to track force_cookieless_tracking and anonymize_referrer setting of Privacy<\/p>\n\n<p><strong>4.1.1<\/strong>\n- Rebuild Vue files to fix broken plugin<\/p>\n\n<p><strong>4.1.0<\/strong>\n- Migrate AngularJS code to Vue.\n- Added new event for report invalidation<\/p>\n\n<p><strong>4.0.6<\/strong>\n- Added new events for invite user feature logging<\/p>\n\n<p><strong>4.0.5<\/strong>\n- Fixed compatability issue with Matomo 4.6<\/p>\n\n<p><strong>4.0.4<\/strong>\n- Fixed warning for php 8.1 when passing null to strtolower \n- Updated base price.<\/p>\n\n<p><strong>4.0.3<\/strong><\/p>\n\n<ul>\n<li>The Site ID will now be included for measurables shown in the activity log UI<\/li>\n<li>Support limit=-1 for API Requests, where -1 will set the limit to PHP_INT_MAX and any value lower than -1 to throw an exception<\/li>\n<\/ul>\n\n<p><strong>4.0.2<\/strong><\/p>\n\n<ul>\n<li>Added option to anonymize IPs after a certain amount of days<\/li>\n<\/ul>\n\n<p><strong>4.0.1<\/strong><\/p>\n\n<ul>\n<li>Support custom plugin directories<\/li>\n<\/ul>\n\n<p><strong>4.0.0<\/strong><\/p>\n\n<ul>\n<li>Compatibility with 4.X<\/li>\n<\/ul>\n\n<p><strong>3.4.0<\/strong><\/p>\n\n<ul>\n<li>New events for adding and removing user capabilities<\/li>\n<\/ul>\n\n<p><strong>3.3.1<\/strong><\/p>\n\n<ul>\n<li>Fixed bug where not all users where displayed in filter drop down<\/li>\n<li>Added translations for Portuguese<\/li>\n<\/ul>\n\n<p><strong>3.3.0<\/strong><\/p>\n\n<ul>\n<li>improved SQL table definition<\/li>\n<li>translation updates<\/li>\n<\/ul>\n\n<p><strong>3.2.5<\/strong><\/p>\n\n<ul>\n<li>New event: Deleting visits using GDPR tools<\/li>\n<\/ul>\n\n<p><strong>3.2.4<\/strong><\/p>\n\n<ul>\n<li>Added translations for Turkish and French<\/li>\n<\/ul>\n\n<p><strong>3.2.3<\/strong><\/p>\n\n<ul>\n<li>Added translation for Albanian<\/li>\n<li>New events for two factor auth<\/li>\n<li>mask passwords in settings activities<\/li>\n<\/ul>\n\n<p><strong>3.2.2<\/strong><\/p>\n\n<ul>\n<li>Added translations for Spanish and Italian<\/li>\n<li>Compatibility \/ Fix for PHP 7.3<\/li>\n<\/ul>\n\n<p><strong>3.2.1<\/strong><\/p>\n\n<ul>\n<li>Improved compatibility with older Matomo versions<\/li>\n<\/ul>\n\n<p><strong>3.2.0<\/strong><\/p>\n\n<ul>\n<li>New event: Scheduled report unsubscription<\/li>\n<li>New event: Raw data anonymization triggered<\/li>\n<li>Support new \"Write\" role<\/li>\n<\/ul>\n\n<p><strong>3.1.2<\/strong><\/p>\n\n<ul>\n<li>Rename Piwik to Matomo<\/li>\n<\/ul>\n\n<p><strong>3.1.1<\/strong><\/p>\n\n<ul>\n<li>Possibility to configure permission required to view activity log (view \/ admin \/ super user)<\/li>\n<li>Show IP and country as tooltip on country flag in activity log<\/li>\n<\/ul>\n\n<p><strong>3.1.0<\/strong><\/p>\n\n<ul>\n<li>Log country and ip of user for all activities<\/li>\n<\/ul>\n\n<p><strong>3.0.1<\/strong><\/p>\n\n<ul>\n<li>Post an event when logging an activity so plugins can modify it<\/li>\n<\/ul>\n\n<p><strong>2.0 \/ 3.0<\/strong><\/p>\n\n<p>Tracked core events:<\/p>\n\n<ul>\n<li>Annotation added<\/li>\n<li>Annotation changed<\/li>\n<li>Annotation deleted<\/li>\n<li>Custom Alert added<\/li>\n<li>Custom Alert changed<\/li>\n<li>Custom Alert deleted<\/li>\n<li>Custom Dimension configured<\/li>\n<li>Custom Dimension changed<\/li>\n<li>Goal added<\/li>\n<li>Goal changed<\/li>\n<li>Goal deleted<\/li>\n<li>Measurable created<\/li>\n<li>Measurable removed<\/li>\n<li>Plugin activated<\/li>\n<li>Plugin deactivated<\/li>\n<li>Privacy: Enable DNT support<\/li>\n<li>Privacy: Disable DNT support<\/li>\n<li>Privacy: Set IP Anonymise settings<\/li>\n<li>Privacy: Set delete logs settings<\/li>\n<li>Privacy: Set delete reports settings<\/li>\n<li>Privacy: Set scheduled report deletion setting<\/li>\n<li>Scheduled report created<\/li>\n<li>Scheduled report changed<\/li>\n<li>Scheduled report deleted<\/li>\n<li>Segment created<\/li>\n<li>Segment updated<\/li>\n<li>Segment deleted<\/li>\n<li>Site access changed<\/li>\n<li>Site settings updated<\/li>\n<li>Super user access changed<\/li>\n<li>System settings updated<\/li>\n<li>User created<\/li>\n<li>User removed<\/li>\n<li>User changed<\/li>\n<li>User settings updated<\/li>\n<li>User sets preference<\/li>\n<\/ul>\n\n<p>Other plugins' activity log events:<\/p>\n\n<ul>\n<li>A\/B testing\n\n<ul>\n<li>Experiment added<\/li>\n<li>Experiment settings updated<\/li>\n<li>Experiment status changed (Started, Finished, Archived)<\/li>\n<li>Experiment deleted<\/li>\n<\/ul><\/li>\n<li>Referrers Manager\n\n<ul>\n<li>Search engine added<\/li>\n<li>Search engine removed<\/li>\n<li>Social network added<\/li>\n<li>Social network removed<\/li>\n<\/ul><\/li>\n<\/ul>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/ActivityLog\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"AdminNotification","displayName":"Admin Notification","owner":"jbrule","description":"Adds the ability for Matomo (Piwik) administrators to include an informative message to all user's dashboards. This uses the built in Notification function.","homepage":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification","createdDateTime":"2015-04-13 17:52:03","donate":{},"support":[],"isTheme":false,"keywords":["notification","admin message"],"basePrice":0,"authors":[{"name":"Josh Brule","email":null,"homepage":"https:\/\/github.com\/jbrule"}],"repositoryUrl":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification","lastUpdated":"2025-01-04 21:44:02","latestVersion":"5.1.0","numDownloads":73735,"screenshots":["https:\/\/plugins.matomo.org\/AdminNotification\/images\/5.1.0\/Dashboard_with_Notification.png","https:\/\/plugins.matomo.org\/AdminNotification\/images\/5.1.0\/Notification_Settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"17","numContributors":"2","lastCommitDate":"2025-01-04 21:52:13"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-04-13 17:52:03","requires":{"piwik":">=2.8.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":33,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AdminNotification\/download\/0.1.0"},{"name":"0.1.1","release":"2015-04-13 18:20:03","requires":{"piwik":">=2.8.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1347,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AdminNotification\/download\/0.1.1"},{"name":"0.1.2","release":"2015-11-20 19:16:03","requires":{"piwik":">=2.12.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3796,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AdminNotification\/download\/0.1.2"},{"name":"3.0.0","release":"2017-09-11 21:00:04","requires":{"piwik":">=2.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8053,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AdminNotification\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification\/commits\/v3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AdminNotification\/download\/3.0.0"},{"name":"4.0.0","release":"2020-09-16 20:32:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27574,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AdminNotification\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AdminNotification\/download\/4.0.0"},{"name":"5.0.0","release":"2023-11-21 05:44:02","requires":{"matomo":">=5.0.0-rc1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22549,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AdminNotification\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AdminNotification\/download\/5.0.0"},{"name":"5.1.0","release":"2025-01-04 21:44:02","requires":{"matomo":">=5.0.0-rc1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10383,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AdminNotification\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-AdminNotification\/commits\/5.1.0","readmeHtml":{"description":"\n\n<p>Adds the ability for Matomo administrators to include an informative message on all users' dashboards. This may be useful for communicating with users in larger shared environments. In our setup we were tracking 1,900 websites with 250 users. This is a solution we wrote to allow us to easily inform our users of maintenance windows.<\/p>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Message Markdown<\/h2>\n\n<p>A minimal set of markdown support was added to the message field with 5.1 release of the plugin.<\/p>\n\n<p>The following markdown variants are supported*<\/p>\n\n<h3>Headings<\/h3>\n\n<pre><code># Header 1\nMessage\n\n## Header 2\nMessage\n\n### Header 3\nMessage\n\n### Header 4\nMessage\n<\/code><\/pre>\n\n<blockquote>\n  <p>*Need to be at beginning of line<\/p>\n<\/blockquote>\n\n<h3>Bolding and Italics<\/h3>\n\n<pre><code>*This is italicized*\n\n**This is bolded**\n\n***This is italicized and bolded***\n<\/code><\/pre>\n\n<h3>Links<\/h3>\n\n<p>Links will open in a new tab -&gt; target=\"_blank\". This behavior cannot be changed.<\/p>\n\n<pre><code>[Link Name](https:\/\/github.com\/jbrule)\n<\/code><\/pre>","changelog":"<ul>\n<li>5.1.0 Added message transience and priority options. Added minimal markdown support (see <a href=\".\/docs\/index.md\">.\/docs\/index.md<\/a>)<\/li>\n<li>5.0.0 Matomo v5 compatible, not backwards compatible.<\/li>\n<li>3.0.0 Piwik v3 compatible. Effort was made to maintain backwards compatibility. This should work all the way back to 2.12.x<\/li>\n<li>0.1.2 Tested with Piwik v2.15 and included new registerEvents() hook for compatibility with Piwik 3.0<\/li>\n<li>0.1.1 Cleanup. Removed plugin template verbiage from code files.<\/li>\n<li>0.1.0 Initial Release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/AdminNotification\/download\/5.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AdminNotification\/changelog"},"consumer":{"license":null}},{"name":"AdvertisingConversionExport","displayName":"Advertising Conversion Export","owner":"matomo-org","description":"Provides an export of attributed goal conversions for usage in ad networks like Google Ads so you no longer need a conversion pixel.","homepage":"https:\/\/plugins.matomo.org\/AdvertisingConversionExport","createdDateTime":"2021-05-07 00:14:56","donate":{},"support":[],"isTheme":false,"keywords":["import","export","tracking","google","adwords","Advertising","attribution","ads","Yandex","conversions","attribute","pixel","microsoft"],"basePrice":165,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-09-28 06:59:45","latestVersion":"5.4.4","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/AdvertisingConversionExport\/images\/5.4.4\/0_Configuration.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/AdvertisingConversionExport.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/AdvertisingConversionExport","variations":[{"product_variation_id":130514,"price":"169","prettyPrice":"169EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130514&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130514","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-advertisingconversionexport\/?attribute_type=1+to+4+users&add-to-cart=55137&variation_id=130514&aelia_cs_currency=EUR"},{"product_variation_id":130514,"price":"199","prettyPrice":"USD199","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130514&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130514","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-advertisingconversionexport\/?attribute_type=1+to+4+users&add-to-cart=55137&variation_id=130514&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130515,"price":"1319","prettyPrice":"1319EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130515&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130515","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-advertisingconversionexport\/?attribute_type=Up+to+20+users&add-to-cart=55137&variation_id=130515&aelia_cs_currency=EUR"},{"product_variation_id":130515,"price":"1589","prettyPrice":"USD1589","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130515&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130515","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-advertisingconversionexport\/?attribute_type=Up+to+20+users&add-to-cart=55137&variation_id=130515&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130516,"price":"2629","prettyPrice":"2629EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130516&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130516","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-advertisingconversionexport\/?attribute_type=Up+to+50+users&add-to-cart=55137&variation_id=130516&aelia_cs_currency=EUR"},{"product_variation_id":130516,"price":"3159","prettyPrice":"USD3159","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130516&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=55137&variation_id=130516","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-advertisingconversionexport\/?attribute_type=Up+to+50+users&add-to-cart=55137&variation_id=130516&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-advertisingconversionexport\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":null,"ratingCount":0,"reviewCount":0}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["integration"],"promotions":{"bestselling":4},"versions":[{"name":"5.4.4","release":"2026-09-28 06:59:45","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/AdvertisingConversionExport\/5.4.4\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Integrate your Matomo conversion data with top ad platforms like Google Ads and analyse your paid campaigns for unparalleled insights.<\/p>\n\n<p>Tracking the effectiveness of ad campaigns requires you to embed third-party advertising networks\u2019 pixels on your website and send them the information whenever a conversion happens.<\/p>\n\n<p>With Matomo\u2019s Advertising Conversion Export plugin, you can export the accurate conversion data tracked in Matomo and import it automatically into Google Ads, Microsoft Advertising (Bing Ads), and Yandex Ads. The best part? Anyone can do it in just a few minutes.<\/p>\n\n<h3>How Advertising Conversion Export Works<\/h3>\n\n<h4>Import Your Conversion Data to the Ad Networks Effortlessly<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Import your Matomo conversion data to your ad networks for more precise campaign targeting and optimisation.<\/p>\n<p>You can set up your conversion data export in two ways: automatically via an HTTPS link or manually via a CSV file. Whatever your choice, the conversion data integration into your ad network will be seamless and straightforward.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/AdvertisingConversionExport\/image1.jpg\" style=\"margin-left:24px;\" alt=\"Import Your Conversion Data to the Ad Networks Effortlessly\" \/>\n<\/div>\n<\/div>\n\n<h4>Track Your Conversion Data with a Seamless Setup<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Setting up the Advertising Conversion Export plugin is like a walk in the park. Start by naming your export and choosing the ad network. Then, select the desired number of days of conversion data and define your goals, including your objective and revenue value.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/AdvertisingConversionExport\/image2.png\" style=\"margin-left:24px;\" alt=\"Track Your Conversion Data with a Seamless Setup\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Advertising Conversion Export Today<\/h3>\n\n<p>Unlock new levels of insight by integrating your ad campaign performance into your Matomo account.<\/p>\n\n<p>Start your 30-day free trial today and see the difference ethical, pain-free conversion data can make to your ad campaigns.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Supporting exports for Google Ads, Microsoft Advertising, Yandex Ads<\/li>\n<li>Tracking click ids of Google (gclid), Microsoft\/Bing (msclkid) and Yandex (yclid).<\/li>\n<li>Manage conversion exports containing possibilities to define\n\n<ul>\n<li>Number of days to export data for (excluding today)<\/li>\n<li>Various attribution settings<\/li>\n<li>Visitor segment (to further filter exported conversions)<\/li>\n<li>Goals to be included in export<\/li>\n<\/ul><\/li>\n<li>Possibility to access conversion exports with unique access tokens<\/li>\n<li>Possibility to segment by Advertising Network and Click ID<\/li>\n<li><p>Adds an icon to visitor profile and visits log for visits being referred with a click id<\/p>\n\n<p><strong>Note:<\/strong> The plugin doesn't support export of click ids for Facebook, so all click ids with fbclid are tracked as anonymized.<\/p><\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/advertising-conversion-export\/\">Advertising Conversion Export User Guide<\/a> and <a href=\"https:\/\/matomo.org\/faq\/advertising-conversion-export\/\">Advertising Conversion Export FAQ<\/a> cover how to get the most out of this premium feature.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>5.4.4<\/strong> - 2026-09-28\n* Newly generated export access tokens no longer contain a <code>%<\/code>, which could break the export URL when it was decoded more than once<\/p>\n\n<p><strong>5.4.3<\/strong> - 2026-09-14\n* Added a \"Disable Advertising conversion export\" option to the General settings page, letting a super user switch off conversion tracking and exports\n* That setting now shows the privacy compliance notice when a compliance policy enforces it<\/p>\n\n<p><strong>5.4.2<\/strong> - 2026-08-27\n* Exports requested through a URL ending in <code>.csv<\/code> keep being served in the previous export format, so existing scheduled imports do not break<\/p>\n\n<p><strong>5.4.1<\/strong> - 2026-08-24\n* Updated the compliance policy setting copy for disabling conversion exports<\/p>\n\n<p><strong>5.4.0<\/strong> - 2026-08-17\n* Added \"Google Ads HTTPS\" export type to UI and relevant changes to support the new type\n* The existing <code>&amp;requestType=https<\/code> append will also resolve to the new type<\/p>\n\n<p><strong>5.3.8<\/strong> - 2026-06-29\n* Updated csv export to use helper library and format methods<\/p>\n\n<p><strong>5.3.7<\/strong> - 2026-05-11\n- Blank push to match the version in plugin.json and Changelog file<\/p>\n\n<p><strong>5.3.5<\/strong> - 2026-05-11\n* Updated the days to export help text with UTC boundary details and FAQ link\n* Updated conversion export creation inline helptexts<\/p>\n\n<p><strong>5.3.4<\/strong> - 2026-04-27\n* Updated API documentation<\/p>\n\n<p><strong>5.3.3<\/strong> - 2026-03-16\n* Started filtering AdClickID segment when CNIL compliance is enabled<\/p>\n\n<p><strong>5.3.2<\/strong> - 2026-02-02\n* Updated API documentation<\/p>\n\n<p><strong>5.3.1<\/strong> - 2025-11-10\n* Fixed segments encoding issue for operators like less than or greater than<\/p>\n\n<p><strong>5.3.0<\/strong> - 2025-10-27\n* Added support for core CNIL policy control of tracking\/export functionality<\/p>\n\n<p><strong>5.2.5<\/strong> - 2025-06-09\n* Added server-side validation rules for add\/edit conversion export<\/p>\n\n<p><strong>5.2.4<\/strong> - 2025-05-26\n* Started recognising LinkedIn clickID parameter(li_fat_id) and added an option to anonymise the clickID<\/p>\n\n<p><strong>5.2.3<\/strong> - 2025-05-08\n* Updated Microsoft export file format for compatibility with changes from Microsoft<\/p>\n\n<p><strong>5.2.2<\/strong> - 2025-01-20\n* Started supporting HTTPS export for GoogleAds<\/p>\n\n<p><strong>5.2.1<\/strong> - 2024-12-16\n* Started setting alias name as goal name if empty on save<\/p>\n\n<p><strong>5.2.0<\/strong> - 2024-11-18\n* Security improvements around token save and display\n* Added option to not anonymise click IDs via SystemSetting<\/p>\n\n<p><strong>5.1.5<\/strong> - 2024-11-04\n* Updated README.md<\/p>\n\n<p><strong>5.1.4<\/strong> - 2024-10-08\n* Fixes GoogleAds returning only 1 row for some on-premise install<\/p>\n\n<p><strong>5.1.3<\/strong> - 2024-08-26\n* Pricing updated<\/p>\n\n<p><strong>5.1.2<\/strong>\n* Added code to allow setting consent status via SystemSetting for Google export<\/p>\n\n<p><strong>5.1.1<\/strong>\n* Added FAQ link to setup Google conversion export in description<\/p>\n\n<p><strong>5.1.0<\/strong>\n* Added 3 new form options (External attributed conversion, Attribution Model, Attributed Credit) for Google Ads<\/p>\n\n<p><strong>5.0.11<\/strong>\n* Added 2 new empty columns(Ad User Data and Ad Personalization) in Google export<\/p>\n\n<p><strong>5.0.10<\/strong>\n* Added distinct to SQL query to prevent duplicate records<\/p>\n\n<p><strong>5.0.9<\/strong>\n* Added code to post event on max_execution_time exceeded<\/p>\n\n<p><strong>5.0.8<\/strong>\n* Updated README.md\n* Added code to apply max_execution_time along with limits for enabling export via config<\/p>\n\n<p><strong>5.0.7<\/strong>\n* Fixed failing tracking requests due to URL being an array<\/p>\n\n<p><strong>5.0.6<\/strong>\n* Changed logged type to info instead of error.<\/p>\n\n<p><strong>5.0.5<\/strong>\n* Fixes icon placement in visitors real-time widget\n* Added code to add campaign tracking parameters for all links within Matomo app that link to matomo.org<\/p>\n\n<p><strong>5.0.4<\/strong>\n* Fixes version update<\/p>\n\n<p><strong>5.0.3<\/strong>\n* Added code to sanitise alias name to prevent possible XSS<\/p>\n\n<p><strong>5.0.2<\/strong>\n* New release with timezone offset calculation patch<\/p>\n\n<p><strong>5.0.1<\/strong>\n* New release with UI patch<\/p>\n\n<p><strong>5.0.0<\/strong>\n* Compatibility with Matomo 5<\/p>\n\n<p><strong>4.1.4<\/strong>\n* Fix validation for the number of days to export<\/p>\n\n<p><strong>4.1.3<\/strong>\n* Updated README.md to mention the fb tracking as anonymized<\/p>\n\n<p><strong>4.1.2<\/strong>\n* Added a fix to determine isEcommerce if variable type is different<\/p>\n\n<p><strong>4.1.1<\/strong>\n* Started excluding anonymized clickIds from export.<\/p>\n\n<p><strong>4.1.0<\/strong>\n* Migrate angularjs code to Vue.<\/p>\n\n<p><strong>4.0.12<\/strong>\n* Added check to log clickIDs only if corresponding export is configured<\/p>\n\n<p><strong>4.0.11<\/strong>\n* Fixed timezone determination bug for Microsoft export file<\/p>\n\n<p><strong>4.0.10<\/strong>\n* Fixed compatibility issue for MySql 5.5<\/p>\n\n<p><strong>4.0.9<\/strong>\n* Updated download URL generation.<\/p>\n\n<p><strong>4.0.8<\/strong>\n* Fixed CSV header for Yandex offline conversion\n* Fixed Microsoft upload error due to header<\/p>\n\n<p><strong>4.0.7<\/strong>\n* Fixed file format upload error for Microsoft Advertising<\/p>\n\n<p><strong>4.0.6<\/strong>\n* Fixed Deprecation warnings for PHP 8.1<\/p>\n\n<p><strong>4.0.5<\/strong>\n* Fix to make DB connection only when needed<\/p>\n\n<p><strong>4.0.4<\/strong><\/p>\n\n<ul>\n<li>Fix timezone parameter in Microsoft Ads exports<\/li>\n<\/ul>\n\n<p><strong>4.0.3<\/strong><\/p>\n\n<ul>\n<li>Added Turkish translations<\/li>\n<li>Fixed timezone issue in Google exports<\/li>\n<\/ul>\n\n<p><strong>4.0.2<\/strong><\/p>\n\n<ul>\n<li>Minor code and UI improvements<\/li>\n<li>Added Albanian translations<\/li>\n<\/ul>\n\n<p><strong>4.0.1<\/strong><\/p>\n\n<ul>\n<li>Mark plugin as compatibile with Matomo for WordPress<\/li>\n<\/ul>\n\n<p><strong>4.0.0<\/strong><\/p>\n\n<p>Initial Release\n* automatic tracking of click ids (Google, Facebook, Bing, Yandex)\n* configurable conversions exports for\n  * Google Ads\n  * Microsoft Advertising\n  * Yandex Ads<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/AdvertisingConversionExport\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"Agent","displayName":"Agent","owner":"Digitalist-Open-Cloud","description":"A plugin to handle input from the Analytics Log Agent.","homepage":"https:\/\/digitalist.cloud","createdDateTime":"2024-11-18 12:44:02","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Agent","type":"url"},{"name":"Email","key":"email","value":"cloud@digitalist.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Agent\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Agent","type":"url"}],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Digitalist Cloud","email":"cloud@digitalist.com","homepage":"https:\/\/digitalist.cloud"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Agent","lastUpdated":"2024-11-18 12:44:03","latestVersion":"0.0.1-alpha5","numDownloads":15710,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/Agent\/images\/0.0.1-alpha5\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2024-11-18 12:42:10"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.0.1-alpha5","release":"2024-11-18 12:44:03","requires":{"matomo":">=5.0.1-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15710,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Agent\/0.0.1-alpha5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Agent\/commits\/0.0.1-alpha5","readmeHtml":{"description":"","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/Agent\/download\/0.0.1-alpha5"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Agent\/changelog"},"consumer":{"license":null}},{"name":"AjaxOptOut","displayName":"Ajax Opt Out","owner":"lippoliv","description":"Provide endpoints to opt-out, opt-in or get status of visitors tracking. So you can implement a custom HTML, CSS and JS to realize custom-style tracki.","homepage":"https:\/\/lw-scm.de\/lipperts-web\/piwik-ajax-opt-out","createdDateTime":"2016-12-24 23:06:02","donate":{"paypal":"info@lipperts-web.de","bitcoin":null},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/lw-scm.de\/lipperts-web\/piwik-ajax-opt-out\/-\/tree\/master\/src\/docs\/index.md","type":"url"},{"name":"Email","key":"email","value":"incoming+lipperts-web-piwik-ajax-opt-out-108-f1oh7ioy6ohhkbtnmyaki2blv-issue@git.lipperts-web.de","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/lw-scm.de\/lipperts-web\/piwik-ajax-opt-out\/-\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/lw-scm.de\/lipperts-web\/piwik-ajax-opt-out\/-\/tree\/master","type":"url"}],"isTheme":false,"keywords":["tracking","opt out","opt in","ajax"],"basePrice":0,"authors":[{"name":"Lipperts WEB","email":"info@lipperts-web.de","homepage":"https:\/\/lipperts-web.de"}],"repositoryUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-ajaxoptout","lastUpdated":"2023-12-27 08:38:02","latestVersion":"1.5.0","numDownloads":72891,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"19","numContributors":"1","lastCommitDate":"2023-12-30 04:12:46"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.1.0","release":"2016-12-24 23:06:02","requires":{"piwik":">=2.15.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":515,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-ajaxoptout\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AjaxOptOut\/download\/1.1.0"},{"name":"1.1.2","release":"2016-12-24 23:22:03","requires":{"piwik":">=3.0.0-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1341,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-ajaxoptout\/commits\/1.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AjaxOptOut\/download\/1.1.2"},{"name":"1.2.0","release":"2017-07-30 09:30:03","requires":{"piwik":">=3.0.0-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-ajaxoptout\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AjaxOptOut\/download\/1.2.0"},{"name":"1.2.1","release":"2017-07-30 09:46:03","requires":{"piwik":">=3.0.0-stable,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6725,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-ajaxoptout\/commits\/1.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AjaxOptOut\/download\/1.2.1"},{"name":"1.3.1","release":"2021-01-20 08:44:03","requires":{"piwik":">=3.0.0,<5.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":62,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-ajaxoptout\/commits\/1.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AjaxOptOut\/download\/1.3.1"},{"name":"1.4.0","release":"2021-01-21 11:04:03","requires":{"piwik":">=3.0.0,<5.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":20482,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-ajaxoptout\/commits\/1.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AjaxOptOut\/download\/1.4.0"},{"name":"1.5.0","release":"2023-12-27 08:38:02","requires":{"piwik":">=3.0.0,<6.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":43761,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-ajaxoptout\/commits\/1.5.0","readmeHtml":{"description":"\n\n<p>Matomo supports an opt out iframe, which may supports your needs. But in some cases it is more handy to realize opt out\n\/ opt in via ajax requests and with no iframes. May due to security reasons.<\/p>\n\n<p>I had such a project and implemented this nice small plugin which offers you three new API URLs:<\/p>\n\n<ol>\n<li><code>your.piwik\/index.php?module=API&amp;method=AjaxOptOut.isTracked<\/code>\nYou will get an Response whether the current user get's tracked or not.<\/li>\n<li><code>your.piwik\/index.php?module=API&amp;method=AjaxOptOut.doIgnore<\/code>\nMatomo will set the ignore cookie for the current user.<\/li>\n<li><code>your.piwik\/index.php?module=API&amp;method=AjaxOptOut.doTrack<\/code>\nMatomo will remove the ignore cookie for the current user.<\/li>\n<\/ol>\n\n<p>You have to use JSONP Requests, as of the AJAX requests needs to manipulate the cookies.<\/p>\n\n<p>This plugin is for free, feel free to spend me a coffee and send me your feedback. Further information you can find in\nMatomo marketplace.<\/p>\n\n<p><a href=\"https:\/\/lw-scm.de\/lipperts-web\/piwik-ajax-opt-out\/-\/blob\/master\/README.md\">More Informatione here<\/a><\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Does this plugin provide an UI?<\/strong><\/p>\n\n<p>No. This plugin just provides API endpoints.<\/p>\n\n<p><strong>Is this plugin under support?<\/strong><\/p>\n\n<p>Yes. Please review the support options in the <a href=\"https:\/\/plugins.matomo.org\/AjaxOptOut\">marketplace<\/a>.<\/p>\n\n<p><strong>Is there some alternative to jQuery?<\/strong><\/p>\n\n<p>Yes for sure. This Plugin is just an API which you can call from wherever you like.\nFor example <a href=\"https:\/\/github.com\/inventage\/matomo-opt-out\">here you can find a web component<\/a> to leverege this plugins\nAPI.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Some years ago I worked as an senior web developer for some cool agency. We wanted to level up the typical german opt\nout from tracking game by some nice website overlay. Therefor we needed ajax endpoints in piwik \/ matomo to take control\nover the ignore cookie.<\/p>\n\n<h2>Respect open source community<\/h2>\n\n<p>After 2016 the development stuck. Plugin worked, no changes needed. But this is not how open source works.<\/p>\n\n<p>When Matomo 4 came out, I feared to update my on-premise instance because this plugin maybe doesn't work. Stupid right?<\/p>\n\n<p>So in 2021 <strong>I investigated a significant effort in test automation<\/strong> for my matomo plugins. Right now, the logic of\nthis plugin is covered by integration tests which will run against all supported Matomo versions. In addition to run\nthose tests against my code changes, I run them once a week against the newest developments so in case of problems, I\nget notified by CI\/CD instead of you.<\/p>\n\n<h2>GitHub is a mirror<\/h2>\n\n<p>For the Matomo marketplace it is needed to have a GitHub project hosting the code.<\/p>\n\n<p>Even if for this plugin there is a GitHub project, it is just a kind of mirror to my GitLab project. Changes are\nautomatically pushed to GitHub, also releases will be automaticcally be created.<\/p>\n\n<p>Feel free to fork my GitHub project. Even if I do not accept pull requests, I'm looking forward to take over your\nchanges manually.<\/p>\n\n<h2>What's tested?<\/h2>\n\n<p>This plugin is tested by using <a href=\"https:\/\/docs.gitlab.com\/ce\/ci\/\">GitLab CI<\/a>.<\/p>\n\n<h3>PHP compatibility<\/h3>\n\n<p>I make sure all code changes are compatible to:<\/p>\n\n<ul>\n<li>php 8.0<\/li>\n<li>php 7.4<\/li>\n<li>php 7.3<\/li>\n<li>php 7.2<\/li>\n<li>php 7.1<\/li>\n<li>php 7.0<\/li>\n<li>php 5.6<\/li>\n<\/ul>\n\n<h3>Integration with Matomo<\/h3>\n\n<p>I make sure that the plugin works as expected with this Matomo versions:<\/p>\n\n<ul>\n<li>newest Matomo 3<\/li>\n<li>newest Matomo 4<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>1.5.0 Support Matomo 5, Ensure to support PHP 8<\/li>\n<li>1.4.0 FIX call doIgnore second time will enable tracking again, Mention web component in FAQ, Fix some jQuery demo\nissues<\/li>\n<li>1.3.1 Updated Changelog for release 1.3.0<\/li>\n<li>1.3.0 Matomo 4 support, Update documentation and faq<\/li>\n<li>1.2.1 Optimize Plugin page<\/li>\n<li>1.2.0 Added jQuery Demo<\/li>\n<li>1.1.2 FIX JSON error<\/li>\n<li>1.1.1 PIWIK 3.0.0<\/li>\n<li>1.1.0 Prepare for Marketplace<\/li>\n<li>1.0.0 Initial Release for PIWIK 2.15.0<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/AjaxOptOut\/download\/1.5.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AjaxOptOut\/changelog"},"consumer":{"license":null}},{"name":"AmazonSES","displayName":"Amazon SES","owner":"elemind","description":"Send all Matomo emails through the Amazon SES API v2 (HTTPS) with IAM role, environment or access key credentials.","homepage":"https:\/\/github.com\/elemind\/matomo-plugin-AmazonSES","createdDateTime":"2026-09-30 16:00:03","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/elemind\/matomo-plugin-AmazonSES#readme","type":"url"},{"name":"Email","key":"email","value":"info@elemind.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/elemind\/matomo-plugin-AmazonSES\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/elemind\/matomo-plugin-AmazonSES","type":"url"}],"isTheme":false,"keywords":["aws","email","mail","smtp","amazon","ses","transport","iam"],"basePrice":0,"authors":[{"name":"Elemind","email":"info@elemind.com","homepage":"https:\/\/github.com\/elemind"}],"repositoryUrl":"https:\/\/github.com\/elemind\/matomo-plugin-AmazonSES","lastUpdated":"2026-10-05 08:42:05","latestVersion":"0.1.1","numDownloads":135,"screenshots":["https:\/\/plugins.matomo.org\/AmazonSES\/images\/0.1.1\/Amazon_SES_status_and_test_email.png","https:\/\/plugins.matomo.org\/AmazonSES\/images\/0.1.1\/Settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/AmazonSES\/images\/0.1.1\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-05 08:41:25"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2026-09-30 16:00:05","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AmazonSES\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/elemind\/matomo-plugin-AmazonSES\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AmazonSES\/download\/0.1.0"},{"name":"0.1.1","release":"2026-10-05 08:42:05","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":134,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AmazonSES\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/elemind\/matomo-plugin-AmazonSES\/commits\/0.1.1","readmeHtml":{"description":"\n\n<p>Send every Matomo email through the <strong>Amazon SES API v2<\/strong> over HTTPS. You don't need SMTP credentials or an open port 25\/587.<\/p>\n\n<p>The plugin replaces the Matomo mail transport. Scheduled reports (including PDF attachments), password resets, invitations, alerts and all other emails go through Amazon SES without any other change to Matomo.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Amazon SES API v2 (<code>SendEmail<\/code> with raw MIME), signed with AWS Signature V4. No AWS SDK is bundled, so the plugin stays small.<\/li>\n<li>Credentials are resolved in this order: the plugin settings, the <code>AWS_ACCESS_KEY_ID<\/code> \/ <code>AWS_SECRET_ACCESS_KEY<\/code> environment variables, the <strong>ECS task role<\/strong>, then the <strong>EC2 instance profile<\/strong> (IMDSv2).<\/li>\n<li>Optional sender override, for an address or domain verified in SES.<\/li>\n<li>Optional <strong>configuration set<\/strong>, so you can publish bounces, complaints and deliveries to SNS, CloudWatch or EventBridge.<\/li>\n<li>An admin page (<em>Administration \u2192 System \u2192 Amazon SES<\/em>) with the effective configuration (region, credentials source, sender) and a <strong>Send test email<\/strong> button. It makes no AWS call besides sending, so an IAM policy that only allows sending is enough.<\/li>\n<li>Every setting can also be set in <code>config.ini.php<\/code> for container and infrastructure-as-code deployments.<\/li>\n<li>Errors are never hidden. If SES rejects a message, Matomo logs the exact AWS error; there is no silent fallback to SMTP.<\/li>\n<\/ul>\n\n<p><strong>Requirements<\/strong>: Matomo 5, PHP 7.2.5+ with the cURL extension, and an Amazon SES identity (email address or domain) verified in the region you use.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Which emails are sent through Amazon SES?<\/strong><\/p>\n\n<p>All of them. The plugin replaces the Matomo mail transport, so scheduled reports, alerts, password resets, invitations and emails sent by other plugins all go through SES while the plugin is activated.<\/p>\n\n<p><strong>What happens if an SMTP server is also configured?<\/strong><\/p>\n\n<p>Amazon SES always wins while the plugin is active: Matomo uses a single mail transport, and the plugin replaces the core SMTP \/ <code>mail()<\/code> transport. The host, port, username, password and encryption set under <em>General settings \u2192 Email server settings<\/em> are ignored, and no email is sent twice. The <em>Amazon SES<\/em> admin page shows a warning when an SMTP server is configured.<\/p>\n\n<p>The <strong>sender address and name<\/strong> from that same form are still used: they are Matomo's noreply address and name, and the plugin uses them unless you set <em>Sender email \/ Sender name<\/em> in the plugin settings.<\/p>\n\n<p>If Amazon SES fails, the plugin does <strong>not<\/strong> fall back to SMTP. Deactivate the plugin to go back to SMTP; no other change is needed.<\/p>\n\n<p><strong>I get \"Email address is not verified\".<\/strong><\/p>\n\n<p>Amazon SES only sends from verified identities. Verify the sender address, or better its whole domain, in the SES console of the <strong>same region<\/strong> configured in the plugin. Then either use that address as Matomo's noreply address or set it as <em>Sender email<\/em> in the plugin settings.<\/p>\n\n<p>In sandbox mode the <strong>recipients<\/strong> must be verified too, and if your IAM policy restricts <code>Resource<\/code> to specific identities, the recipients must be listed there as well. Request production access in the SES console to email any user.<\/p>\n\n<p><strong>Where do the credentials come from?<\/strong><\/p>\n\n<p>The plugin tries, in this order:<\/p>\n\n<ol>\n<li>The access key set in the plugin settings (or in <code>config.ini.php<\/code>).<\/li>\n<li>The environment variables <code>AWS_ACCESS_KEY_ID<\/code> and <code>AWS_SECRET_ACCESS_KEY<\/code> (plus <code>AWS_SESSION_TOKEN<\/code>).<\/li>\n<li>The ECS \/ Fargate task role.<\/li>\n<li>The EC2 instance profile, via IMDSv2.<\/li>\n<\/ol>\n\n<p>The status page shows which source is in use.<\/p>\n\n<p><strong>What happens if Amazon SES is down or rejects a message?<\/strong><\/p>\n\n<p>The send fails and Matomo logs the AWS error message (for example <code>MessageRejected<\/code> or <code>Throttling<\/code>). The plugin never falls back to SMTP silently, so a configuration problem doesn't go unnoticed.<\/p>\n\n<p><strong>How do I handle bounces and complaints?<\/strong><\/p>\n\n<p>Create an SES <em>configuration set<\/em> with an event destination (SNS, CloudWatch, EventBridge\u2026) and enter its name in the plugin settings. By default SES also adds bouncing addresses to your account-level suppression list.<\/p>\n\n<p><strong>Can I use a VPC endpoint or a local SES mock?<\/strong><\/p>\n\n<p>Yes. Set <code>endpoint<\/code> in the <code>[AmazonSES]<\/code> section of <code>config.ini.php<\/code>, or set the <code>AWS_ENDPOINT_URL_SESV2<\/code> environment variable. The endpoint must use <code>https:\/\/<\/code>. A local mock that only speaks plain <code>http:\/\/<\/code> also needs <code>allowInsecureEndpoint = 1<\/code> (or <code>AMAZONSES_ALLOW_INSECURE_ENDPOINT=1<\/code>): never enable it for a remote host, as AWS credentials and email contents would travel unencrypted.<\/p>\n\n<p><strong>Does it work behind an HTTP proxy?<\/strong><\/p>\n\n<p>Yes. Calls to the SES API use the proxy configured in Matomo's <code>[proxy]<\/code> section. Calls to the ECS\/EC2 metadata endpoints never go through the proxy.<\/p>\n\n<p><strong>Is there a size limit?<\/strong><\/p>\n\n<p>Amazon SES v2 accepts messages up to 40 MB, including attachments after encoding.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>See the <a href=\"https:\/\/github.com\/elemind\/matomo-plugin-AmazonSES#readme\">README<\/a> for installation, configuration (UI, <code>config.ini.php<\/code>, environment variables), the required IAM policy and the development environment.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.1.1 - 2026-10-05<\/h3>\n\n<ul>\n<li>Security: a custom SES endpoint must now use <code>https:\/\/<\/code>. Plain <code>http:\/\/<\/code> sent the AWS-signed requests and the email contents unencrypted; it is now rejected unless <code>allowInsecureEndpoint = 1<\/code> (or <code>AMAZONSES_ALLOW_INSECURE_ENDPOINT=1<\/code>) is set, which is meant for a local SES mock only. Endpoints with credentials, a query string or a fragment are rejected too.<\/li>\n<li>Security: HTTP requests are restricted to the HTTP and HTTPS protocols.<\/li>\n<li>The admin page reports an invalid region or endpoint, and warns when a plain HTTP endpoint is allowed.<\/li>\n<li>Upgrade note: if you use a plain <code>http:\/\/<\/code> endpoint (e.g. a local mock), add <code>allowInsecureEndpoint = 1<\/code> to the <code>[AmazonSES]<\/code> section of <code>config.ini.php<\/code>, otherwise sending fails.<\/li>\n<\/ul>\n\n<h3>0.1.0 - 2026-09-30<\/h3>\n\n<ul>\n<li>First release.<\/li>\n<li>Sends all Matomo emails through the Amazon SES API v2 (raw MIME, AWS Signature V4, no SDK dependency).<\/li>\n<li>Credential chain: plugin settings, environment variables, ECS task role, EC2 instance profile (IMDSv2).<\/li>\n<li>Settings for the region, configuration set and sender override; every setting can also be set in config.ini.php.<\/li>\n<li>Admin page with the effective configuration and a test email button (no AWS call besides sending).<\/li>\n<li>Warning on the admin page when a core SMTP server is configured (it is ignored while the plugin is active).<\/li>\n<li>Only <code>ses:SendEmail<\/code> \/ <code>ses:SendRawEmail<\/code> IAM permissions are required.<\/li>\n<li>English and Italian translations.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/AmazonSES\/download\/0.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AmazonSES\/changelog"},"consumer":{"license":null}},{"name":"AnonymousPiwikUsageMeasurement","displayName":"Anonymous Piwik Usage Measurement","owner":"matomo-org","description":"Send anonymized usage data to your own Matomo instance or to any other Matomo.","homepage":"https:\/\/matomo.org","createdDateTime":"2015-10-19 14:04:02","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement","type":"url"}],"isTheme":false,"keywords":["piwik","tracking","usage","measurement","matomo"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement","lastUpdated":"2026-08-24 06:00:05","latestVersion":"6.0.0","numDownloads":39515,"screenshots":["https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/images\/6.0.0\/AdminSettings.png","https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/images\/6.0.0\/UserSettings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/AnonymousPiwikUsageMeasurement.png","previews":[],"activity":{"numCommits":"205","numContributors":"12","lastCommitDate":"2026-10-21 04:31:31"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"0.1.1","release":"2015-10-19 14:04:03","requires":{"piwik":">=2.15.0-b17"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/0.1.1"},{"name":"0.1.2","release":"2015-10-20 06:44:03","requires":{"piwik":">=2.15.0-b17"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/0.1.2"},{"name":"0.1.3","release":"2015-10-20 10:14:03","requires":{"piwik":">=2.15.0-rc1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":21,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/0.1.3"},{"name":"0.1.4","release":"2015-10-21 06:06:03","requires":{"piwik":">=2.15.0-rc1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":826,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/0.1.4"},{"name":"0.2.0","release":"2016-01-19 00:20:04","requires":{"piwik":">=2.15.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":316,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/0.2.0"},{"name":"0.2.1","release":"2016-02-10 17:22:03","requires":{"piwik":">=2.15.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1602,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/0.2.1"},{"name":"3.0.0","release":"2016-09-13 21:18:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":536,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/3.0.0"},{"name":"0.2.2","release":"2016-10-06 01:44:03","requires":{"piwik":">=2.15.0,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2024,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/0.2.2"},{"name":"3.0.1","release":"2017-06-20 07:16:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":52,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/3.0.1"},{"name":"3.0.2","release":"2017-06-21 08:02:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1075,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/3.0.2"},{"name":"3.0.3","release":"2018-01-09 21:12:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3112,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/3.0.3"},{"name":"3.1.0","release":"2019-06-05 07:20:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3922,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/3.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/3.1.0"},{"name":"4.0.0","release":"2020-07-31 03:06:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":765,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 19:50:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1941,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/4.0.1"},{"name":"4.1.0","release":"2022-04-26 02:34:02","requires":{"matomo":">=4.10.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5176,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/4.1.0"},{"name":"5.0.0","release":"2023-05-04 21:50:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1652,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/5.0.0"},{"name":"5.0.1","release":"2024-04-22 05:10:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6321,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/5.0.1"},{"name":"5.0.2","release":"2025-07-07 10:08:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10010,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/5.0.2"},{"name":"6.0.0","release":"2026-08-24 06:00:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":122,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-AnonymousPiwikUsageMeasurement\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>Track usage of your Matomo service into up to two Matomos:<\/p>\n\n<ul>\n<li>your own Matomo (can be configured optionally)<\/li>\n<li>a custom Matomo (can be configured optionally)<\/li>\n<\/ul>\n\n<h3>What is Matomo doing to make sure the data is anonymized?<\/h3>\n\n<p>We are very careful in what we track and we make sure to anonymize data that could contain user data.<\/p>\n\n<ul>\n<li>We overwrite the page title as the title could contain the name of the viewed website<\/li>\n<li>We remove any referrer information<\/li>\n<li>We replace URL parameters with a predefined value apart from a few whitelisted ones to make sure no actual token_auth, CSRF token or user defined value will be tracked<\/li>\n<li>We do not just track any outlinks or downloads<\/li>\n<\/ul>\n\n<p>We track any information as efficient as possible to not slow down your Matomo. If you have already performance problems with your Matomo we recommend to not install this plugin though.<\/p>\n\n<h3>Which data is tracked?<\/h3>\n\n<p>When the plugin is activated, the following data will be tracked:<\/p>\n\n<ul>\n<li>The pages and reports that are viewed<\/li>\n<li>The visitors' software and devices data like the used browser and the resolution<\/li>\n<li>Some clicks or interactions with certain selectors or buttons. For example we track an event when a segment is selected but we do not track the actual segment.<\/li>\n<li>In a daily task we track the following data:\n\n<ul>\n<li>Matomo version<\/li>\n<li>PHP version<\/li>\n<li>Number of websites<\/li>\n<li>Number of users<\/li>\n<li>Number of segments<\/li>\n<li>How often which API method was called (only plugin name and method name but no parameters) and how long the API calls took on average.<\/li>\n<\/ul><\/li>\n<\/ul>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Are there any prerequisites?<\/strong><\/p>\n\n<ul>\n<li>If tracking to a custom Matomo installation is enabled, your Matomo installation and your Matomo users must be able to connect to this instance<\/li>\n<li>If tracking to a custom Matomo installation is enabled and your Matomo is served via HTTPS, the custom Matomo installation must be available via HTTPS as well<\/li>\n<\/ul>\n\n<p><strong>Why was this plugin created?<\/strong><\/p>\n\n<p>This plugin was created to provide a simple way to measure how Matomo product itself is being used.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>6.0.0 - 2026-08-09 - Compatibility with Matomo 6<\/li>\n<li>5.0.2 - 2025-07-07 - Textual changes<\/li>\n<li>5.0.1 Added plugin category for Marketplace<\/li>\n<li>5.0.0 Compatibility with Matomo 5<\/li>\n<li>4.1.0 Migrating from AngularJS to Vue<\/li>\n<li>4.0.2 Compatibility with Matomo 4<\/li>\n<li>4.0.1 Compatibility with Matomo 4<\/li>\n<li>4.0.0 Compatibility with Matomo 4<\/li>\n<li>3.1.0 No longer send optionally any usage data to Matomo<\/li>\n<li>3.0.3 Renaming from Piwik to Matomo<\/li>\n<li>3.0.0 Compatibility with Matomo 3<\/li>\n<li>0.2.1 Track MySQL server version in a custom variable.<\/li>\n<li>0.2.0 Add possibility to enable\/disable anonymization and tracking user login as userID<\/li>\n<li>0.1.4 Fixed a bug that failed to track under HTTPS under circumstances<\/li>\n<li>0.1.3 Updated plugin description only<\/li>\n<li>0.1.2 Bugfixes<\/li>\n<li>0.1.1 Track average API executime time<\/li>\n<li>0.1.0 Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/AnonymousPiwikUsageMeasurement\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AnonymousPiwikUsageMeasurement\/changelog"},"consumer":{"license":null}},{"name":"AOM","displayName":"AOM","owner":"advanced-online-marketing","description":"Integrate additional data like costs and campaign names from advertising platforms like AdWords, Bing, Criteo, Facebook, Taboola as well as your indiv.","homepage":"http:\/\/www.advanced-online-marketing.com","createdDateTime":"2016-06-23 09:52:03","donate":{},"support":[],"isTheme":false,"keywords":["Marketing","Advertising","Criteo","Google AdWords","Microsoft Bing","Facebook Ads","Taboola","Online-Marketing","Performance-Marketing"],"basePrice":0,"authors":[{"name":"Daniel Stonies","email":"daniel.stonies@googlemail.com","homepage":null},{"name":"Andr\u00e9 Kolell","email":"andre.kolell@gmail.com","homepage":"http:\/\/www.andrekolell.de"}],"repositoryUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM","lastUpdated":"2018-06-23 09:56:30","latestVersion":"1.4.4","numDownloads":20934,"screenshots":["https:\/\/plugins.matomo.org\/AOM\/images\/1.4.4\/Marketing_Performance_Report.png","https:\/\/plugins.matomo.org\/AOM\/images\/1.4.4\/Marketing_Performance_Row_Evolution.png","https:\/\/plugins.matomo.org\/AOM\/images\/1.4.4\/Visitor_Profile_Popup.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"227","numContributors":"3","lastCommitDate":"2022-06-21 17:42:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.3.6","release":"2016-06-23 09:52:45","requires":{"piwik":">=2.15.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":912,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.3.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.3.6"},{"name":"0.3.7","release":"2016-08-07 20:31:38","requires":{"piwik":">=2.15.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":978,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.3.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.3.7"},{"name":"0.3.9","release":"2016-11-05 08:52:46","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":213,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.3.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.3.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.3.9"},{"name":"0.4.1","release":"2016-11-16 20:26:48","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.4.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.4.1"},{"name":"0.4.2","release":"2016-11-16 21:34:49","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.4.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.4.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.4.2"},{"name":"0.4.3","release":"2016-11-16 22:22:53","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":92,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.4.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.4.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.4.3"},{"name":"0.4.4","release":"2016-11-19 21:14:50","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":474,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.4.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.4.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.4.4"},{"name":"0.4.6","release":"2016-12-10 10:52:36","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":76,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.4.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.4.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.4.6"},{"name":"0.4.7","release":"2016-12-12 22:40:40","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":70,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.4.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.4.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.4.7"},{"name":"0.4.8","release":"2016-12-14 11:53:04","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1141,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.4.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.4.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.4.8"},{"name":"0.5.2","release":"2017-02-17 18:38:40","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.5.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.5.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.5.2"},{"name":"0.5.3","release":"2017-02-17 19:40:37","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.5.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.5.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.5.3"},{"name":"0.5.4","release":"2017-02-17 20:36:36","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":199,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.5.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.5.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.5.4"},{"name":"0.5.6","release":"2017-02-28 07:12:37","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":341,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.5.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.5.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.5.6"},{"name":"0.5.7","release":"2017-03-21 06:04:35","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":434,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.5.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.5.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.5.7"},{"name":"0.5.8","release":"2017-04-15 16:24:16","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":304,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.5.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.5.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.5.8"},{"name":"0.6.0","release":"2017-04-21 15:12:20","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":42,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.0"},{"name":"0.6.1","release":"2017-04-23 14:00:26","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":387,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.1"},{"name":"0.6.2","release":"2017-05-06 05:52:17","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.2"},{"name":"0.6.3","release":"2017-05-06 09:08:18","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":263,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.3"},{"name":"0.6.4","release":"2017-05-11 21:28:13","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":30,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.4"},{"name":"0.6.5","release":"2017-05-12 09:12:25","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.5"},{"name":"0.6.6","release":"2017-05-12 15:32:41","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":802,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.6"},{"name":"0.6.8","release":"2017-06-24 14:42:24","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":315,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.8"},{"name":"0.6.9","release":"2017-06-25 16:18:42","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":290,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/0.6.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/0.6.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/0.6.9"},{"name":"1.0.0","release":"2017-07-11 14:50:33","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.0"},{"name":"1.0.1","release":"2017-07-11 17:20:22","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.1"},{"name":"1.0.2","release":"2017-07-11 17:42:29","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":26,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.2"},{"name":"1.0.3","release":"2017-07-12 09:04:22","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.3"},{"name":"1.0.4","release":"2017-07-12 09:40:21","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.4"},{"name":"1.0.5","release":"2017-07-12 12:52:38","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.5"},{"name":"1.0.6","release":"2017-07-12 14:28:27","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.6"},{"name":"1.0.7","release":"2017-07-12 17:10:31","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":109,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.7"},{"name":"1.0.8","release":"2017-07-13 06:50:18","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":550,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.0.8"},{"name":"1.1.0","release":"2017-07-24 19:56:53","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":46,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.1.0"},{"name":"1.1.1","release":"2017-07-25 07:35:10","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.1.1"},{"name":"1.1.2","release":"2017-07-25 08:14:50","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":407,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.1.2"},{"name":"1.1.3","release":"2017-08-07 16:33:29","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":273,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.1.3"},{"name":"1.2.1","release":"2017-08-21 12:53:40","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.2.1"},{"name":"1.2.2","release":"2017-08-21 15:45:09","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":37,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.2.2"},{"name":"1.2.3","release":"2017-08-22 14:39:08","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.2.3"},{"name":"1.2.4","release":"2017-08-22 14:53:35","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":741,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.2.4"},{"name":"1.3.0","release":"2017-09-19 08:59:07","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":417,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.3.0"},{"name":"1.3.1","release":"2017-09-30 09:52:02","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.3.1"},{"name":"1.3.2","release":"2017-09-30 10:34:40","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1878,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.3.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.3.2"},{"name":"1.4.0","release":"2018-04-01 11:00:29","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":297,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.4.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.4.0"},{"name":"1.4.1","release":"2018-04-06 12:40:27","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3626,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.4.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.4.1"},{"name":"1.4.3","release":"2018-06-23 09:44:28","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.4.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.4.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.4.3"},{"name":"1.4.4","release":"2018-06-23 09:56:30","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.5.9"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5028,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AOM\/1.4.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/advanced-online-marketing\/AOM\/commits\/1.4.4","readmeHtml":{"description":"\n\n<p><strong>This plugin can create a lot of value. But be aware that its initial setup will require some effort!<\/strong><\/p>\n\n<p>See <a href=\"http:\/\/www.advanced-online-marketing.com\/docs.html\">http:\/\/www.advanced-online-marketing.com\/docs.html<\/a> for this \nplugin's documentation.<\/p>","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/AOM\/download\/1.4.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AOM\/changelog"},"consumer":{"license":null}},{"name":"ApiGetWithSitesInfo","displayName":"Api Get With Sites Info","owner":"mattab","description":"Modifies the 'API.get' output to also list the website name and main website URL.","homepage":"https:\/\/github.com\/mattab\/piwik-plugin-ApiGetWithSitesInfo","createdDateTime":"2014-12-09 03:50:03","donate":{},"support":[],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Matthieu Aubry","email":"matt@piwik.org","homepage":"http:\/\/matthieu.net"}],"repositoryUrl":"https:\/\/github.com\/mattab\/piwik-plugin-ApiGetWithSitesInfo","lastUpdated":"2017-03-27 21:30:04","latestVersion":"0.1.6","numDownloads":11603,"screenshots":["https:\/\/plugins.matomo.org\/ApiGetWithSitesInfo\/images\/0.1.6\/Sample_Api_get_output_when_plugin_activated.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"32","numContributors":"3","lastCommitDate":"2017-03-27 21:28:27"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-12-09 03:50:03","requires":{"piwik":">=2.9.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mattab\/piwik-plugin-ApiGetWithSitesInfo\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiGetWithSitesInfo\/download\/0.1.0"},{"name":"0.1.1","release":"2014-12-09 03:58:03","requires":{"piwik":">=2.9.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":53,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mattab\/piwik-plugin-ApiGetWithSitesInfo\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiGetWithSitesInfo\/download\/0.1.1"},{"name":"0.1.2","release":"2014-12-11 21:06:04","requires":{"piwik":">=2.9.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3919,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mattab\/piwik-plugin-ApiGetWithSitesInfo\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiGetWithSitesInfo\/download\/0.1.2"},{"name":"0.1.4","release":"2016-10-04 01:06:03","requires":{"piwik":">=2.11.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mattab\/piwik-plugin-ApiGetWithSitesInfo\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiGetWithSitesInfo\/download\/0.1.4"},{"name":"0.1.5","release":"2016-10-04 01:24:03","requires":{"piwik":">=2.11.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1453,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mattab\/piwik-plugin-ApiGetWithSitesInfo\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiGetWithSitesInfo\/download\/0.1.5"},{"name":"0.1.6","release":"2017-03-27 21:30:04","requires":{"piwik":">=2.11.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6161,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mattab\/piwik-plugin-ApiGetWithSitesInfo\/commits\/0.1.6","readmeHtml":{"description":"\n\n<p>Modifies the 'API.get' output to also list the website name and main website URL.<\/p>\n\n<p>When calling the API method <code>API.get<\/code> it will be enriched with the following new fields for each website:<\/p>\n\n<ul>\n<li><code>idsite<\/code> - Website ID<\/li>\n<li><code>site_url<\/code> - Website URL<\/li>\n<li><p><code>site_name<\/code> - Website name<\/p>\n\n<p>If you specify <code>&amp;idSite=all<\/code> it will decorate each website in the response with the new fields.<\/p><\/li>\n<\/ul>\n\n<p>The output will look as follows:<\/p>\n\n<pre><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\" ?&gt;\n&lt;result&gt;\n    &lt;idsite&gt;2&lt;\/idsite&gt;\n    &lt;site_url&gt;http:\/\/blog.shacklefordvetclinic.com&lt;\/site_url&gt;\n    &lt;site_name&gt;Shackleford Road Veterinary Clinic&lt;\/site_name&gt;\n    &lt;nb_uniq_visitors&gt;2397&lt;\/nb_uniq_visitors&gt;\n    &lt;nb_visits&gt;2758&lt;\/nb_visits&gt;\n    &lt;nb_actions&gt;7943&lt;\/nb_actions&gt;\n    &lt;bounce_count&gt;1421&lt;\/bounce_count&gt;\n    &lt;nb_conversions&gt;987&lt;\/nb_conversions&gt;\n    &lt;nb_visits_converted&gt;838&lt;\/nb_visits_converted&gt;\n    &lt;revenue&gt;0&lt;\/revenue&gt;\n    &lt;nb_pageviews&gt;6370&lt;\/nb_pageviews&gt;\n    &lt;nb_uniq_pageviews&gt;5330&lt;\/nb_uniq_pageviews&gt;\n    &lt;nb_downloads&gt;368&lt;\/nb_downloads&gt;\n    &lt;nb_uniq_downloads&gt;305&lt;\/nb_uniq_downloads&gt;\n    &lt;nb_outlinks&gt;951&lt;\/nb_outlinks&gt;\n    &lt;nb_uniq_outlinks&gt;871&lt;\/nb_uniq_outlinks&gt;\n    &lt;nb_searches&gt;27&lt;\/nb_searches&gt;\n    &lt;nb_keywords&gt;25&lt;\/nb_keywords&gt;\n    &lt;nb_hits_with_time_generation&gt;5635&lt;\/nb_hits_with_time_generation&gt;\n    &lt;conversion_rate&gt;30.38%&lt;\/conversion_rate&gt;\n    &lt;bounce_rate&gt;52%&lt;\/bounce_rate&gt;\n    &lt;nb_actions_per_visit&gt;2.9&lt;\/nb_actions_per_visit&gt;\n    [...]\n<\/code><\/pre>\n\n","faq":"","documentation":"","changelog":"<ul>\n<li>0.1.3 - Piwik 3 compatibility<\/li>\n<li>0.1.2 - Fixed bug <code>Call to a member function getRowsCount() on a non-object<\/code><\/li>\n<li>0.1.0 - Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ApiGetWithSitesInfo\/download\/0.1.6"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ApiGetWithSitesInfo\/changelog"},"consumer":{"license":null}},{"name":"ApiReference","displayName":"Api Reference","owner":"matomo-org","description":"Modern interactive API documentation for Matomo based on OpenAPI (Swagger). Explore endpoints, parameters, and responses directly in your browser.","homepage":"https:\/\/matomo.org","createdDateTime":"2026-05-24 22:26:03","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-ApiReference","type":"url"}],"isTheme":false,"keywords":["api","swagger","openapi","Documentation","Reference"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference","lastUpdated":"2026-10-19 04:54:05","latestVersion":"5.0.9","numDownloads":7470,"screenshots":["https:\/\/plugins.matomo.org\/ApiReference\/images\/5.0.9\/0_Swagger_page.png","https:\/\/plugins.matomo.org\/ApiReference\/images\/5.0.9\/1_Token_auth.png","https:\/\/plugins.matomo.org\/ApiReference\/images\/5.0.9\/2_Try_it_out.png","https:\/\/plugins.matomo.org\/ApiReference\/images\/5.0.9\/3_Parameter_values.png","https:\/\/plugins.matomo.org\/ApiReference\/images\/5.0.9\/4_API_response.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/ApiReference.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-21 04:16:53"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["development"],"promotions":{},"versions":[{"name":"5.0.0","release":"2026-05-24 22:26:04","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.0"},{"name":"5.0.1","release":"2026-05-25 04:22:04","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.1"},{"name":"5.0.2","release":"2026-05-25 04:50:05","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":602,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.2"},{"name":"5.0.3","release":"2026-06-08 05:04:04","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1019,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.3"},{"name":"5.0.4","release":"2026-06-29 05:12:04","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":704,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.4"},{"name":"5.0.5","release":"2026-07-06 02:06:04","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3259,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.5"},{"name":"5.0.6","release":"2026-08-17 05:18:36","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":238,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.6"},{"name":"6.0.0","release":"2026-08-24 08:54:04","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/6.0.0"},{"name":"5.0.7","release":"2026-08-25 06:36:05","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1187,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.7"},{"name":"6.0.1","release":"2026-08-31 05:50:05","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":110,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/6.0.1"},{"name":"5.0.8","release":"2026-10-05 01:08:06","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":185,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.8"},{"name":"6.0.2","release":"2026-10-05 03:54:25","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":24,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/6.0.2"},{"name":"6.0.3","release":"2026-10-12 06:14:05","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/6.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/6.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/6.0.3"},{"name":"5.0.9","release":"2026-10-19 04:54:05","requires":{"php":">=7.4.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":80,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ApiReference\/5.0.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/commits\/5.0.9","readmeHtml":{"description":"\n\n<p>The API Reference plugin generates an OpenAPI (Swagger) specification from Matomo API definitions and supported plugin metadata.<\/p>\n\n<p>As APIs and plugins expose additional metadata, developers can browse available API endpoints, explore request parameters and response formats, and test API requests directly from the documentation interface.<\/p>\n\n<h3>Features include:<\/h3>\n\n<ul>\n<li>Interactive Swagger\/OpenAPI-based API documentation<\/li>\n<li>Request and response schema documentation<\/li>\n<li>Parameter descriptions and example requests<\/li>\n<li>Improved navigation and API discoverability<\/li>\n<li>Support for modern API documentation standards<\/li>\n<\/ul>\n\n<p>The API Reference plugin improves API discoverability while supporting modern API documentation standards and tooling.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Why is the OpenAPI specification file not generated?<\/strong><\/p>\n\n<p>This can happen if the API Reference plugin is disabled, the Matomo cache has not been cleared, or the API specification generation process encountered an error.<\/p>\n\n<p>Try the following:<\/p>\n\n<ul>\n<li>Ensure the API Reference plugin is installed and activated.<\/li>\n<li>Clear the Matomo cache.<\/li>\n<li>Check your server logs for PHP or permission errors.<\/li>\n<li>Verify that the Matomo instance can write generated files to the configured directory.<\/li>\n<li>Ensure all required plugins and dependencies are enabled.<\/li>\n<\/ul>\n\n<p>The specification files are generated daily using a scheduled Matomo task. To check when this task is scheduled to run next, use the TasksTimetable plugin.<\/p>\n\n<p>You can manually generate the specification files using the following command:<\/p>\n\n<pre><code class=\"bash\">core:run-scheduled-tasks \"Piwik\\Plugins\\ApiReference\\Tasks.generateConfiguredPluginSpecs\"\n<\/code><\/pre>\n\n<p>The initial generation process may take some time to complete, depending on the number of installed plugins.<\/p>\n\n<p><strong>Can I still see the legacy API reference page?<\/strong><\/p>\n\n<p>Yes. The legacy API reference remains available for compatibility and migration purposes while transitioning to the new API documentation.<\/p>\n\n<p><strong>Why do some request or response schemas appear incomplete?<\/strong><\/p>\n\n<p>The API Reference plugin generates request and response examples using data available in your Matomo instance. As a result, some response examples may appear incomplete if there is limited or no matching data available for a specific API request.<\/p>\n\n<p>Not all API methods include response examples. Response examples are primarily generated for API methods that retrieve data from Matomo.<\/p>\n\n<p><strong>Does the API Reference plugin replace existing Matomo APIs?<\/strong><\/p>\n\n<p>No. The plugin modernises the API documentation experience while remaining compatible with existing Matomo APIs and integrations.<\/p>\n\n<p>Existing API endpoints and integrations continue to function normally.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/faq\/how-to\/how-to-use-the-api-reference-in-matomo\">ApiReference User Guide<\/a> and the <a href=\"https:\/\/github.com\/matomo-org\/plugin-ApiReference\/blob\/5.x-dev\/README.md#features\">README.md<\/a> cover how to get the most out of this plugin.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>5.0.9 - 2026-10-19\n- Fixed the plugin cards on the API Reference page picking up the Marketplace's card style, and the API method panels staying light in dark mode<\/p>\n\n<p>5.0.8 - 2026-10-05\n- Fixed the daily API specification task logging errors, and so failing scheduled archiving, for XML responses that list values keyed by ID, such as FormAnalytics.getAllGoals\n- Fixed the XML response schema for rows that combine attributes with nested elements, which lost the attributes, repeated the elements or made the daily task log an error\n- Fixed the XML response schema leaving out nested attributes and elements that only some rows have, such as the sub-widgets of API.getReportPagesMetadata<\/p>\n\n<p>5.0.7 - 2026-08-25\n- Hardened generation of the API annotations file so untrusted characters in example responses cannot alter its structure<\/p>\n\n<p>5.0.6 - 2026-08-17\n- Hardened OpenAPI example generation so that it only ever queries read-only endpoints, and only anonymously\n- Deprecated the <code>ApiReference.shouldAllowLocalRequests<\/code> event, which no longer affects generation and will be removed in the next major version\n- Updated nikic\/php-parser to v5.8.0 and Vue to 3.5.41<\/p>\n\n<p>5.0.5 - 2027-07-06\n- Updated symfony\/yaml to v7.4.14<\/p>\n\n<p>5.0.4 - 2026-06-29\n- Removed eager fetching of Matomo URL<\/p>\n\n<p>5.0.3 - 08\/06\/2026\n- Improved wording of authorization buttons and help text\n- Cleaned up styling on input fields<\/p>\n\n<p>5.0.2 - 25\/05\/2026\n- Updated FAQ<\/p>\n\n<p>5.0.1 - 25\/05\/2026\n- Added fix for endpoints that don't return valid API responses<\/p>\n\n<p>5.0.0\n- Initial release of ApiReference plugin<\/p>"},"download":"\/api\/2.0\/plugins\/ApiReference\/download\/5.0.9"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ApiReference\/changelog"},"consumer":{"license":null}},{"name":"ArchiveSite","displayName":"Archive Site","owner":"iMarkus","description":"Start archiving process via web.","homepage":"https:\/\/github.com\/iMarkus\/Piwik-ArchiveSite","createdDateTime":"2017-12-04 14:38:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/iMarkus\/Piwik-ArchiveSite\/issues","type":"url"}],"isTheme":false,"keywords":["site","Archive"],"basePrice":0,"authors":[{"name":"iMarkus","email":"iMarkus@users.noreply.github.com","homepage":"https:\/\/github.com\/iMarkus"},{"name":"hagor","email":"hagor@users.noreply.github.com","homepage":"https:\/\/github.com\/hagor"}],"repositoryUrl":"https:\/\/github.com\/iMarkus\/Piwik-ArchiveSite","lastUpdated":"2018-01-09 15:06:04","latestVersion":"0.1.1","numDownloads":6737,"screenshots":["https:\/\/plugins.matomo.org\/ArchiveSite\/images\/0.1.1\/ArchiveSite.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"6","numContributors":"1","lastCommitDate":"2018-01-09 15:05:19"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2017-12-04 14:38:03","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":454,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ArchiveSite\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-ArchiveSite\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ArchiveSite\/download\/0.1.0"},{"name":"0.1.1","release":"2018-01-09 15:06:04","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6283,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ArchiveSite\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-ArchiveSite\/commits\/0.1.1","readmeHtml":{"description":"\n\n<p>This plugin allows superusers to start the archiving process via web.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>FAQ<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>0.1.1<\/strong>\n* Updated output format<\/p>\n\n<p><strong>0.1.0<\/strong>\n* Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/ArchiveSite\/download\/0.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ArchiveSite\/changelog"},"consumer":{"license":null}},{"name":"AskAI","displayName":"Ask AI","owner":"openmost","description":"Ask any AI model connected in Matomo's AI Providers about your reports, with an agent on live data.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/ask-ai","createdDateTime":"2026-10-02 14:38:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/AskAI\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/AskAI","type":"url"}],"isTheme":false,"keywords":["chat","ai","assistant","insight","insights","llm","agent","ai providers"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/AskAI","lastUpdated":"2026-10-22 15:15:11","latestVersion":"5.3.0","numDownloads":214,"screenshots":["https:\/\/plugins.matomo.org\/AskAI\/images\/5.3.0\/Agent_mode_weekly_KPI_review_with_tool_steps.png","https:\/\/plugins.matomo.org\/AskAI\/images\/5.3.0\/Insights_on_any_report_in_one_click.png","https:\/\/plugins.matomo.org\/AskAI\/images\/5.3.0\/Setup_steps_when_no_AI_provider_is_connected.png"],"coverImage":"https:\/\/plugins.matomo.org\/AskAI\/images\/5.3.0\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-22 15:13:45"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"6.0.0","release":"2026-10-02 14:38:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/6.0.0"},{"name":"5.0.0","release":"2026-10-02 14:38:28","requires":{"matomo":">=5.13.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/5.0.0"},{"name":"5.1.0","release":"2026-10-06 10:18:47","requires":{"matomo":">=5.13.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":114,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/5.1.0"},{"name":"6.1.0","release":"2026-10-06 10:18:52","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/6.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/6.1.0"},{"name":"6.1.1","release":"2026-10-14 14:22:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/6.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/6.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/6.1.1"},{"name":"6.1.2","release":"2026-10-14 15:14:23","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/6.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/6.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/6.1.2"},{"name":"5.1.1","release":"2026-10-14 15:20:06","requires":{"matomo":">=5.13.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":47,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/5.1.1"},{"name":"6.2.0","release":"2026-10-21 20:58:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/6.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/6.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/6.2.0"},{"name":"5.2.0","release":"2026-10-21 21:12:13","requires":{"matomo":">=5.13.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/5.2.0"},{"name":"6.3.0","release":"2026-10-22 15:14:36","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/6.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/6.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskAI\/download\/6.3.0"},{"name":"5.3.0","release":"2026-10-22 15:15:11","requires":{"matomo":">=5.13.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/AskAI\/5.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskAI\/commits\/5.3.0","readmeHtml":{"description":"\n\n<p>Ask questions about your analytics and get AI insights on any Matomo report, with any AI model connected in Matomo's AI Providers, plus an optional agent that queries your live reports through the Matomo MCP tools.<\/p>\n\n<h3>Features<\/h3>\n\n<h4>Insights on any report<\/h4>\n\n<ul>\n<li>An <strong>Ask AI<\/strong> button in the report header opens an insight panel that analyses the report you are looking at, then lets you ask follow-up questions.<\/li>\n<li>The whole report is analysed, not only the rows visible on screen: the plugin sends a compact payload with the rows, the report totals and the names and units of the metrics.<\/li>\n<li>The analysis follows what you see: the active segment, the period and date, and the compared periods or segments.<\/li>\n<li>The analysis also follows the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>Works with data tables, evolution graphs, goals, ecommerce, custom dimensions, custom reports, row evolution and the other reports Matomo declares as widgets.<\/li>\n<li>When a widget has no report data, or the report cannot be loaded (for example a missing access), a clear message is displayed instead of sending the error to the model.<\/li>\n<li>The panel is an accessible dialog: keyboard navigation, focus kept inside the panel, Escape to close. Opening it closes the insight panel of any other Openmost AI plugin, so two panels never stack.<\/li>\n<\/ul>\n\n<h4>Chat<\/h4>\n\n<ul>\n<li>An <strong>Ask AI<\/strong> page in the main menu, with suggested questions to start a conversation and a \"New conversation\" button.<\/li>\n<li>Auto-scroll that follows the answer while it is written, stops when you scroll up, and a button to jump back to the latest message.<\/li>\n<li>Markdown answers with scrollable tables and code blocks, and buttons to copy an answer or a code block.<\/li>\n<li>Enter sends the message, Shift+Enter adds a new line.<\/li>\n<\/ul>\n\n<h4>Any provider, any model, your own prompts<\/h4>\n\n<ul>\n<li>The plugin has no API key, no host and no model list of its own: it answers with the provider and model connected in <strong>Administration &gt; System &gt; AI Providers<\/strong>, whichever they are (OpenAI, Anthropic, Google, Amazon Bedrock or a custom OpenAI-compatible endpoint).<\/li>\n<li>Change the provider or the model in AI Providers and the assistant follows, without any change in the plugin.<\/li>\n<li>The default chat and insight prompts are written for analytics and translated: the chat answers as a senior analytics consultant (direct answer, key figures, prioritised recommendations, no invented figures), and insights follow a fixed structure (summary, key figures, notable patterns, recommendations).<\/li>\n<li>Super users can rewrite both prompts for all websites in <strong>Administration &gt; System &gt; Ask AI<\/strong>, and website admins can override them for one website in <strong>Administration &gt; Websites &gt; Ask AI<\/strong>. An empty prompt follows the general prompt, and a prompt left to its default follows the future updates of the plugin. The context of the website and period, the Matomo tools and the confirmation rule for write actions are always added after the prompt.<\/li>\n<li>While AI Providers cannot answer, the plugin shows what to set up instead of a form: the AI Providers plugin is missing, not activated, or no provider is connected. Super users get a direct link for each step, other users are asked to contact their Matomo administrator.<\/li>\n<\/ul>\n\n<h4>Agent mode, with MCP Server<\/h4>\n\n<p>When the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent:<\/p>\n\n<ul>\n<li>The agent queries your live reports, websites, goals, dimensions and segments by itself, for any period, to answer with real figures.<\/li>\n<li>A timeline shows each Matomo tool used for an answer and its status.<\/li>\n<li>Tools run inside Matomo with the permissions of the current user: no public URL, OAuth client or extra token is needed.<\/li>\n<li>Write actions (for example creating a goal, an annotation or a segment) are only possible when McpServer allows write methods, and only after the agent has described the exact change and you have confirmed it explicitly in the conversation. This rule is added by the plugin to every agent conversation.<\/li>\n<li>When something is missing, the chat recommends the next step, one at a time: install, activate or enable MCP Server, allow write methods.<\/li>\n<li>The agent mode is optional. Without McpServer, the connected provider answers without tools. A provider or model that does not support tools also answers without them, with no error.<\/li>\n<\/ul>\n\n<h4>More<\/h4>\n\n<ul>\n<li>Interface translated into 13 languages: English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/li>\n<li>Follows the Matomo light and dark themes.<\/li>\n<li>Rate limit of 30 AI requests per hour, per user and per website, configurable in <code>config\/config.ini.php<\/code>.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.13.0 or higher, the first Matomo 5 release with AI Providers (<code>&gt;=5.13.0,&lt;6.0.0-b1<\/code>)<\/li>\n<li>PHP 7.2.5 or higher (McpServer, for the agent mode, requires PHP 8.1)<\/li>\n<li>The <strong>AI Providers<\/strong> plugin (bundled with Matomo) with at least one connected provider<\/li>\n<li>Optional, for the agent mode: the <strong>McpServer<\/strong> plugin from the Marketplace. Write actions also require write methods to be allowed in the McpServer settings (Raw Matomo API tool access).<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate <strong>AskAI<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, connect a provider in <strong>Administration &gt; System &gt; AI Providers<\/strong>, then check <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Ask AI<\/strong> (off by default). This page also shows where the data goes, sets the masking and holds the chat and insight prompts.<\/li>\n<li>Optionally, for the agent mode, install, activate and enable <strong>McpServer<\/strong> (<strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>). The chat guides you through each missing step.<\/li>\n<li><p>Optionally, as a server administrator, tune the plugin in a <code>[AskAI]<\/code> section of <code>config\/config.ini.php<\/code>. Every key is optional:<\/p>\n\n<pre><code>[AskAI]\n; AI requests per user and per website within the window, 0 disables the limit\nrate_limit_requests = 30\n; length of the window, in seconds\nrate_limit_window = 3600\n<\/code><\/pre><\/li>\n<\/ol>\n\n<p>Then open the <strong>Ask AI<\/strong> page in the main menu, or click the <strong>Ask AI<\/strong> button in the header of a report.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>Insights send the data of the report you are looking at (labels, metrics and totals), its period, segment and comparisons, and the conversation, to the provider connected in AI Providers.<\/li>\n<li>The chat sends your messages and the prompt. In agent mode, the results of the Matomo tools the agent calls are also sent to the provider.<\/li>\n<li>Nothing is sent to the AI provider until a super user checks <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Ask AI<\/strong>. It is off by default: until then, the chat and the insights tell users to ask a super user to allow it.<\/li>\n<li>Before sending, e-mail and IP addresses are replaced with <code>[email]<\/code> and <code>[ip]<\/code>, and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default and can be turned off in the same section.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default: the insights and the agent cannot read it until a super user unchecks <strong>Exclude visitor-level data<\/strong>.<\/li>\n<li>Report labels can hold values set by visitors (page titles, URLs, referrers, campaign names, custom dimensions). Check the retention and privacy terms of the provider before connecting it, and prefer a self-hosted or EU-hosted endpoint when your data policy requires it.<\/li>\n<li>The chat shows every user a notice stating that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the Matomo administrator.<\/li>\n<li>When a Matomo tool fails in agent mode, the model only receives a generic error with a reference: the details stay in the Matomo logs.<\/li>\n<li>Insight requests are restricted to the report and data methods of widgets declared by Matomo, never to an arbitrary API method, and run with the permissions of the current user.<\/li>\n<li>AskAI stores no API key and no conversation: the credentials stay in AI Providers.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We connect Matomo to AI assistants, BI tools and the rest of your stack with <a href=\"https:\/\/openmost.com\/matomo\/services\/integration?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=askai\">Matomo integrations<\/a> built on official APIs, with documented and privacy-checked data flows.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How do I install and configure this plugin?<\/strong><\/p>\n\n<ol>\n<li>Install and activate <strong>AskAI<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, connect a provider in <strong>Administration &gt; System &gt; AI Providers<\/strong>.<\/li>\n<li>Check <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Ask AI<\/strong>: it is off by default.<\/li>\n<\/ol>\n\n<p>The same page holds the other privacy settings and the chat and insight prompts. You can also download the plugin from <a href=\"https:\/\/github.com\/openmost\/AskAI\">GitHub<\/a>, extract it to your <code>plugins\/<\/code> folder and activate it.<\/p>\n\n<p><strong>Can I change the rate limit?<\/strong><\/p>\n\n<p>Yes, in a <code>[AskAI]<\/code> section of <code>config\/config.ini.php<\/code>: <code>rate_limit_requests<\/code> sets the AI requests per user and per website (30 by default, 0 disables the limit) and <code>rate_limit_window<\/code> the length of the window in seconds (3600 by default). These values are kept when the plugin is updated.<\/p>\n\n<p><strong>The chat says that data sharing is not allowed<\/strong><\/p>\n\n<p>No Matomo data leaves your instance without an explicit decision: a super user must check <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Ask AI<\/strong>. Other users are asked to contact a super user.<\/p>\n\n<p><strong>What do I need to make it work?<\/strong><\/p>\n\n<p>The <strong>AI Providers<\/strong> plugin, bundled with Matomo, with at least one connected provider. AskAI has no API key, host or model setting of its own.<\/p>\n\n<p><strong>Which AI providers and models are supported?<\/strong><\/p>\n\n<p>Every provider and model AI Providers supports: OpenAI, Anthropic, Google, Amazon Bedrock and custom OpenAI-compatible endpoints. AskAI always uses the provider and the model chosen in AI Providers, so changing them there is enough.<\/p>\n\n<p><strong>Where are the settings?<\/strong><\/p>\n\n<p>The provider, the model and the credentials are managed in AI Providers. AskAI only has two pages:<\/p>\n\n<ul>\n<li><strong>Administration &gt; System &gt; Ask AI<\/strong>, for super users: the privacy settings and the chat and insight prompts of all websites.<\/li>\n<li><strong>Administration &gt; Websites &gt; Ask AI<\/strong>, for website admins: the chat and insight prompts of one website. An empty prompt follows the general prompt.<\/li>\n<\/ul>\n\n<p>The default prompts are written for analytics and translated into 13 languages. <strong>Reset to default<\/strong> brings them back.<\/p>\n\n<p><strong>The Ask AI page shows steps instead of the chat<\/strong><\/p>\n\n<p>AI Providers cannot answer yet: the plugin is missing, not activated, or no provider is connected. The page lists the steps to take, with a direct link for super users. Other users are asked to contact their Matomo administrator.<\/p>\n\n<p><strong>What is the agent mode?<\/strong><\/p>\n\n<p>When the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent: they query your live reports, websites, goals, dimensions and segments through the Matomo tools to answer with real figures. A timeline shows each tool used.<\/p>\n\n<p>To enable it, install, activate and enable McpServer in <strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>. The chat recommends each missing step, with a direct link for super users.<\/p>\n\n<p><strong>What happens when my model does not support tools?<\/strong><\/p>\n\n<p>The assistant answers as a plain chat, without the Matomo tools and without any error. Choose a model with tool support in AI Providers to use the agent mode.<\/p>\n\n<p><strong>Can the agent change things in Matomo?<\/strong><\/p>\n\n<p>Only if McpServer allows write methods (Raw Matomo API tool access), and only with your confirmation: before any create, update or delete, the agent describes the exact change and waits for your explicit confirmation in the conversation. The agent never has more access than the current user.<\/p>\n\n<p><strong>Do I need to expose my Matomo instance or configure OAuth for the agent?<\/strong><\/p>\n\n<p>No. The agent calls the Matomo tools inside your Matomo, with the permissions of the logged in user. It also works on private and intranet instances.<\/p>\n\n<p><strong>What do insights analyse?<\/strong><\/p>\n\n<p>The whole report you are looking at, not only the visible rows: its rows, totals and metrics, with the active segment, period and comparisons. Insights work on data tables, evolution graphs, goals, custom reports and the other reports Matomo declares as widgets.<\/p>\n\n<p><strong>Can I use AskAI together with the other Openmost AI plugins?<\/strong><\/p>\n\n<p>Yes. They share a single insight panel: opening one closes the others, so two panels never stack.<\/p>\n\n<p><strong>Which data is sent to the AI provider?<\/strong><\/p>\n\n<p>Insights send the data of the report you are looking at (labels, metrics, totals, period, segment and comparisons) and the conversation to the provider connected in AI Providers. In agent mode, the results of the tools the agent calls are sent too. Raw visitor data is never sent, unless the report itself contains it, such as the Visits Log. Conversations are not stored by the plugin.<\/p>\n\n<p><strong>Is there a usage limit?<\/strong><\/p>\n\n<p>Yes, 30 AI requests per hour, per user and per website, to protect your AI budget.<\/p>\n\n<p><strong>Which languages are supported?<\/strong><\/p>\n\n<p>English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/p>\n\n<p><strong>What are the requirements?<\/strong><\/p>\n\n<ul>\n<li>Matomo 5.13.0 or higher<\/li>\n<li>PHP 7.2.5 or higher (8.1 or higher for McpServer)<\/li>\n<li>AI Providers (bundled with Matomo) with a connected provider<\/li>\n<li>For the agent mode: the McpServer plugin<\/li>\n<\/ul>\n\n<p><strong>How do I get support?<\/strong><\/p>\n\n<p>Email ronan@openmost.com, or open an issue on <a href=\"https:\/\/github.com\/openmost\/AskAI\/issues\">GitHub<\/a>. More on https:\/\/openmost.com\/matomo\/extensions\/ask-ai.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Features<\/h3>\n\n<h4>Insights on any report<\/h4>\n\n<ul>\n<li>An <strong>Ask AI<\/strong> button in the report header opens an insight panel that analyses the report you are looking at, then lets you ask follow-up questions.<\/li>\n<li>The whole report is analysed, not only the rows visible on screen: the plugin sends a compact payload with the rows, the report totals and the names and units of the metrics.<\/li>\n<li>The analysis follows what you see: the active segment, the period and date, and the compared periods or segments.<\/li>\n<li>The analysis also follows the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>Works with data tables, evolution graphs, goals, ecommerce, custom dimensions, custom reports, row evolution and the other reports Matomo declares as widgets.<\/li>\n<li>When a widget has no report data, or the report cannot be loaded (for example a missing access), a clear message is displayed instead of sending the error to the model.<\/li>\n<li>The panel is an accessible dialog: keyboard navigation, focus kept inside the panel, Escape to close. Opening it closes the insight panel of any other Openmost AI plugin, so two panels never stack.<\/li>\n<\/ul>\n\n<h4>Chat<\/h4>\n\n<ul>\n<li>An <strong>Ask AI<\/strong> page in the main menu, with suggested questions to start a conversation and a \"New conversation\" button.<\/li>\n<li>Auto-scroll that follows the answer while it is written, stops when you scroll up, and a button to jump back to the latest message.<\/li>\n<li>Markdown answers with scrollable tables and code blocks, and buttons to copy an answer or a code block.<\/li>\n<li>Enter sends the message, Shift+Enter adds a new line.<\/li>\n<\/ul>\n\n<h4>Any provider, any model, your own prompts<\/h4>\n\n<ul>\n<li>The plugin has no API key, no host and no model list of its own: it answers with the provider and model connected in <strong>Administration &gt; System &gt; AI Providers<\/strong>, whichever they are (OpenAI, Anthropic, Google, Amazon Bedrock or a custom OpenAI-compatible endpoint).<\/li>\n<li>Change the provider or the model in AI Providers and the assistant follows, without any change in the plugin.<\/li>\n<li>The default chat and insight prompts are written for analytics and translated: the chat answers as a senior analytics consultant (direct answer, key figures, prioritised recommendations, no invented figures), and insights follow a fixed structure (summary, key figures, notable patterns, recommendations).<\/li>\n<li>Super users can rewrite both prompts for all websites in <strong>Administration &gt; System &gt; Ask AI<\/strong>, and website admins can override them for one website in <strong>Administration &gt; Websites &gt; Ask AI<\/strong>. An empty prompt follows the general prompt, and a prompt left to its default follows the future updates of the plugin. The context of the website and period, the Matomo tools and the confirmation rule for write actions are always added after the prompt.<\/li>\n<li>While AI Providers cannot answer, the plugin shows what to set up instead of a form: the AI Providers plugin is missing, not activated, or no provider is connected. Super users get a direct link for each step, other users are asked to contact their Matomo administrator.<\/li>\n<\/ul>\n\n<h4>Agent mode, with MCP Server<\/h4>\n\n<p>When the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent:<\/p>\n\n<ul>\n<li>The agent queries your live reports, websites, goals, dimensions and segments by itself, for any period, to answer with real figures.<\/li>\n<li>A timeline shows each Matomo tool used for an answer and its status.<\/li>\n<li>Tools run inside Matomo with the permissions of the current user: no public URL, OAuth client or extra token is needed.<\/li>\n<li>Write actions (for example creating a goal, an annotation or a segment) are only possible when McpServer allows write methods, and only after the agent has described the exact change and you have confirmed it explicitly in the conversation. This rule is added by the plugin to every agent conversation.<\/li>\n<li>When something is missing, the chat recommends the next step, one at a time: install, activate or enable MCP Server, allow write methods.<\/li>\n<li>The agent mode is optional. Without McpServer, the connected provider answers without tools. A provider or model that does not support tools also answers without them, with no error.<\/li>\n<\/ul>\n\n<h4>More<\/h4>\n\n<ul>\n<li>Interface translated into 13 languages: English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/li>\n<li>Follows the Matomo light and dark themes.<\/li>\n<li>Rate limit of 30 AI requests per hour, per user and per website, configurable in <code>config\/config.ini.php<\/code>.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.13.0 or higher, the first Matomo 5 release with AI Providers (<code>&gt;=5.13.0,&lt;6.0.0-b1<\/code>)<\/li>\n<li>PHP 7.2.5 or higher (McpServer, for the agent mode, requires PHP 8.1)<\/li>\n<li>The <strong>AI Providers<\/strong> plugin (bundled with Matomo) with at least one connected provider<\/li>\n<li>Optional, for the agent mode: the <strong>McpServer<\/strong> plugin from the Marketplace. Write actions also require write methods to be allowed in the McpServer settings (Raw Matomo API tool access).<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate <strong>AskAI<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, connect a provider in <strong>Administration &gt; System &gt; AI Providers<\/strong>, then check <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Ask AI<\/strong> (off by default). This page also shows where the data goes, sets the masking and holds the chat and insight prompts.<\/li>\n<li>Optionally, for the agent mode, install, activate and enable <strong>McpServer<\/strong> (<strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>). The chat guides you through each missing step.<\/li>\n<li><p>Optionally, as a server administrator, tune the plugin in a <code>[AskAI]<\/code> section of <code>config\/config.ini.php<\/code>. Every key is optional:<\/p>\n\n<pre><code>[AskAI]\n; AI requests per user and per website within the window, 0 disables the limit\nrate_limit_requests = 30\n; length of the window, in seconds\nrate_limit_window = 3600\n<\/code><\/pre><\/li>\n<\/ol>\n\n<p>Then open the <strong>Ask AI<\/strong> page in the main menu, or click the <strong>Ask AI<\/strong> button in the header of a report.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>Insights send the data of the report you are looking at (labels, metrics and totals), its period, segment and comparisons, and the conversation, to the provider connected in AI Providers.<\/li>\n<li>The chat sends your messages and the prompt. In agent mode, the results of the Matomo tools the agent calls are also sent to the provider.<\/li>\n<li>Nothing is sent to the AI provider until a super user checks <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Ask AI<\/strong>. It is off by default: until then, the chat and the insights tell users to ask a super user to allow it.<\/li>\n<li>Before sending, e-mail and IP addresses are replaced with <code>[email]<\/code> and <code>[ip]<\/code>, and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default and can be turned off in the same section.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default: the insights and the agent cannot read it until a super user unchecks <strong>Exclude visitor-level data<\/strong>.<\/li>\n<li>Insight requests are restricted to the report and data methods of widgets declared by Matomo, never to an arbitrary API method, and run with the permissions of the current user.<\/li>\n<li>AskAI stores no API key and no conversation: the credentials stay in AI Providers.<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>5.3.0<\/h3>\n\n<ul>\n<li>Insights follow the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>The rate limit is configurable in a <code>[AskAI]<\/code> section of <code>config\/config.ini.php<\/code>: <code>rate_limit_requests<\/code> (30 by default, 0 disables it) and <code>rate_limit_window<\/code> in seconds (3600 by default).<\/li>\n<\/ul>\n\n<h3>5.2.0<\/h3>\n\n<p><strong>Prompts<\/strong><\/p>\n\n<ul>\n<li>New <em>Administration &gt; System &gt; Ask AI<\/em> page, for super users: the chat and insight prompts of all websites can be rewritten, with a <em>Reset to default<\/em> button. A prompt left to its default is not stored, so it follows the future updates of the plugin.<\/li>\n<li>New <em>Administration &gt; Websites &gt; Ask AI<\/em> page, for website admins: the chat and insight prompts can be overridden for one website. An empty prompt follows the general prompt.<\/li>\n<li>The context of the website and period, the Matomo tools and the confirmation rule for write actions are always added after the prompt, a custom prompt cannot remove them.<\/li>\n<\/ul>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<ul>\n<li>The privacy settings move from <em>Administration &gt; System &gt; General settings<\/em> to the new <em>Administration &gt; System &gt; Ask AI<\/em> page. Their saved values are kept.<\/li>\n<\/ul>\n\n<h3>5.1.1<\/h3>\n\n<ul>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>5.1.0<\/h3>\n\n<blockquote>\n  <p><strong>Action required.<\/strong> Nothing is sent to the AI provider any more until a super user checks <em>Allow sending Matomo data to the AI provider<\/em> in <em>Administration &gt; System &gt; General settings &gt; AskAI<\/em>. Until then, the chat and the insights ask users to contact a super user.<\/p>\n<\/blockquote>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<ul>\n<li>New privacy settings in <em>Administration &gt; System &gt; General settings &gt; AskAI<\/em>: nothing is sent to the AI provider until a super user checks <em>Allow sending Matomo data to the AI provider<\/em>, off by default. They also show where the data goes.<\/li>\n<li>Before sending, e-mail and IP addresses are masked and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default from the insights and the agent.<\/li>\n<li>The chat tells users that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the administrator.<\/li>\n<li>When a Matomo tool fails in agent mode, the AI provider only receives a generic error with a reference: the details stay in the Matomo logs.<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<p>First release of Ask AI, the AI assistant for Matomo that runs on AI Providers.<\/p>\n\n<ul>\n<li><strong>Any provider, any model<\/strong>: the chat and the insights answer with the provider and model connected in <em>Administration &gt; System &gt; AI Providers<\/em> (OpenAI, Anthropic, Google, Amazon Bedrock or a custom endpoint). The plugin has no settings, no API key and no model of its own.<\/li>\n<li><strong>Insights on any report<\/strong>: an <em>Ask AI<\/em> button in the report header opens an insight panel on the full report, following the active segment, period and comparisons, with follow-up questions.<\/li>\n<li>The insight panel closes the panel of the other Openmost AI plugins (ChatGPT, Mistral AI, Claude) when it opens.<\/li>\n<li><strong>Chat page<\/strong>: an <em>Ask AI<\/em> page in the main menu, with suggested questions, copy buttons, scrollable tables and code blocks, and auto-scroll.<\/li>\n<li><strong>Agent mode<\/strong> with McpServer: the assistant queries your live reports through the Matomo tools, with a timeline of the tools used. Write actions are only performed after an explicit confirmation in the conversation. A model without tool support answers as a plain chat.<\/li>\n<li><strong>Guided setup<\/strong>: while AI Providers cannot answer, the plugin shows the steps to take instead of a form, with direct links for super users.<\/li>\n<li>Fixed chat and insight prompts written for analytics, interface translated into 13 languages, light and dark themes, rate limit of 30 requests per hour per user and website.<\/li>\n<li>The prompts ask the assistant to flag the figures of a period that has not ended yet as partial and to compare the same number of elapsed days instead of calling a drop a decline, and to compute every difference, percentage and ratio from the exact numbers.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/AskAI\/download\/5.3.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AskAI\/changelog"},"consumer":{"license":null}},{"name":"AskYourDatabase","displayName":"Ask Your Database","owner":"openmost","description":"Embed your AskYourDatabase AI chatbot in Matomo and query your database in plain language.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/ask-your-database","createdDateTime":"2024-07-17 15:56:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/AskYourDatabase\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/AskYourDatabase","type":"url"}],"isTheme":false,"keywords":["ai","Database","ask","your","askyourdatabase","artificial","intelligence"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/AskYourDatabase","lastUpdated":"2026-10-21 21:12:19","latestVersion":"5.0.9","numDownloads":21444,"screenshots":["https:\/\/plugins.matomo.org\/AskYourDatabase\/images\/5.0.9\/AskYourDatabase_iframe.png","https:\/\/plugins.matomo.org\/AskYourDatabase\/images\/5.0.9\/Settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/AskYourDatabase\/images\/5.0.9\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-21 21:11:13"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"5.0.1","release":"2024-07-17 15:56:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.1"},{"name":"5.0.2","release":"2024-07-17 16:00:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":34,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.2"},{"name":"5.0.3","release":"2024-07-17 16:04:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.3"},{"name":"5.0.4","release":"2024-07-17 16:08:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.4"},{"name":"5.0.5","release":"2024-07-17 16:12:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.5"},{"name":"5.0.6","release":"2024-07-17 16:22:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.6"},{"name":"5.0.7","release":"2024-07-17 20:34:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21270,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.7"},{"name":"6.0.0","release":"2026-09-15 19:20:11","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":42,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/6.0.0"},{"name":"6.0.1","release":"2026-10-14 14:24:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/6.0.1"},{"name":"5.0.8","release":"2026-10-14 15:20:16","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":40,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.8"},{"name":"6.0.2","release":"2026-10-21 20:58:11","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/6.0.2"},{"name":"5.0.9","release":"2026-10-21 21:12:19","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/AskYourDatabase\/commits\/5.0.9","readmeHtml":{"description":"\n\n<p>Chat with your data inside Matomo: embed your AskYourDatabase AI chatbot and query your database in plain language, without writing SQL.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>AskYourDatabase chatbot in Matomo<\/strong>: a top menu entry opens your AskYourDatabase chatbot in a full-height page. Ask questions such as \"What are the 10 most visited pages last month?\" and get answers as tables and charts, with the SQL query used.<\/li>\n<li><strong>AskYourDatabase v2 session API<\/strong>: the plugin creates a chatbot session from your API key and chatbot ID. Expired sessions are renewed automatically.<\/li>\n<li><strong>One session per user<\/strong>: by default each super user chats with their own session, identified by their Matomo login and email. You can set a shared name and email instead.<\/li>\n<li><strong>Easy setup<\/strong>: paste the chatbot ID or its full URL, the plugin extracts the ID. Until the plugin is configured, the page shows a setup guide with a link to the settings.<\/li>\n<li><strong>Clear errors<\/strong>: when the chatbot cannot be opened, the page displays the reason and a Retry button.<\/li>\n<li><strong>Super users only<\/strong>: the menu and the page are restricted to super users, because the chatbot can read the connected database.<\/li>\n<li>Available in 12 languages.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or later, below 6.0.0<\/li>\n<li>An <a href=\"https:\/\/www.askyourdatabase.com\/\">AskYourDatabase<\/a> account with a chatbot connected to your database, and an API key<\/li>\n<li>Outgoing HTTPS requests from your Matomo server to <code>www.askyourdatabase.com<\/code><\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install the plugin from the Matomo Marketplace as a super user, or upload it to the <code>plugins\/<\/code> folder, then activate it in <strong>Administration &gt; System &gt; Plugins<\/strong>.<\/li>\n<li>In AskYourDatabase, connect your database (a dedicated read-only user is strongly recommended), create a chatbot and an API key.<\/li>\n<li>In Matomo, go to <strong>Administration &gt; System &gt; General settings &gt; AskYourDatabase<\/strong> and fill in:\n\n<ul>\n<li><strong>API key<\/strong> (required)<\/li>\n<li><strong>Chatbot ID<\/strong> (required, the ID or the full chatbot URL)<\/li>\n<li><strong>Name<\/strong> and <strong>Email<\/strong> (optional): leave them empty to use the login and email of the Matomo user who opens the chatbot.<\/li>\n<\/ul><\/li>\n<li>Click <strong>AskYourDatabase<\/strong> in the top menu.<\/li>\n<\/ol>\n\n<p>The full setup guide, including an example of a read-only database user, is in the plugin documentation.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>The plugin never connects to your database itself. AskYourDatabase does, with the credentials you configured in their dashboard. Grant it read-only access to the tables it needs, never to the tables storing Matomo users and tokens.<\/li>\n<li>The questions you type and the answers are processed by AskYourDatabase, in the embedded chatbot.<\/li>\n<li>To create a session, Matomo sends your API key, chatbot ID and the session name and email (the Matomo login and email by default) to AskYourDatabase from the server. The API key is stored in the Matomo plugin settings and is never sent to the browser, which only receives a one-time session URL.<\/li>\n<li>Requests to AskYourDatabase verify HTTPS certificates. The Matomo Content Security Policy only allows <code>https:\/\/www.askyourdatabase.com<\/code> to be embedded.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We connect Matomo to the rest of your stack, from databases and BI tools to AI assistants, with <a href=\"https:\/\/openmost.com\/matomo\/services\/integration?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=askyourdatabase\">Matomo integrations<\/a> built on official APIs and documented data flows your team can take over.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How to install this plugin?<\/strong><\/p>\n\n<p>This plugin is available in the official Matomo Marketplace. Install it the same way as other plugins:<\/p>\n\n<ul>\n<li>Go to the administration panel<\/li>\n<li>Open <strong>Marketplace<\/strong><\/li>\n<li>Search for \"<strong>AskYourDatabase<\/strong>\", install and activate the plugin<\/li>\n<li>Enter your API key and chatbot ID in <strong>Administration &gt; System &gt; General settings &gt; AskYourDatabase<\/strong><\/li>\n<\/ul>\n\n<p><strong>I upgraded the plugin and the chatbot does not open anymore<\/strong><\/p>\n\n<p>Since version 5.0.8 (for Matomo 5), the plugin uses the AskYourDatabase <strong>v2 API<\/strong>. The previous API has been shut down by AskYourDatabase and answers \"Please call v2 API\". The former \"Secret key\" setting is no longer used: create an <strong>API key<\/strong> in your AskYourDatabase dashboard and enter it with your <strong>chatbot ID<\/strong> in the plugin settings.<\/p>\n\n<p><strong>Where do I find my chatbot ID?<\/strong><\/p>\n\n<p>Open your chatbot in the AskYourDatabase dashboard, the ID is the last part of the URL (for example <code>5da7b8cf3a372f5e6e6b64af9ae189c7<\/code>). You can paste the full URL in the setting, the plugin extracts the ID.<\/p>\n\n<p><strong>Is the plugin available for all Matomo users?<\/strong><\/p>\n\n<p>No, <strong>only super users<\/strong> can see the menu and open the chatbot, because it can read the connected database.<\/p>\n\n<p><strong>What are the Name and Email settings used for?<\/strong><\/p>\n\n<p>They identify the chat sessions in AskYourDatabase. Leave them empty to use the login and email of the Matomo user who opens the chatbot: each user keeps their own conversations. Fill them in to share the same identity for all users.<\/p>\n\n<p><strong>Is my database safe?<\/strong><\/p>\n\n<p>The plugin never connects to your database itself: AskYourDatabase does, with the credentials you configured in their dashboard. Use a dedicated read-only user limited to the tables the chatbot needs, and never give access to the tables storing your Matomo users and tokens. An example is available in the documentation. Your AskYourDatabase API key stays on your Matomo server.<\/p>\n\n<p><strong>The page displays \"AskYourDatabase could not be reached\"<\/strong><\/p>\n\n<p>Your Matomo server must be able to send HTTPS requests to <code>www.askyourdatabase.com<\/code>. Check your firewall, and the proxy settings of your Matomo configuration if you use one.<\/p>\n\n<p><strong>The chatbot area stays blank<\/strong><\/p>\n\n<p>A browser extension or a Content Security Policy added by your web server may block the iframe. The plugin allows <code>https:\/\/www.askyourdatabase.com<\/code> in the Matomo Content Security Policy, allow it in your web server configuration too.<\/p>\n\n<p><strong>How to use this plugin?<\/strong><\/p>\n\n<p>Create an account on <a href=\"https:\/\/www.askyourdatabase.com\/\">AskYourDatabase<\/a>, connect your database, create a chatbot and an API key, then follow the documentation.<\/p>\n\n<p><strong>How can I contribute to this plugin?<\/strong><\/p>\n\n<p>Issues and pull requests are welcome on <a href=\"https:\/\/github.com\/openmost\/AskYourDatabase\">GitHub<\/a>. You can also contact us at ronan@openmost.com.<\/p>\n\n<p><strong>How long will this plugin be maintained?<\/strong><\/p>\n\n<p>As long as possible. We use Matomo on many projects every day and fix issues as fast as we can.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>This plugin embeds your <a href=\"https:\/\/www.askyourdatabase.com\/\">AskYourDatabase<\/a> chatbot in Matomo. AskYourDatabase turns questions written in plain language into SQL queries, runs them on your database and answers with tables and charts.<\/p>\n\n<h3>1 - Connect your database to AskYourDatabase<\/h3>\n\n<p>Create an account on <a href=\"https:\/\/www.askyourdatabase.com\/\">AskYourDatabase<\/a> and connect the database you want to query, for example your Matomo database.<\/p>\n\n<p>We strongly recommend a <strong>dedicated read-only MySQL \/ MariaDB user<\/strong>, limited to the tables the chatbot needs. Do not give access to the tables storing your Matomo users, passwords and tokens. For example, with the default <code>matomo_<\/code> table prefix:<\/p>\n\n<pre><code>CREATE USER 'askyourdatabase'@'%' IDENTIFIED BY 'a-long-random-password';\nGRANT SELECT ON matomo.matomo_site TO 'askyourdatabase'@'%';\nGRANT SELECT ON matomo.matomo_goal TO 'askyourdatabase'@'%';\nGRANT SELECT ON matomo.matomo_log_visit TO 'askyourdatabase'@'%';\nGRANT SELECT ON matomo.matomo_log_link_visit_action TO 'askyourdatabase'@'%';\nGRANT SELECT ON matomo.matomo_log_action TO 'askyourdatabase'@'%';\nGRANT SELECT ON matomo.matomo_log_conversion TO 'askyourdatabase'@'%';\n<\/code><\/pre>\n\n<p>If your hosting allows it, replace <code>%<\/code> by the IP addresses used by AskYourDatabase.<\/p>\n\n<h3>2 - Get your chatbot ID and API key<\/h3>\n\n<ul>\n<li><strong>Chatbot ID<\/strong>: open your chatbot in the AskYourDatabase dashboard. The ID is the last part of the URL, for example <code>5da7b8cf3a372f5e6e6b64af9ae189c7<\/code> in <code>https:\/\/www.askyourdatabase.com\/dashboard\/chatbot\/5da7b8cf3a372f5e6e6b64af9ae189c7<\/code>. You can also copy the full URL, the plugin extracts the ID.<\/li>\n<li><strong>API key<\/strong>: create one in the <strong>API Key<\/strong> page of the AskYourDatabase dashboard.<\/li>\n<\/ul>\n\n<h3>3 - Install and configure the plugin<\/h3>\n\n<ol>\n<li>Install the plugin from the Marketplace as a super user, or upload it to the <code>\/plugins<\/code> folder of your Matomo.<\/li>\n<li>Enable it under <strong>Administration &gt; System &gt; Plugins<\/strong>.<\/li>\n<li>Go to <strong>Administration &gt; System &gt; General settings &gt; AskYourDatabase<\/strong> and fill in:\n\n<ul>\n<li><strong>API key<\/strong> (required)<\/li>\n<li><strong>Chatbot ID<\/strong> (required)<\/li>\n<li><strong>Name<\/strong> and <strong>Email<\/strong> (optional): identity used for the chat sessions. Leave them empty to use the login and email of the Matomo user who opens the chatbot, so that each user keeps their own conversations.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h3>4 - Chat with your data<\/h3>\n\n<p>Click <strong>AskYourDatabase<\/strong> in the top menu. The plugin creates a secure session and opens the chatbot. When the session expires, a new one is created automatically.<\/p>\n\n<p>Only super users can see the menu and open the chatbot, as it can read the connected database.<\/p>\n\n<h3>How it works<\/h3>\n\n<ol>\n<li>Matomo calls the AskYourDatabase v2 session API from the server, with your API key.<\/li>\n<li>AskYourDatabase returns a one-time URL, opened in the page. Your API key is never sent to the browser.<\/li>\n<li>The Matomo Content Security Policy is extended to allow the <code>https:\/\/www.askyourdatabase.com<\/code> iframe.<\/li>\n<\/ol>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or later<\/li>\n<li>Outgoing HTTPS requests from your Matomo server to <code>www.askyourdatabase.com<\/code><\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.0.9<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v5.0.8<\/h3>\n\n<ul>\n<li>Update the plugin homepage (https:\/\/openmost.com\/matomo\/extensions\/ask-your-database), the support email and the Marketplace category<\/li>\n<li>Sessions are created with the AskYourDatabase v2 API (<code>\/api\/chatbot\/v2\/session<\/code>), as in v6: the previous API has been shut down. New <strong>API key<\/strong> and <strong>Chatbot ID<\/strong> settings replace the secret key, <strong>Name<\/strong> and <strong>Email<\/strong> become optional (the Matomo login and email are used when empty)<\/li>\n<li>Security: HTTPS certificates of AskYourDatabase are verified again, requests go through the Matomo HTTP client, and only askyourdatabase.com URLs are loaded in the iframe<\/li>\n<li>When the chatbot cannot be opened, the page shows the translated reason and a Retry button instead of a blank iframe, and a setup guide until the plugin is configured<\/li>\n<li>The menu is displayed to super users only, also before the configuration. API method <code>AskYourDatabase.getIframeUrl<\/code> replaced by <code>AskYourDatabase.createSession<\/code><\/li>\n<li>Translated into 12 languages<\/li>\n<li>Requires Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.0.7<\/h3>\n\n<p>update: Documentation<\/p>\n\n<h3>v5.0.6<\/h3>\n\n<p>update: Remove search bar from view<\/p>\n\n<h3>V5.0.5<\/h3>\n\n<p>update: Remove search bar from view<\/p>\n\n<h3>v5.0.4<\/h3>\n\n<p>fix: Scrollbar height<\/p>\n\n<h3>v5.0.3<\/h3>\n\n<p>update: Documentation<\/p>\n\n<h3>v5.0.2<\/h3>\n\n<p>update: Description and plugins.json meta<\/p>\n\n<h3>v5.0.1<\/h3>\n\n<p>Minor fixes<\/p>\n\n<h3>v5.0.0<\/h3>\n\n<p>Create plugin base<\/p>"},"download":"\/api\/2.0\/plugins\/AskYourDatabase\/download\/5.0.9"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AskYourDatabase\/changelog"},"consumer":{"license":null}},{"name":"AsyntaiChat","displayName":"Asyntai Chat","owner":"asyntai","description":"Adds an Asyntai AI chat widget tag to Tag Manager, so the assistant goes live without editing your site.","homepage":"https:\/\/asyntai.com\/documentation\/integrations\/matomo\/","createdDateTime":"2026-08-21 07:56:02","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/asyntai.com\/documentation\/integrations\/matomo\/","type":"url"},{"name":"Email","key":"email","value":"hello@asyntai.com","type":"email"}],"isTheme":false,"keywords":["widget","chat","TagManager","ai","assistant","support","chatbot"],"basePrice":0,"authors":[{"name":"Asyntai","email":"hello@asyntai.com","homepage":"https:\/\/asyntai.com"}],"repositoryUrl":"https:\/\/github.com\/asyntai\/matomo-chatbot","lastUpdated":"2026-08-21 07:56:02","latestVersion":"0.1.1","numDownloads":1463,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/integration.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-08-21 07:55:45"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"0.1.1","release":"2026-08-21 07:56:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1463,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/AsyntaiChat\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/asyntai\/matomo-chatbot\/commits\/0.1.1","readmeHtml":{"description":"\n\n<p>Adds an <strong>Asyntai<\/strong> tag to Matomo Tag Manager, so an AI chat assistant can go live on your website without touching its code.<\/p>\n\n<p>Asyntai answers your visitors from your own content: your website, your uploaded documents and your help centre articles. It replies in 36 languages, chosen automatically from the language of the question, and says that it does not know rather than inventing an answer when your content does not cover the question.<\/p>\n\n<p>Because the tag runs inside your Tag Manager container, which is already on your site, you install nothing else and edit no templates.<\/p>\n\n<h3>How to use it<\/h3>\n\n<ol>\n<li>Create an account at <a href=\"https:\/\/asyntai.com\">asyntai.com<\/a> and add your website. Asyntai reads it and builds the knowledge base.<\/li>\n<li>Copy your widget ID from the Install page in the Asyntai dashboard. It is the <code>data-asyntai-id<\/code> value in the snippet.<\/li>\n<li>In Matomo, open <strong>Tag Manager<\/strong>, choose your container, then <strong>Tags<\/strong>, then <strong>Create new tag<\/strong>.<\/li>\n<li>Pick <strong>Asyntai Chat<\/strong>, paste your widget ID, and give it the <strong>Pageview<\/strong> trigger.<\/li>\n<li>Publish the container. The assistant appears on your site.<\/li>\n<\/ol>\n\n<h3>What the tag does<\/h3>\n\n<p>It loads <code>https:\/\/widget.asyntai.com\/static\/js\/chat-widget.js<\/code> with your widget ID, after the page itself has finished loading, so the widget never slows the page down. It fires once per page, even if the container fires the tag again.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The tag sends nothing to Asyntai by itself. Asyntai receives data only when a visitor opens the chat and writes a message. No Matomo data, no visitor identifier and no report is read by this plugin.<\/p>\n\n<p>Full documentation: <a href=\"https:\/\/asyntai.com\/documentation\/integrations\/matomo\/\">https:\/\/asyntai.com\/documentation\/integrations\/matomo\/<\/a><\/p>\n\n<p>Support: hello@asyntai.com<\/p>","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/AsyntaiChat\/download\/0.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AsyntaiChat\/changelog"},"consumer":{"license":null}},{"name":"Audit","displayName":"Audit","owner":"openmost","description":"Free read-only audit of your Matomo 5 setup: 53 checks that flag what blocks the Matomo 6 upgrade.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/audit","createdDateTime":"2026-09-16 10:06:04","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/Audit\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/Audit","type":"url"}],"isTheme":false,"keywords":["security","performance","configuration","audit","Openmost","diagnostics","checklist","system-check"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/Audit","lastUpdated":"2026-10-21 21:12:29","latestVersion":"5.2.0","numDownloads":296,"screenshots":["https:\/\/plugins.matomo.org\/Audit\/images\/5.2.0\/Audit_summary_with_free_and_premium_checks.png","https:\/\/plugins.matomo.org\/Audit\/images\/5.2.0\/Expanded_finding_with_recommendation_and_snippet.png","https:\/\/plugins.matomo.org\/Audit\/images\/5.2.0\/Premium_checks_listed_in_the_free_edition.png"],"coverImage":"https:\/\/plugins.matomo.org\/Audit\/images\/5.2.0\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/7assPVsewTM","id":"7assPVsewTM"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-21 21:11:47"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"6.0.1","release":"2026-09-16 10:06:07","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Audit\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Audit\/download\/6.0.1"},{"name":"6.0.2","release":"2026-09-16 10:06:25","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":45,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Audit\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Audit\/download\/6.0.2"},{"name":"5.0.0","release":"2026-09-24 10:40:08","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":149,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Audit\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Audit\/download\/5.0.0"},{"name":"6.0.3","release":"2026-10-14 14:24:16","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Audit\/commits\/6.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Audit\/download\/6.0.3"},{"name":"5.1.0","release":"2026-10-14 15:20:25","requires":{"php":">=8.1.0","matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":58,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Audit\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Audit\/download\/5.1.0"},{"name":"6.1.0","release":"2026-10-21 21:00:11","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Audit\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Audit\/download\/6.1.0"},{"name":"5.2.0","release":"2026-10-21 21:12:29","requires":{"php":">=8.1.0","matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Audit\/commits\/5.2.0","readmeHtml":{"description":"\n\n<p>Free, read-only configuration audit of your Matomo 5 On-Premise instance: 53 checks on the server, PHP, the database and <code>config.ini.php<\/code>, flagging what blocks the upgrade to Matomo 6, with a Markdown export.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>53 automated checks<\/strong> across 6 categories: Infrastructure &amp; server, PHP, Database, <code>config.ini.php<\/code> settings, Matomo general settings, Backups &amp; monitoring.<\/li>\n<li><strong>Actionable findings<\/strong>: each finding has a status (pass, fail, warn, skip), a severity (critical, high, medium, low, info), the observed value, the expected value, a recommendation and, when relevant, a configuration snippet.<\/li>\n<li><strong>Strictly read-only<\/strong>: the plugin never writes to <code>config.ini.php<\/code>, to the database or to any file, and never stores the results. Every report is computed fresh.<\/li>\n<li><strong>Admin report<\/strong> for super users, with filters by category, severity, status and free text.<\/li>\n<li><strong>Markdown export<\/strong>, ready to paste into a consulting deliverable, with an ASCII-only variant for diff-friendly pipelines.<\/li>\n<li><strong>Console command<\/strong> <code>audit:run<\/code>, with table or Markdown output and a <code>--only<\/code> filter.<\/li>\n<li><strong>Theme-aware code blocks<\/strong>: configuration snippets follow the light or dark Matomo theme.<\/li>\n<li><strong>13 languages<\/strong>: English, Arabic, Chinese (Simplified), Chinese (Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/li>\n<li><strong>Premium checks listed<\/strong>: the 96 checks of <a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">Openmost Audit Premium<\/a> appear in the report with a \"Premium\" badge, without being run.<\/li>\n<\/ul>\n\n<h4>Checks run by the free plugin<\/h4>\n\n\n\n\n  Category\n  Checks\n\n\n\n\n  Infrastructure &amp; server (14)\n  Matomo version, web engine, archiving cron, GeoIP database and its freshness, SMTP, write permissions on <code>tmp\/<\/code> and <code>js\/<\/code>, file integrity, codebase on NFS, tracker cache TTL, tracker status, tracker hostname obfuscation, private directories not reachable, reverse-proxy client headers\n\n\n  PHP (8)\n  Version, PHP-FPM, <code>memory_limit<\/code>, <code>max_execution_time<\/code>, <code>post_max_size<\/code>, OPcache, required extensions, <code>shell_exec<\/code> \/ <code>proc_open<\/code>\n\n\n  Database (14)\n  Database size, tracking volume, MySQL \/ MariaDB version, InnoDB engine, <code>utf8mb4<\/code> charset, <code>max_allowed_packet<\/code>, <code>wait_timeout<\/code>, <code>innodb_flush_log_at_trx_commit<\/code>, InnoDB buffer pool, Transitions indexes, database not exposed, slow query log, SSD tuning, MySQL user privileges\n\n\n  <code>config.ini.php<\/code> settings (12)\n  <code>force_ssl<\/code>, <code>trusted_hosts<\/code>, <code>cors_domains<\/code>, login brute-force protection, password complexity, auto-update, multi-server mode, unique visitors for ranges and years, custom reports max dimensions, MariaDB schema, admin IP allowlist\n\n\n  Matomo general settings (4)\n  Custom logo, TrackingSpamPrevention filters, CORS domains in sync with the UI, timezone consistency between PHP, MySQL and Matomo\n\n\n  Backups &amp; monitoring (1)\n  Application logs written to a persistent file\n\n\n\n\n<h4>Premium checks<\/h4>\n\n<p>The following checks are listed with a \"Premium\" badge and only run in <a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">Openmost Audit Premium<\/a>:<\/p>\n\n\n\n\n  Category\n  Checks\n\n\n\n\n  Infrastructure &amp; server (4)\n  TLS certificate validity, CDN\/WAF in front of Matomo, HTTP\/2, HTTPS redirect (read-only HTTP probes)\n\n\n  Public file exposure (8)\n  <code>matomo.php<\/code> and <code>matomo.js<\/code> reachable, opt-out endpoints, favicon, heatmap configuration endpoint, tracker integrity hash (read-only HTTP probes)\n\n\n  Plugins (11)\n  Plugin inventory, invalid, deprecated and outdated plugins, recommended official plugins, TrackingSpamPrevention, QueuedTracking, FormAnalytics\n\n\n  Privacy \/ GDPR (9)\n  IP and geolocation anonymization, raw and aggregated data retention, PII removal, third-party cookies, Do Not Track, Live reports, Heatmaps and Session Recording\n\n\n  Users &amp; permissions (10)\n  Super user count, 2FA, anonymous access, dormant and shared accounts, API token scope, Tag Manager roles, ActivityLog, read-only MySQL user\n\n\n  Web sites (14)\n  URLs, excluded IPs and query parameters, URL fragments, e-commerce, site search, timezones, currencies, duplicates, heatmap breakpoints, IP geolocation, cross-domain tracking\n\n\n  Data quality (16)\n  Goals, event naming, Custom Dimensions, segments, custom reports, funnels, alerts, annotations, Search Console, tracking failures\n\n\n  Matomo Tag Manager (8)\n  Containers, environments, Matomo tag, naming conventions, per-environment site ID, tracker URL pointing at this Matomo\n\n\n  High traffic \/ performance (12)\n  Browser archiving, archive freshness, PHP-FPM workers, MySQL connections, slow query log, QueuedTracking with Redis, CDN for tracker assets, segments and custom reports counts, multi-server topology\n\n\n  Multi-server \/ HA (4)\n  Shared database, read replica, load balancer, dedicated archiver\n\n\n\n\n<p>The Markdown export ends with the list of the premium checks (title, id and severity), grouped by category, without any result.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>)<\/li>\n<li>PHP 8.1 or higher<\/li>\n<li>A MySQL or MariaDB version supported by Matomo 5<\/li>\n<\/ul>\n\n<p>The PHP and database version checks apply the Matomo 6 requirements (PHP 8.1+, MySQL 8.0+ \/ MariaDB 10.6+) but report them as warnings rather than failures: those versions still run Matomo 5, they only block the upgrade. For Matomo 6, use the 6.x releases of this plugin.<\/p>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install the plugin from the Matomo Marketplace (<strong>Administration &gt; Marketplace<\/strong>), or copy it into <code>plugins\/Audit\/<\/code> and run <code>php console plugin:activate Audit<\/code>.<\/li>\n<li>Open <strong>Administration &gt; Diagnostic &gt; Audit<\/strong> as a super user. The report is computed on every page load, there is nothing to configure.<\/li>\n<li>Click <strong>Export Markdown<\/strong> to download the report as a <code>.md<\/code> file. Append <code>&amp;plain=1<\/code> to the export URL to replace the emoji status badges with <code>[PASS]<\/code>, <code>[FAIL]<\/code>, <code>[WARN]<\/code>, <code>[SKIP]<\/code> and <code>[PREMIUM]<\/code>.<\/li>\n<\/ol>\n\n<p>From the command line:<\/p>\n\n<pre><code>php console audit:run\nphp console audit:run --format=markdown &gt; audit.md\nphp console audit:run --only=srv-php-version,cfg-force-ssl\n<\/code><\/pre>\n\n<p><code>audit:debug-metrics<\/code> and <code>audit:debug-translations<\/code> are troubleshooting helpers.<\/p>\n\n<h4>With Audit Premium<\/h4>\n\n<p>Audit Premium is an add-on of this plugin: installed and activated next to it, it runs the 96 premium checks in this report, the Markdown export and <code>audit:run<\/code>, instead of only listing them, and adds an <strong>HTTP probes<\/strong> box to the report for the checks that send read-only requests to your Matomo host. Keep this plugin activated with it.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>Read-only: the plugin reads <code>config.ini.php<\/code>, runs read queries (<code>SELECT<\/code>, <code>SHOW<\/code>) and inspects the PHP runtime. It writes nothing and stores nothing.<\/li>\n<li>No outbound HTTP request and no telemetry.<\/li>\n<li>Every page and export requires super user access.<\/li>\n<li>The Markdown export only contains the values the checks report, never the content of <code>config.ini.php<\/code>, credentials or salts.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. For an expert review on top of the automated checks, we run <a href=\"https:\/\/openmost.com\/matomo\/services\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=audit\">independent Matomo audits<\/a> covering tracking, privacy and configuration, delivered as a written report with every fix ranked by impact.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>What does the free plugin check?<\/h3>\n\n<p>53 automated checks in 6 categories: Infrastructure &amp; server, PHP,\nDatabase, <code>config.ini.php<\/code> settings, Matomo general settings and\nBackups &amp; monitoring. Each finding gives a status (pass, fail, warn,\nskip), a severity, the observed and expected values and a\nrecommendation.<\/p>\n\n<h3>What are the checks with a \"Premium\" badge?<\/h3>\n\n<p>The report also lists 96 checks that only run in the\n<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium version<\/a>:\nPrivacy \/ GDPR, Users &amp; permissions, Web sites, Data quality, Matomo\nTag Manager, Plugins, Public file exposure, High traffic \/ performance\nand Multi-server \/ HA, plus 4 Infrastructure &amp; server checks that need\nHTTP probes (TLS certificate, CDN\/WAF, HTTP\/2, HTTPS redirect). The\nfree plugin shows their title and severity but does not run them, so\nthey have no result. Select \"Premium\" in the status filter to list\nonly them.<\/p>\n\n<h3>Does the plugin modify anything on my instance?<\/h3>\n\n<p>No. The plugin is read-only: it reads <code>config.ini.php<\/code>, runs read\nqueries (<code>SELECT<\/code>, <code>SHOW<\/code>) against the database and inspects the PHP\nruntime. It never writes to <code>config.ini.php<\/code>, to the database or to\nany file, and it does not store the results: every report is computed\nwhen you open the page or run the command.<\/p>\n\n<h3>Does it make outbound HTTP calls or send data to a third party?<\/h3>\n\n<p>No. The free plugin makes no HTTP request and has no telemetry. The\nHTTP probes (TLS certificate, CDN\/WAF, HTTP\/2, HTTPS redirect, public\nfile exposure) are a premium feature.<\/p>\n\n<h3>Who can run an audit?<\/h3>\n\n<p>Only super users. The menu entry is hidden for other users and every\npage and export requires super user access.<\/p>\n\n<h3>How do I export the report?<\/h3>\n\n<p>Click <strong>Export Markdown<\/strong> on the report page to download a <code>.md<\/code> file\nwith the instance information, a summary and the findings grouped by\ncategory. Add <code>&amp;plain=1<\/code> to the export URL to replace the emoji status\nbadges with <code>[PASS]<\/code>, <code>[FAIL]<\/code>, <code>[WARN]<\/code>, <code>[SKIP]<\/code> and <code>[PREMIUM]<\/code>.\nFrom the command line, use <code>php console audit:run --format=markdown &gt; audit.md<\/code>.<\/p>\n\n<p>The export contains the results of the free checks, followed by the\nlist of premium checks (title, id and severity) without any result.<\/p>\n\n<h3>Can I run it from the command line?<\/h3>\n\n<p>Yes:<\/p>\n\n<ul>\n<li><code>php console audit:run<\/code> prints the results as a table.<\/li>\n<li><code>php console audit:run --format=markdown<\/code> prints the Markdown report.<\/li>\n<li><code>php console audit:run --only=srv-php-version,cfg-force-ssl<\/code> runs\nonly the given checks.<\/li>\n<\/ul>\n\n<p><code>audit:debug-metrics<\/code> and <code>audit:debug-translations<\/code> are helpers for\ntroubleshooting.<\/p>\n\n<h3>What happens if both Audit and AuditPremium are installed?<\/h3>\n\n<p>Audit Premium is an add-on of the free plugin. Keep both activated:\nthe free plugin shows the report and runs the premium checks the\nadd-on provides, so the 149 checks run in the same report, the\nMarkdown export and <code>audit:run<\/code>. An <strong>HTTP probes<\/strong> box appears on the\nreport for the premium checks that probe your Matomo host.<\/p>\n\n<h3>Which languages are available?<\/h3>\n\n<p>English, Arabic, Chinese (Simplified), Chinese (Traditional), Dutch,\nFrench, German, Italian, Japanese, Polish, Portuguese, Spanish and\nSwedish. The report follows the language of the Matomo user.<\/p>\n\n<h3>Which Matomo versions are supported?<\/h3>\n\n<p>This 5.x release line targets Matomo 5.0.0 or higher, with PHP 8.1 or\nhigher. The 6.x releases target Matomo 6.<\/p>\n\n<p>On Matomo 5 the PHP and database checks report the <em>Matomo 6<\/em>\nrequirements (PHP 8.1+, MySQL 8.0+ \/ MariaDB 10.6+) as warnings rather\nthan failures: those versions still run Matomo 5, they only block the\nupgrade to Matomo 6. PHP 8.2 or later is recommended, as PHP 8.1 no\nlonger receives security fixes.<\/p>\n\n<h3>Where can I get help?<\/h3>\n\n<ul>\n<li>GitHub issues: <a href=\"https:\/\/github.com\/openmost\/Audit\/issues\">https:\/\/github.com\/openmost\/Audit\/issues<\/a><\/li>\n<li>Email: <a href=\"mailto:ronan@openmost.com\">ronan@openmost.com<\/a><\/li>\n<\/ul>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Openmost Audit<\/strong> is a free, read-only plugin that audits the\nconfiguration of your Matomo On-Premise instance and produces an\nactionable, structured report, <strong>without touching a single setting<\/strong>.<\/p>\n\n<p>It is designed for consultants, ops teams and super users who need a\nquick, repeatable way to check that a Matomo installation is properly\nconfigured.<\/p>\n\n<h2>What the free plugin checks<\/h2>\n\n<p>The free plugin runs <strong>53 automated checks<\/strong> across 6 categories:<\/p>\n\n<ul>\n<li><strong>Infrastructure &amp; server<\/strong> (14): Matomo version, web engine,\narchiving cron, GeoIP database and its freshness, SMTP, write\npermissions on <code>tmp\/<\/code> and <code>js\/<\/code>, file integrity, codebase on NFS,\ntracker cache TTL, tracker status, tracker hostname obfuscation,\nprivate directories not reachable, reverse-proxy client headers.<\/li>\n<li><strong>PHP<\/strong> (8): version, PHP-FPM, <code>memory_limit<\/code>,\n<code>max_execution_time<\/code>, <code>post_max_size<\/code>, OPcache, required extensions,\n<code>shell_exec<\/code> \/ <code>proc_open<\/code>.<\/li>\n<li><strong>Database<\/strong> (14): database size, tracking volume, MySQL \/ MariaDB\nversion, InnoDB engine, <code>utf8mb4<\/code> charset, <code>max_allowed_packet<\/code>,\n<code>wait_timeout<\/code>, <code>innodb_flush_log_at_trx_commit<\/code>, InnoDB buffer\npool, Transitions indexes, database not exposed, slow query log, SSD\ntuning, MySQL user privileges.<\/li>\n<li><strong><code>config.ini.php<\/code> settings<\/strong> (12): <code>force_ssl<\/code>, <code>trusted_hosts<\/code>,\n<code>cors_domains<\/code>, login brute-force protection, password complexity,\nauto-update, multi-server mode, unique visitors for ranges and years,\ncustom reports max dimensions, MariaDB schema, admin IP allowlist.<\/li>\n<li><strong>Matomo general settings<\/strong> (4): custom logo, TrackingSpamPrevention\nfilters, CORS domains in sync with the UI, timezone consistency\nbetween PHP, MySQL and Matomo.<\/li>\n<li><strong>Backups &amp; monitoring<\/strong> (1): application logs written to a\npersistent file.<\/li>\n<\/ul>\n\n<p>Each finding carries a <strong>severity<\/strong> (critical, high, medium, low,\ninfo), a <strong>status<\/strong> (pass, fail, warn, skip), the <strong>observed value<\/strong>,\nthe <strong>expected value<\/strong>, a <strong>recommendation<\/strong> and, when relevant, a\nconfiguration snippet.<\/p>\n\n<h2>Premium checks<\/h2>\n\n<p>96 more checks are listed in the report with a \"Premium\" badge. They\nare not run by the free plugin:<\/p>\n\n<ul>\n<li><strong>Privacy \/ GDPR (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: IP and geolocation anonymization, data retention, PII removal, third-party cookies, Live reports, Heatmaps and Session Recording.<\/li>\n<li><strong>Users &amp; permissions (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: super user count, 2FA, anonymous access, dormant and shared accounts, API token scope, Tag Manager roles, ActivityLog.<\/li>\n<li><strong>Web sites (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: URLs, excluded IPs and query parameters, e-commerce, site search, timezones, currencies, duplicates, cross-domain tracking.<\/li>\n<li><strong>Data quality (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: goals, event naming, Custom Dimensions, segments, custom reports, funnels, alerts, annotations, Search Console, tracking failures.<\/li>\n<li><strong>Matomo Tag Manager (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: containers, environments, Matomo tag, naming conventions, per-environment site ID, tracker URL pointing at this Matomo.<\/li>\n<li><strong>Plugins (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: plugin inventory, invalid, deprecated and outdated plugins, recommended official plugins, QueuedTracking, FormAnalytics.<\/li>\n<li><strong>Public file exposure (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: tracker files, opt-out endpoints, favicon and heatmap configuration endpoint, through read-only HTTP probes.<\/li>\n<li><strong>High traffic \/ performance (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: archiving settings, PHP-FPM workers, MySQL connections, QueuedTracking with Redis, CDN for tracker assets, segments and custom reports counts.<\/li>\n<li><strong>Multi-server \/ HA (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: shared database, read replica, load balancer, dedicated archiver.<\/li>\n<li><strong>HTTP probes (<a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">premium<\/a>)<\/strong>: TLS certificate validity, CDN\/WAF, HTTP\/2 and HTTPS redirect checks of the Infrastructure &amp; server category.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/openmost.com\/matomo\/extensions\/audit?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=audit\">Purchase Openmost Audit Premium version<\/a><\/p>\n\n<h2>Key features<\/h2>\n\n<ul>\n<li><strong>Read-only<\/strong>: never writes to <code>config.ini.php<\/code>, to the database or\nto any file, and never stores the results.<\/li>\n<li><strong>No outbound HTTP calls<\/strong>, no telemetry.<\/li>\n<li><strong>In-app report<\/strong> under <em>Administration &gt; Diagnostic &gt; Audit<\/em>, for\nsuper users, with filters by category, severity, status and a\nfree-text search.<\/li>\n<li><strong>Markdown export<\/strong>: one click downloads the report as a <code>.md<\/code> file,\nready to paste into a Word, Notion or Confluence deliverable. Add\n<code>&amp;plain=1<\/code> to the export URL for ASCII status markers instead of\nemoji.<\/li>\n<li><strong>Console command<\/strong>: <code>php console audit:run<\/code> prints the report as a\ntable, <code>--format=markdown<\/code> as Markdown, <code>--only=&lt;id&gt;,&lt;id&gt;<\/code> restricts\nit to some checks.<\/li>\n<li><strong>13 languages<\/strong>: English, Arabic, Chinese (Simplified), Chinese\n(Traditional), Dutch, French, German, Italian, Japanese, Polish,\nPortuguese, Spanish and Swedish.<\/li>\n<\/ul>\n\n<h2>Requirements<\/h2>\n\n<p>Matomo 5.0.0 or higher and PHP 8.1 or higher. For Matomo 6, use the 6.x releases of\nthis plugin.<\/p>\n\n<h2>Installation<\/h2>\n\n<p>Install the plugin from the Matomo Marketplace (<em>Administration &gt;\nMarketplace<\/em>), then open <em>Administration &gt; Diagnostic &gt; Audit<\/em> as a\nsuper user.<\/p>\n\n<p>The premium version (AuditPremium) is an add-on: installed next to\nthis plugin, it runs the premium checks in the same report.<\/p>\n\n<h2>Source code and support<\/h2>\n\n<p>The plugin is open source (GPL v3+): <a href=\"https:\/\/github.com\/openmost\/Audit\">https:\/\/github.com\/openmost\/Audit<\/a>.\nQuestions: <a href=\"mailto:ronan@openmost.com\">ronan@openmost.com<\/a>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>All notable changes to the Openmost Audit plugin are documented here.<\/p>\n\n<h2>5.2.0<\/h2>\n\n<ul>\n<li>Audit Premium is now an add-on of this plugin: installed and activated next to it, it hands over its 96 premium checks, which run in the report, the Markdown export and <code>audit:run<\/code> instead of being listed only. The report then shows the <strong>HTTP probes<\/strong> box of the premium checks that probe the Matomo host. Before, Audit Premium replaced this plugin and its page redirected to the premium report.<\/li>\n<\/ul>\n\n<h2>5.1.0<\/h2>\n\n<ul>\n<li>Fix: the OPcache check no longer reports a 0 MB memory pool when PHP returns inconsistent memory counters (negative values, seen on PHP 8.5). It falls back to the configured <code>opcache.memory_consumption<\/code>, and reports that the pool or the status cannot be determined (for example with <code>opcache.restrict_api<\/code>) instead of a false result.<\/li>\n<li>The Premium links of the report, the Markdown export and the documentation open the Audit page of openmost.com, which tracks the visits, instead of the shop.<\/li>\n<li>Requires Matomo 5.0.0 or higher (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>). The theme variables used by the report fall back to the Matomo light theme colors when they are not available (before Matomo 5.10.0).<\/li>\n<li>Configuration snippets in the report follow the light or dark Matomo theme, including DarkTheme.<\/li>\n<li>6 more languages: Arabic, Chinese (Traditional), Dutch, Japanese, Polish and Portuguese (13 in total).<\/li>\n<li>The package no longer ships internal files: the AI assistant notes (CLAUDE.md) are no longer tracked.<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<p>Matomo 5 edition of the free Openmost Audit, built from the 6.0.2 code\nbase. Same 53 checks, same report and same Markdown export, so an\ninstance can be put in order before upgrading to Matomo 6.<\/p>\n\n<ul>\n<li>Requires Matomo 5 (<code>&gt;=5.0.0-b1,&lt;6.0.0-b1<\/code>) and PHP 8.1 or higher.<\/li>\n<li>The PHP and database version checks keep the Matomo 6 thresholds\n(PHP 8.1+, MySQL 8.0+ \/ MariaDB 10.6+) but report them as warnings\ninstead of failures: those versions still run Matomo 5, they only\nblock the upgrade. Their messages say so, in the 7 languages.<\/li>\n<li>Vue bundle rebuilt with the Matomo 5 toolchain (vue-cli), as Matomo 5\ndoes not load the Vite output of the 6.x branch.<\/li>\n<\/ul>\n\n<h2>6.0.2<\/h2>\n\n<ul>\n<li>Purchase links for AuditPremium (report page, Markdown export and documentation) now point to the Openmost shop.<\/li>\n<\/ul>\n\n<h2>6.0.1<\/h2>\n\n<ul>\n<li>New Marketplace cover.<\/li>\n<\/ul>\n\n<h2>6.0.0<\/h2>\n\n<p>First release of the free edition of Openmost Audit, for Matomo 6.<\/p>\n\n<ul>\n<li>Read-only configuration audit of the Matomo instance: 53 automated\nchecks across Infrastructure &amp; server, PHP, Database,\n<code>config.ini.php<\/code> settings, Matomo general settings and Backups &amp;\nmonitoring. No write to the configuration, the database or any file,\nno outbound HTTP request, no telemetry.<\/li>\n<li>Admin report under Administration &gt; Diagnostic &gt; Audit, for super\nusers, with filters by category, severity, status and free text.<\/li>\n<li>The 96 checks of the premium version (Privacy \/ GDPR, Users &amp;\npermissions, Web sites, Data quality, Matomo Tag Manager, Plugins,\nPublic file exposure, High traffic \/ performance, Multi-server \/ HA,\nand the TLS certificate, CDN\/WAF, HTTP\/2 and HTTPS redirect checks)\nare listed with a \"Premium\" badge and a link to the premium version,\nwithout being run.<\/li>\n<li>Markdown export of the report (with an ASCII-only variant through\n<code>&amp;plain=1<\/code>), ending with the list of premium checks.<\/li>\n<li>Console commands <code>audit:run<\/code> (<code>--format=markdown<\/code>, <code>--only=<\/code>),\n<code>audit:debug-metrics<\/code> and <code>audit:debug-translations<\/code>.<\/li>\n<li>When AuditPremium is active, the plugin hides its menu entry,\nredirects its page to AuditPremium and leaves the console commands\nto AuditPremium.<\/li>\n<li>7 languages: English, French, German, Chinese (Simplified), Italian,\nSpanish and Swedish.<\/li>\n<li>Requires Matomo 6 (<code>&gt;=6.0.0-b1,&lt;7.0.0-b1<\/code>), PHP 8.1+ and MySQL 8.0+\nor MariaDB 10.6+.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Audit\/download\/5.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Audit\/changelog"},"consumer":{"license":null}},{"name":"AuthorSegments","displayName":"Author Segments","owner":"kawerht","description":"This plugin allows you to decide which users can create segments based on their permissions: view, write, super user, admin.","homepage":"https:\/\/github.com\/kawerht\/SegmentAuthorization","createdDateTime":"2023-11-10 15:22:02","donate":{},"support":[{"name":"Email","key":"email","value":"info@hirschtec.eu","type":"email"}],"isTheme":false,"keywords":["segment"],"basePrice":0,"authors":[{"name":"Klaus Riedel","email":"k.riedel@hirschtec.eu","homepage":"https:\/\/hirschtec.eu"}],"repositoryUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization","lastUpdated":"2023-12-06 14:06:02","latestVersion":"5.1.2","numDownloads":46962,"screenshots":["https:\/\/plugins.matomo.org\/AuthorSegments\/images\/5.1.2\/segment_authorization_system_settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"14","numContributors":"1","lastCommitDate":"2024-02-01 12:29:53"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2023-11-10 15:22:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1251,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AuthorSegments\/download\/0.1.0"},{"name":"0.1.1","release":"2023-12-01 11:26:02","requires":{"matomo":">=4.0.0,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":103,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AuthorSegments\/download\/0.1.1"},{"name":"4.1.1","release":"2023-12-01 14:20:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AuthorSegments\/download\/4.1.1"},{"name":"5.1.1","release":"2023-12-01 14:20:07","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AuthorSegments\/download\/5.1.1"},{"name":"0.1.3","release":"2023-12-01 14:22:02","requires":{"matomo":">=2.0.0,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":340,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AuthorSegments\/download\/0.1.3"},{"name":"0.1.4","release":"2023-12-06 14:04:03","requires":{"matomo":">=2.0.0,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":496,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AuthorSegments\/download\/0.1.4"},{"name":"4.1.2","release":"2023-12-06 14:04:07","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8131,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AuthorSegments\/download\/4.1.2"},{"name":"5.1.2","release":"2023-12-06 14:06:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":36624,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/kawerht\/SegmentAuthorization\/commits\/5.1.2","readmeHtml":{"description":"\n\n<p>By default, anyone with write access can create segments within Matomo Analytics. It can be an issue if you have many users as a segment creation will require a lot of calculation from the server side. This plugin allows you to define who has the authorization to create segments within Matomo Analytics. Only the super user can access to this User Interface feature in order to define who can create segments. If the feature is set on admin, users with a write access only won't see the button to create segments, though they will still be able to apply segments.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What does this plugin do?<\/strong><\/p>\n\n<p>Very simple, it is using an internal function of Matomo core to edit the config file through the Matomo User Interface. So to say, you can perform exactly the same thing by editing the config file directly.<\/p>\n\n<p><strong>Why should I use this feature?<\/strong><\/p>\n\n<p>When creating a segment within Matomo Analytics, it takes a lot of time for the server to perform the calculations. As a result if your Matomo instance has many users, technically it can slow down a lot the User Interface of Matomo. The idea of this plugin is to allow only some users in particular to have the right to create segments.<\/p>\n\n<p><strong>Can users still access to the segment feature?<\/strong><\/p>\n\n<p>Of course, this plugin just remove the possibility to create segments. That's it.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/AuthorSegments\/download\/5.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AuthorSegments\/changelog"},"consumer":{"license":null}},{"name":"AutoLogin","displayName":"Auto Login","owner":"inventage","description":"The Matomo AutoLogin Plugin adds new authentication and registration options by using incoming HTTP headers.","homepage":"https:\/\/github.com\/inventage\/matomo-autologin-plugin","createdDateTime":"2023-11-02 10:28:03","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/inventage\/matomo-autologin-plugin","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/inventage\/matomo-autologin-plugin\/issues","type":"url"}],"isTheme":false,"keywords":["login","authentication","groups","registration","autologin","autoregistration","auto-login","auto-registration"],"basePrice":0,"authors":[{"name":"Inventage AG","email":"kevin.tang@inventage.com","homepage":"https:\/\/inventage.com"}],"repositoryUrl":"https:\/\/github.com\/inventage\/matomo-autologin-plugin","lastUpdated":"2023-11-06 10:08:03","latestVersion":"0.1.2","numDownloads":3966,"screenshots":["https:\/\/plugins.matomo.org\/AutoLogin\/images\/0.1.2\/matomo_autologin.png","https:\/\/plugins.matomo.org\/AutoLogin\/images\/0.1.2\/plugin_settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"8","numContributors":"1","lastCommitDate":"2026-04-30 08:14:21"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2023-11-02 10:28:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":506,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/AutoLogin\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/inventage\/matomo-autologin-plugin\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AutoLogin\/download\/0.1.0"},{"name":"0.1.1","release":"2023-11-06 10:02:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/AutoLogin\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/inventage\/matomo-autologin-plugin\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/AutoLogin\/download\/0.1.1"},{"name":"0.1.2","release":"2023-11-06 10:08:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3455,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/AutoLogin\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/inventage\/matomo-autologin-plugin\/commits\/0.1.2","readmeHtml":{"description":"\n\n<p>The Matomo AutoLogin Plugin adds new authentication and registration options by using incoming HTTP headers. It offers the following features:<\/p>\n\n<ol>\n<li><strong>Login<\/strong>: Matomo will automatically sign in users by extracting their username and role information from the incoming HTTP header. If a user with that username already exists in Matomo, they will be logged in with the specified role (View, Write, Admin, or Super User).<\/li>\n<li><strong>Registration<\/strong>: If the username provided in the HTTP header does not exist in Matomo, this plugin will register a new user with that username.<\/li>\n<li><strong>Groups<\/strong>: This plugin also allows users to be assigned to specific groups based on the group information provided in the HTTP header. Users gain access to all sites available to their assigned group. Groups can only be created by Superusers in the system settings.<\/li>\n<\/ol>\n\n<p>Please note that this plugin comes with important security considerations, and should only be used with proper access control mechanism. Without these security measures, the plugin poses security risks.<\/p>\n\n<p>Possible setup:<\/p>\n\n<p><img src=\"https:\/\/raw.githubusercontent.com\/inventage\/matomo-autologin-plugin\/main\/screenshots\/matomo_autologin.png\" alt=\"matomo_autologin.png\" \/><\/p>\n\n<p>In this setup, all traffic towards Matomo goes through a proxy. The proxy validates an incoming access token from the user. The proxy then extracts relevant information from the access token to set their username, role etc. in matomo.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>All notable changes to this project will be documented in this file. The changes should be categorized under one of\nthese sections: Added, Changed, Deprecated, Removed, Fixed or Security.<\/p>\n\n<p>The format is based on <a href=\"https:\/\/keepachangelog.com\/en\/1.0.0\/\">Keep a Changelog<\/a>,\nand this project adheres to <a href=\"https:\/\/semver.org\/spec\/v2.0.0.html\">Semantic Versioning<\/a>.<\/p>\n\n<h2>0.1.2<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Fix relative image path in ReadMe by adding the absolute path.<\/li>\n<\/ul>\n\n<h2>0.1.1<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Fix relative image path in ReadMe. (broken)<\/li>\n<\/ul>\n\n<h2>0.1.0<\/h2>\n\n<h3>Initially added:<\/h3>\n\n<ul>\n<li>Automatic login &amp; registration with http headers.<\/li>\n<li>Group management in system settings.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/AutoLogin\/download\/0.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/AutoLogin\/changelog"},"consumer":{"license":null}},{"name":"Bandwidth","displayName":"Bandwidth","owner":"matomo-org","description":"Monitor Bandwidth for each page, download, and measure overall traffic in bytes. For requirements check out the description.","homepage":"https:\/\/matomo.org","createdDateTime":"2015-02-18 03:50:04","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth","type":"url"}],"isTheme":false,"keywords":["bandwidth","filesize","size","download"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth","lastUpdated":"2026-08-24 06:28:03","latestVersion":"6.0.0","numDownloads":138766,"screenshots":["https:\/\/plugins.matomo.org\/Bandwidth\/images\/6.0.0\/Downloads.png","https:\/\/plugins.matomo.org\/Bandwidth\/images\/6.0.0\/Pageviews.png","https:\/\/plugins.matomo.org\/Bandwidth\/images\/6.0.0\/Visitor_Overview.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/Bandwidth.png","previews":[],"activity":{"numCommits":"283","numContributors":"24","lastCommitDate":"2026-10-21 17:49:57"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["insights"],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-02-18 03:50:05","requires":{"piwik":">=2.11.0-b3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1998,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/0.1.0"},{"name":"0.1.1","release":"2015-06-09 04:08:04","requires":{"piwik":">=2.11.0-b3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3563,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/0.1.1"},{"name":"0.1.2","release":"2016-01-28 16:10:04","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5490,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/0.1.2"},{"name":"3.0.0","release":"2016-09-14 00:06:07","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":963,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/3.0.0"},{"name":"3.0.1","release":"2016-11-27 22:14:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5200,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/3.0.1"},{"name":"3.0.2","release":"2017-07-10 09:12:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2077,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/3.0.2"},{"name":"3.1.0","release":"2017-09-05 16:38:05","requires":{"piwik":">=3.1.0-rc1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6184,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/3.1.0"},{"name":"3.1.1","release":"2018-06-18 10:44:03","requires":{"piwik":">=3.1.0-rc1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7384,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/3.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/3.1.1"},{"name":"3.2.0","release":"2019-11-04 08:36:04","requires":{"piwik":">=3.12.0-b3,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9056,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/3.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/3.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/3.2.0"},{"name":"4.0.0","release":"2020-07-30 13:56:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":792,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:08:08","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10691,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/4.0.1"},{"name":"4.0.2","release":"2022-06-07 09:10:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5417,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/4.0.2"},{"name":"4.0.3","release":"2022-10-25 01:06:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5717,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/4.0.3"},{"name":"4.0.4","release":"2023-03-14 05:52:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":800,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/4.0.4"},{"name":"4.0.5","release":"2023-03-21 04:06:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21837,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/4.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/4.0.5"},{"name":"5.0.0","release":"2023-05-04 02:04:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":51,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/5.0.0"},{"name":"5.0.1","release":"2023-08-08 22:50:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11207,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/5.0.1"},{"name":"5.0.2","release":"2024-04-22 05:14:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19675,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/5.0.2"},{"name":"5.0.3","release":"2025-07-07 10:10:04","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4065,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/5.0.3"},{"name":"5.0.4","release":"2025-10-28 06:14:04","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4377,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/5.0.4"},{"name":"5.0.5","release":"2026-03-02 04:28:04","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3865,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/5.0.5"},{"name":"5.0.6","release":"2026-04-27 04:22:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8187,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/5.0.6"},{"name":"6.0.0","release":"2026-08-24 06:28:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":170,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Bandwidth\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Bandwidth\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugin allows you to measure the bandwidth that was used by each page view or download. \nIt enriches existing reports and APIs to show the used bandwidth.<\/p>\n\n<p>This feature only works when using the plugin in combination with our <a href=\"https:\/\/matomo.org\/log-analytics\/\">Log Analytics tracking method<\/a> or if you use our HTTP Tracking API directly. It does not work with our standard JavaScript or image tracker. Find more information in the FAQ.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How can I track the bandwidth?<\/strong><\/p>\n\n<p>Log analytics:<\/p>\n\n<p>The bandwidth will be automatically tracked when using the <a href=\"http:\/\/piwik.org\/log-analytics\/\">log importer<\/a> as long as \nyour log format is supported.<\/p>\n\n<p>Tracking API:<\/p>\n\n<p>If you are using the <a href=\"http:\/\/developer.piwik.org\/api-reference\/tracking-api\">HTTP Tracking API<\/a> \nyou can specify the bandwidth in bytes by appending the URL parameter <code>bw_bytes=1234<\/code> to the tracking URL. In this case \na bandwidth of 1234 bytes will be tracked.<\/p>\n\n<p><strong>Which actions support tracking of bandwidth?<\/strong><\/p>\n\n<p>Pageviews (Page URLs and Page Titles) as well as Downloads.<\/p>\n\n<p><strong>In which reports is the used bandwidth displayed?<\/strong><\/p>\n\n<ul>\n<li>Page URLs<\/li>\n<li>Page Titles<\/li>\n<li>Downloads<\/li>\n<\/ul>\n\n<p>All reports will show a column <code>Average Bandwidth<\/code> and <code>Sum Bandwidth<\/code><\/p>\n\n<p>The \"Visitors =&gt; Overview\" report shows a total bandwidth overview and it is possible to view the evolution over period.<\/p>\n\n<p><strong>Which APIs does this plugin define or enrich?<\/strong><\/p>\n\n<p>There is a report <code>Bandwidth.get<\/code> returning the total bandwidth (across all actions).<\/p>\n\n<p>It also enriches varies reports such as <code>Actions.get<\/code>, <code>Actions.getPageUrls<\/code>, <code>Actions.getPageTitles<\/code> and <code>Actions.getDownloads<\/code>.\nFor example it adds columns such as <code>avg_bandwidth<\/code>, <code>sum_bandwidth<\/code>, <code>min_bandwidth<\/code>, <code>max_bandwidth<\/code> to each page view.<\/p>\n\n<p><strong>Why are the bandwidth columns are not displayed in the UI?<\/strong><\/p>\n\n<p>Make sure the Bandwidth plugin is activated by going to <code>Administration =&gt; Plugins<\/code>. Also the bandwidth columns are not \ndisplayed if no bandwidth was tracked in the current selected month.<\/p>\n\n<p><strong>Is it possible to track bandwidth using the Matomo JavaScript Tracker?<\/strong><\/p>\n\n<p>Yes, you can set the <code>bw_bytes<\/code> value manually in JavaScript using <code>_paq.push(['appendToTrackingUrl', 'bw_bytes=1234']);<\/code> to track the bandwidth of your pages.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>6.0.0 - 2026-08-09 - Compatibility with Matomo 6<\/li>\n<li>5.0.6 - 2026-04-27 - Updated API documentation<\/li>\n<li>5.0.5 - 2026-03-02 - Updated API documentation<\/li>\n<li>5.0.4 - 2025-10-27 - Updated screenshot for Marketplace<\/li>\n<li>5.0.3 - 2025-07-07 - Textual change<\/li>\n<li>5.0.2 Added plugin category for Marketplace<\/li>\n<li>5.0.1 Compatibility with Matomo 5.0.0-b4<\/li>\n<li>5.0.0 Compatibility with Matomo 5.0<\/li>\n<li>4.0.5 Reused Dimension TYPE_ constants<\/li>\n<li>4.0.4 Added metric semantics type<\/li>\n<li>4.0.3 Updated expected test files<\/li>\n<li>4.0.2 Added support for showing evolution values on sparklines<\/li>\n<li>4.0.1 Compatibility with Matomo 4.0<\/li>\n<li>4.0.0 Compatibility with Matomo 4.0<\/li>\n<li>3.2.0 Support for comparisons view.<\/li>\n<li>3.0.0 Compatibility with Piwik 3.0<\/li>\n<li>0.1.0 Initial Release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Bandwidth\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Bandwidth\/changelog"},"consumer":{"license":null}},{"name":"Barometer","displayName":"Barometer","owner":"halfdan","description":"Live Plugin that shows the current number of visitors on the page.","homepage":"http:\/\/github.com\/halfdan\/piwik-barometer-plugin","createdDateTime":"2013-09-30 01:03:04","donate":{"flattr":"https:\/\/flattr.com\/profile\/halfdan","bitcoin":null},"support":[],"isTheme":false,"keywords":["barometer","live"],"basePrice":0,"authors":[{"name":"Fabian Becker","email":"halfdan@xnorfz.de","homepage":"http:\/\/geekproject.eu"}],"repositoryUrl":"https:\/\/github.com\/halfdan\/piwik-barometer-plugin","lastUpdated":"2015-08-20 09:48:03","latestVersion":"0.6.0","numDownloads":19573,"screenshots":["https:\/\/plugins.matomo.org\/Barometer\/images\/0.6.0\/piwik-barometer-01.png","https:\/\/plugins.matomo.org\/Barometer\/images\/0.6.0\/piwik-barometer-02.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"31","numContributors":"3","lastCommitDate":"2015-08-20 09:46:50"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.5.0","release":"2013-12-30 22:52:05","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/piwik-barometer-plugin\/commits\/v0.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Barometer\/download\/0.5.0"},{"name":"0.5.1","release":"2013-12-30 23:08:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8049,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/piwik-barometer-plugin\/commits\/v0.5.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Barometer\/download\/0.5.1"},{"name":"0.6.0","release":"2015-08-20 09:48:03","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11513,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/piwik-barometer-plugin\/commits\/v0.6.0","readmeHtml":{"description":"\n\n<p>This is a plugin for the Open Source Web Analytics platform Matomo (Piwik). If enabled, it will add a two new widgets that you can add to your dashboard.<\/p>\n\n<p>The widgets will show a Visitor Barometer and a Visit Time Barometer that auto-refresh every 5 seconds. It shows the number of visitors or visit time in a N minute period compared to the maximum number of visitors\/average visit time in any N minute period of the last 30 days.<\/p>\n\n<p>The idea for this plugin came from <a href=\"http:\/\/github.com\/muesli\">@muesli<\/a> who suggested it on #piwik in IRC.<\/p>\n\n","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/Barometer\/download\/0.6.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Barometer\/changelog"},"consumer":{"license":null}},{"name":"BeeLikedDBIP","displayName":"Bee Liked DBIP","owner":"BeeLiked","description":"Use DB-IP geolocation API to lookup for accurate visitor location.","homepage":"http:\/\/beeliked.com\/plugins\/piwik\/db-ip","createdDateTime":"2019-05-16 13:30:05","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/BeeLiked\/db-ip-piwik\/wiki","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/BeeLiked\/db-ip-piwik\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/BeeLiked\/db-ip-piwik","type":"url"}],"isTheme":false,"keywords":["geolocation","visitor location","ip to location","dbip","beeliked"],"basePrice":0,"authors":[{"name":"BeeLiked","email":"support@beeliked.com","homepage":"https:\/\/www.beeliked.com"}],"repositoryUrl":"https:\/\/github.com\/BeeLiked\/db-ip-piwik","lastUpdated":"2019-10-26 17:14:03","latestVersion":"2.0.3","numDownloads":4143,"screenshots":["https:\/\/plugins.matomo.org\/BeeLikedDBIP\/images\/2.0.3\/DB-IP_-_Settings.png","https:\/\/plugins.matomo.org\/BeeLikedDBIP\/images\/2.0.3\/Geolocation_-_Location_Provider.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"7","numContributors":"1","lastCommitDate":"2019-10-26 17:12:50"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"2.0.1","release":"2019-05-16 13:30:05","requires":{"piwik":">=3.0.0-b1","php":">= 5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/BeeLiked\/db-ip-piwik\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BeeLikedDBIP\/download\/2.0.1"},{"name":"2.0.2","release":"2019-05-16 15:26:07","requires":{"piwik":">=3.0.0-b1","php":">= 5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":909,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/BeeLiked\/db-ip-piwik\/commits\/2.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BeeLikedDBIP\/download\/2.0.2"},{"name":"2.0.3","release":"2019-10-26 17:14:03","requires":{"piwik":">=3.0.0-b1","php":">= 5.5.9"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3217,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/BeeLiked\/db-ip-piwik\/commits\/2.0.3","readmeHtml":{"description":"\n\n<p>This non-official DB-IP plugin adds an extra Location Provider to Geolocation, providing better accuracy for user location lookup in your Matomo (Piwik) visitor log.<\/p>\n\n<p>It uses the free API by default which allows a quota of up to 1000 requests per day. For more requests, a commercial DB-IP API Key must be purchased. More details at: https:\/\/db-ip.com<\/p>\n\n","faq":"<p><strong>How to I configure the plugin?<\/strong><\/p>\n\n<p>After installed, login as administrator.<\/p>\n\n<ul>\n<li>Go to <strong>System<\/strong> &gt; <strong>DB-IP<\/strong> to configure your <strong>API Key<\/strong>.<\/li>\n<li>Go to <strong>Geolocation<\/strong> to enable <strong>BeeLikedDBIP<\/strong> as a <strong>Location Provider<\/strong>.<\/li>\n<\/ul>\n\n<p><strong>How can I increase the limit of queries per day?<\/strong><\/p>\n\n<p>Purchase a commercial API Key on https:\/\/db-ip.com and insert it in the DB-IP settings page.<\/p>\n\n<p><strong>What location data can this plugin retrieve?<\/strong><\/p>\n\n<p>This plugin currently supports the following properties: Continent, Country, Region, City, ISP, Organization, ZipCode, Latitude, Longitude and Area Code.<\/p>","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/BeeLikedDBIP\/download\/2.0.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/BeeLikedDBIP\/changelog"},"consumer":{"license":null}},{"name":"BotTracker","displayName":"Bot Tracker","owner":"Digitalist-Open-Cloud","description":"Detection of bots & spiders and count their visits without tracking them in the visitor-log.","homepage":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker","createdDateTime":"2014-02-21 13:14:04","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker","type":"url"}],"isTheme":false,"keywords":["BotTracker"],"basePrice":0,"authors":[{"name":"Mikke Schir\u00e9n","email":"mikke.schiren@digitalist.com","homepage":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker","lastUpdated":"2024-12-16 12:10:03","latestVersion":"5.2.18","numDownloads":182637,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/BotTracker\/images\/5.2.18\/_cover.png","previews":[],"activity":{"numCommits":"372","numContributors":"32","lastCommitDate":"2024-12-16 12:08:22"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.43","release":"2014-02-21 13:14:04","requires":{"piwik":">=2.0.1","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":18,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.43a","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.43"},{"name":"0.44","release":"2014-02-21 13:54:04","requires":{"piwik":">=2.0.1","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":950,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.44","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.44"},{"name":"0.45","release":"2014-04-03 20:14:05","requires":{"piwik":">=2.0.1","php":">=5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":337,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.45","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.45"},{"name":"0.46","release":"2014-04-14 09:24:04","requires":{"piwik":">=2.0.1","php":">=5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1671,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.46","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.46"},{"name":"0.47","release":"2014-06-13 13:38:04","requires":{"piwik":">=2.0.1","php":">=5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.47","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.47"},{"name":"0.48","release":"2014-06-13 13:54:04","requires":{"piwik":">=2.4.0","php":">=5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1487,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.48","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.48"},{"name":"0.49","release":"2014-06-22 17:18:04","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1204,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.49","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.49"},{"name":"0.50","release":"2014-08-07 19:52:04","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.50","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.50"},{"name":"0.51","release":"2014-08-07 20:02:05","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1026,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.51","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.51"},{"name":"0.52","release":"2014-09-04 19:52:04","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3332,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.52","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.52"},{"name":"0.53","release":"2014-12-17 16:38:03","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1595,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.53","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.53"},{"name":"0.54","release":"2015-01-28 19:28:04","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4604,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.54","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.54"},{"name":"0.55","release":"2015-05-23 18:54:03","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5204,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.55","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.55"},{"name":"0.56","release":"2015-09-27 19:48:03","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2682,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.56","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.56"},{"name":"0.57","release":"2015-11-06 19:32:03","requires":{"piwik":">=2.4.0-b6","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11703,"license":{"name":"GPL 3.0 \/ fair use","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.57","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.57"},{"name":"0.58","release":"2016-10-29 08:06:03","requires":{"piwik":">=2.16.3,<3.0.0-b1","php":">=5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4643,"license":{"name":"GPL 3.0 \/ fair use","url":"https:\/\/plugins.matomo.org\/BotTracker\/0.58\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/0.58a","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/0.58"},{"name":"1.00","release":"2016-11-03 22:00:03","requires":{"piwik":">=3.0.0-b2,<4.0.0-b1","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL 3.0 \/ fair use","url":"https:\/\/plugins.matomo.org\/BotTracker\/1.00\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/1.00","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/1.00"},{"name":"1.01","release":"2016-11-03 23:02:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":"5.3.10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":568,"license":{"name":"GPL 3.0 \/ fair use","url":"https:\/\/plugins.matomo.org\/BotTracker\/1.01\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/1.01","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/1.01"},{"name":"1.02","release":"2016-12-15 21:28:03","requires":{"piwik":">=3.0.0-dev,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":13520,"license":{"name":"GPL 3.0 \/ fair use","url":"https:\/\/plugins.matomo.org\/BotTracker\/1.02\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/1.02_a","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/1.02"},{"name":"1.03","release":"2018-09-09 12:12:03","requires":{"piwik":">=3.0.0-dev,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8426,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/1.03\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/1.04","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/1.03"},{"name":"1.05","release":"2019-07-25 21:18:03","requires":{"piwik":">=3.0.0-dev,<4.0.0","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2355,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/1.05\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/1.05","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/1.05"},{"name":"1.06","release":"2019-08-27 20:00:06","requires":{"piwik":">=3.0.0-dev,<4.0.0","php":">=5.5.9"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11491,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/1.06\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/1.06","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/1.06"},{"name":"2.00","release":"2020-12-18 08:50:06","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3779,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.00\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.00"},{"name":"2.01","release":"2021-04-25 14:32:02","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1291,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.01\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/v2.01","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.01"},{"name":"2.02","release":"2021-05-17 19:28:03","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1902,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.02\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/v2.02","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.02"},{"name":"2.03","release":"2021-05-30 15:14:03","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4719,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.03\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/2.03","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.03"},{"name":"2.04","release":"2021-10-28 17:28:03","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":97,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.04\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/v2.04","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.04"},{"name":"2.05","release":"2021-10-29 04:26:04","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4396,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.05\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/v2.05","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.05"},{"name":"2.06","release":"2022-01-30 11:56:04","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3023,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.06\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/v2.06","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.06"},{"name":"2.07","release":"2022-02-27 17:52:03","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8862,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.07\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/v2.07","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.07"},{"name":"2.08","release":"2023-03-21 10:50:03","requires":{"piwik":">=4.0.0-dev,<5.0.0","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16171,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/2.08\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/v2.08","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/2.08"},{"name":"3.0.0","release":"2023-11-28 16:18:02","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9944,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/v3.00","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/3.0.0"},{"name":"5.2.0","release":"2024-03-22 14:38:03","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.0"},{"name":"5.2.1","release":"2024-03-22 14:44:03","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.1"},{"name":"5.2.2","release":"2024-03-22 14:48:02","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.2"},{"name":"5.2.3","release":"2024-03-22 15:28:03","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":370,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.3"},{"name":"5.2.4","release":"2024-03-23 12:04:03","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":65,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.4"},{"name":"5.2.5","release":"2024-03-23 14:54:03","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.5"},{"name":"5.2.6","release":"2024-03-23 14:58:03","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.6"},{"name":"5.2.7","release":"2024-03-23 15:04:03","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1116,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.7"},{"name":"5.2.8","release":"2024-03-25 13:44:03","requires":{"piwik":">=5.0.0-rc1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1854,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.8"},{"name":"5.2.9","release":"2024-04-08 12:42:03","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":120,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.9"},{"name":"5.2.10","release":"2024-04-08 14:48:04","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1398,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.10"},{"name":"5.2.11","release":"2024-04-14 13:56:03","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9057,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.11\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.11"},{"name":"5.2.12","release":"2024-06-27 06:50:04","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.12\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.12"},{"name":"5.2.14","release":"2024-06-27 06:50:33","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.14\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.14","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.14"},{"name":"5.2.15","release":"2024-06-27 06:50:41","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8355,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.15\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.15","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.15"},{"name":"5.2.16","release":"2024-08-30 14:12:04","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8405,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.16\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.16","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.16"},{"name":"5.2.18","release":"2024-12-16 12:10:03","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":20836,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BotTracker\/5.2.18\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-BotTracker\/commits\/5.2.19","readmeHtml":{"description":"\n\n<p>Bot Tracker is a plugin to <em>exclude<\/em> and separately <em>track<\/em> the visits of Bots, Spiders and Web Crawlers, that hit your site. Because Matomo doesn't store the user agent, Bot Tracker will only be able to track new bots from the moment you add them to its list forward (retroactive tracking isn't possible).<\/p>\n\n<p>Many web crawlers, spiders and bots don't load the images in a page and don't execute JavaScript. So you cannot track them with Matomo if you don't use the PHP-API. The Bot Tracker can only track those that were caught by Matomo itself. With that said, many crawlers today are using headless browsers, and they do execute JavaScript.<\/p>\n\n<h3>How it works<\/h3>\n\n<p>The plugin scans the user agent of any incoming visit for specific keywords. If the keyword is found, the visit is excluded from the normal log and logged separately in Bot Tracker reports.<\/p>\n\n<p>If you enable the \"extra stats\" for a bot entry, you will get more in depth data about the Bots visit, and you will get this in the widget Bot Tracker: Extra stats.<\/p>\n\n<p>You can add\/delete\/modify the keywords in Administration -&gt; Bot Tracker -&gt; Configuration.<\/p>\n\n<h3>Track bots identified with Device Detector<\/h3>\n\n<p>As additional tracking of bots, you can collect the bots identified with Matomos Device Detector, either with activating the setting in Administration -&gt; General settings -&gt; Bot Tracker, or with setting this in <code>config.ini.php<\/code>:<\/p>\n\n<pre><code>[BotTracker]\ntrack_device_detector_bots = 1\n<\/code><\/pre>\n\n<p>This is for collecting data for identified bots user agents, which you could use for setting up more in detail tracking with Bot Tracker.<\/p>\n\n<h3>Installation \/ Update<\/h3>\n\n<p>See <a href=\"https:\/\/matomo.org\/faq\/plugins\/faq_21\/\">https:\/\/matomo.org\/faq\/plugins\/faq_21\/<\/a><\/p>\n\n<h3>Sources of information for Bots, Crawlers, Scrapers etc<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/monperrus\/crawler-user-agents\/master\/crawler-user-agents.json\">https:\/\/raw.githubusercontent.com\/monperrus\/crawler-user-agents\/master\/crawler-user-agents.json<\/a><\/li>\n<li><a href=\"https:\/\/radar.cloudflare.com\/traffic\/verified-bots\">https:\/\/radar.cloudflare.com\/traffic\/verified-bots<\/a><\/li>\n<li><a href=\"https:\/\/darkvisitors.com\/\">https:\/\/darkvisitors.com\/<\/a><\/li>\n<li><a href=\"https:\/\/badbot.org\/\">https:\/\/badbot.org\/<\/a><\/li>\n<li><a href=\"https:\/\/udger.com\/resources\/ua-list\/crawlers\">https:\/\/udger.com\/resources\/ua-list\/crawlers<\/a><\/li>\n<\/ul>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Are you tracking data full of bots? That traffic is normally not useful for you, it is just clutter. Bot Tracker removes those visits from your normal data, and also provide separate reports so you could see which bots are visiting your site. With Matomo and Bot Tracker you have insight in Bot Traffic on your site.<\/p>\n\n<h2>Description<\/h2>\n\n<p>Bot Tracker is a plugin to <em>exclude<\/em> and separately <em>track<\/em> the visits of Bots, Spiders and Web Crawlers, that hit your site. Because Matomo doesn't store the user agent, Bot Tracker will only be able to track new bots from the moment you add them to its list forward (retroactive tracking isn't possible).<\/p>\n\n<p>Many web crawlers, spiders and bots don't load the images in a page and don't execute JavaScript. So you cannot track them with Matomo if you don't use the PHP-API. The Bot Tracker can only track those that were caught by Matomo itself. With that said, many crawlers today are using headless browsers, and they do execute JavaScript.<\/p>\n\n<h3>How it works<\/h3>\n\n<p>The plugin scans the user agent of any incoming visit for specific keywords. If the keyword is found, the visit is excluded from the normal log and logged separately in Bot Tracker reports.<\/p>\n\n<p>If you enable the \"extra stats\" for a bot entry, you will get more in depth data about the Bots visit, and you will get this in the widget Bot Tracker: Extra stats.<\/p>\n\n<p>You can add\/delete\/modify the keywords in Administration -&gt; Bot Tracker -&gt; Configuration.<\/p>\n\n<h3>Track bots identified with Device Detector<\/h3>\n\n<p>As additional tracking of bots, you can collect the bots identified with Matomos Device Detector, either with activating the setting in Administration -&gt; General settings -&gt; Bot Tracker, or with setting this in <code>config.ini.php<\/code>:<\/p>\n\n<pre><code>[BotTracker]\ntrack_device_detector_bots = 1\n<\/code><\/pre>\n\n<p>This is for collecting data for identified bots user agents, which you could use for setting up more in detail tracking with Bot Tracker.<\/p>\n\n<h3>Installation \/ Update<\/h3>\n\n<p>See <a href=\"https:\/\/matomo.org\/faq\/plugins\/faq_21\/\">https:\/\/matomo.org\/faq\/plugins\/faq_21\/<\/a><\/p>\n\n<h3>Sources of information for Bots, Crawlers, Scrapers etc<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/monperrus\/crawler-user-agents\/master\/crawler-user-agents.json\">https:\/\/raw.githubusercontent.com\/monperrus\/crawler-user-agents\/master\/crawler-user-agents.json<\/a><\/li>\n<li><a href=\"https:\/\/radar.cloudflare.com\/traffic\/verified-bots\">https:\/\/radar.cloudflare.com\/traffic\/verified-bots<\/a><\/li>\n<li><a href=\"https:\/\/darkvisitors.com\/\">https:\/\/darkvisitors.com\/<\/a><\/li>\n<li><a href=\"https:\/\/badbot.org\/\">https:\/\/badbot.org\/<\/a><\/li>\n<li><a href=\"https:\/\/udger.com\/resources\/ua-list\/crawlers\">https:\/\/udger.com\/resources\/ua-list\/crawlers<\/a><\/li>\n<\/ul>\n\n<h2>Import logs with Log Analytics<\/h2>\n\n<p>Matomo normally ships with a python scripts for importing server logs when you can't track visitors with injecting javascript on a website, <code>import_logs.py<\/code>. With the patch shipped with this plugin in the folder <code>patches<\/code> you can use Bot Tracker as normal also with imported logs. Just copy the patch to <code>misc\/log-analytics<\/code> and run <code>patch -p1 &lt; import_logs.patch<\/code> and bots are handled with the Bot Tracker plugin.<\/p>\n\n<p>Then you can run copy the logs to your Matomo instance and run something like:<\/p>\n\n<pre><code>python misc\/log-analytics\/import_logs.py --url=https:\/\/my-matomo-instance.org --idsite=1 --recorders=8 --enable-http-errors --enable-http-redirects --enable-static --enable-bots localhost.access_log\n<\/code><\/pre>\n\n<p>For documentation for Log Analytics, see the <a href=\"https:\/\/matomo.org\/guide\/tracking-data\/import-server-logs\/\">documentation page<\/a>.<\/p>\n\n<h2>License<\/h2>\n\n<p>GPL v3 \/ fair use<\/p>\n\n<h2>Matomo Plugins by Digitalist Open Tech<\/h2>\n\n<p>This plugin was created by <a href=\"https:\/\/github.com\/Thomas--F\">Thomas--F<\/a> and was taken over by Digitalist as part of contributing back with Matomo 5 upgrades.<\/p>\n\n<p>For more information about plugins provided by Digitalist, see <a href=\"https:\/\/github.com\/digitalist-se\/MatomoPlugins\">our plugin page<\/a>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>All notable changes to this project will be documented in this file.\nThe format is based on <a href=\"https:\/\/keepachangelog.com\/en\/1.1.0\/\">Keep a Changelog<\/a> and this project adheres to <a href=\"https:\/\/semver.org\/spec\/v2.0.0.html\">Semantic Versioning<\/a> from version 5.3.0 (not released yet).<\/p>\n\n<p>From version 5.x.x, major version reflects which Matomo version is supported.<\/p>\n\n<h2>[5.2.17] - 2024-09-18<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Version bump to check access for publishing plugin.<\/li>\n<\/ul>\n\n<h2>[5.2.16] - 2024-08-30<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Screaming Frog as default bot.<\/li>\n<li>Marketplace cover<\/li>\n<\/ul>\n\n<h2>[5.2.14] - 2024-06-11<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Documentation and patch for using Log Analytics with Bot Tracker.<\/li>\n<\/ul>\n\n<h2>[5.2.12] - 2024-05-27<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>ClaudeBot to default bots<\/li>\n<\/ul>\n\n<h2>[5.2.11] - 2024-04-14<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Adding a check if Bot Tracker config <code>track_device_detector_bots<\/code> exists, this missing check caused PHP errors. Fixes <a href=\"https:\/\/github.com\/digitalist-se\/BotTracker\/issues\/12\">#12<\/a>.<\/li>\n<\/ul>\n\n<h2>[5.2.10] - 2024-04-08<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Problem with translations and admin menu.<\/li>\n<\/ul>\n\n<h2>[5.2.9] - 2024-04-08<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Bot Tracker now has it own admin menu, Administration -&gt; Bot Tracker -&gt; Configuration.<\/li>\n<li>Documentation is found at Administration -&gt; Bot Tracker -&gt; Documentation.<\/li>\n<li>Bots not configured, but found with <a href=\"https:\/\/github.com\/matomo-org\/device-detector\">Matomo DeviceDetector<\/a>, can now be collected with a system setting. System -&gt; General settings -&gt; Bot Tracker -&gt; Enable logging of non configured bots. Report \"Bot Tracker: Other bots\" shows these if the setting is activated. The user agent strings of these bots could be used for adding new Bots to track.<\/li>\n<\/ul>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Row <code>name<\/code> in <code>bot_type<\/code> database table is changed to varchar(256), varchar(255) was a typo.<\/li>\n<\/ul>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Changelog format changed to <a href=\"https:\/\/keepachangelog.com\/en\/1.1.0\/\">Keep a Changelog<\/a> format.<\/li>\n<\/ul>\n\n<h2>[5.2.0] - 2024-03-22<\/h2>\n\n<p>This is a big update, with many changes in code, new reports, new default bots added etc. To get the new default bots, just import default bots again, only the new ones will be added. Some preparations for 5.3.0 release added, that is not supported yet - categorisation of bots with type. Tables are added in this version, but they really do not have any purpose yet.<\/p>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li><code>functions.php<\/code> removed<\/li>\n<li>File <code>botlist.txt<\/code> removed, hard to keep up to date and out of the scope for this plugin.<\/li>\n<li>File <code>CHANGELOG.md<\/code> format changed to follow Markdown standard.<\/li>\n<\/ul>\n\n<p>Database schema changes:<\/p>\n\n<ul>\n<li>Table <code>bot_db<\/code>: <code>botName<\/code> and <code>botKeyword<\/code> could now be 256 chars long.<\/li>\n<li>Table <code>bot_db_stat<\/code>: <code>page<\/code> could now be 256 chars long.<\/li>\n<li>Table <code>bot_type<\/code> added.<\/li>\n<li>Column <code>botType<\/code> added in table <code>bot_db<\/code><\/li>\n<li>Table <code>bot_visits<\/code> added.<\/li>\n<\/ul>\n\n<h3>Deprecated<\/h3>\n\n<ul>\n<li>Bot visits will now be tracked in table bot_visits, and use of visits in <code>bot_db<\/code> is deprecated, and will be removed in 5.3.0. This change is done so reports of bots could be based on dates, ranges etc. As the old format only allowed to show the total. Old reports will stay until 5.3.0, and are marked as deprecated in code and in UI. This change will increase database size, as every defined bot visit will get a database row for a visit, therefor the new table is kept to absolute minimum.<\/li>\n<\/ul>\n\n<h3>Added<\/h3>\n\n<h4>Reports<\/h4>\n\n<ul>\n<li>Bot Tracker: Report - shows all bots visits in chosen time frame.<\/li>\n<li>Bot Tracker: Top 10 robots - a pie chart with the ten most frequent bots in chosen time frame.<\/li>\n<li>Bot Tracker: Extra stats - if extra stats is enabled for a bot, you get all visits by the bots in chosen time frame.<\/li>\n<\/ul>\n\n<h4>Cli Commands<\/h4>\n\n<ul>\n<li>Cli Commands added for simpler administration and automation.\n\n<ul>\n<li><code>bottracker:add-bot<\/code><\/li>\n<li><code>bottracker:add-bot-type<\/code> (does not have a purpose yet)<\/li>\n<li><code>bottracker:add-default-bots<\/code><\/li>\n<li><code>bottracker:delete-bot<\/code><\/li>\n<li><code>bottracker:list-bot-types<\/code> (does not have a purpose yet)<\/li>\n<li><code>bottracker:list-bots<\/code><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>Testing<\/h4>\n\n<p>Some basic unit och integration tests were added.<\/p>\n\n<h2>[5.0.1] - unknown date<\/h2>\n\n<ul>\n<li>Removed <code>logToFile<\/code> function.<\/li>\n<\/ul>\n\n<h2>[v3.0.0] - 2023-11-28<\/h2>\n\n<p>Matomo 5 compatibility fixes.<\/p>\n\n<h2>[v2.08] - 2023-02-18<\/h2>\n\n<ul>\n<li>translation-updates (issue #97)<\/li>\n<li>new OK-icon with transparency (issue #98)<\/li>\n<li>fix deprecated dynamic properties (issue #99)<\/li>\n<\/ul>\n\n<h2>[v2.07] - 2022-02-27<\/h2>\n\n<ul>\n<li>translation-updates (issue #94)<\/li>\n<\/ul>\n\n<h2>[v2.06] - 2022-01-30<\/h2>\n\n<ul>\n<li>fix for the archive-problem (issue #87)<\/li>\n<\/ul>\n\n<h2>[v2.05] - 2021-10-29<\/h2>\n\n<ul>\n<li>fix a problem in the api.php after the changes in v2.04 (issue #84)<\/li>\n<\/ul>\n\n<h2>[v2.04] - 2021-10-28<\/h2>\n\n<ul>\n<li>Fix plugin does not work when used in Matomo for WordPress (issue #83)<\/li>\n<li>a bunch of translation-updates (issue #81)<\/li>\n<\/ul>\n\n<h2>[2.03] - 2021-05-30<\/h2>\n\n<ul>\n<li>assure that useragent length limit is kept for extra stats table (issue #73)<\/li>\n<\/ul>\n\n<h2>[v2.02] - 2021-05-17<\/h2>\n\n<ul>\n<li>fix for issue #70<\/li>\n<\/ul>\n\n<h2>[v2.01] - 2021-04-25<\/h2>\n\n<ul>\n<li>change order of columns in the BotTracker report (issue #68)<\/li>\n<\/ul>\n\n<h2>[2.00] - 2020-12-05<\/h2>\n\n<ul>\n<li>upgrade to Matomo 4 (issue #66)<\/li>\n<\/ul>\n\n<h2>[1.07] - unknown date<\/h2>\n\n<ul>\n<li>correct PHP notice on line 114 (issue #65)<\/li>\n<\/ul>\n\n<h2>[1.06] - 2019-08-27<\/h2>\n\n<ul>\n<li>correct default for \"botLastVisit\" (issue #63)<\/li>\n<\/ul>\n\n<h2>[1.05] - 2019-07-25<\/h2>\n\n<ul>\n<li>removed default on visit_timestamp (issue #53)<\/li>\n<li>changed primary key and add aditional column for stats table (issue #53)<\/li>\n<li>changed default for last_visit (issue #61)<\/li>\n<li>corrected delimiter in botlist.txt (issue #62)<\/li>\n<\/ul>\n\n<h2>[1.04] - 2018-09-09<\/h2>\n\n<ul>\n<li>change license string (validator-fail)<\/li>\n<\/ul>\n\n<h2>[1.03] - 2018-09-09<\/h2>\n\n<ul>\n<li>replace deprecated functions<\/li>\n<\/ul>\n\n<h2>[1.02] - 2016-12-15<\/h2>\n\n<ul>\n<li>change PHP-requirements for Piwik v3<\/li>\n<\/ul>\n\n<h2>[1.01] - 2016-11-03<\/h2>\n\n<ul>\n<li>changes at description and changelog for Piwik v3<\/li>\n<\/ul>\n\n<h2>[1.00] - 2016-11-02<\/h2>\n\n<ul>\n<li>upgrade to Piwik Version 3 (issue #50)<\/li>\n<li>some parts were new coded, others are only migrated<\/li>\n<\/ul>\n\n<h2>[0.58] - 2016-10-21<\/h2>\n\n<ul>\n<li>new feature: BotTracker now works with the import_logs-script (issue #38)<\/li>\n<li>add: some new translation-strings (issue #46)<\/li>\n<li>bufgix: truncate the url to max 100 bytes (issue #49)<\/li>\n<\/ul>\n\n<h2>[0.57] - 2015-11-06<\/h2>\n\n<ul>\n<li>bugfix: change of order and position in the BotTracker-Visitor-View<\/li>\n<li>deleting of the old update-scripts (from version 0.43 and 0.45)<\/li>\n<li>bugfix: change of the default-value for botLastVisit '0000-00-00' to '2000-01-01'<\/li>\n<li>new feature: file import for new bots (see online-help in the administration-dialog for more infos)<\/li>\n<\/ul>\n\n<h2>[0.56] - 2015-09-27<\/h2>\n\n<ul>\n<li>bugfix: botLastVisit-Date is not shown (pull request #35)<\/li>\n<li>bugfix: Some characters are not quoted properly (issue #32)<\/li>\n<li>a lot more languages. Thanks a lot to all transiflex-supporter<\/li>\n<\/ul>\n\n<h2>[0.55] - 2015-05-23<\/h2>\n\n<ul>\n<li>some minor bugfixes and typos<\/li>\n<li>add some more languages<\/li>\n<\/ul>\n\n<h2>[0.54] - 2015-01-28<\/h2>\n\n<ul>\n<li>bugfix for Piwik 2.11<\/li>\n<\/ul>\n\n<h2>[0.53] - 2014-12-17<\/h2>\n\n<ul>\n<li>bugfix for cloud-view on \"Top 10\"<\/li>\n<li>deactivating insights for \"Top 10\"<\/li>\n<li>add more default bots (just use the \"add default bots\" button, only the new ones will be added)<\/li>\n<\/ul>\n\n<h2>[0.52] - 2014-09-04<\/h2>\n\n<ul>\n<li>bugfix for issue #10 (NOTICE in error-log for undeclared variables)<\/li>\n<\/ul>\n\n<h2>[0.51] - 2014-08-07<\/h2>\n\n<ul>\n<li>emergency-fix for v0.50<\/li>\n<\/ul>\n\n<h2>[0.50] - 2014-08-07<\/h2>\n\n<ul>\n<li>bugfix for issue #9 (wrong time zone for last visit)<\/li>\n<\/ul>\n\n<h2>[0.49] - 2014-06-22<\/h2>\n\n<ul>\n<li>fixed crash with a new and empty webpage<\/li>\n<\/ul>\n\n<h2>[0.48] - 2014-06-13<\/h2>\n\n<ul>\n<li>change requirements because 0.47 doesn't work with Piwik 2.3<\/li>\n<\/ul>\n\n<h2>[0.47] - 2014-06-13<\/h2>\n\n<ul>\n<li>bugfix: changes menu-creation for Piwik v2.4<\/li>\n<\/ul>\n\n<h2>[0.46] - 2014-04-14<\/h2>\n\n<ul>\n<li>bugfix: remove depricated method for Piwik v2.2<\/li>\n<\/ul>\n\n<h2>[0.45] - 2014-04-03<\/h2>\n\n<ul>\n<li>add column to primary key in extra-stats-table<\/li>\n<\/ul>\n\n<h2>[0.44] - 2014-02-21<\/h2>\n\n<ul>\n<li>more description for the marketplace<\/li>\n<\/ul>\n\n<h2>[0.43] - 2014-02-21<\/h2>\n\n<ul>\n<li>Compatible with Piwik 2.0<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/BotTracker\/download\/5.2.18"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/BotTracker\/changelog"},"consumer":{"license":null}},{"name":"BraveDetector","displayName":"Brave Detector","owner":"Starker3","description":"Simple plugin that adds the Brave User Agent to tracking requests when detected.","homepage":null,"createdDateTime":"2023-01-31 08:54:03","donate":{},"support":[],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Starker3","email":null,"homepage":"https:\/\/github.com\/Starker3\/MatomoBraveDetector"}],"repositoryUrl":"https:\/\/github.com\/Starker3\/MatomoBraveDetector","lastUpdated":"2023-06-15 00:30:03","latestVersion":"0.1.3","numDownloads":48043,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"11","numContributors":"1","lastCommitDate":"2023-06-15 00:38:26"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2023-01-31 08:54:03","requires":{"matomo":">=4.12.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":54,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BraveDetector\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Starker3\/MatomoBraveDetector\/commits\/v0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BraveDetector\/download\/0.1.0"},{"name":"0.1.1","release":"2023-02-01 03:34:05","requires":{"matomo":">=4.12.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BraveDetector\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Starker3\/MatomoBraveDetector\/commits\/0.1.1b","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BraveDetector\/download\/0.1.1"},{"name":"0.1.2","release":"2023-02-01 03:38:02","requires":{"matomo":">=4.12.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17078,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BraveDetector\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Starker3\/MatomoBraveDetector\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/BraveDetector\/download\/0.1.2"},{"name":"0.1.3","release":"2023-06-15 00:30:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":30907,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/BraveDetector\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Starker3\/MatomoBraveDetector\/commits\/0.2.0","readmeHtml":{"description":"\n\n<p>This is a simple plugin that forces the tracking of Brave browsers by overwriting the User Agent sent with each tracking request when the Brave browser is detected.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Does this plugin require configuration?<\/strong><\/p>\n\n<p>No, simply install and activate the plugin and you'll be able to track Brave browser agents.<\/p>\n\n<p><strong>Does this plugin work with Tag Manager?<\/strong><\/p>\n\n<p>Yes, as long as you bundle matomo.js in your Matomo Configuration variable.<\/p>\n\n<p><strong>Why do I need this plugin? Why doesn't this functionality exist already?<\/strong><\/p>\n\n<p>Matomo detects what device\/user agent is sending requests to your Matomo server by using the user agent sent with the request to the web server.\nThe Brave browser is unique because it doesn't send it's own custom \"User Agent\" with web requests - it pretends to be a normal Chrome browser. The only way to detect if a browser is a Brave browser is with the use a Brave-specific function using Javascript.<\/p>\n\n<p><strong>Will this plugin allow be to track Brave browsers with \"Shields Up\"?<\/strong>\nNo, this plugin can't track anything if the Matomo tracking script is being blocked when the Brave browser's shields are up.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>0.1.0 Initial release<\/p>\n\n<p>0.1.1 Update FAQ<\/p>\n\n<p>0.1.2 version bump<\/p>\n\n<p>0.2.0 Matomo 5 compatibility<\/p>"},"download":"\/api\/2.0\/plugins\/BraveDetector\/download\/0.1.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/BraveDetector\/changelog"},"consumer":{"license":null}},{"name":"BusinessBundle","displayName":"Business Bundle","owner":"InnoCraft","description":"Empower your teams with integrated insights, advanced analytics and enhanced security to drive strategic action and market share.","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2026-06-02 21:42:40","donate":{},"support":[],"isTheme":false,"keywords":["optimization","conversion","cro","sales","content","bundle","revenue","premium","support"],"basePrice":17400,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-06-02 21:42:40","latestVersion":"1.0.0","numDownloads":null,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/BusinessBundle.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":true,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/BusinessBundle","variations":[{"product_variation_id":130528,"price":"1450","prettyPrice":"1450EUR","currency":"EUR","period":"month","name":"Up to 20 users monthly","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130526&variation_id=130528&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130526&variation_id=130528","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-businessbundle\/?attribute_type=Up+to+20+users+monthly&add-to-cart=130526&variation_id=130528&aelia_cs_currency=EUR"},{"product_variation_id":130528,"price":"1740","prettyPrice":"USD1740","currency":"USD","period":"month","name":"Up to 20 users monthly","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130526&variation_id=130528&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130526&variation_id=130528","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-businessbundle\/?attribute_type=Up+to+20+users+monthly&add-to-cart=130526&variation_id=130528&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130527,"price":"14500","prettyPrice":"14500EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":4678,"prettyDiscount":"4678\u20ac","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130526&variation_id=130527&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130526&variation_id=130527","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-businessbundle\/?attribute_type=Up+to+20+users&add-to-cart=130526&variation_id=130527&aelia_cs_currency=EUR"},{"product_variation_id":130527,"price":"17400","prettyPrice":"USD17400","currency":"USD","period":"year","name":"Up to 20 users","discount":5654,"prettyDiscount":"$5654","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130526&variation_id=130527&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130526&variation_id=130527","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-businessbundle\/?attribute_type=Up+to+20+users&add-to-cart=130526&variation_id=130527&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-businessbundle\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":null,"ratingCount":0,"reviewCount":0}},"bundle":{"plugins":[{"name":"MediaAnalytics","displayName":"Media Analytics"},{"name":"AbTesting","displayName":"A\/B Testing"},{"name":"ActivityLog","displayName":"Activity Log"},{"name":"Funnels","displayName":"Funnels"},{"name":"WhiteLabel","displayName":"White Label"},{"name":"UsersFlow","displayName":"Users Flow"},{"name":"RollUpReporting","displayName":"Roll-Up Reporting"},{"name":"FormAnalytics","displayName":"Form Analytics"},{"name":"SearchEngineKeywordsPerformance","displayName":"Search Engine Keywords Performance"},{"name":"HeatmapSessionRecording","displayName":"Heatmap & Session Recording"},{"name":"WooCommerceAnalytics","displayName":"WooCommerce Analytics"},{"name":"LoginSaml","displayName":"Login SAML"},{"name":"CustomReports","displayName":"Custom Reports"},{"name":"MultiChannelConversionAttribution","displayName":"Multi Channel Conversion Attribution"},{"name":"Cohorts","displayName":"Cohorts"},{"name":"AdvertisingConversionExport","displayName":"Advertising Conversion Export"},{"name":"SEOWebVitals","displayName":"SEO Web Vitals"},{"name":"CrashAnalytics","displayName":"Crash Analytics"}]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-06-02 21:42:40","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":""},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>When organisations grow, customer journeys spread across multiple devices and platforms. Attribution becomes harder, reporting becomes fragmented, and teams struggle to see the full picture.<\/p>\n\n<p>Analyse behaviour and performance across campaigns, channels, and websites with an advanced feature-set that gives you a complete and connected view of the most valuable metrics.<\/p>\n\n<p>The Business Bundle offers advanced analytics to move beyond high-level reporting and into actionable, comparable insights that show what drives results.<\/p>\n\n<p>\u00a0<\/p>\n\n<div style=\"text-align:left;\">\n  <h3>What\u2019s included in the Business Bundle?<\/h3>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;margin:0 0 64px 0;\">\n    <table class=\"feature-table\" style=\"width:100%;border-collapse:collapse;font-family:Arial, sans-serif;\">\n        <tbody>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/multi-channel.png\" alt=\"multi-channel.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Multi-channel attribution\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Understand how\n                                    marketing channels contribute to driving conversions and shift marketing efforts wisely.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/advertising-conversion.png\" alt=\"advertising-conversion.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Advertising Conversion Export\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Send attributed goal\n                                    conversions to Google Ads, Microsoft Advertising, and Yandex ad platforms.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/cohorts.png\" alt=\"cohorts.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Cohorts\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Measure user behaviour\n                                    over time to improve retention and increase customer lifetime value.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/roll-up-reporting.png\" alt=\"roll-up-reporting.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Roll-Up Reporting\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Analyse aggregated data\n                                    from multiple sites to track performance trends at an organisational level.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/white-label.png\" alt=\"white-label.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    White Label\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Provide stakeholders\n                                    with access to white labelled dashboards and reports and let your brand shine.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/activity-log.png\" alt=\"activity-log.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Activity Log\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">View detailed audit\n                                    logs of all activities for increased security, risk management, and diagnostics.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/heatmaps.png\" alt=\"heatmaps.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Heatmaps &amp; Session Recording\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Analyse real user\n                                    interactions to diagnose usability issues that traditional metrics cannot explain.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/funnels.png\" alt=\"funnels.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Funnels\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Explore the steps your\n                                    users take to complete a goal and optimise your website to boost conversion\n                                    rates.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/custom-reports.png\" alt=\"custom-reports.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Custom Reports\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Bring essential metrics\n                                    together by creating custom reports that align with your business goals.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/search-engine-keywords.png\" alt=\"search-engine-keywords.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Search Engine Keywords\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Uncover the keywords\n                                    used to find your site in search engines. The solution to 'Keyword not defined'.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/media-analytics.png\" alt=\"media-analytics.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Media Analytics\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Understand how\n                                    audiences consume your media with video and audio engagement metrics and insights.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/form-analytics.png\" alt=\"form-analytics.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Form Analytics\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Increase online form\n                                    conversions by analysing user behaviour and identifying key friction points.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/users-flow.png\" alt=\"users-flow.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Users Flow\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Identify the common\n                                    paths users take through your website and optimise routes that lead to conversions.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/woocommerce.png\" alt=\"woocommerce.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    WooCommerce\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Drive revenue and\n                                    improve your sales funnel with insights from the WooCommerce Analytics integration.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/multi-channel.png\" alt=\"seo-web-vitals.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    SEO Web Vitals\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Monitor Core Web Vitals and uncover performance issues that impact search rankings, user experience, and conversions.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/support.png\" alt=\"support.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Support\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Accelerate adoption with hands-on onboarding support designed to help your teams start generating value from Matomo quickly. <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>            \n            <\/td>\n        <\/tr>\n        <\/tbody>\n    <\/table>\n<\/div>\n\n<div class=\"readme-support main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:75%;vertical-align:top;padding-right:20px;\">\n                  <h3>Business Support Services<\/h3>\n                  <p>Accelerate adoption with hands-on onboarding support designed to help your teams start generating value from Matomo quickly.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Structured onboarding and adoption support from a Solutions Consultant to align tracking with your business goals.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Regular check-ins covering best practices, optimisation opportunities, and product updates.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Email-based technical support with a 12-hour response time (24\/5 coverage).<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:25%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:45px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/support.png\" alt=\"support.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-multi-channel-attribution main-div-readme chat-bubble-border\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px 40px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"right-div-readme\" style=\"vertical-align:top;\">\n                  <h3>Make every channel pull its weight<\/h3>\n                  <p>Not all channels contribute equally. You need data that tells you how much each interaction and channel adds to your bottom line, so you can guarantee the best return on your marketing spend.<\/p>\n                  <p><strong>Multi-channel Attribution <\/strong>turns separate touchpoints into a mapped customer journey, showing how search, social, email, direct visits, and referral channels work together over time. Compare different attribution models to pinpoint the value of each visitor interaction.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Stop undervaluing early-funnel channels.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Clearly identify which channels fuel conversions and revenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Adjust budgets based on impact, not assumptions.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-advertising-conversion-export main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:65%;vertical-align:top;padding-right:20px;\">\n                  <h3>Multiple ad campaigns, one easy workflow<\/h3>\n                  <p>Tracking the effectiveness of ad campaigns across Google, Microsoft, and Yandex is normally a complex endeavour.<\/p>\n                  <p><strong>Advertising Conversion Export<\/strong> makes it simple by tracking all required data through Matomo and exporting it to your advertising platforms automatically.<\/p>\n                  <p>No extra scripts or third-party pixels on your website.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Share accurate conversion data with ad platforms to improve targeting and ROI.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Skip Google tags and still send conversions where they need to go.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Support smarter bidding, better budget allocation, and invest campaigns that prove their\nvalue.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Integrate click and conversion data into your reporting tools to keep analysis\nunified.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:35%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:28px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/cohorts.png\" alt=\"cohorts.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-cohorts main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:35px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/property-investments-UK.png\" alt=\"property-investments-UK.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>From first click to long-term value<\/h3>\n                  <p><strong>Cohorts <\/strong>analysis reveals how groups of visitors behave after campaigns, feature releases, pricing changes, or onboarding improvements.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Test changes against different cohorts to learn what drives repeat engagement and\nincreases customer lifetime value.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Use these insights to strengthen retention, refine product strategy, and nurture high-\nvalue relationships over time.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cMatomo has improved the customer experience across a number of metrics, which has led to more inquiries and better business performance.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/property-investments-uk-white-background.jpg\" alt=\"Property Investments\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>Property Investments UK<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-roll-up-reporting main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Business performance in one view<\/h3>\n                  <p>To make decisions based on a complete picture, not isolated data, move from site-level metrics to an organisation-wide bird\u2019s eye view.<\/p>\n                  <p><strong>Roll-Up Reporting<\/strong> lets you aggregate data from multiple websites and apps into one consolidated report.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Reduce blind spots in executive reporting and align teams around shared performance\noutcomes.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Gain the insights you need by analysing and comparing the data of multiple digital\nproperties in a single dashboard.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:50%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:20px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/roll-up-reporting.png\" alt=\"roll-up-reporting.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-activity-log main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:40%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:45px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/activity-log.png\" alt=\"activity-log.png\" width=\"223\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:60%;vertical-align:top;\">\n                  <h3>Accountability across every change<\/h3>\n                  <p>As teams grow, so does the need for governance and accountability. The Business Bundle includes tools that help you stay compliant across teams, markets, or agencies.<\/p>\n                  <p><strong>Activity Log<\/strong> provides full visibility into who changed what and when, so you can govern your analytics setup with clarity and control.<\/p>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-white-label main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Your platform, your brand<\/h3>\n                  <p>Consistency matters as much as control.<\/p>\n                  <p><strong>White Label<\/strong> Matomo and create a cohesive experience that supports trust and recognition.<\/p>\n                  <p>Present analytics under your brand and create presentation-ready reports for stakeholders or clients.<\/p>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:30px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/white-label.png\" alt=\"white-label.png\" width=\"244\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-package main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:22px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/package.png\" alt=\"Plugin package\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>One click to get all the insights<\/h3>\n                  <p>Make confident optimisation decisions without switching between disconnected tools. See what\u2019s happening on your site, understand why it\u2019s happening, and know exactly where to act to\nimprove conversions.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Install and activate a set of advanced plugins in a single, integrated package.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Turn scattered datapoints into insights that improve what matters: sign-ups, purchases,\ncustomer retention and revenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cPrivacy is important, but we also need to move at the speed of a startup, Matomo offers a full-feature web analytics solution that we can get up and running quickly\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/yorba.png\" alt=\"yorba.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;\"><strong>Yorba<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-heatmaps main-div-readme\" style=\"height:auto;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Turn visitor journeys into actionable insights<\/h3>\n                  <p>Reveal the moments that shape decisions, from hesitation to conversion. Use visual reports instead of surface-level metrics to quickly understand user behaviour and what drives\nbusiness results.<\/p>\n                  <p>Identify how visitors navigate, where they get stuck, and which journeys lead to meaningful outcomes, so you can focus on changes that move the needle.<\/p>\n                  <p>Enable your team to answer questions that drive real change:<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/heatmaps-point.png\" alt=\"heatmaps-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Heatmaps &amp; Session Recording<\/strong> show which page\nelements drive clicks and conversions.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/funnel-point.png\" alt=\"funnel-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Funnels<\/strong> reveal where visitors get stuck or exit before\ncompleting a key action.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/users-flow-point.png\" alt=\"users-flow-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Users Flow<\/strong> highlights the paths users take before\nconverting.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n                  <p>Heatmaps and funnels are non-negotiable tools for conversion rate optimisation because they replace assumptions with context and evidence.<\/p>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:32px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/ab-testing2.png\" alt=\"ab-testing2.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme chat-bubble-border\" style=\"height:auto;margin:64px 0;padding:20px;background-color:#e6f2ff;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container\" style=\"margin:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cWe initially thought a banner call-to-action at the bottom of a long landing page was ineffective. However, Matomo\u2019s detailed tracking showed that users were scrolling down and interacting\nwith the banner, which made it much easier for us to refine our design.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/stockholm-university.png\" alt=\"stockholm-university.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;\"><strong>Stockholm University<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-keywords-performance main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Improve website performance for better SEO and conversions<\/h3>\n                  <p><strong>SEO Web Vitals<\/strong> shows how page speed, responsiveness, and visual stability impact user experience, search visibility, and conversions. Analyse Core Web Vitals across your site and uncover the performance issues that affect engagement and business outcomes.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Monitor Core Web Vitals metrics like Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS).<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Identify technical performance issues that negatively impact user experience, engagement, and search rankings.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Prioritise optimisation efforts based on real-world performance trends and their impact on visitor behaviour and business outcomes.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/keywords-performance.png\" alt=\"keywords-performance.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-custom-reports main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:32px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/custom-reports.png\" alt=\"custom-reports.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>Design reports for your conversion goals<\/h3>\n                  <p>Your teams do not need more reports, they need the right reports.<\/p>\n                  <p>Custom Reports enable teams to cut through the noise by creating views that focus on the key data and actionable insights required for accelerated decision-making.<\/p>\n                  <p>Turn reporting into a tool for action, not observation.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Build reports that span the entire visitor experience, from pages to forms, checkout,\nand content consumption.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Choose from over 250 metrics and dimensions for advanced behavioural analysis.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Define a report filter to show the data only for a subset of your visitors and users.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cMatomo is user-friendly and provides all the features we need to understand our visitors and optimise our site\u2019s performance, while effortlessly ensuring compliance with EU privacy laws.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/mdft-academy.png\" alt=\"mdft-academy.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;\"><strong>MDFT Academy<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-keywords-performance main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Boost your SEO for maximum return on investment<\/h3>\n                  <p><strong>Search Engine Keywords Performance<\/strong> shows how search visibility, user intent, and technical accessibility influence conversions, not just traffic. Analyse how users from\nGoogle, Bing, and Yahoo find your site and which keywords lead to meaningful actions.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Identify which keyword segments contribute to valuable user interactions across search\nresults.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Remove technical barriers that prevent search engines from discovering and indexing\nhigh-value pages.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Prioritise optimisation efforts based on keyword performance trends and business\nimpact.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/keywords-performance.png\" alt=\"keywords-performance.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-media-forms main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:22px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/package.png\" alt=\"Plugin package\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>Optimise media &amp; forms to drive conversions<\/h3>\n                  <p>Media is becoming increasingly important in today\u2019s environment, but do you know which media is making the difference for your business? <b>Media Analytics<\/b> and <b>Form Analytics<\/b> surface how users interact with videos, audio, and forms across key conversion paths so your teams can focus on making content that improves engagement.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\"><b>Media Analytics<\/b> drives improvements in media content and placement to increase engagement and support conversion paths.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Analyse play, pause, completion rates, and exits to reveal how users engage with on-page video and audio.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\"><b>Form Analytics<\/b> drives improvements in form structure to increase qualified leads and reduce wasted acquisition spend on non-converting traffic.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Understand how users move through form fields, which fields get completed, and where users abandon the form.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cWe made specific adjustments based on Form Analytics, resulting in 3 times the leads in just a couple of days\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/concrete-cms.png\" alt=\"concrete-cms.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;\"><strong>Concrete CMS<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-ecommerce main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"vertical-align:top;padding-right:20px;\">\n                  <h3>Ecommerce analytics to optimise revenue<\/h3>\n                  <p>Get a comprehensive snapshot of your store's performance and key metrics such as order counts, revenue per visit, and the average conversion rate. Uncover where customers linger, leave or move from product discovery to checkout.<\/p>\n                  <p><strong>WooCommerce Analytics<\/strong> gives teams practical direction without adding operational overhead.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Get more value from the traffic you already have.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Improve purchase flow without increasing ad spend.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Concentrate optimisation on actions that contribute to revenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Understand how products, pages, and checkout steps influence completed orders or cart abandonment.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-business main-div-readme chat-bubble-border\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px 40px;\">\n    <div style=\"text-align:center;\">\n        <h3>Advance to smarter, more connected analytics<\/h3>\n        <p style=\"text-align:center;\">Unlock advanced analytics with the Business Bundle. Bring channels, campaigns, and performance insights together so your teams can make decisions with clarity, accountability, and control. Start your free trial and move from monitoring performance to shaping it.<\/p>\n    <\/div>\n<\/div>\n\n<style>\n    .sticky-footer {\n        position: fixed;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        background: #fff;\n        border-top: 1px solid #ddd;\n        padding: 15px;\n        justify-content: space-between;\n        align-items: center;\n        box-shadow: 0 -2px 10px rgba(0,0,0,0.1);\n        z-index: 1000;\n    }\n\n    .sticky-footer .cta-row {\n        display: flex;\n        gap: 10px;\n        align-items: center;\n    }\n\n    div.js-sanitized-marketplace-html > .sticky-footer {\n        display: none;\n    }\n\n    section#description.slider-tabs__panel > .sticky-footer{\n        display: none;\n    }\n<\/style>\n\n<div class=\"sticky-footer\">\n    <div class=\"modal-content__footer modal-content__footer--with-free-trial\">\n        <img class=\"matomo-badge matomo-badge-modal\"\n             src=\"plugins\/Marketplace\/images\/matomo-badge.png\"\n             aria-label=\"Matomo plugin\"\n             alt=\"\">\n\n        <div class=\"cta-container cta-container-modal\">\n            <div class=\"cta-row\">\n                <div class=\"free-trial\">\n                    <form method=\"GET\"\n                          action=\"https:\/\/shop.matomo.org\/checkout\"\n                          target=\"_blank\"\n                          rel=\"noopener noreferrer\">\n\n                        <input type=\"hidden\" name=\"add-to-cart\" value=\"130526\">\n\n                        <select class=\"free-trial-dropdown\" name=\"aelia_cs_currency\">\n                            <option title=\"Currency EUR\" value=\"EUR\">EUR<\/option>\n                            <option title=\"Currency USD\" value=\"USD\">USD<\/option>\n                        <\/select>\n\n                        <select class=\"free-trial-dropdown\" name=\"variation_id\">\n                                                                                                <option title=\"Month\" value=\"130528\">\n                                        Up to 20 users - 1450 EUR per month \/\n                                        1740 USD per month\n                                    <\/option>\n                                                                                                                                <option title=\"Year\" value=\"130527\">\n                                        Up to 20 users - 14500 EUR per year \/\n                                        17400 USD per year\n                                    <\/option>\n                                                                                    <\/select>\n\n                        <button type=\"submit\"\n                                class=\"btn btn-block addToCartLink\"\n                                title=\"Click to complete purchase.\"\n                                rel=\"noreferrer noopener\">\n                            Add to cart\n                        <\/button>\n\n                    <\/form>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n","faq":"<h3>Can I trial the features included in the Business Bundle?<\/h3>\n\n<p>The Business Bundle is designed to deliver immediate value with a comprehensive set of features for growing organisations, which is why it is not offered as a self-service trial. It\u2019s typically chosen when you\u2019re ready to adopt a complete analytics solution without limitations. If you\u2019d like to explore specific features first, many Business plugins can be trialled individually on Matomo On-Premise, or you can experience the full feature set through a Matomo Cloud trial.<\/p>\n\n<h3>Can I buy individual plugins?<\/h3>\n\n<p>Yes. You can extend the Business Bundle by trialling or purchasing individual plugins that are not included in the bundle, directly from within the Matomo platform.<\/p>\n\n<h3>Is support included in the Business bundle?<\/h3>\n\n<p>Yes. The Business Bundle includes email support with a 48-hour response time, available 24 hours a day, five days a week. It also provides access to a Product Evangelist for advanced technical engagement, helping you address more complex implementation and optimisation needs.<\/p>","documentation":"","changelog":""},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/BusinessBundle\/changelog"},"isNewBundle":false,"consumer":{"license":1,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"cacheBuster","displayName":"cache Buster","owner":"JohnDeery","description":"Clears all temporary cache files.","homepage":"https:\/\/github.com\/JohnDeery\/piwik_cache_buster","createdDateTime":"2014-02-21 17:12:05","donate":{},"support":[],"isTheme":false,"keywords":["cache","delete","tmp"],"basePrice":0,"authors":[{"name":"John Deery","email":"john.deery@gmail.com","homepage":"http:\/\/fractalice.com"}],"repositoryUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster","lastUpdated":"2015-03-24 12:12:03","latestVersion":"1.4.2","numDownloads":14115,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"15","numContributors":"3","lastCommitDate":"2018-01-10 17:32:47"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0","release":"2014-02-21 17:12:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster\/commits\/1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/cacheBuster\/download\/1.0"},{"name":"1.1","release":"2014-02-21 17:52:03","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":560,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster\/commits\/v1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/cacheBuster\/download\/1.1"},{"name":"1.2","release":"2014-04-20 03:54:03","requires":{"piwik":">=2.2.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":20,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster\/commits\/1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/cacheBuster\/download\/1.2"},{"name":"1.2.2","release":"2014-04-20 17:32:03","requires":{"piwik":">=2.2.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":186,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster\/commits\/1.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/cacheBuster\/download\/1.2.2"},{"name":"1.3","release":"2014-04-30 01:02:05","requires":{"piwik":">=2.2.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2686,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster\/commits\/1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/cacheBuster\/download\/1.3"},{"name":"1.4","release":"2015-03-12 14:00:03","requires":{"piwik":">=2.2.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":43,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster\/commits\/1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/cacheBuster\/download\/1.4"},{"name":"1.4.1","release":"2015-03-13 01:26:04","requires":{"piwik":">=2.2.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":201,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster\/commits\/1.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/cacheBuster\/download\/1.4.1"},{"name":"1.4.2","release":"2015-03-24 12:12:03","requires":{"piwik":">=2.2.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10408,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JohnDeery\/cacheBuster\/commits\/1.4.2","readmeHtml":{"description":"\n\n<p>This plugin will clear out the tmp dir of Matomo (Piwik). Useful for when you are developing other plugins or just need to kill that file and can't get to your installation to delete it normally<\/p>\n\n","faq":"","documentation":"","changelog":"<p>~2015~<\/p>\n\n<p>2015-03-24 - Updated all language files to ensure they are UTF-8 encoded and updated German text (Thanks to rauolive @ https:\/\/github.com\/rauolive)<\/p>\n\n<p>2015-03-12 - Updated because I left out the call to Piwik::hasUserSuperUserAccess(). Also added translations because why not. If they are not accurate, please let me know what I should use as these came straight from google translate.<\/p>\n\n<p>2015-03-12 - Updated to work with the latest menu calls. Thanks to mnapoli for pointing out the issue<\/p>\n\n<p>~2014~<\/p>\n\n<p>2014-04-29 - Thanks to Thomas-Piwik at (http:\/\/forum.piwik.org\/read.php?9,114223,114638#msg-114638), we now have a nice message that let's us know that the cache has been cleared. Also, per that same thread, updated the delete code to use Filesystem::unlinkRecursive instead of native delete commands.<\/p>\n\n<p>2014-04-19 - Updated to work with 2.2.0. Removed the custom directory separator code and switch to use the PHP constant.<\/p>\n\n<p>2014-02-21 - Update some more code, added in notification area but it's not quite working yet (TODO - make it work)<\/p>\n\n<p>2014-02-21 - Rebranded to cacheBuster and set version to 1.0, updated code to use a better check for directory seperator<\/p>\n\n<p>2014-02-20 - v2.0 - Updated plugin to work with Piwik 2.0.3<\/p>\n\n<p>~2013~<\/p>\n\n<p>Inital creation of plugin at http:\/\/www.spherexx.com under the name ClearCache<\/p>"},"download":"\/api\/2.0\/plugins\/cacheBuster\/download\/1.4.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/cacheBuster\/changelog"},"consumer":{"license":null}},{"name":"CampusGeoIP","displayName":"Campus Geo IP","owner":"jbrule","description":"This location provider is designed to geolocate ips across a campus in an intranet type environment.","homepage":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP","createdDateTime":"2021-07-21 23:50:03","donate":{},"support":[],"isTheme":false,"keywords":["Intranet","GeoIP","locations","custom networks"],"basePrice":0,"authors":[{"name":"Josh Brule","email":null,"homepage":"https:\/\/github.com\/jbrule\/"}],"repositoryUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP","lastUpdated":"2025-09-06 17:34:03","latestVersion":"5.0.3","numDownloads":53808,"screenshots":["https:\/\/plugins.matomo.org\/CampusGeoIP\/images\/5.0.3\/geoip_screen.png","https:\/\/plugins.matomo.org\/CampusGeoIP\/images\/5.0.3\/locations.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"10","numContributors":"4","lastCommitDate":"2025-09-06 17:33:02"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"4.0.0","release":"2021-07-21 23:50:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/v4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/4.0.0"},{"name":"4.0.1","release":"2021-07-22 13:26:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5650,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/4.0.1"},{"name":"4.1.0","release":"2022-11-23 23:54:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/4.1.0"},{"name":"4.1.2","release":"2022-11-24 00:02:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":239,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/4.1.2"},{"name":"4.1.3","release":"2022-11-29 00:02:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":590,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/4.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/4.1.3"},{"name":"4.1.4","release":"2022-12-23 23:06:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7384,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/4.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/4.1.4"},{"name":"4.1.5","release":"2023-09-27 19:36:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2291,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/4.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/4.1.5"},{"name":"4.1.6","release":"2023-11-19 07:30:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8777,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/4.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/4.1.6"},{"name":"5.0.0","release":"2023-11-22 02:02:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/5.0.0"},{"name":"5.0.2","release":"2023-11-22 03:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18268,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/5.0.2"},{"name":"5.0.3","release":"2025-09-06 17:34:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10585,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/commits\/5.0.3","readmeHtml":{"description":"\n\n<p>Custom Geo IP resolver that was designed to resolve private IP space across many campuses. Add your network ranges and locations and this will find which IP address maps to the location<\/p>\n\n<ul>\n<li>Used in production on a LAN with 23,000+ defined networks across 95 locations<\/li>\n<li>Supports custom IP networks<\/li>\n<li>IPv6 ready (not production tested)<\/li>\n<li>Includes bulk IP resolution API<\/li>\n<li>Includes CIDR range resolver<\/li>\n<li>Includes a testing function that harvests IPs from vistor log<\/li>\n<li>GeoIP database resides in MySQL\/MariaDB<\/li>\n<li>Fallback support (added by @tsgeolu)<\/li>\n<\/ul>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>FAQ<\/h2>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>This is a Location Provider plugin that supports GeoIP resolution for configured networks. We use it to resolve IPs to locations across our campuses. It theoretically supports IPv6 but that hasn't been heavily tested. It has been used since 2019 to resolve IPs from 23,000+ private network ranges across 95 locations.<\/p>\n\n<p>Upon install this plugin creates two table in the database<\/p>\n\n<h3>Locations (Campuses)<\/h3>\n\n<ul>\n<li><code>campusgeoip_locations<\/code> - this table needs to be populated directly (Sequel Ace, phpMyAdmin) as there is no UI built to do that. <img src=\"\/screenshots\/locations.png\" alt=\"locations.png\" \/><\/li>\n<\/ul>\n\n<p>Sample location data is available in <a href=\"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/blob\/5.x-dev\/docs\/location-test-data.sql\">location-test-data.sql<\/a>. This data is a match for the networks-example.txt network data provided later.<\/p>\n\n<h3>Networks<\/h3>\n\n<ul>\n<li><code>campusgeoip_networks<\/code> - this table is populated and maintained using the following console command  <code>.\/console campusgeoip:update-networks http:\/\/&lt;yournetworkdata&gt;<\/code> to load from web or <code>.\/console campusgeoip:update-networks .\/networks-data.txt<\/code> to load from a local file.<\/li>\n<\/ul>\n\n<p>Make sure your campus and CampusCode fields match across the locations table and network data as that is what the join is preformed on.<\/p>\n\n<h4>Format of Networks data file (yournetworkdata)<\/h4>\n\n<pre><code>NetworkFirstAsInteger|NetworkLastAsInteger|NetworkAsInteger|NetworkWithCIDR|NetworkAddress|NetworkCIDR|NetworkMask|NetworkHostCount|NetworkComment|Region|CampusCode|BuildingCode|FloorCode|Use|Disabled\n167772160|167772415|167772160|10.0.0.0\/24|10.0.0.0|24|255.255.255.0|256|My Network Comment|Region Name|CA|BA|01||false\n167816704|167816959|167816704|10.0.174.0\/24|10.0.174.0|24|255.255.255.0|256|My Network Comment 2|Region Name|CA|BA|03||false\n<\/code><\/pre>\n\n<p>There is a <a href=\"https:\/\/github.com\/jbrule\/matomoplugin-CampusGeoIP\/blob\/5.x-dev\/docs\/networks-example.txt\">networks-example.txt<\/a> file available for reference<\/p>\n\n<p>The following fields are the only ones parsed. The plugin was written against this format because it was what our IPAM delivers. Ideally this would be configurable. Pull Requests welcome.\n[\"cidr\"=&gt;3,\"note\"=&gt;8,\"region\"=&gt;9,\"campus\"=&gt;10,\"building\"=&gt;11,\"floor\"=&gt;12,\"use\"=&gt;13,\"disabled\"=&gt;14]<\/p>\n\n<h3>Alternate Network Population Method<\/h3>\n\n<p>As of plugin version 5.0.1 an alternate population option was added. If you are comfortable you can now populate the database with a tool (Sequel Ace, phpMyAdmin) using a query like the following.<\/p>\n\n<pre><code>INSERT INTO `matomo_campusgeoip_networks` (`cidr`, `campus`, `region`, `building`, `floor`, `note`) VALUES ('192.168.20.0\/24','TH','MD','J','Upper','Tree House Upper Floor');\n<\/code><\/pre>\n\n<p>The required network_start and network_end fields will not be populated initially if using this method. The following <a href=\"https:\/\/matomo.org\/faq\/general\/faq_21827\/\">console<\/a> command will need to be run to resolve the start and end range for the network.<\/p>\n\n<pre><code>.\/console campusgeoip:resolve-network-ranges\n<\/code><\/pre>\n\n<p>The command will print out the network cidrs it has resolved.<\/p>\n\n<pre><code>Resolved ranges for 192.168.20.0\/24\n<\/code><\/pre>\n\n<h1>Enable<\/h1>\n\n<p>When you have all the data populated go into the Matomo admin and switch the location provider under ![Geolocation](\/screenshots\/GeoIP Screen.png).<\/p>\n\n<h1>Wish List<\/h1>\n\n<p>Pull Requests are welcome if you would like to implement these features\n* Clean implementation that includes building and floor in reports\n* Configurable network data parser\n* GUI for managing locations and networks<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h1>5.0.3<\/h1>\n\n<p>Documentation fixes by @textagroup<\/p>\n\n<h1>5.0.2<\/h1>\n\n<p>Fixed plugin.json version<\/p>\n\n<h1>5.0.1<\/h1>\n\n<p>Added resolve-network-range feature<\/p>\n\n<h1>5.0.0<\/h1>\n\n<p>Matomo 5.x compatibility<\/p>\n\n<h1>4.1.6<\/h1>\n\n<p>Added Geolocation Provider fallback support. Thank you  @tsgeolu<\/p>\n\n<h1>4.1.5<\/h1>\n\n<p>Increased region length from 2 to 4 chars to support international regions. Thank you @rockyluke<\/p>\n\n<h1>4.1.4<\/h1>\n\n<p>Fixed network import bugs<\/p>\n\n<h1>4.1.3<\/h1>\n\n<p>Added debug information when exception occurrs on network data import<\/p>\n\n<h1>4.1.2<\/h1>\n\n<p>Added support for importing networks data from local file system.<\/p>\n\n<h1>4.0.1<\/h1>\n\n<p>Screenshot Correction<\/p>\n\n<h1>4.0.0<\/h1>\n\n<p>Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/CampusGeoIP\/download\/5.0.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CampusGeoIP\/changelog"},"consumer":{"license":null}},{"name":"CaptchaHub","displayName":"Captcha Hub","owner":"theveloper-ir","description":"A Matomo plugin that adds captcha verification to the login form. Supports Google Recaptcha and Cloudflare Turnstile.","homepage":"https:\/\/github.com\/theveloper-ir\/matomo-plugin-CaptchaHub\/","createdDateTime":"2024-08-15 13:10:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/theveloper-ir\/matomo-plugin-CaptchaHub\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/theveloper-ir\/matomo-plugin-CaptchaHub\/","type":"url"}],"isTheme":false,"keywords":["security","login","plugin","matomo","captcha","google Recaptcha","cloudflare Turnstile"],"basePrice":0,"authors":[{"name":"Alireza Salhi","email":"theveloper.ir@gmail.com","homepage":"https:\/\/alireza-salehi.ir"}],"repositoryUrl":"https:\/\/github.com\/theveloper-ir\/matomo-plugin-CaptchaHub","lastUpdated":"2024-08-15 13:16:04","latestVersion":"1.1.0","numDownloads":15094,"screenshots":["https:\/\/plugins.matomo.org\/CaptchaHub\/images\/1.1.0\/CaptchaHub1.png","https:\/\/plugins.matomo.org\/CaptchaHub\/images\/1.1.0\/CaptchaHub2.png","https:\/\/plugins.matomo.org\/CaptchaHub\/images\/1.1.0\/CaptchaHub3.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2024-08-15 15:16:56"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2024-08-15 13:10:03","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CaptchaHub\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/theveloper-ir\/matomo-plugin-CaptchaHub\/commits\/v1.1.0-stable","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CaptchaHub\/download\/1.0.0"},{"name":"1.1.0","release":"2024-08-15 13:16:04","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15086,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CaptchaHub\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/theveloper-ir\/matomo-plugin-CaptchaHub\/commits\/v1.1.0-stable","readmeHtml":{"description":"\n\n<p><strong>CaptchaHub<\/strong> is a Matomo plugin to add CAPTCHA to the login page.<\/p>\n\n<h3>Requirements<\/h3>\n\n<p><a href=\"https:\/\/github.com\/matomo-org\/matomo\">Matomo<\/a> 5.0.0-b1 or higher is required.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>CaptchaHub<\/h2>\n\n<h3>1.0.0 - 2024-08-03<\/h3>\n\n<h4>Added<\/h4>\n\n<ul>\n<li>Initial release of CaptchaHub plugin.<\/li>\n<li>Added support for Google reCAPTCHA.<\/li>\n<li>Added support for Cloudflare Turnstile.<\/li>\n<li>Integration with Matomo login form.<\/li>\n<li>Added configuration options for CAPTCHA provider and site key and secret key.<\/li>\n<li>Implemented content security policy headers for each CAPTCHA provider.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CaptchaHub\/download\/1.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CaptchaHub\/changelog"},"consumer":{"license":null}},{"name":"Chat","displayName":"Chat","owner":"VincentLahaye","description":"Tested on 2.16.2. Adds to Matomo (Piwik) the ability to engage people on your website through Chat and automatic Push Messages.","homepage":"https:\/\/github.com\/VincentLahaye\/piwik-chat","createdDateTime":"2014-06-13 09:10:06","donate":{},"support":[],"isTheme":false,"keywords":["chat"],"basePrice":0,"authors":[{"name":"Vincent Lahaye","email":"contact@vincent-lahaye.com","homepage":null}],"repositoryUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat","lastUpdated":"2016-06-16 14:02:04","latestVersion":"0.3.2","numDownloads":15041,"screenshots":["https:\/\/plugins.matomo.org\/Chat\/images\/0.3.2\/BackendVisitorProfile.png","https:\/\/plugins.matomo.org\/Chat\/images\/0.3.2\/ClientState2.png","https:\/\/plugins.matomo.org\/Chat\/images\/0.3.2\/ClientState3.png","https:\/\/plugins.matomo.org\/Chat\/images\/0.3.2\/ClientState4.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"1","numContributors":"1","lastCommitDate":"2016-06-16 14:57:21"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2014-06-13 09:10:06","requires":{"piwik":">=2.4.0-b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.1.1"},{"name":"0.1.2","release":"2014-06-13 09:52:05","requires":{"piwik":">=2.4.0-b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":97,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.1.2"},{"name":"0.1.3","release":"2014-06-23 11:54:10","requires":{"piwik":">=2.4.0-b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":119,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.1.3"},{"name":"0.1.4","release":"2014-06-29 15:12:05","requires":{"piwik":">=2.4.0-b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":526,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.1.4"},{"name":"0.1.5","release":"2014-08-13 10:42:05","requires":{"piwik":">=2.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":93,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.1.5"},{"name":"0.1.6","release":"2014-08-14 10:08:05","requires":{"piwik":">=2.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":158,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.1.6"},{"name":"0.2.0","release":"2014-08-19 16:58:06","requires":{"piwik":">=2.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.2.0"},{"name":"0.2.1","release":"2014-08-19 17:16:05","requires":{"piwik":">=2.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":43,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.2.1"},{"name":"0.2.2","release":"2014-08-20 07:34:06","requires":{"piwik":">=2.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.2.2"},{"name":"0.2.3","release":"2014-08-20 07:58:06","requires":{"piwik":">=2.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.2.3"},{"name":"0.2.4","release":"2014-08-20 09:08:05","requires":{"piwik":">=2.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5252,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.2.4"},{"name":"0.3.1","release":"2016-06-16 09:12:05","requires":{"piwik":">=2.16.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":119,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.3.1"},{"name":"0.3.2","release":"2016-06-16 14:02:04","requires":{"piwik":">=2.16.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8599,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/VincentLahaye\/piwik-chat\/commits\/0.3.2","readmeHtml":{"description":"","faq":"","documentation":"","changelog":"<p>v0.2.2 :<\/p>\n\n<ul>\n<li>Add DB Versioning support<\/li>\n<\/ul>\n\n<p>v0.2 :<\/p>\n\n<ul>\n<li>Piwik 2.5.0 ready<\/li>\n<li>Add automatic messages based on segment recognition<\/li>\n<li>General improvement on client popout\n\n<ul>\n<li>Load message over ajax<\/li>\n<li>Add moment.js<\/li>\n<li>Update the communication (based on easyXDM) between the popout and its parent iframe. See : https:\/\/github.com\/VincentLahaye\/piwik-chat\/commit\/ced4662d83cc8efc98b58b27e92ab6d06bb29546<\/li>\n<\/ul><\/li>\n<li>Update VisitorProfile popup\n\n<ul>\n<li>Improve textarea input interractions<\/li>\n<\/ul><\/li>\n<li>Rewrite a lot of code regarding the \"model\" file Conversation.php, now split in different files<\/li>\n<\/ul>\n\n<p>v0.1.6 :<\/p>\n\n<ul>\n<li>Add a reporting bug system<\/li>\n<\/ul>\n\n<p>v0.1.5 :<\/p>\n\n<ul>\n<li>Notification system improved\n\n<ul>\n<li>Add email notification to offline staf members<\/li>\n<li>Add title notification<\/li>\n<li>Improve sound and menu notification, now working on all CoreHome module<\/li>\n<\/ul><\/li>\n<li>Add german translation<\/li>\n<li>Fix wrong inclusion paths on client popout<\/li>\n<li>Fix online staff indicator on client popout<\/li>\n<\/ul>\n\n<p>v0.1 :<\/p>\n\n<ul>\n<li>Basic chat functions with client\/server communication and Piwik integration<\/li>\n<li>Add additional inputs in the visitor profile in order to save personal informations about a visitor (name, email, phone and comments)<\/li>\n<li>The client shows if someone of the staff is online or not<\/li>\n<li>Sound notifications on both sides<\/li>\n<li>French translation<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Chat\/download\/0.3.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Chat\/changelog"},"consumer":{"license":null}},{"name":"ChatGPT","displayName":"Chat GPT","owner":"openmost","description":"AI chat and insights on any Matomo report with ChatGPT, plus an agent that queries your live data.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/chatgpt","createdDateTime":"2023-10-02 14:10:02","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/ChatGPT\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/ChatGPT","type":"url"}],"isTheme":false,"keywords":["chat","chatgpt","GPT","ai","assistant","assistants","insight","insights"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/ChatGPT","lastUpdated":"2026-10-22 15:14:44","latestVersion":"5.8.0","numDownloads":45181,"screenshots":["https:\/\/plugins.matomo.org\/ChatGPT\/images\/5.8.0\/Agent_mode_weekly_KPI_review_with_tool_steps.png","https:\/\/plugins.matomo.org\/ChatGPT\/images\/5.8.0\/Insights_on_any_report_in_one_click.png","https:\/\/plugins.matomo.org\/ChatGPT\/images\/5.8.0\/Insights_panel_follow_up_question_with_live_data.png","https:\/\/plugins.matomo.org\/ChatGPT\/images\/5.8.0\/Settings_connection_and_prompts.png"],"coverImage":"https:\/\/plugins.matomo.org\/ChatGPT\/images\/5.8.0\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/jy83Ggf9cZw","id":"jy83Ggf9cZw"}],"activity":{"numCommits":"62","numContributors":"2","lastCommitDate":"2026-10-22 15:12:54"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"0.1.0","release":"2023-10-02 14:10:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":236,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/v1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/0.1.0"},{"name":"4.1.2","release":"2023-10-09 17:52:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5424,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/4.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/4.1.2"},{"name":"5.0.0","release":"2023-11-26 16:26:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3898,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.0.0"},{"name":"4.2.4","release":"2024-02-07 10:40:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":883,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/4.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/4.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/4.2.4"},{"name":"5.0.5","release":"2024-02-07 10:40:08","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1110,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.0.5"},{"name":"5.0.6","release":"2024-02-17 18:08:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":897,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.0.6"},{"name":"5.0.7","release":"2024-03-05 17:54:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2007,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.0.7"},{"name":"4.2.5","release":"2024-03-05 17:56:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5003,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/4.2.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/4.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/4.2.5"},{"name":"5.1.0","release":"2024-04-09 17:24:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.1.0"},{"name":"5.1.1","release":"2024-04-09 17:34:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":57,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.1.1"},{"name":"5.1.2","release":"2024-04-10 10:06:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":671,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.1.2"},{"name":"5.2.0","release":"2024-04-15 10:14:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.2.0"},{"name":"5.2.1","release":"2024-04-15 13:28:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.2.1"},{"name":"5.2.2","release":"2024-04-15 14:50:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":465,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.2.2"},{"name":"5.2.3","release":"2024-04-24 17:56:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1028,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.2.3"},{"name":"5.2.4","release":"2024-05-13 19:44:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2964,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.2.4"},{"name":"5.2.5","release":"2024-06-27 08:22:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6074,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.2.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.2.5"},{"name":"5.3.0","release":"2025-02-20 14:54:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4284,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.3.0"},{"name":"5.4.0","release":"2025-11-21 11:16:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":146,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.4.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.4.0"},{"name":"5.4.1","release":"2025-11-24 20:18:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":526,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.4.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.4.1"},{"name":"5.5.0","release":"2025-12-04 17:36:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.5.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.5.0"},{"name":"5.5.1","release":"2025-12-04 17:42:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.5.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.5.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.5.1"},{"name":"5.5.2","release":"2025-12-04 17:48:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.5.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.5.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.5.2"},{"name":"5.5.3","release":"2025-12-04 17:58:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.5.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.5.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.5.3"},{"name":"5.5.4","release":"2025-12-04 18:06:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.5.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.5.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.5.4"},{"name":"5.5.5","release":"2025-12-04 18:10:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.5.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.5.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.5.5"},{"name":"5.5.7","release":"2025-12-04 21:04:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3820,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.5.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.5.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.5.7"},{"name":"5.6.0","release":"2026-05-06 08:08:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.6.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.6.0"},{"name":"5.6.1","release":"2026-05-06 09:42:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5274,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.6.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.6.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.6.1"},{"name":"6.0.0","release":"2026-09-15 18:24:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/6.0.0"},{"name":"6.0.1","release":"2026-09-15 18:40:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":67,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/6.0.1"},{"name":"6.1.1","release":"2026-10-21 21:00:21","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/6.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/6.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/6.1.1"},{"name":"5.7.1","release":"2026-10-21 21:14:05","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.7.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.7.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.7.1"},{"name":"6.1.2","release":"2026-10-21 21:26:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/6.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/6.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/6.1.2"},{"name":"5.7.2","release":"2026-10-21 21:26:23","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":107,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.7.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.7.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.7.2"},{"name":"6.2.0","release":"2026-10-22 15:14:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/6.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/6.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/6.2.0"},{"name":"5.8.0","release":"2026-10-22 15:14:44","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":166,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ChatGPT\/5.8.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ChatGPT\/commits\/5.8.0","readmeHtml":{"description":"\n\n<p>Ask questions about your analytics and get AI insights on any Matomo report with ChatGPT or any OpenAI-compatible API, plus an optional agent that queries your live reports through the Matomo MCP tools.<\/p>\n\n<h3>Features<\/h3>\n\n<h4>Insights on any report<\/h4>\n\n<ul>\n<li>An <strong>Insights<\/strong> button (AI icon) next to the report header opens an insight panel that analyses the report you are looking at, then lets you ask follow-up questions.<\/li>\n<li>The whole report is analysed, not only the rows visible on screen: the plugin sends a compact payload with the rows, the report totals and the names and units of the metrics.<\/li>\n<li>The analysis follows what you see: the active segment, the period and date, and the compared periods or segments.<\/li>\n<li>The analysis also follows the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>Works with data tables, evolution graphs, goals, ecommerce, custom dimensions, custom reports, row evolution and the other reports Matomo declares as widgets.<\/li>\n<li>When a widget has no report data, or the report cannot be loaded (for example a missing access), a clear message is displayed instead of sending the error to the model.<\/li>\n<li>The panel is an accessible dialog: keyboard navigation, focus kept inside the panel, Escape to close.<\/li>\n<\/ul>\n\n<h4>Chat<\/h4>\n\n<ul>\n<li>A <strong>ChatGPT<\/strong> page in the main menu, with suggested questions to start a conversation and a \"New conversation\" button.<\/li>\n<li>Streaming answers, with an automatic fallback when the endpoint does not stream.<\/li>\n<li>Auto-scroll that follows the answer while it is written, stops when you scroll up, and a button to jump back to the latest message.<\/li>\n<li>Markdown answers with scrollable tables and code blocks, and buttons to copy an answer or a code block.<\/li>\n<li>Enter sends the message, Shift+Enter adds a new line.<\/li>\n<\/ul>\n\n<h4>Agent mode, with AI Providers and MCP Server<\/h4>\n\n<p>When a provider is connected in <strong>AI Providers<\/strong> and the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent:<\/p>\n\n<ul>\n<li>The agent queries your live reports, websites, goals, dimensions and segments by itself, for any period, to answer with real figures.<\/li>\n<li>A timeline shows each Matomo tool used for an answer and its status.<\/li>\n<li>Tools run inside Matomo with the permissions of the current user: no public URL, OAuth client or extra token is needed.<\/li>\n<li>Write actions (for example creating a goal, an annotation or a segment) are only possible when McpServer allows write methods, and only after the agent has described the exact change and you have confirmed it explicitly in the conversation. This rule is added outside the editable prompts, so it cannot be removed by a custom prompt.<\/li>\n<li>When something is missing, the chat recommends the next step, one at a time: activate AI Providers, connect a provider, install, activate or enable MCP Server, allow write methods. Super users get a direct link for each step, other users are asked to contact their Matomo administrator.<\/li>\n<\/ul>\n\n<p>The agent mode is optional. Without AI Providers or McpServer, the plugin keeps working with its own settings. With AI Providers but without McpServer, the connected provider answers without tools.<\/p>\n\n<h4>Connection and models<\/h4>\n\n<ul>\n<li><strong>One key is enough<\/strong>, used in this order: the API key set for the website, then the provider connected in AI Providers, then the general API key of the plugin. Keys are never copied from one place to another.<\/li>\n<li>When a provider is connected in AI Providers, it takes over: the host, API key and model of the general settings are displayed read-only, and are used again if AI Providers is deactivated. A key set for a website still overrides AI Providers for that website (the agent mode is then not used for that website).<\/li>\n<li>Works with OpenAI (default) and any OpenAI-compatible endpoint served over HTTPS, such as Azure OpenAI or a self-hosted server. The API key is optional on a custom host.<\/li>\n<li>The general API key is only sent to the general host: a website using its own host never receives it.<\/li>\n<li>Preset models, including <strong>Latest recommended<\/strong> (the default, which follows the model recommended by each plugin release, currently GPT 6 Astra), or any custom model name.<\/li>\n<li>When a model is deprecated, retired or not available to your OpenAI account, the chat explains it and links to the settings instead of showing the raw API error.<\/li>\n<\/ul>\n\n<h4>Prompts<\/h4>\n\n<ul>\n<li>Default prompts written for analytics: the chat answers as a senior analytics consultant (direct answer, key figures, prioritised recommendations, no invented figures), and insights follow a fixed structure (summary, key figures, notable patterns, recommendations).<\/li>\n<li>Default prompts of previous versions are upgraded automatically to the new defaults, in the language of each user. Custom prompts are kept.<\/li>\n<li>A prompt equal to the default is not stored, so future improvements of the defaults reach you. A <strong>Reset to default<\/strong> button restores the default prompts.<\/li>\n<\/ul>\n\n<h4>More<\/h4>\n\n<ul>\n<li>Interface translated into 13 languages: English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/li>\n<li>Follows the Matomo light and dark themes.<\/li>\n<li>Rate limit of 30 AI requests per hour, per user and per website, configurable in <code>config\/config.ini.php<\/code>.<\/li>\n<li>HTTP API: <code>ChatGPT.getResponse<\/code>, <code>ChatGPT.getStreamingResponse<\/code>, <code>ChatGPT.getInsights<\/code>, <code>ChatGPT.getSiteSettings<\/code>, <code>ChatGPT.setSiteSettings<\/code> and <code>ChatGPT.setSystemSettings<\/code>.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6 (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>PHP: the version required by your Matomo 5 (PHP 8.1 or higher for the agent mode, required by McpServer)<\/li>\n<li>One of: an OpenAI API key, an OpenAI-compatible HTTPS endpoint, or a provider connected in AI Providers<\/li>\n<li>Optional, for the agent mode: the <strong>AI Providers<\/strong> plugin (bundled with Matomo 5.13 and later) with a connected provider, and the <strong>McpServer<\/strong> plugin from the Marketplace (Matomo 5.8 or higher, PHP 8.1 or higher). On older setups the agent mode is not offered and the chat keeps working with the plugin settings. Write actions also require write methods to be allowed in the McpServer settings (Raw Matomo API tool access).<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate <strong>ChatGPT<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, open <strong>Administration &gt; System &gt; ChatGPT<\/strong>:\n\n<ul>\n<li><strong>Connection<\/strong> card: host (an HTTPS URL), API key and model. Each card is saved on its own. The saved key is never displayed, and a <strong>Delete key<\/strong> button removes it.<\/li>\n<li><strong>Privacy<\/strong> card: check <strong>Allow sending Matomo data to the AI provider<\/strong>, off by default. Until a super user checks it, nothing is sent to the provider. The card shows where the data goes, and masks e-mail and IP addresses, removes URL query strings and excludes visitor-level data, all three on by default.<\/li>\n<li><strong>Prompts<\/strong> card: chat and insight base prompts, with a <strong>Reset to default<\/strong> button.<\/li>\n<li>If a provider is connected in <strong>Administration &gt; System &gt; AI Providers<\/strong>, the connection fields are read-only and AI Providers is used.<\/li>\n<\/ul><\/li>\n<li>Optionally, override the settings for a website in <strong>Administration &gt; Websites &gt; ChatGPT<\/strong> (website admin access): host, API key, model and prompts, with a <strong>Delete key<\/strong> button and a <strong>Use the general prompts<\/strong> button. Empty fields use the general settings.<\/li>\n<li>For the agent mode, connect a provider in AI Providers, then install, activate and enable <strong>McpServer<\/strong> (<strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>). The chat guides you through each missing step.<\/li>\n<li><p>Optionally, as a server administrator, tune the plugin in a <code>[ChatGPT]<\/code> section of <code>config\/config.ini.php<\/code>. Every key is optional:<\/p>\n\n<pre><code>[ChatGPT]\n; name shown in the top menu, on the chat page and in the insights panel, 40 characters max\ndisplay_name = \"Company AI\"\n; AI requests per user and per website within the window, 0 disables the limit\nrate_limit_requests = 30\n; length of the window, in seconds\nrate_limit_window = 3600\n<\/code><\/pre><\/li>\n<\/ol>\n\n<p>Then open the <strong>ChatGPT<\/strong> page in the main menu, or click the <strong>Insights<\/strong> button in the header of a report.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>Insights send the data of the report you are looking at (labels, metrics and totals), its period, segment and comparisons, and the conversation, to the configured endpoint: OpenAI by default, your custom host, or the provider connected in AI Providers.<\/li>\n<li>The chat sends your messages and the prompt. In agent mode, the results of the Matomo tools the agent calls are also sent to the provider.<\/li>\n<li>Nothing is sent to the AI provider until a super user checks <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; ChatGPT<\/strong>, <strong>Privacy<\/strong> card. It is off by default: until then, the chat and the insights tell users to ask a super user to allow it.<\/li>\n<li>Before sending, e-mail and IP addresses are replaced with <code>[email]<\/code> and <code>[ip]<\/code>, and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default and can be turned off in the same <strong>Privacy<\/strong> card.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default: the insights and the agent cannot read it until a super user unchecks <strong>Exclude visitor-level data<\/strong>.<\/li>\n<li>Report labels can hold values set by visitors (page titles, URLs, referrers, campaign names, custom dimensions). Check the retention and privacy terms of the provider before connecting it, and prefer a self-hosted or EU-hosted endpoint when your data policy requires it.<\/li>\n<li>The chat shows every user a notice stating that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the Matomo administrator.<\/li>\n<li>When a Matomo tool fails in agent mode, the model only receives a generic error with a reference: the details stay in the Matomo logs.<\/li>\n<li>Insight requests are restricted to the report and data methods of widgets declared by Matomo, never to an arbitrary API method, and run with the permissions of the current user.<\/li>\n<li>API keys are stored in the Matomo settings and are never sent back to the browser. Conversations are not stored by the plugin.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We connect Matomo to AI assistants, BI tools and the rest of your stack with <a href=\"https:\/\/openmost.com\/matomo\/services\/integration?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=chatgpt\">Matomo integrations<\/a> built on official APIs, with documented and privacy-checked data flows.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How do I install and configure this plugin?<\/strong><\/p>\n\n<ol>\n<li>Install and activate <strong>ChatGPT<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, open <strong>Administration &gt; System &gt; ChatGPT<\/strong> and set the host, API key and model in the <strong>Connection<\/strong> card, or connect a provider in <strong>Administration &gt; System &gt; AI Providers<\/strong>. In the <strong>Privacy<\/strong> card, check <strong>Allow sending Matomo data to the AI provider<\/strong>: it is off by default.<\/li>\n<li>Optionally, override the settings for a website in <strong>Administration &gt; Websites &gt; ChatGPT<\/strong>.<\/li>\n<\/ol>\n\n<p>You can also download the plugin from <a href=\"https:\/\/github.com\/openmost\/ChatGPT\">GitHub<\/a>, extract it to your <code>plugins\/<\/code> folder and activate it.<\/p>\n\n<p><strong>Can I change the rate limit or the name shown in the menu?<\/strong><\/p>\n\n<p>Yes, in a <code>[ChatGPT]<\/code> section of <code>config\/config.ini.php<\/code>: <code>display_name<\/code> renames the plugin in the top menu, on the chat page and in the insights panel, for example when you use a self-hosted model. <code>rate_limit_requests<\/code> sets the AI requests per user and per website (30 by default, 0 disables the limit) and <code>rate_limit_window<\/code> the length of the window in seconds (3600 by default). These values are kept when the plugin is updated.<\/p>\n\n<p><strong>The chat says that data sharing is not allowed<\/strong><\/p>\n\n<p>No Matomo data leaves your instance without an explicit decision: a super user must check <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; ChatGPT<\/strong>, <strong>Privacy<\/strong> card. Other users are asked to contact a super user.<\/p>\n\n<p><strong>What do I need to make it work?<\/strong><\/p>\n\n<p>One of: an OpenAI API key (https:\/\/platform.openai.com\/), an OpenAI-compatible endpoint served over HTTPS, or a provider connected in AI Providers. On a custom host, the API key is optional: without a key, no Authorization header is sent.<\/p>\n\n<p><strong>Which API key is used?<\/strong><\/p>\n\n<p>One key is enough. The plugin uses, in this order: the API key set for the website in <strong>Administration &gt; Websites &gt; ChatGPT<\/strong>, then the provider connected in <strong>Administration &gt; System &gt; AI Providers<\/strong>, then the API key of the general settings. Keys are never copied from one place to another.<\/p>\n\n<p>When AI Providers is connected, it takes over: the host, API key and model of the general settings are displayed read-only, and are used again if AI Providers is deactivated. A key set for a website still overrides AI Providers for that website.<\/p>\n\n<p><strong>How do I remove a saved API key?<\/strong><\/p>\n\n<p>Use the <strong>Delete key<\/strong> button of the <strong>Connection<\/strong> card, on the general settings page or on the settings page of the website. Leaving the field empty keeps the saved key.<\/p>\n\n<p><strong>Can I use models other than OpenAI's?<\/strong><\/p>\n\n<p>Yes. Any OpenAI-compatible chat completions endpoint served over HTTPS works, such as Azure OpenAI or a self-hosted server. You can also connect any provider supported by AI Providers. Type the model name in the <strong>Model (Custom)<\/strong> field when it is not in the preset list.<\/p>\n\n<p><strong>Which models are in the preset list?<\/strong><\/p>\n\n<ul>\n<li>Latest recommended (default): follows the model recommended by each plugin release, currently GPT 6 Astra<\/li>\n<li>GPT 6 Astra, GPT 6.1 Sol, GPT 6 Sol, GPT 6 Luna<\/li>\n<li>GPT 5.6 Sol, GPT 5.6 Terra, GPT 5.6 Luna<\/li>\n<li>GPT 5.5, GPT 5.4, GPT 5.4 mini, GPT 5.4 nano<\/li>\n<li>GPT 5.2, GPT 5.1, GPT 5, GPT 5 mini, GPT 5 nano<\/li>\n<li>GPT 4.1, GPT 4.1 mini, GPT 4o, GPT 4o mini<\/li>\n<\/ul>\n\n<p>Reasoning models (o-series), <code>*-pro<\/code> and <code>*-codex<\/code> variants are not listed: they are tuned for one-shot analysis or code, not for a conversation about report data.<\/p>\n\n<p><strong>The chat says my model is not available<\/strong><\/p>\n\n<p>OpenAI retires old models, and some models are not available to every account. Choose another model in the settings, for example \"Latest recommended\". The chat links to the settings page you can change.<\/p>\n\n<p><strong>What is the agent mode?<\/strong><\/p>\n\n<p>When a provider is connected in AI Providers and the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent: they query your live reports, websites, goals, dimensions and segments through the Matomo tools to answer with real figures. A timeline shows each tool used.<\/p>\n\n<p>To enable it, connect a provider in AI Providers, then install, activate and enable McpServer in <strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>. The chat recommends each missing step, with a direct link for super users.<\/p>\n\n<p><strong>Can the agent change things in Matomo?<\/strong><\/p>\n\n<p>Only if McpServer allows write methods (Raw Matomo API tool access), and only with your confirmation: before any create, update or delete, the agent describes the exact change and waits for your explicit confirmation in the conversation. This rule cannot be removed by a custom prompt. The agent never has more access than the current user.<\/p>\n\n<p><strong>Do I need to expose my Matomo instance or configure OAuth for the agent?<\/strong><\/p>\n\n<p>No. The agent calls the Matomo tools inside your Matomo, with the permissions of the logged in user. It also works on private and intranet instances.<\/p>\n\n<p><strong>Does the plugin work without the agent mode?<\/strong><\/p>\n\n<p>Yes. Without AI Providers or McpServer, the chat and the insights use the host, API key and model of the plugin settings. With AI Providers but without McpServer, the connected provider answers without tools.<\/p>\n\n<p><strong>What do insights analyse?<\/strong><\/p>\n\n<p>The whole report you are looking at, not only the visible rows: its rows, totals and metrics, with the active segment, period and comparisons. Insights work on data tables, evolution graphs, goals, custom reports and the other reports Matomo declares as widgets.<\/p>\n\n<p><strong>Can I customise the prompts?<\/strong><\/p>\n\n<p>Yes, in the <strong>Prompts<\/strong> card of the general settings or of a website. The <strong>Reset to default<\/strong> button restores the default prompts, and on a website, <strong>Use the general prompts<\/strong> makes it follow the general prompts again. Default prompts of previous versions are upgraded automatically, custom prompts are kept.<\/p>\n\n<p><strong>Is my data sent to OpenAI?<\/strong><\/p>\n\n<p>Insights send the data of the report you are looking at (labels, metrics, totals, period, segment and comparisons) and the conversation to the configured endpoint: OpenAI by default, your custom host, or the provider connected in AI Providers. In agent mode, the results of the tools the agent calls are sent too. Raw visitor data is never sent, unless the report itself contains it, such as the Visits Log. Conversations are not stored by the plugin.<\/p>\n\n<p><strong>Is there a usage limit?<\/strong><\/p>\n\n<p>Yes, 30 AI requests per hour, per user and per website, to protect your API budget.<\/p>\n\n<p><strong>Which languages are supported?<\/strong><\/p>\n\n<p>English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/p>\n\n<p><strong>What are the requirements?<\/strong><\/p>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6<\/li>\n<li>For the agent mode: a provider connected in AI Providers (bundled with Matomo 5.13 and later) and the McpServer plugin (Matomo 5.8 or higher, PHP 8.1 or higher). On older setups, the chat keeps working with the plugin settings.<\/li>\n<\/ul>\n\n<p><strong>How do I get support?<\/strong><\/p>\n\n<p>Email ronan@openmost.com, or open an issue on <a href=\"https:\/\/github.com\/openmost\/ChatGPT\/issues\">GitHub<\/a>. More on https:\/\/openmost.com\/matomo\/extensions\/chatgpt.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Features<\/h3>\n\n<h4>Insights on any report<\/h4>\n\n<ul>\n<li>An <strong>Insights<\/strong> button (AI icon) next to the report header opens an insight panel that analyses the report you are looking at, then lets you ask follow-up questions.<\/li>\n<li>The whole report is analysed, not only the rows visible on screen: the plugin sends a compact payload with the rows, the report totals and the names and units of the metrics.<\/li>\n<li>The analysis follows what you see: the active segment, the period and date, and the compared periods or segments.<\/li>\n<li>The analysis also follows the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>Works with data tables, evolution graphs, goals, ecommerce, custom dimensions, custom reports, row evolution and the other reports Matomo declares as widgets.<\/li>\n<li>When a widget has no report data, or the report cannot be loaded (for example a missing access), a clear message is displayed instead of sending the error to the model.<\/li>\n<li>The panel is an accessible dialog: keyboard navigation, focus kept inside the panel, Escape to close.<\/li>\n<\/ul>\n\n<h4>Chat<\/h4>\n\n<ul>\n<li>A <strong>ChatGPT<\/strong> page in the main menu, with suggested questions to start a conversation and a \"New conversation\" button.<\/li>\n<li>Streaming answers, with an automatic fallback when the endpoint does not stream.<\/li>\n<li>Auto-scroll that follows the answer while it is written, stops when you scroll up, and a button to jump back to the latest message.<\/li>\n<li>Markdown answers with scrollable tables and code blocks, and buttons to copy an answer or a code block.<\/li>\n<li>Enter sends the message, Shift+Enter adds a new line.<\/li>\n<\/ul>\n\n<h4>Agent mode, with AI Providers and MCP Server<\/h4>\n\n<p>When a provider is connected in <strong>AI Providers<\/strong> and the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent:<\/p>\n\n<ul>\n<li>The agent queries your live reports, websites, goals, dimensions and segments by itself, for any period, to answer with real figures.<\/li>\n<li>A timeline shows each Matomo tool used for an answer and its status.<\/li>\n<li>Tools run inside Matomo with the permissions of the current user: no public URL, OAuth client or extra token is needed.<\/li>\n<li>Write actions (for example creating a goal, an annotation or a segment) are only possible when McpServer allows write methods, and only after the agent has described the exact change and you have confirmed it explicitly in the conversation. This rule is added outside the editable prompts, so it cannot be removed by a custom prompt.<\/li>\n<li>When something is missing, the chat recommends the next step, one at a time: activate AI Providers, connect a provider, install, activate or enable MCP Server, allow write methods. Super users get a direct link for each step, other users are asked to contact their Matomo administrator.<\/li>\n<\/ul>\n\n<p>The agent mode is optional. Without AI Providers or McpServer, the plugin keeps working with its own settings. With AI Providers but without McpServer, the connected provider answers without tools.<\/p>\n\n<h4>Connection and models<\/h4>\n\n<ul>\n<li><strong>One key is enough<\/strong>, used in this order: the API key set for the website, then the provider connected in AI Providers, then the general API key of the plugin. Keys are never copied from one place to another.<\/li>\n<li>When a provider is connected in AI Providers, it takes over: the host, API key and model of the general settings are displayed read-only, and are used again if AI Providers is deactivated. A key set for a website still overrides AI Providers for that website (the agent mode is then not used for that website).<\/li>\n<li>Works with OpenAI (default) and any OpenAI-compatible endpoint served over HTTPS, such as Azure OpenAI or a self-hosted server. The API key is optional on a custom host.<\/li>\n<li>The general API key is only sent to the general host: a website using its own host never receives it.<\/li>\n<li>Preset models, including <strong>Latest recommended<\/strong> (the default, which follows the model recommended by each plugin release, currently GPT 6 Astra), or any custom model name.<\/li>\n<li>When a model is deprecated, retired or not available to your OpenAI account, the chat explains it and links to the settings instead of showing the raw API error.<\/li>\n<\/ul>\n\n<h4>Prompts<\/h4>\n\n<ul>\n<li>Default prompts written for analytics: the chat answers as a senior analytics consultant (direct answer, key figures, prioritised recommendations, no invented figures), and insights follow a fixed structure (summary, key figures, notable patterns, recommendations).<\/li>\n<li>Default prompts of previous versions are upgraded automatically to the new defaults, in the language of each user. Custom prompts are kept.<\/li>\n<li>A prompt equal to the default is not stored, so future improvements of the defaults reach you. A <strong>Reset to default<\/strong> button restores the default prompts.<\/li>\n<\/ul>\n\n<h4>More<\/h4>\n\n<ul>\n<li>Interface translated into 13 languages: English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/li>\n<li>Follows the Matomo light and dark themes.<\/li>\n<li>Rate limit of 30 AI requests per hour, per user and per website, configurable in <code>config\/config.ini.php<\/code>.<\/li>\n<li>HTTP API: <code>ChatGPT.getResponse<\/code>, <code>ChatGPT.getStreamingResponse<\/code>, <code>ChatGPT.getInsights<\/code>, <code>ChatGPT.getSiteSettings<\/code>, <code>ChatGPT.setSiteSettings<\/code> and <code>ChatGPT.setSystemSettings<\/code>.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6 (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>PHP: the version required by your Matomo 5 (PHP 8.1 or higher for the agent mode, required by McpServer)<\/li>\n<li>One of: an OpenAI API key, an OpenAI-compatible HTTPS endpoint, or a provider connected in AI Providers<\/li>\n<li>Optional, for the agent mode: the <strong>AI Providers<\/strong> plugin (bundled with Matomo 5.13 and later) with a connected provider, and the <strong>McpServer<\/strong> plugin from the Marketplace (Matomo 5.8 or higher, PHP 8.1 or higher). On older setups the agent mode is not offered and the chat keeps working with the plugin settings. Write actions also require write methods to be allowed in the McpServer settings (Raw Matomo API tool access).<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate <strong>ChatGPT<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, open <strong>Administration &gt; System &gt; ChatGPT<\/strong>:\n\n<ul>\n<li><strong>Connection<\/strong> card: host (an HTTPS URL), API key and model. Each card is saved on its own. The saved key is never displayed, and a <strong>Delete key<\/strong> button removes it.<\/li>\n<li><strong>Privacy<\/strong> card: check <strong>Allow sending Matomo data to the AI provider<\/strong>, off by default. Until a super user checks it, nothing is sent to the provider. The card shows where the data goes, and masks e-mail and IP addresses, removes URL query strings and excludes visitor-level data, all three on by default.<\/li>\n<li><strong>Prompts<\/strong> card: chat and insight base prompts, with a <strong>Reset to default<\/strong> button.<\/li>\n<li>If a provider is connected in <strong>Administration &gt; System &gt; AI Providers<\/strong>, the connection fields are read-only and AI Providers is used.<\/li>\n<\/ul><\/li>\n<li>Optionally, override the settings for a website in <strong>Administration &gt; Websites &gt; ChatGPT<\/strong> (website admin access): host, API key, model and prompts, with a <strong>Delete key<\/strong> button and a <strong>Use the general prompts<\/strong> button. Empty fields use the general settings.<\/li>\n<li>For the agent mode, connect a provider in AI Providers, then install, activate and enable <strong>McpServer<\/strong> (<strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>). The chat guides you through each missing step.<\/li>\n<li><p>Optionally, as a server administrator, tune the plugin in a <code>[ChatGPT]<\/code> section of <code>config\/config.ini.php<\/code>. Every key is optional:<\/p>\n\n<pre><code>[ChatGPT]\n; name shown in the top menu, on the chat page and in the insights panel, 40 characters max\ndisplay_name = \"Company AI\"\n; AI requests per user and per website within the window, 0 disables the limit\nrate_limit_requests = 30\n; length of the window, in seconds\nrate_limit_window = 3600\n<\/code><\/pre><\/li>\n<\/ol>\n\n<p>Then open the <strong>ChatGPT<\/strong> page in the main menu, or click the <strong>Insights<\/strong> button in the header of a report.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>Insights send the data of the report you are looking at (labels, metrics and totals), its period, segment and comparisons, and the conversation, to the configured endpoint: OpenAI by default, your custom host, or the provider connected in AI Providers.<\/li>\n<li>The chat sends your messages and the prompt. In agent mode, the results of the Matomo tools the agent calls are also sent to the provider.<\/li>\n<li>Nothing is sent to the AI provider until a super user checks <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; ChatGPT<\/strong>, <strong>Privacy<\/strong> card. It is off by default: until then, the chat and the insights tell users to ask a super user to allow it.<\/li>\n<li>Before sending, e-mail and IP addresses are replaced with <code>[email]<\/code> and <code>[ip]<\/code>, and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default and can be turned off in the same <strong>Privacy<\/strong> card.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default: the insights and the agent cannot read it until a super user unchecks <strong>Exclude visitor-level data<\/strong>.<\/li>\n<li>Insight requests are restricted to the report and data methods of widgets declared by Matomo, never to an arbitrary API method, and run with the permissions of the current user.<\/li>\n<li>API keys are stored in the Matomo settings and are never sent back to the browser. Conversations are not stored by the plugin.<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>5.8.0<\/h3>\n\n<ul>\n<li>Insights follow the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis (<a href=\"https:\/\/github.com\/openmost\/ChatGPT\/issues\/16\">#16<\/a>).<\/li>\n<li>The rate limit is configurable in a <code>[ChatGPT]<\/code> section of <code>config\/config.ini.php<\/code>: <code>rate_limit_requests<\/code> (30 by default, 0 disables it) and <code>rate_limit_window<\/code> in seconds (3600 by default) (<a href=\"https:\/\/github.com\/openmost\/ChatGPT\/issues\/17\">#17<\/a>).<\/li>\n<li>The name shown in the top menu, on the chat page and in the insights panel is configurable with <code>display_name<\/code> in the same section, for example for a self-hosted model (<a href=\"https:\/\/github.com\/openmost\/ChatGPT\/issues\/15\">#15<\/a>).<\/li>\n<\/ul>\n\n<h3>5.7.2<\/h3>\n\n<ul>\n<li>Fix: a default prompt saved with Windows (CRLF) line breaks is recognised again on Linux servers, so it follows the new default instead of being kept as a custom prompt.<\/li>\n<\/ul>\n\n<h3>5.7.1<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>5.7.0<\/h3>\n\n<blockquote>\n  <p><strong>Action required.<\/strong> Nothing is sent to the AI provider any more until a super user checks <em>Allow sending Matomo data to the AI provider<\/em> in <em>Administration &gt; System &gt; ChatGPT<\/em>, Privacy card. Until then, the chat and the insights ask users to contact a super user. Settings saved for your websites are kept, and custom prompts are not changed.<\/p>\n<\/blockquote>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<ul>\n<li>New privacy settings in <em>Administration &gt; System &gt; ChatGPT<\/em>, <em>Privacy<\/em> card: nothing is sent to the AI provider until a super user checks <em>Allow sending Matomo data to the AI provider<\/em>, off by default. They also show where the data goes.<\/li>\n<li>Before sending, e-mail and IP addresses are masked and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default from the insights and the agent.<\/li>\n<li>The chat tells users that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the administrator.<\/li>\n<li>When a Matomo tool fails in agent mode, the AI provider only receives a generic error with a reference: the details stay in the Matomo logs.<\/li>\n<\/ul>\n\n<p><strong>New: agent mode with the McpServer plugin<\/strong><\/p>\n\n<ul>\n<li>With a provider connected in AI Providers (Matomo 5.13 or higher) and the McpServer plugin enabled, the chat and the insight panel work as an agent: they query your live reports, websites, goals, dimensions and segments through the Matomo tools, inside Matomo, with the permissions of the current user.<\/li>\n<li>Write actions are only performed when McpServer allows write methods, and only after the agent has described the change and the user has confirmed it explicitly, whatever the base prompt says.<\/li>\n<li>The chat recommends, one step at a time, how to unlock the agent mode: activate AI Providers, connect a provider, install, activate or enable MCP Server, allow its write methods. Super users get a direct link for each step.<\/li>\n<li>One key is enough, in this order: the API key of the website, then the provider connected in <em>Administration &gt; System &gt; AI Providers<\/em>, then the general API key. When AI Providers is connected, it takes over the chat, the insights and the agent, and the general connection fields become read-only. A website key still overrides AI Providers for that website.<\/li>\n<li>Without AI Providers or McpServer, the plugin works as before with its own host, API key and model settings.<\/li>\n<\/ul>\n\n<p><strong>Settings<\/strong><\/p>\n\n<ul>\n<li>New <em>Administration &gt; System &gt; ChatGPT<\/em> page for the general settings, with a <em>Connection<\/em> card and a <em>Prompts<\/em> card saved separately, and a <em>Delete key<\/em> button. The settings are no longer listed in <em>Administration &gt; General settings<\/em>.<\/li>\n<li>Website settings moved from the website edit form to a dedicated <em>Administration &gt; Websites &gt; ChatGPT<\/em> page. New API methods <code>ChatGPT.getSiteSettings<\/code>, <code>ChatGPT.setSiteSettings<\/code> and <code>ChatGPT.setSystemSettings<\/code>. Saved API keys are never sent back to the browser.<\/li>\n<li>New default chat and insight prompts, written for analytics. Default prompts of previous versions are upgraded automatically in the language of each user, custom prompts are kept, and a <em>Reset to default<\/em> button restores the defaults.<\/li>\n<li>The default prompts ask the assistant to flag the figures of a period that has not ended yet as partial and to compare the same number of elapsed days instead of calling a drop a decline, and to compute every difference, percentage and ratio from the exact numbers. Installs still on a previous default prompt get the new one, custom prompts are kept.<\/li>\n<li>New \"Latest recommended\" model, the default for new installs (currently GPT 6 Astra), and an updated model list without the models deprecated by OpenAI. A deprecated or unavailable model is explained in the chat with a link to the settings. The model saved by previous versions is kept.<\/li>\n<li>The API key is optional on a custom host (self-hosted or compatible endpoint), as the documentation states: the chat, the insights and the plugin assets work with a keyless custom host, and no Authorization header is sent without a key. The default OpenAI host still requires a key.<\/li>\n<li>The host is checked with the same HTTPS rule when the settings are saved and when a request is sent, and the configuration errors of a request (host, API key, model, HTTPS) are translated.<\/li>\n<\/ul>\n\n<p><strong>Chat and insights<\/strong><\/p>\n\n<ul>\n<li>Redesigned chat: accessible, keyboard friendly insight panel, copy buttons, scrollable tables and code blocks, a timeline of the tools used by the agent, ChatGPT-like auto-scroll, and suggested questions on the ChatGPT page.<\/li>\n<li>The send button and the logo tiles use the ChatGPT brand colour.<\/li>\n<li>The insight panels of ChatGPT, Mistral AI, Claude and Ask AI close each other when one opens, and closing one no longer lets the page scroll under the panel that is still open.<\/li>\n<li>Insights analyse the full report as a compact payload with its totals, follow the active segment, period and comparisons, and also work on evolution graphs, goals, custom reports and more. Errors are displayed as clean messages, without technical details.<\/li>\n<li>Wide answer tables fit the insight panel, their columns wrap or scroll sideways instead of being cut off on the right.<\/li>\n<li>Once the limit of 30 requests per hour is reached, the chat and the insight panel show the rate limit message in the language of the user instead of a generic error.<\/li>\n<li>Interface translated into 13 languages, including the rate limit message. The help texts point to <em>Administration &gt; System &gt; AI Providers<\/em>.<\/li>\n<\/ul>\n\n<p><strong>Security<\/strong><\/p>\n\n<ul>\n<li>Insight requests are restricted to the report and data methods of the widgets declared by Matomo.<\/li>\n<li>The general API key is only sent to the general host, a website using its own host never receives it.<\/li>\n<li>AI answers are sanitized with DOMPurify before being displayed, which fixes links that could run JavaScript.<\/li>\n<li>The general host must be an HTTPS URL: an <code>http:\/\/<\/code> host, which made every request fail, is now refused on save with a clear error.<\/li>\n<\/ul>\n\n<p><strong>Compatibility<\/strong><\/p>\n\n<ul>\n<li>Compatible again with Matomo 5.0.0 or higher, below 6: every Matomo theme variable used by the chat and the insight panel keeps the light theme value of Matomo as a fallback, so the releases without these variables show the light look. The agent mode needs AI Providers (Matomo 5.13 or higher) and McpServer (Matomo 5.8 or higher, PHP 8.1 or higher).<\/li>\n<li>Smaller package: the Vue source maps, which Matomo does not load, are no longer shipped.<\/li>\n<\/ul>\n\n<p><strong>Documentation<\/strong><\/p>\n\n<ul>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>5.6.2<\/h3>\n\n<ul>\n<li>Security: restrict insight requests to Matomo reports.<\/li>\n<\/ul>\n\n<h3>5.6.1<\/h3>\n\n<p>Support fallback color values for the Matomo releases without the theme variables<\/p>\n\n<h3>5.6.0<\/h3>\n\n<p><strong>Refreshed model list and visible error reporting<\/strong><\/p>\n\n<h4>New Features<\/h4>\n\n<ul>\n<li><strong>Refreshed preset model list<\/strong>: Added the GPT 5.5, GPT 5.4, GPT 5.1 and GPT 5 conversational families. Default model is now GPT 5.5.<\/li>\n<li><strong>Curated for chat<\/strong>: The preset list now only contains models suited for back-and-forth discussion of report data. Reasoning models (o-series) and <code>*-pro<\/code> variants have been removed because they target one-shot deep analysis rather than conversation, which produced a poor chat experience.<\/li>\n<\/ul>\n\n<h4>Improvements<\/h4>\n\n<ul>\n<li><strong>Visible error notices<\/strong>: Errors returned by the upstream model API (invalid model, quota, auth, etc.) are now surfaced as a danger notice inside the chat instead of failing silently. This works for both streaming and non-streaming requests.<\/li>\n<li><strong>HTTP status detection in streaming<\/strong>: The streaming endpoint now inspects the upstream <code>Content-Type<\/code> and HTTP status, so non-SSE error responses are converted into a structured error event the client can render.<\/li>\n<li><strong>Snappier error UI<\/strong>: When an error event is received, the loading spinner is cleared immediately so the notice appears without delay.<\/li>\n<li><strong>Dark theme support<\/strong>: All chat and insight components use Matomo's native CSS theme variables (<code>--theme-color-background-contrast<\/code>, <code>--theme-color-border<\/code>, etc.), so the UI automatically follows Matomo's light\/dark theme without any extra configuration.<\/li>\n<\/ul>\n\n<h4>Notes for Custom Models<\/h4>\n\n<p>The \"Model (Custom)\" field still accepts any model name, including custom or self-hosted ones. If you enter a model that the configured endpoint cannot serve (for example, a <code>*-pro<\/code> variant on <code>\/v1\/chat\/completions<\/code>), the upstream error message will now be shown directly in the chat.<\/p>\n\n<h3>5.5.7<\/h3>\n\n<ul>\n<li>update: documentation<\/li>\n<li>update: lists and markdown style<\/li>\n<\/ul>\n\n<h3>5.5.5<\/h3>\n\n<ul>\n<li>fix: constant declaration issue cause issue on updating<\/li>\n<\/ul>\n\n<h3>5.5.0<\/h3>\n\n<p><strong>Major Update: Settings Refactoring, Streaming &amp; UI Improvements<\/strong><\/p>\n\n<h4>New Features<\/h4>\n\n<ul>\n<li><strong>Custom Model Support<\/strong>: Added ability to specify custom model names to override presets<\/li>\n<li><strong>Optional API Key<\/strong>: API key is now optional when using custom hosts (self-hosted LLMs)<\/li>\n<li><strong>Unified Streaming<\/strong>: Both Chat and Insights now use the same streaming endpoint with automatic mode detection<\/li>\n<li><strong>Automatic Streaming Fallback<\/strong>: Streaming auto-detects and falls back to non-streaming if unsupported<\/li>\n<li><strong>Escape Key Support<\/strong>: Close Insights offcanvas panel by pressing Escape<\/li>\n<\/ul>\n\n<h4>Improvements<\/h4>\n\n<ul>\n<li>Refactored model selection: split into \"Model (Preset)\" dropdown and \"Model (Custom)\" text field<\/li>\n<li>Centralized model definitions in main plugin file for consistency<\/li>\n<li>Improved settings architecture with shared <code>SettingsBase<\/code> trait for system and measurable settings<\/li>\n<li>Better chat UI layout with proper flexbox sizing<\/li>\n<li>Updated default model to GPT-4o<\/li>\n<li>Added translations for all new settings in 7 languages (EN, DE, ES, FR, IT, NL, SV)<\/li>\n<li>Improved POST parameter parsing for messages and widgetParams<\/li>\n<li>Unified <code>getStreamingResponse<\/code> API handles both chat and insight modes based on widgetParams<\/li>\n<li>Cleaner API with removed unused methods<\/li>\n<\/ul>\n\n<h4>Bug Fixes<\/h4>\n\n<ul>\n<li>Fixed user messages not being sent to AI in streaming mode<\/li>\n<li>Fixed Insights not using correct prompt and report data<\/li>\n<li>Fixed chat messages list height not filling container<\/li>\n<li>Fixed streaming fallback behavior<\/li>\n<li>Fixed TypeScript errors in Vue components<\/li>\n<\/ul>\n\n<h4>Breaking Changes<\/h4>\n\n<ul>\n<li>Removed <code>model<\/code> setting, replaced with <code>modelPreset<\/code> and <code>modelCustom<\/code><\/li>\n<li>Removed <code>enableStreaming<\/code> setting (streaming is now automatic)<\/li>\n<li>Removed <code>getAvailableModels<\/code> API method (now using static model list)<\/li>\n<li>Removed <code>clearModelsCache<\/code> API method<\/li>\n<li>Removed <code>getRateLimitStatus<\/code> API method<\/li>\n<li>Removed <code>getSettings<\/code> API method<\/li>\n<\/ul>\n\n<h3>5.4.1<\/h3>\n\n<p>update: Support premium plugins<\/p>\n\n<h3>5.4.0<\/h3>\n\n<p>Here is the huge update you requested!\nNow support every reports type (custom dim, custom reports, series lines etc...)\nHandle streaming\nBetter error handling\nSpeed improvements<\/p>\n\n<h3>5.3.0<\/h3>\n\n<p>Update: ChatGPT models list:<\/p>\n\n<ul>\n<li>o1-mini<\/li>\n<li>gpt-4o-mini<\/li>\n<\/ul>\n\n<h3>5.2.5<\/h3>\n\n<p>Update : plugin category and _cover.png<\/p>\n\n<h3>5.2.4<\/h3>\n\n<p>Update: Support gpt-4-turbo and gpt-4o<\/p>\n\n<h3>5.2.3<\/h3>\n\n<p>Update: Handle error message in chat response<\/p>\n\n<h3>5.2.2<\/h3>\n\n<p>Update: Refactor Chat.vue component with AJAX Helper<\/p>\n\n<h3>5.2.1<\/h3>\n\n<p>Update: API method name in js file<\/p>\n\n<h3>5.2.0<\/h3>\n\n<p>Add : Measurable settings with override system settings ability\nAdd : API Call logger info<\/p>\n\n<h3>5.1.2<\/h3>\n\n<p>Fix: Chat form placeholder IA name<\/p>\n\n<h3>5.1.1<\/h3>\n\n<p>Update : Pass all params as PostParams in AjaxHelper function<\/p>\n\n<h3>5.1.0<\/h3>\n\n<p>Update conversation memory, IA can remember previous messages\nUpdate Add conversation mode to Insights<\/p>\n\n<h3>5.0.7<\/h3>\n\n<p>Update documentation url<\/p>\n\n<h3>5.0.6<\/h3>\n\n<p>Support error messages handling<\/p>\n\n<h3>5.0.5<\/h3>\n\n<p>Update Marketplace links<\/p>\n\n<h3>5.0.4<\/h3>\n\n<p>Fix security issue in API<\/p>\n\n<h3>5.0.3<\/h3>\n\n<p>Fix security issue in API privileges<\/p>\n\n<h3>5.0.2<\/h3>\n\n<p>Update documentation<\/p>\n\n<h3>5.0.1<\/h3>\n\n<p>Update insight trigger positioning<\/p>\n\n<h3>5.0.0<\/h3>\n\n<p>Setup plugin from v4.2.0<\/p>"},"download":"\/api\/2.0\/plugins\/ChatGPT\/download\/5.8.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ChatGPT\/changelog"},"consumer":{"license":null}},{"name":"ClassicCounter","displayName":"Classic Counter","owner":"Findus23","description":"Embed a view counter in the style of classic CGI scripts into your website.","homepage":"https:\/\/lw1.at","createdDateTime":"2019-03-11 09:54:04","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter","type":"url"}],"isTheme":false,"keywords":["nostalgia"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter","lastUpdated":"2023-07-22 20:32:03","latestVersion":"0.4.0","numDownloads":49181,"screenshots":["https:\/\/plugins.matomo.org\/ClassicCounter\/images\/0.4.0\/4909.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"15","numContributors":"2","lastCommitDate":"2023-07-22 20:31:32"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2019-03-11 09:54:04","requires":{"piwik":">=3.8.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":935,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClassicCounter\/download\/0.1.0"},{"name":"0.2.2","release":"2019-07-29 18:54:03","requires":{"piwik":">=3.8.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4070,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ClassicCounter\/0.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClassicCounter\/download\/0.2.2"},{"name":"0.3.0","release":"2020-10-10 17:46:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":496,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ClassicCounter\/0.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClassicCounter\/download\/0.3.0"},{"name":"0.3.1","release":"2021-02-18 10:42:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":585,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ClassicCounter\/0.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClassicCounter\/download\/0.3.1"},{"name":"0.3.2","release":"2021-04-17 20:04:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21762,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ClassicCounter\/0.3.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter\/commits\/0.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClassicCounter\/download\/0.3.2"},{"name":"0.4.0","release":"2023-07-22 20:32:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21333,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ClassicCounter\/0.4.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ClassicCounter\/commits\/0.4.0","readmeHtml":{"description":"\n\n<p>No website is complete without a nostalgic view counter at the bottom!<\/p>\n\n<p>This plugin allows you to add an image showing the total amount of visits per <code>idSite<\/code>.<\/p>\n\n<p><strong>Important: Installing this plugin makes the output of the <code>VisitsSummary.get<\/code> API endpoint visible for everyone!<\/strong><\/p>\n\n<pre><code>&lt;img src=\"https:\/\/yourmatomoinstance.example\/index.php?module=ClassicCounter&amp;action=svg&amp;idSite=1&amp;period=day\"&gt;\n<\/code><\/pre>\n\n<h3>Optional parameters:<\/h3>\n\n<ul>\n<li><code>&amp;mode=<\/code> one of <code>[\"nb_visits\", \"nb_actions\", \"nb_visits_converted\", \"bounce_count\", \"sum_visit_length\", \"max_actions\", \"bounce_rate\", \"nb_actions_per_visit\", \"avg_time_on_site\"]<\/code> (responses from the <code>VisitsSummary.get<\/code> API)<\/li>\n<li><code>&amp;backgroundColor=<\/code>: A hex color without the <code>#<\/code> (e.g. <code>f00<\/code> or <code>fe1234<\/code>)<\/li>\n<li><code>&amp;foregroundColor=<\/code><\/li>\n<li><code>&amp;lightColor=<\/code><\/li>\n<li><code>&amp;historicValue=<\/code>: A number that is added to the value from Matomo before being displayed. Useful if you want to add data from a counter before starting to use Matomo.<\/li>\n<\/ul>\n\n<p><img src=\"https:\/\/github.com\/Findus23\/plugin-ClassicCounter\/blob\/4.x-dev\/screenshots\/4909.png?raw=true\" alt=\"4909.png?raw=true\" \/><\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.4.0<\/h3>\n\n<p>Matomo 5 compatibility<\/p>\n\n<h3>0.3.0<\/h3>\n\n<p>Matomo 4 compatibility<\/p>\n\n<h3>0.2.2<\/h3>\n\n<p>another bugfix (increase version in plugin.json)<\/p>\n\n<h3>0.2.1<\/h3>\n\n<p>quick bugfix (task)<\/p>\n\n<h3>0.2.0<\/h3>\n\n<p>add support for changing colors and and more API responses<\/p>\n\n<h3>0.1.0<\/h3>\n\n<p>first version<\/p>"},"download":"\/api\/2.0\/plugins\/ClassicCounter\/download\/0.4.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ClassicCounter\/changelog"},"consumer":{"license":null}},{"name":"Claude","displayName":"Claude","owner":"openmost","description":"AI chat and insights on any Matomo report with Claude, plus an agent that queries your live data.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/claude","createdDateTime":"2026-10-02 14:38:21","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/Claude\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/Claude","type":"url"}],"isTheme":false,"keywords":["chat","ai","assistant","insight","insights","claude","agent","anthropic"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/Claude","lastUpdated":"2026-10-22 15:14:59","latestVersion":"5.2.0","numDownloads":242,"screenshots":["https:\/\/plugins.matomo.org\/Claude\/images\/5.2.0\/Agent_mode_weekly_KPI_review_with_tool_steps.png","https:\/\/plugins.matomo.org\/Claude\/images\/5.2.0\/Insights_on_any_report_in_one_click.png","https:\/\/plugins.matomo.org\/Claude\/images\/5.2.0\/Insights_panel_follow_up_question_with_live_data.png","https:\/\/plugins.matomo.org\/Claude\/images\/5.2.0\/Settings_connection_and_prompts.png"],"coverImage":"https:\/\/plugins.matomo.org\/Claude\/images\/5.2.0\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-22 15:13:05"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"6.0.0","release":"2026-10-02 14:38:23","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/6.0.0"},{"name":"5.0.0","release":"2026-10-02 14:38:35","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/5.0.0"},{"name":"5.1.0","release":"2026-10-06 10:18:05","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":113,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/5.1.0"},{"name":"6.1.0","release":"2026-10-06 10:18:42","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/6.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/6.1.0"},{"name":"6.1.1","release":"2026-10-14 14:26:06","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/6.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/6.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/6.1.1"},{"name":"6.1.2","release":"2026-10-14 15:14:06","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/6.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/6.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/6.1.2"},{"name":"5.1.1","release":"2026-10-14 15:22:07","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":59,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/5.1.1"},{"name":"5.1.2","release":"2026-10-21 21:14:14","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/5.1.2"},{"name":"6.1.4","release":"2026-10-21 21:26:15","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/6.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/6.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/6.1.4"},{"name":"5.1.3","release":"2026-10-21 21:28:05","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/5.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/5.1.3"},{"name":"6.2.0","release":"2026-10-22 15:14:28","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/6.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/6.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Claude\/download\/6.2.0"},{"name":"5.2.0","release":"2026-10-22 15:14:59","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Claude\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Claude\/commits\/5.2.0","readmeHtml":{"description":"\n\n<p>Ask questions about your analytics and get AI insights on any Matomo report with Claude by Anthropic, plus an optional agent that queries your live reports through the Matomo MCP tools.<\/p>\n\n<h3>Features<\/h3>\n\n<h4>Insights on any report<\/h4>\n\n<ul>\n<li>An <strong>Insights<\/strong> button (AI icon) next to the report header opens an insight panel that analyses the report you are looking at, then lets you ask follow-up questions.<\/li>\n<li>The whole report is analysed, not only the rows visible on screen: the plugin sends a compact payload with the rows, the report totals and the names and units of the metrics.<\/li>\n<li>The analysis follows what you see: the active segment, the period and date, and the compared periods or segments.<\/li>\n<li>The analysis also follows the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>Works with data tables, evolution graphs, goals, ecommerce, custom dimensions, custom reports, row evolution and the other reports Matomo declares as widgets.<\/li>\n<li>When a widget has no report data, or the report cannot be loaded (for example a missing access), a clear message is displayed instead of sending the error to the model.<\/li>\n<li>The panel is an accessible dialog: keyboard navigation, focus kept inside the panel, Escape to close. Opening it closes the insight panel of the other Openmost AI plugins, so two panels never overlap.<\/li>\n<\/ul>\n\n<h4>Chat<\/h4>\n\n<ul>\n<li>A <strong>Claude<\/strong> page in the main menu, with suggested questions to start a conversation and a \"New conversation\" button.<\/li>\n<li>Streaming answers, with an automatic fallback when the endpoint does not stream.<\/li>\n<li>Auto-scroll that follows the answer while it is written, stops when you scroll up, and a button to jump back to the latest message.<\/li>\n<li>Markdown answers with scrollable tables and code blocks, and buttons to copy an answer or a code block.<\/li>\n<li>Enter sends the message, Shift+Enter adds a new line.<\/li>\n<\/ul>\n\n<h4>Agent mode, with MCP Server<\/h4>\n\n<p>When the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent, with the Anthropic key of the plugin settings or with the Anthropic provider of <strong>AI Providers<\/strong>:<\/p>\n\n<ul>\n<li>The agent queries your live reports, websites, goals, dimensions and segments by itself, for any period, to answer with real figures.<\/li>\n<li>A timeline shows each Matomo tool used for an answer and its status.<\/li>\n<li>Tools run inside Matomo with the permissions of the current user: no public URL, OAuth client or extra token is needed.<\/li>\n<li>Write actions (for example creating a goal, an annotation or a segment) are only possible when McpServer allows write methods, and only after the agent has described the exact change and you have confirmed it explicitly in the conversation. This rule is added outside the editable prompts, so it cannot be removed by a custom prompt.<\/li>\n<li>When something is missing, the chat recommends the next step, one at a time: install, activate or enable MCP Server, allow write methods, and without an Anthropic key in the plugin settings, activate AI Providers and connect Anthropic. Super users get a direct link for each step, other users are asked to contact their Matomo administrator.<\/li>\n<\/ul>\n\n<p>The agent mode is optional. Without McpServer, Claude answers without tools.<\/p>\n\n<h4>Connection and models<\/h4>\n\n<ul>\n<li>Uses the Anthropic Messages API (<code>https:\/\/api.anthropic.com\/v1\/messages<\/code>) with your Anthropic API key, or the <strong>Anthropic<\/strong> provider connected in <strong>AI Providers<\/strong>.<\/li>\n<li><strong>One key is enough<\/strong>, used in this order: the API key set for the website, then AI Providers when its provider is Anthropic, then the general API key of the plugin. The credential of another AI Providers provider is never used. Keys are never copied from one place to another.<\/li>\n<li>When Anthropic is connected in AI Providers, it takes over: the host, API key and model of the general settings are displayed read-only, and are used again if AI Providers is deactivated or uses another provider. A key set for a website still overrides AI Providers for that website.<\/li>\n<li>The host can be changed to a proxy or gateway that serves the Anthropic Messages API over HTTPS. The API key is optional on a custom host.<\/li>\n<li>The general API key is only sent to the general host: a website using its own host never receives it.<\/li>\n<li>Preset models: <strong>Latest recommended<\/strong> (the default, which follows the model recommended by each plugin release, currently Claude Sonnet 5.5), Claude Sonnet 5.5, Claude Opus 5.5, Claude Fable 5.1, Claude Haiku 4.5 and the previous models Anthropic still serves, or any custom model name.<\/li>\n<li>When a model is deprecated, retired or not available to your Anthropic account, the chat explains it and links to the settings instead of showing the raw API error. An invalid key, a rate limit and an overloaded API are explained in the language of the user too.<\/li>\n<\/ul>\n\n<h4>Prompts<\/h4>\n\n<ul>\n<li>Default prompts written for analytics: the chat answers as a senior analytics consultant (direct answer, key figures, prioritised recommendations, no invented figures), and insights follow a fixed structure (summary, key figures, notable patterns, recommendations).<\/li>\n<li>A prompt equal to the default is not stored, so future improvements of the defaults reach you. A <strong>Reset to default<\/strong> button restores the default prompts. Custom prompts are kept.<\/li>\n<\/ul>\n\n<h4>More<\/h4>\n\n<ul>\n<li>Interface translated into 13 languages: English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/li>\n<li>Follows the Matomo light and dark themes.<\/li>\n<li>Rate limit of 30 AI requests per hour, per user and per website, configurable in <code>config\/config.ini.php<\/code>.<\/li>\n<li>HTTP API: <code>Claude.getResponse<\/code>, <code>Claude.getStreamingResponse<\/code>, <code>Claude.getInsights<\/code>, <code>Claude.getSiteSettings<\/code>, <code>Claude.setSiteSettings<\/code> and <code>Claude.setSystemSettings<\/code>.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6 (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>PHP: the version required by your Matomo 5 (PHP 8.1 or higher for the agent mode, required by McpServer)<\/li>\n<li>One of: an Anthropic API key, an HTTPS proxy or gateway serving the Anthropic Messages API, or the Anthropic provider connected in AI Providers<\/li>\n<li>Optional, for the agent mode: the <strong>McpServer<\/strong> plugin from the Marketplace (Matomo 5.8 or higher, PHP 8.1 or higher). On older setups the agent mode is not offered and the chat keeps working without tools. The <strong>AI Providers<\/strong> plugin, bundled with Matomo 5.13 and later, is only needed to use its Anthropic provider instead of a key in the plugin settings. Write actions also require write methods to be allowed in the McpServer settings (Raw Matomo API tool access).<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate <strong>Claude<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, open <strong>Administration &gt; System &gt; Claude<\/strong>:\n\n<ul>\n<li><strong>Connection<\/strong> card: host (an HTTPS URL, <code>https:\/\/api.anthropic.com<\/code> by default), API key and model. Each card is saved on its own. The saved key is never displayed, and a <strong>Delete key<\/strong> button removes it. Create an API key in the Claude Console (https:\/\/platform.claude.com).<\/li>\n<li><strong>Privacy<\/strong> card: check <strong>Allow sending Matomo data to the AI provider<\/strong>, off by default. Until a super user checks it, nothing is sent to the provider. The card shows where the data goes, and masks e-mail and IP addresses, removes URL query strings and excludes visitor-level data, all three on by default.<\/li>\n<li><strong>Prompts<\/strong> card: chat and insight base prompts, with a <strong>Reset to default<\/strong> button.<\/li>\n<li>If Anthropic is connected in <strong>Administration &gt; System &gt; AI Providers<\/strong>, the connection fields are read-only and AI Providers is used.<\/li>\n<\/ul><\/li>\n<li>Optionally, override the settings for a website in <strong>Administration &gt; Websites &gt; Claude<\/strong> (website admin access): host, API key, model and prompts, with a <strong>Delete key<\/strong> button and a <strong>Use the general prompts<\/strong> button. Empty fields use the general settings.<\/li>\n<li>For the agent mode, install, activate and enable <strong>McpServer<\/strong> (<strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>). The chat guides you through each missing step.<\/li>\n<li><p>Optionally, as a server administrator, tune the plugin in a <code>[Claude]<\/code> section of <code>config\/config.ini.php<\/code>. Every key is optional:<\/p>\n\n<pre><code>[Claude]\n; name shown in the top menu, on the chat page and in the insights panel, 40 characters max\ndisplay_name = \"Company AI\"\n; AI requests per user and per website within the window, 0 disables the limit\nrate_limit_requests = 30\n; length of the window, in seconds\nrate_limit_window = 3600\n<\/code><\/pre><\/li>\n<\/ol>\n\n<p>Then open the <strong>Claude<\/strong> page in the main menu, or click the <strong>Insights<\/strong> button in the header of a report.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>Insights send the data of the report you are looking at (labels, metrics and totals), its period, segment and comparisons, and the conversation, to the configured endpoint: the Anthropic API by default, your custom host, or the Anthropic provider of AI Providers.<\/li>\n<li>The chat sends your messages and the prompt. In agent mode, the results of the Matomo tools the agent calls are also sent to Anthropic.<\/li>\n<li>Nothing is sent to the AI provider until a super user checks <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Claude<\/strong>, <strong>Privacy<\/strong> card. It is off by default: until then, the chat and the insights tell users to ask a super user to allow it.<\/li>\n<li>Before sending, e-mail and IP addresses are replaced with <code>[email]<\/code> and <code>[ip]<\/code>, and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default and can be turned off in the same <strong>Privacy<\/strong> card.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default: the insights and the agent cannot read it until a super user unchecks <strong>Exclude visitor-level data<\/strong>.<\/li>\n<li>Report labels can hold values set by visitors (page titles, URLs, referrers, campaign names, custom dimensions). Check the retention and privacy terms of the provider before connecting it, and prefer a self-hosted or EU-hosted endpoint when your data policy requires it.<\/li>\n<li>The chat shows every user a notice stating that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the Matomo administrator.<\/li>\n<li>When a Matomo tool fails in agent mode, the model only receives a generic error with a reference: the details stay in the Matomo logs.<\/li>\n<li>Insight requests are restricted to the report and data methods of widgets declared by Matomo, never to an arbitrary API method, and run with the permissions of the current user.<\/li>\n<li>API keys are stored in the Matomo settings and are never sent back to the browser. Conversations are not stored by the plugin.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We connect Matomo to AI assistants, BI tools and the rest of your stack with <a href=\"https:\/\/openmost.com\/matomo\/services\/integration?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=claude\">Matomo integrations<\/a> built on official APIs, with documented and privacy-checked data flows.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How do I install and configure this plugin?<\/strong><\/p>\n\n<ol>\n<li>Install and activate <strong>Claude<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, open <strong>Administration &gt; System &gt; Claude<\/strong> and set the API key and model in the <strong>Connection<\/strong> card, or connect Anthropic in <strong>Administration &gt; System &gt; AI Providers<\/strong>. In the <strong>Privacy<\/strong> card, check <strong>Allow sending Matomo data to the AI provider<\/strong>: it is off by default.<\/li>\n<li>Optionally, override the settings for a website in <strong>Administration &gt; Websites &gt; Claude<\/strong>.<\/li>\n<\/ol>\n\n<p>You can also download the plugin from <a href=\"https:\/\/github.com\/openmost\/Claude\">GitHub<\/a>, extract it to your <code>plugins\/<\/code> folder and activate it.<\/p>\n\n<p><strong>Can I change the rate limit or the name shown in the menu?<\/strong><\/p>\n\n<p>Yes, in a <code>[Claude]<\/code> section of <code>config\/config.ini.php<\/code>: <code>display_name<\/code> renames the plugin in the top menu, on the chat page and in the insights panel, for example when you use a self-hosted model. <code>rate_limit_requests<\/code> sets the AI requests per user and per website (30 by default, 0 disables the limit) and <code>rate_limit_window<\/code> the length of the window in seconds (3600 by default). These values are kept when the plugin is updated.<\/p>\n\n<p><strong>The chat says that data sharing is not allowed<\/strong><\/p>\n\n<p>No Matomo data leaves your instance without an explicit decision: a super user must check <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Claude<\/strong>, <strong>Privacy<\/strong> card. Other users are asked to contact a super user.<\/p>\n\n<p><strong>What do I need to make it work?<\/strong><\/p>\n\n<p>One of: an Anthropic API key (create one in the Claude Console, https:\/\/platform.claude.com), an HTTPS proxy or gateway that serves the Anthropic Messages API, or the Anthropic provider connected in AI Providers. On a custom host, the API key is optional: without a key, no <code>x-api-key<\/code> header is sent.<\/p>\n\n<p><strong>Which API key is used?<\/strong><\/p>\n\n<p>One key is enough. The plugin uses, in this order: the API key set for the website in <strong>Administration &gt; Websites &gt; Claude<\/strong>, then AI Providers when its provider is Anthropic, then the API key of the general settings. Keys are never copied from one place to another.<\/p>\n\n<p>When Anthropic is connected in AI Providers, it takes over: the host, API key and model of the general settings are displayed read-only, and are used again if AI Providers is deactivated. A key set for a website still overrides AI Providers for that website.<\/p>\n\n<p><strong>AI Providers is connected to another provider. Does Claude use it?<\/strong><\/p>\n\n<p>No. The plugin only takes over AI Providers when its provider is Anthropic: the credential of another provider is never sent anywhere by this plugin. With another provider, Claude uses its own API key, and the chat recommends connecting Anthropic in AI Providers when no key is set.<\/p>\n\n<p><strong>How do I remove a saved API key?<\/strong><\/p>\n\n<p>Use the <strong>Delete key<\/strong> button of the <strong>Connection<\/strong> card, on the general settings page or on the settings page of the website. Leaving the field empty keeps the saved key.<\/p>\n\n<p><strong>Which models are in the preset list?<\/strong><\/p>\n\n<ul>\n<li>Latest recommended (default): follows the model recommended by each plugin release, currently Claude Sonnet 5.5, the best balance of speed and quality for a conversation about your reports<\/li>\n<li>Claude Sonnet 5.5, Claude Opus 5.5, Claude Fable 5.1, Claude Haiku 4.5<\/li>\n<li>Previous models still served by Anthropic: Claude Opus 5, Claude Sonnet 5, Claude Fable 5, Claude Opus 4.8, Claude Sonnet 4.6<\/li>\n<\/ul>\n\n<p>Type any other model ID in the <strong>Model (Custom)<\/strong> field.<\/p>\n\n<p><strong>The chat says my model is not available<\/strong><\/p>\n\n<p>Anthropic retires old models, and some models are not available to every account. Choose another model in the settings, for example \"Latest recommended\". The chat links to the settings page you can change.<\/p>\n\n<p><strong>The chat says my key was refused, or that Anthropic is overloaded<\/strong><\/p>\n\n<p>A refused key (HTTP 401) means the key is wrong, revoked or expired: check it in the settings. A rate limit (HTTP 429) tells you when to try again, and an overloaded API (HTTP 529) is temporary: the plugin retries a few times before it reports the error.<\/p>\n\n<p><strong>What is the agent mode?<\/strong><\/p>\n\n<p>When the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent: they query your live reports, websites, goals, dimensions and segments through the Matomo tools to answer with real figures. A timeline shows each tool used. The agent works with the Anthropic key of the plugin settings and with the Anthropic provider of AI Providers.<\/p>\n\n<p>To enable it, install, activate and enable McpServer in <strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>. The chat recommends each missing step, with a direct link for super users.<\/p>\n\n<p><strong>Can the agent change things in Matomo?<\/strong><\/p>\n\n<p>Only if McpServer allows write methods (Raw Matomo API tool access), and only with your confirmation: before any create, update or delete, the agent describes the exact change and waits for your explicit confirmation in the conversation. This rule cannot be removed by a custom prompt. The agent never has more access than the current user.<\/p>\n\n<p><strong>Do I need to expose my Matomo instance or configure OAuth for the agent?<\/strong><\/p>\n\n<p>No. The agent calls the Matomo tools inside your Matomo, with the permissions of the logged in user. It also works on private and intranet instances.<\/p>\n\n<p><strong>Does the plugin work without the agent mode?<\/strong><\/p>\n\n<p>Yes. Without McpServer, the chat and the insights answer without tools.<\/p>\n\n<p><strong>What do insights analyse?<\/strong><\/p>\n\n<p>The whole report you are looking at, not only the visible rows: its rows, totals and metrics, with the active segment, period and comparisons. Insights work on data tables, evolution graphs, goals, custom reports and the other reports Matomo declares as widgets.<\/p>\n\n<p><strong>Can I use Claude together with the other Openmost AI plugins?<\/strong><\/p>\n\n<p>Yes. Each plugin has its own button and page. Opening the insight panel of one plugin closes the panel of the others, so they never overlap.<\/p>\n\n<p><strong>Can I customise the prompts?<\/strong><\/p>\n\n<p>Yes, in the <strong>Prompts<\/strong> card of the general settings or of a website. The <strong>Reset to default<\/strong> button restores the default prompts, and on a website, <strong>Use the general prompts<\/strong> makes it follow the general prompts again. Custom prompts are kept when the defaults are improved.<\/p>\n\n<p><strong>Is my data sent to Anthropic?<\/strong><\/p>\n\n<p>Insights send the data of the report you are looking at (labels, metrics, totals, period, segment and comparisons) and the conversation to the configured endpoint: the Anthropic API by default, your custom host, or the Anthropic provider of AI Providers. In agent mode, the results of the tools the agent calls are sent too. Raw visitor data is never sent, unless the report itself contains it, such as the Visits Log. Conversations are not stored by the plugin.<\/p>\n\n<p><strong>Is there a usage limit?<\/strong><\/p>\n\n<p>Yes, 30 AI requests per hour, per user and per website, to protect your API budget.<\/p>\n\n<p><strong>Which languages are supported?<\/strong><\/p>\n\n<p>English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/p>\n\n<p><strong>What are the requirements?<\/strong><\/p>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6<\/li>\n<li>An Anthropic API key, or Anthropic connected in AI Providers (bundled with Matomo 5.13 and later)<\/li>\n<li>For the agent mode: the McpServer plugin (Matomo 5.8 or higher, PHP 8.1 or higher). On older setups, the chat keeps working without tools.<\/li>\n<\/ul>\n\n<p><strong>How do I get support?<\/strong><\/p>\n\n<p>Email ronan@openmost.com, or open an issue on <a href=\"https:\/\/github.com\/openmost\/Claude\/issues\">GitHub<\/a>. More on https:\/\/openmost.com\/matomo\/extensions\/claude.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Features<\/h3>\n\n<h4>Insights on any report<\/h4>\n\n<ul>\n<li>An <strong>Insights<\/strong> button (AI icon) next to the report header opens an insight panel that analyses the report you are looking at, then lets you ask follow-up questions.<\/li>\n<li>The whole report is analysed, not only the rows visible on screen: the plugin sends a compact payload with the rows, the report totals and the names and units of the metrics.<\/li>\n<li>The analysis follows what you see: the active segment, the period and date, and the compared periods or segments.<\/li>\n<li>The analysis also follows the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>Works with data tables, evolution graphs, goals, ecommerce, custom dimensions, custom reports, row evolution and the other reports Matomo declares as widgets.<\/li>\n<li>When a widget has no report data, or the report cannot be loaded (for example a missing access), a clear message is displayed instead of sending the error to the model.<\/li>\n<li>The panel is an accessible dialog: keyboard navigation, focus kept inside the panel, Escape to close. Opening it closes the insight panel of the other Openmost AI plugins, so two panels never overlap.<\/li>\n<\/ul>\n\n<h4>Chat<\/h4>\n\n<ul>\n<li>A <strong>Claude<\/strong> page in the main menu, with suggested questions to start a conversation and a \"New conversation\" button.<\/li>\n<li>Streaming answers, with an automatic fallback when the endpoint does not stream.<\/li>\n<li>Auto-scroll that follows the answer while it is written, stops when you scroll up, and a button to jump back to the latest message.<\/li>\n<li>Markdown answers with scrollable tables and code blocks, and buttons to copy an answer or a code block.<\/li>\n<li>Enter sends the message, Shift+Enter adds a new line.<\/li>\n<\/ul>\n\n<h4>Agent mode, with MCP Server<\/h4>\n\n<p>When the <strong>McpServer<\/strong> plugin is enabled, the chat and the insight panel work as an agent, with the Anthropic key of the plugin settings or with the Anthropic provider of <strong>AI Providers<\/strong>:<\/p>\n\n<ul>\n<li>The agent queries your live reports, websites, goals, dimensions and segments by itself, for any period, to answer with real figures.<\/li>\n<li>A timeline shows each Matomo tool used for an answer and its status.<\/li>\n<li>Tools run inside Matomo with the permissions of the current user: no public URL, OAuth client or extra token is needed.<\/li>\n<li>Write actions (for example creating a goal, an annotation or a segment) are only possible when McpServer allows write methods, and only after the agent has described the exact change and you have confirmed it explicitly in the conversation. This rule is added outside the editable prompts, so it cannot be removed by a custom prompt.<\/li>\n<li>When something is missing, the chat recommends the next step, one at a time: install, activate or enable MCP Server, allow write methods, and without an Anthropic key in the plugin settings, activate AI Providers and connect Anthropic. Super users get a direct link for each step, other users are asked to contact their Matomo administrator.<\/li>\n<\/ul>\n\n<p>The agent mode is optional. Without McpServer, Claude answers without tools.<\/p>\n\n<h4>Connection and models<\/h4>\n\n<ul>\n<li>Uses the Anthropic Messages API (<code>https:\/\/api.anthropic.com\/v1\/messages<\/code>) with your Anthropic API key, or the <strong>Anthropic<\/strong> provider connected in <strong>AI Providers<\/strong>.<\/li>\n<li><strong>One key is enough<\/strong>, used in this order: the API key set for the website, then AI Providers when its provider is Anthropic, then the general API key of the plugin. The credential of another AI Providers provider is never used. Keys are never copied from one place to another.<\/li>\n<li>When Anthropic is connected in AI Providers, it takes over: the host, API key and model of the general settings are displayed read-only, and are used again if AI Providers is deactivated or uses another provider. A key set for a website still overrides AI Providers for that website.<\/li>\n<li>The host can be changed to a proxy or gateway that serves the Anthropic Messages API over HTTPS. The API key is optional on a custom host.<\/li>\n<li>The general API key is only sent to the general host: a website using its own host never receives it.<\/li>\n<li>Preset models: <strong>Latest recommended<\/strong> (the default, which follows the model recommended by each plugin release, currently Claude Sonnet 5.5), Claude Sonnet 5.5, Claude Opus 5.5, Claude Fable 5.1, Claude Haiku 4.5 and the previous models Anthropic still serves, or any custom model name.<\/li>\n<li>When a model is deprecated, retired or not available to your Anthropic account, the chat explains it and links to the settings instead of showing the raw API error. An invalid key, a rate limit and an overloaded API are explained in the language of the user too.<\/li>\n<\/ul>\n\n<h4>Prompts<\/h4>\n\n<ul>\n<li>Default prompts written for analytics: the chat answers as a senior analytics consultant (direct answer, key figures, prioritised recommendations, no invented figures), and insights follow a fixed structure (summary, key figures, notable patterns, recommendations).<\/li>\n<li>A prompt equal to the default is not stored, so future improvements of the defaults reach you. A <strong>Reset to default<\/strong> button restores the default prompts. Custom prompts are kept.<\/li>\n<\/ul>\n\n<h4>More<\/h4>\n\n<ul>\n<li>Interface translated into 13 languages: English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/li>\n<li>Follows the Matomo light and dark themes.<\/li>\n<li>Rate limit of 30 AI requests per hour, per user and per website, configurable in <code>config\/config.ini.php<\/code>.<\/li>\n<li>HTTP API: <code>Claude.getResponse<\/code>, <code>Claude.getStreamingResponse<\/code>, <code>Claude.getInsights<\/code>, <code>Claude.getSiteSettings<\/code>, <code>Claude.setSiteSettings<\/code> and <code>Claude.setSystemSettings<\/code>.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6 (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>PHP: the version required by your Matomo 5 (PHP 8.1 or higher for the agent mode, required by McpServer)<\/li>\n<li>One of: an Anthropic API key, an HTTPS proxy or gateway serving the Anthropic Messages API, or the Anthropic provider connected in AI Providers<\/li>\n<li>Optional, for the agent mode: the <strong>McpServer<\/strong> plugin from the Marketplace (Matomo 5.8 or higher, PHP 8.1 or higher). On older setups the agent mode is not offered and the chat keeps working without tools. The <strong>AI Providers<\/strong> plugin, bundled with Matomo 5.13 and later, is only needed to use its Anthropic provider instead of a key in the plugin settings. Write actions also require write methods to be allowed in the McpServer settings (Raw Matomo API tool access).<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate <strong>Claude<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, open <strong>Administration &gt; System &gt; Claude<\/strong>:\n\n<ul>\n<li><strong>Connection<\/strong> card: host (an HTTPS URL, <code>https:\/\/api.anthropic.com<\/code> by default), API key and model. Each card is saved on its own. The saved key is never displayed, and a <strong>Delete key<\/strong> button removes it. Create an API key in the Claude Console (https:\/\/platform.claude.com).<\/li>\n<li><strong>Privacy<\/strong> card: check <strong>Allow sending Matomo data to the AI provider<\/strong>, off by default. Until a super user checks it, nothing is sent to the provider. The card shows where the data goes, and masks e-mail and IP addresses, removes URL query strings and excludes visitor-level data, all three on by default.<\/li>\n<li><strong>Prompts<\/strong> card: chat and insight base prompts, with a <strong>Reset to default<\/strong> button.<\/li>\n<li>If Anthropic is connected in <strong>Administration &gt; System &gt; AI Providers<\/strong>, the connection fields are read-only and AI Providers is used.<\/li>\n<\/ul><\/li>\n<li>Optionally, override the settings for a website in <strong>Administration &gt; Websites &gt; Claude<\/strong> (website admin access): host, API key, model and prompts, with a <strong>Delete key<\/strong> button and a <strong>Use the general prompts<\/strong> button. Empty fields use the general settings.<\/li>\n<li>For the agent mode, install, activate and enable <strong>McpServer<\/strong> (<strong>Administration &gt; System &gt; General settings &gt; McpServer<\/strong>). The chat guides you through each missing step.<\/li>\n<li><p>Optionally, as a server administrator, tune the plugin in a <code>[Claude]<\/code> section of <code>config\/config.ini.php<\/code>. Every key is optional:<\/p>\n\n<pre><code>[Claude]\n; name shown in the top menu, on the chat page and in the insights panel, 40 characters max\ndisplay_name = \"Company AI\"\n; AI requests per user and per website within the window, 0 disables the limit\nrate_limit_requests = 30\n; length of the window, in seconds\nrate_limit_window = 3600\n<\/code><\/pre><\/li>\n<\/ol>\n\n<p>Then open the <strong>Claude<\/strong> page in the main menu, or click the <strong>Insights<\/strong> button in the header of a report.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>Insights send the data of the report you are looking at (labels, metrics and totals), its period, segment and comparisons, and the conversation, to the configured endpoint: the Anthropic API by default, your custom host, or the Anthropic provider of AI Providers.<\/li>\n<li>The chat sends your messages and the prompt. In agent mode, the results of the Matomo tools the agent calls are also sent to Anthropic.<\/li>\n<li>Nothing is sent to the AI provider until a super user checks <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Claude<\/strong>, <strong>Privacy<\/strong> card. It is off by default: until then, the chat and the insights tell users to ask a super user to allow it.<\/li>\n<li>Before sending, e-mail and IP addresses are replaced with <code>[email]<\/code> and <code>[ip]<\/code>, and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default and can be turned off in the same <strong>Privacy<\/strong> card.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default: the insights and the agent cannot read it until a super user unchecks <strong>Exclude visitor-level data<\/strong>.<\/li>\n<li>Insight requests are restricted to the report and data methods of widgets declared by Matomo, never to an arbitrary API method, and run with the permissions of the current user.<\/li>\n<li>API keys are stored in the Matomo settings and are never sent back to the browser. Conversations are not stored by the plugin.<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>5.2.0<\/h3>\n\n<ul>\n<li>Insights follow the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>The rate limit is configurable in a <code>[Claude]<\/code> section of <code>config\/config.ini.php<\/code>: <code>rate_limit_requests<\/code> (30 by default, 0 disables it) and <code>rate_limit_window<\/code> in seconds (3600 by default).<\/li>\n<li>The name shown in the top menu, on the chat page and in the insights panel is configurable with <code>display_name<\/code> in the same section, for example for a self-hosted model.<\/li>\n<\/ul>\n\n<h3>5.1.3<\/h3>\n\n<ul>\n<li>Fix: a default prompt saved with Windows (CRLF) line breaks is recognised again on Linux servers, so it follows the new default instead of being kept as a custom prompt.<\/li>\n<\/ul>\n\n<h3>5.1.2<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>5.1.1<\/h3>\n\n<ul>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>5.1.0<\/h3>\n\n<blockquote>\n  <p><strong>Action required.<\/strong> Nothing is sent to the AI provider any more until a super user checks <em>Allow sending Matomo data to the AI provider<\/em> in <em>Administration &gt; System &gt; Claude<\/em>, Privacy card. Until then, the chat and the insights ask users to contact a super user.<\/p>\n<\/blockquote>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<ul>\n<li>New privacy settings in <em>Administration &gt; System &gt; Claude<\/em>, <em>Privacy<\/em> card: nothing is sent to the AI provider until a super user checks <em>Allow sending Matomo data to the AI provider<\/em>, off by default. They also show where the data goes.<\/li>\n<li>Before sending, e-mail and IP addresses are masked and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default from the insights and the agent.<\/li>\n<li>The chat tells users that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the administrator.<\/li>\n<li>When a Matomo tool fails in agent mode, the AI provider only receives a generic error with a reference: the details stay in the Matomo logs.<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<p>First release of Claude for Matomo 5.<\/p>\n\n<p><strong>Chat and insights<\/strong><\/p>\n\n<ul>\n<li>A <strong>Claude<\/strong> page in the main menu, with streaming answers, suggested questions, copy buttons, scrollable tables and code blocks.<\/li>\n<li>An <strong>Insights<\/strong> button on any report: the whole report is analysed as a compact payload with its totals, following the active segment, period and comparisons, on data tables, evolution graphs, goals, custom reports and more.<\/li>\n<li>The insight panel closes the panel of the other Openmost AI plugins when it opens.<\/li>\n<\/ul>\n\n<p><strong>Anthropic connection<\/strong><\/p>\n\n<ul>\n<li>Requests go to the Anthropic Messages API, with streaming, the system prompt as a top-level field and tool use for the agent.<\/li>\n<li>Preset models with <strong>Latest recommended<\/strong> as the default (currently Claude Sonnet 5.5), plus Claude Opus 5.5, Claude Fable 5.1, Claude Haiku 4.5 and the previous models Anthropic still serves, or any custom model ID.<\/li>\n<li>One key is enough, in this order: the API key of the website, then AI Providers when its provider is Anthropic, then the general API key. The credential of another AI Providers provider is never used. When Anthropic is connected in AI Providers, the general connection fields become read-only.<\/li>\n<li>An invalid key, a rate limit (with its retry delay), an overloaded API, a refused answer and an unavailable model are explained in the language of the user. Rate limits and overloads are retried a few times first.<\/li>\n<li>The host must be an HTTPS URL. The API key is optional on a custom host.<\/li>\n<\/ul>\n\n<p><strong>Agent mode<\/strong><\/p>\n\n<ul>\n<li>With the McpServer plugin, the chat and the insights query the live reports through the Matomo tools, with the permissions of the current user, on the Anthropic key of the plugin or on AI Providers.<\/li>\n<li>Write actions are only performed after the agent has described the change and the user has confirmed it explicitly, whatever the base prompt says.<\/li>\n<li>The chat recommends, one step at a time, how to unlock the agent mode, with a direct link for super users.<\/li>\n<\/ul>\n\n<p><strong>Settings<\/strong><\/p>\n\n<ul>\n<li><em>Administration &gt; System &gt; Claude<\/em> for the general settings, with a <em>Connection<\/em> card and a <em>Prompts<\/em> card saved separately, a <em>Delete key<\/em> button and a <em>Reset to default<\/em> button for the prompts.<\/li>\n<li><em>Administration &gt; Websites &gt; Claude<\/em> to override the settings of a website.<\/li>\n<li>Default prompts written for analytics, never stored, so their future improvements reach every install that did not customise them.<\/li>\n<li>The default prompts ask the assistant to flag the figures of a period that has not ended yet as partial and to compare the same number of elapsed days instead of calling a drop a decline, and to compute every difference, percentage and ratio from the exact numbers.<\/li>\n<\/ul>\n\n<p><strong>More<\/strong><\/p>\n\n<ul>\n<li>Interface translated into 13 languages.<\/li>\n<li>Rate limit of 30 AI requests per hour, per user and per website.<\/li>\n<li>Insight requests are restricted to the report methods of the widgets declared by Matomo.<\/li>\n<\/ul>\n\n<p><strong>Compatibility<\/strong><\/p>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6: every Matomo theme variable used by the chat and the insight panel keeps the light theme value of Matomo as a fallback, so the releases without these variables show the light look.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Claude\/download\/5.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Claude\/changelog"},"consumer":{"license":null}},{"name":"ClickHeat","displayName":"Click Heat","owner":"piwikjapan","description":"ClickHeat is a visual heatmap of clicks on a HTML page. This plugin based on Dugwood's ClickHeat version 1.14. Plugin not consider IIS. Sorry.","homepage":"http:\/\/piwikjapan.org","createdDateTime":"2015-04-23 01:56:04","donate":{},"support":[{"name":"Email","key":"email","value":"yamachan@piwikjapan.org","type":"email"},{"name":"IRC","key":"irc","value":"@PiwikJapan","type":"text"}],"isTheme":false,"keywords":["clickheat","heatmap","dugwood","piwikjapan","YAMAMOTO Takashi"],"basePrice":0,"authors":[{"name":"Dugwood","email":null,"homepage":"http:\/\/www.dugwood.com\/clickheat\/index.html"},{"name":"YAMAMOTO Takashi (PiwikJapan)","email":"yamachan@piwikjapan.org","homepage":"http:\/\/www.piwikjapan.org\/"}],"repositoryUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat","lastUpdated":"2016-09-04 12:56:04","latestVersion":"0.1.9","numDownloads":21235,"screenshots":["https:\/\/plugins.matomo.org\/ClickHeat\/images\/0.1.9\/Your_heat_map.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"5","numContributors":"3","lastCommitDate":"2016-09-04 12:55:30"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2015-04-23 01:56:05","requires":{"piwik":">=2.11.1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":59,"license":{"name":"GPLv3 or later","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClickHeat\/download\/0.1.1"},{"name":"0.1.2","release":"2015-04-23 14:12:04","requires":{"piwik":">=2.11.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":82,"license":{"name":"GPLv3 or later","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat\/commits\/0.1.3-beta","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClickHeat\/download\/0.1.2"},{"name":"0.1.3","release":"2015-04-25 14:38:05","requires":{"piwik":">=2.11.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":70,"license":{"name":"GPLv3 or later","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClickHeat\/download\/0.1.3"},{"name":"0.1.4","release":"2015-04-27 13:54:05","requires":{"piwik":">=2.11.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":26,"license":{"name":"GPLv3 or later","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClickHeat\/download\/0.1.4"},{"name":"0.1.5","release":"2015-04-27 15:46:04","requires":{"piwik":">=2.11.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10398,"license":{"name":"GPLv3 or later","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClickHeat\/download\/0.1.5"},{"name":"0.1.6","release":"2016-08-30 10:26:04","requires":{"piwik":">=2.11.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPLv3 or later","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClickHeat\/download\/0.1.6"},{"name":"0.1.7","release":"2016-08-30 10:36:04","requires":{"piwik":">=2.11.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":362,"license":{"name":"GPLv3 or later","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ClickHeat\/download\/0.1.7"},{"name":"0.1.9","release":"2016-09-04 12:56:04","requires":{"piwik":">=2.11.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10233,"license":{"name":"GPLv3 or later","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/piwikjapan\/plugin-clickheat\/commits\/0.1.9","readmeHtml":{"description":"\n\n<p>ClickHeat is a visual heatmap of clicks on a HTML page, showing hot and cold click zones. This plugin based on <a href=\"https:\/\/github.com\/dugwood\/clickheat\">Dugwood's ClickHeat version 1.14<\/a>. It is an OpenSource software, released under GPL licence, and free of charge.<\/p>\n\n<p><strong>Plugin not consider the IIS.<\/strong> Sorry. We are waiting patches for IIS.<\/p>\n\n","faq":"<p><strong>What exactly is included in this feature ?<\/strong><\/p>\n\n<ul>\n<li>pick up a siteid<\/li>\n<li>pick up a period<\/li>\n<li>pick up a browser type<\/li>\n<li>pick up a specific web page<\/li>\n<\/ul>\n\n<p><strong>And what functions are not included in this feature ?<\/strong><\/p>\n\n<ul>\n<li>remove special addresses defined on the control panel.<\/li>\n<li>remove special browsers defined on the control panel.<\/li>\n<li>filters based on added segmentation<\/li>\n<\/ul>\n\n<p><strong>Where is the coordinate information from the browser ?<\/strong><\/p>\n\n<p>ClickHeat plugin uses text files to record the coordinate data of each browser in directory: yourpiwik\/tmp\/cache\/clickheat\/logs.<\/p>\n\n<p><strong>What is \"click.php returned a status code 403\" ?<\/strong><\/p>\n\n<p>You have to perform the upgrade immediately to version 0.1.5. I forgot to put .htaccess.<\/p>\n\n<p><strong>After installing the plugin, Matomo (Piwik) Administration area shows \"page not found 404 error\".<\/strong><\/p>\n\n<p>This plugin doesn't consider the IIS. Sorry. And please delete the ClickHeat plugin (yourpiwik\/plugins\/ClickHeat) manually via FTP or Explorer. We are waiting patches for IIS.<\/p>\n\n<p><strong>Does it withstands high traffics ?<\/strong><\/p>\n\n<p>This plugin uses minimal text to record data and file based logging. And when click.php is called from a special Javascript for cgi, just append text on end of the each file. And when you analyze the click data and make a heatmap, plugin will create cached heatmap as png image file.<\/p>\n\n<p>Therefore, we expect the plugin light works, but we don't know what load it has under Matomo 2.x. So we are very glad, when you inform us about your situation.<\/p>\n\n<p>Please see the link <a href=\"http:\/\/www.labsmedia.com\/clickheat\/156894.html\">Performance and optimization<\/a> about system resources. If you want performance, you need to avoid to use a cgi, that is possible. It method is explained on the link.<\/p>\n\n<p><strong>New click data were added, but not updated heatmap. Why ?<\/strong><\/p>\n\n<p>Plugin places heatmap images in the cache directory: yourpiwik\/tmp\/cache\/clickheat\/cache. Therefore when you suddenly met with such probrem, you can delete cache files, but <strong>do not delete cache directory<\/strong>.<\/p>\n\n<p><strong>Showed a heatmap, but not overlay a heatmap to the target web page. Why ?<\/strong><\/p>\n\n<p>Check that your website does not set the HTTP header <strong>X-FRAME-OPTIONS<\/strong> to <strong>SAMEORIGIN<\/strong> as this will prevent this plugin from iframing your website for the heatmap report. Please see <a href=\"http:\/\/piwik.org\/docs\/page-overlay\/#page-overlay-troubleshooting\">Page Overlay Troubleshooting<\/a>, that is same problem.<\/p>\n\n<p><strong>How do I enable logging ?<\/strong><\/p>\n\n<p>Logging prepared for click.php. To debug it further please enable tracker debug mode in config.ini.php:<\/p>\n\n<pre><code>[Tracker]\ndebug=1\n<\/code><\/pre>\n\n<p>You can see the log in yourpiwik\/tmp\/logs\/piwik.log.<\/p>","documentation":"","changelog":"<ul>\n<li>0.1.0 First beta<\/li>\n<li>0.1.2 to append faq<\/li>\n<li>0.1.3 to append faq<\/li>\n<li>0.1.5 to add .htaccess<\/li>\n<li>0.1.6\n\n<ul>\n<li>security update<\/li>\n<li>rename clickheat.php to clickheat_config.php (Windows mixes up ClickHeat.php with clickheat.php)<\/li>\n<\/ul><\/li>\n<li>0.1.7 fixed bug<\/li>\n<li>0.1.9 fixed bug<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ClickHeat\/download\/0.1.9"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ClickHeat\/changelog"},"consumer":{"license":null}},{"name":"CloudflareLocationProvider","displayName":"Cloudflare Location Provider","owner":"aholkner","description":"Provides GeoIP location data from Cloudflare request headers.","homepage":null,"createdDateTime":"2019-02-05 00:48:04","donate":{},"support":[],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"alex","email":"alex@studiodrydock.com","homepage":null}],"repositoryUrl":"https:\/\/github.com\/aholkner\/matomo-cloudflare-location-provider","lastUpdated":"2019-06-02 07:38:03","latestVersion":"0.1.2","numDownloads":4450,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"4","numContributors":"1","lastCommitDate":"2020-12-24 09:23:29"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2019-02-05 00:48:04","requires":{"piwik":">=3.8.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1118,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/aholkner\/matomo-cloudflare-location-provider\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CloudflareLocationProvider\/download\/0.1.0"},{"name":"0.1.2","release":"2019-06-02 07:38:03","requires":{"piwik":">=3.8.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3332,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/aholkner\/matomo-cloudflare-location-provider\/commits\/0.1.2","readmeHtml":{"description":"\n\n<p>Provides country-code geolocation for Matomo (Piwik) using Cloudflare headers.  Use this\ninstead of the default GeoIP2 plugin if all tracking requests are being routed through Cloudflare.<\/p>\n\n<p>This plugin trusts the country code provided in the <code>HTTP_CF_IPCOUNTRY<\/code> header injected by \nCloudflare, and does not require any GeoIP database.  <strong>Ensure you enable IP Geolocation in \nthe Cloudflare \"Network\" dashboard.<\/strong><\/p>\n\n<p>If requests are tracked outside of Cloudflare, no geolocation information will be available.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>0.1.0 Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/CloudflareLocationProvider\/download\/0.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CloudflareLocationProvider\/changelog"},"consumer":{"license":null}},{"name":"CodeInjector","displayName":"Code Injector","owner":"openmost","description":"Inject your own HTML, CSS and JavaScript into every Matomo page, with a syntax-checking code editor.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/code-injector","createdDateTime":"2023-10-31 11:20:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/CodeInjector\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/CodeInjector","type":"url"}],"isTheme":false,"keywords":["CSS","javascript","code","injector","head","body","html","inject","customization","code-editor"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/CodeInjector","lastUpdated":"2026-10-21 21:16:05","latestVersion":"5.1.1","numDownloads":31291,"screenshots":["https:\/\/plugins.matomo.org\/CodeInjector\/images\/5.1.1\/Code_editor_with_live_syntax_check.png","https:\/\/plugins.matomo.org\/CodeInjector\/images\/5.1.1\/Injected_code_running_in_Matomo.png","https:\/\/plugins.matomo.org\/CodeInjector\/images\/5.1.1\/Two_injection_points_top_and_bottom_of_body.png"],"coverImage":"https:\/\/plugins.matomo.org\/CodeInjector\/images\/5.1.1\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/RmB6fFVY2xo","id":"RmB6fFVY2xo"}],"activity":{"numCommits":"12","numContributors":"1","lastCommitDate":"2026-10-21 21:14:05"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"4.0.2","release":"2023-10-31 11:20:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":157,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/4.0.2"},{"name":"4.0.3","release":"2023-11-02 16:22:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/4.0.3"},{"name":"4.0.4","release":"2023-11-02 16:30:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/4.0.4"},{"name":"4.0.5","release":"2023-11-02 16:36:02","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":879,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/4.0.5"},{"name":"4.0.6","release":"2023-11-22 16:22:03","requires":{"matomo":">=4.0.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/4.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/4.0.6"},{"name":"5.0.6","release":"2023-11-22 16:24:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/5.0.6"},{"name":"5.0.7","release":"2023-11-22 17:06:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":427,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/5.0.7"},{"name":"4.0.7","release":"2023-11-22 17:06:07","requires":{"matomo":">=4.0.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3229,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/4.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/4.0.7"},{"name":"5.0.8","release":"2023-12-19 08:54:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4064,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/5.0.8"},{"name":"5.0.9","release":"2024-03-05 18:06:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5098,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/5.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/5.0.9"},{"name":"4.0.8","release":"2024-03-05 18:06:07","requires":{"matomo":">=4.0.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5061,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/4.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/4.0.8"},{"name":"5.0.10","release":"2024-06-27 12:38:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12152,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/5.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/5.0.10"},{"name":"6.0.1","release":"2026-09-15 19:34:03","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":41,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/6.0.1"},{"name":"6.1.0","release":"2026-10-14 14:26:13","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/6.1.0"},{"name":"5.1.0","release":"2026-10-14 15:24:05","requires":{"php":">=7.2.5","matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":87,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/5.1.0"},{"name":"6.1.1","release":"2026-10-21 21:02:04","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/6.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/6.1.1"},{"name":"5.1.1","release":"2026-10-21 21:16:05","requires":{"php":">=7.2.5","matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":64,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CodeInjector\/commits\/5.1.1","readmeHtml":{"description":"\n\n<p>Inject your own HTML, CSS and JavaScript into every page of the Matomo interface, from a code editor that checks your syntax as you type.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Two injection points<\/strong>: right after the opening <code>&lt;body&gt;<\/code> tag and right before the closing <code>&lt;\/body&gt;<\/code> tag, through the native <code>Template.bodyTop<\/code> and <code>Template.bodyBottom<\/code> hooks<\/li>\n<li><strong>Dedicated admin page<\/strong>: edit the code in <strong>Administration &gt; System &gt; Code Injector<\/strong>, saving asks for your password like any system setting<\/li>\n<li><strong>Code editor<\/strong>: HTML editor with embedded CSS and JavaScript syntax highlighting, in a light or dark palette that follows the Matomo theme<\/li>\n<li><strong>Live syntax checks<\/strong>: HTML, CSS, JavaScript and JSON-LD (<code>&lt;script type=\"application\/ld+json\"&gt;<\/code>) errors, unclosed <code>&lt;script&gt;<\/code> and <code>&lt;style&gt;<\/code> tags, and code pasted without any tag. Problems are listed next to the field and never block saving<\/li>\n<li><strong>Safe mode<\/strong>: the code is never injected on the Code Injector page, so a snippet that breaks the interface can always be fixed or removed<\/li>\n<li><strong>API<\/strong>: <code>CodeInjector.getCode<\/code> returns the code and <code>CodeInjector.setCode<\/code> saves it (super user only, password confirmation required)<\/li>\n<li>Interface translated into 12 languages<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6.0.0<\/li>\n<li>PHP 7.2.5 or higher<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate the plugin from the Matomo Marketplace (<strong>Administration &gt; Platform &gt; Marketplace<\/strong>).<\/li>\n<li>Go to <strong>Administration &gt; System &gt; Code Injector<\/strong>.<\/li>\n<li>Paste your code in one of the two editors. Wrap CSS in a <code>&lt;style&gt;<\/code> tag and JavaScript in a <code>&lt;script&gt;<\/code> tag.<\/li>\n<li>Click <strong>Save<\/strong> and confirm your password.<\/li>\n<\/ol>\n\n<p>Only super users can see the page and edit the code. Once saved, the code runs in every page of the Matomo interface, for every user, including the login page. It is not added to the JavaScript tracker or to Tag Manager containers.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<p>The code is stored in the Matomo database as a plugin system setting. The plugin itself sends nothing outside your Matomo instance, but the code you inject runs in the browser of every Matomo user: only paste code you understand and trust.<\/p>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. When injected code grows beyond a few tweaks, we turn it into a <a href=\"https:\/\/openmost.com\/matomo\/services\/plugin-development?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=codeinjector\">custom Matomo plugin<\/a>, built from a written spec, tested on the Matomo versions you run and maintained over time.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How to install this plugin?<\/strong><\/p>\n\n<p>This plugin is available in the official Matomo Marketplace. Install it the same way as other plugins:<\/p>\n\n<ul>\n<li>Go to the administration panel<\/li>\n<li>Open the Marketplace section and select \"Plugins\"<\/li>\n<li>Search for \"<strong>CodeInjector<\/strong>\", install and activate the plugin<\/li>\n<\/ul>\n\n<p><strong>Where do I paste my code?<\/strong><\/p>\n\n<p>Go to <strong>Administration &gt; System &gt; Code Injector<\/strong>.<\/p>\n\n<p><strong>Who can edit the injected code?<\/strong><\/p>\n\n<p>Only super users can edit the code. Once saved, the code runs in every page of the Matomo interface, for all users.<\/p>\n\n<p><strong>My code is displayed as text at the top of the page, why?<\/strong><\/p>\n\n<p>Your code is not wrapped in tags. Put your CSS in a <code>&lt;style&gt;<\/code> tag and your JavaScript in a <code>&lt;script&gt;<\/code> tag. The editor warns you when the tags are missing.<\/p>\n\n<p><strong>My code broke the Matomo interface, how do I fix it?<\/strong><\/p>\n\n<p>The code is never injected on the Code Injector page: open <strong>Administration &gt; System &gt; Code Injector<\/strong> (<code>index.php?module=CodeInjector&amp;action=index<\/code>) and fix or remove your code.<\/p>\n\n<p><strong>Is my code injected in the tracked websites?<\/strong><\/p>\n\n<p>No, the code is only injected in the Matomo interface, not in the JavaScript tracker or the Tag Manager containers.<\/p>\n\n<p><strong>Which versions of Matomo are supported?<\/strong><\/p>\n\n<p>Version 5.x of the plugin supports Matomo 5, it requires PHP 7.2.5 or higher. For Matomo 6, use version 6.x of the plugin.<\/p>\n\n<p><strong>How can I contribute to this plugin?<\/strong><\/p>\n\n<p>Open an issue or a pull request on <a href=\"https:\/\/github.com\/openmost\/CodeInjector\">GitHub<\/a>, or contact us at <a href=\"https:\/\/openmost.com\">openmost.com<\/a>.<\/p>\n\n<p><strong>How long will this plugin be maintained?<\/strong><\/p>\n\n<p>As long as possible. We use Matomo and this plugin on many projects every day, so issues are fixed as fast as possible.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>This plugin adds two code editors in <strong>Administration &gt; System &gt; Code Injector<\/strong>, where you can paste your HTML, CSS and JavaScript code.<\/p>\n\n<h3>Use cases<\/h3>\n\n<ul>\n<li>Add CSS to customize your UI without creating a theme<\/li>\n<li>Add CSS to fix small display issues<\/li>\n<li>Add JavaScript to enhance the user experience<\/li>\n<li>Add a tracking code to measure how your team uses Matomo<\/li>\n<li>Add a chat or support widget<\/li>\n<li>Load external JavaScript libraries in Matomo<\/li>\n<\/ul>\n\n<h3>Where the code is injected<\/h3>\n\n<p>The code is injected in every page of the Matomo interface (reporting, dashboard, administration, Tag Manager, login page) using the native Matomo hooks:<\/p>\n\n<ul>\n<li><code>Template.bodyTop<\/code>: right after the opening <code>&lt;body&gt;<\/code> tag, before the page content<\/li>\n<li><code>Template.bodyBottom<\/code>: right before the closing <code>&lt;\/body&gt;<\/code> tag, after the page content<\/li>\n<\/ul>\n\n<p>Your code must be wrapped in the right tags, for example:<\/p>\n\n<pre><code>&lt;style&gt;\n  .card { border-radius: 12px; }\n&lt;\/style&gt;\n\n&lt;script&gt;\n  console.log('Hello from Code Injector');\n&lt;\/script&gt;\n<\/code><\/pre>\n\n<h3>Code editor<\/h3>\n\n<p>Each field is a code editor with HTML, CSS and JavaScript syntax highlighting, in a light or dark palette that follows the Matomo theme. While you type, the editor checks your code and shows a status next to the field title:<\/p>\n\n<ul>\n<li>HTML syntax errors, like a closing tag that does not match its opening tag<\/li>\n<li>CSS syntax errors in <code>&lt;style&gt;<\/code> tags, like a missing or extra brace<\/li>\n<li>JavaScript syntax errors in <code>&lt;script&gt;<\/code> tags<\/li>\n<li>JSON syntax errors in <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> tags<\/li>\n<li><code>&lt;script&gt;<\/code> and <code>&lt;style&gt;<\/code> tags that are never closed<\/li>\n<li>Code pasted without any <code>&lt;script&gt;<\/code> or <code>&lt;style&gt;<\/code> tag, which would be displayed as text<\/li>\n<\/ul>\n\n<p>Click the status to list the problems. These checks never block saving.<\/p>\n\n<h3>Safe mode on the Code Injector page<\/h3>\n\n<p>The code is never injected on the Code Injector page. If a snippet breaks the Matomo interface, go back to this page to fix or remove it.<\/p>\n\n<h3>Warning<\/h3>\n\n<p>Only super users can edit this code, and it runs for every user of your Matomo instance.<\/p>\n\n<p><strong>Don't paste code you don't understand.<\/strong><\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.1.1<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v5.1.0<\/h3>\n\n<ul>\n<li>Requires Matomo 5.0.0 or higher (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>). The code editor falls back to the Matomo light theme colors when the theme color variables are not available (before Matomo 5.10.0).<\/li>\n<li>The code is edited on a dedicated <strong>Administration &gt; System &gt; Code Injector<\/strong> page instead of the General settings, existing code is kept<\/li>\n<li>New <code>CodeInjector.getCode<\/code> and <code>CodeInjector.setCode<\/code> API methods (super user only, saving requires the password confirmation)<\/li>\n<li>Code editor with HTML, CSS and JavaScript syntax highlighting, in a light and dark palette that follows the Matomo theme<\/li>\n<li>Live syntax checks: HTML, CSS, JavaScript and JSON-LD errors, unclosed <code>&lt;script&gt;<\/code> and <code>&lt;style&gt;<\/code> tags, code pasted without tags<\/li>\n<li>The code is not injected on the Code Injector page, so a snippet breaking the interface can always be fixed<\/li>\n<li>Interface translated into 12 languages<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.0.10<\/h3>\n\n<ul>\n<li>update: marketplace category and cover<\/li>\n<\/ul>\n\n<h3>v5.0.9<\/h3>\n\n<ul>\n<li>Update documentation<\/li>\n<\/ul>\n\n<h3>v5.0.8<\/h3>\n\n<ul>\n<li>Fix compatibility with Matomo v5.0<\/li>\n<\/ul>\n\n<h3>v5.0.6<\/h3>\n\n<ul>\n<li>Support Matomo v5<\/li>\n<\/ul>\n\n<h3>v4.0.6<\/h3>\n\n<ul>\n<li>Support Matomo v4.0.0 instead of 4.15.1<\/li>\n<\/ul>\n\n<h3>v4.0.5<\/h3>\n\n<ul>\n<li>Update FAQ (remove unnecessary API method)<\/li>\n<\/ul>\n\n<h3>v4.0.4<\/h3>\n\n<ul>\n<li>Fix FAQ syntax<\/li>\n<\/ul>\n\n<h3>v4.0.3<\/h3>\n\n<ul>\n<li>Support body bottom code<\/li>\n<\/ul>\n\n<h3>v4.0.2<\/h3>\n\n<ul>\n<li>Add readme<\/li>\n<li>Release on Marketplace<\/li>\n<\/ul>\n\n<h3>v4.0.1<\/h3>\n\n<ul>\n<li>Fix input validators<\/li>\n<\/ul>\n\n<h3>v4.0.0<\/h3>\n\n<ul>\n<li>Init plugin<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CodeInjector\/download\/5.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CodeInjector\/changelog"},"consumer":{"license":null}},{"name":"Cohorts","displayName":"Cohorts","owner":"matomo-org","description":"Track your retention efforts over time and keep your visitors engaged and coming back for more.","homepage":"https:\/\/plugins.matomo.org\/Cohorts","createdDateTime":"2019-06-05 23:47:08","donate":{},"support":[],"isTheme":false,"keywords":["cohorts","retention","user segments","goals"],"basePrice":94,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-12 06:16:25","latestVersion":"6.0.4","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/Cohorts\/images\/6.0.4\/cohorts.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/Cohorts.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/Cohorts","variations":[{"product_variation_id":130508,"price":"89","prettyPrice":"89EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130508&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130508","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-cohorts\/?attribute_type=1+to+4+users&add-to-cart=25946&variation_id=130508&aelia_cs_currency=EUR"},{"product_variation_id":130508,"price":"99","prettyPrice":"USD99","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130508&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130508","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-cohorts\/?attribute_type=1+to+4+users&add-to-cart=25946&variation_id=130508&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130509,"price":"711","prettyPrice":"711EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130509&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130509","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-cohorts\/?attribute_type=Up+to+20+users&add-to-cart=25946&variation_id=130509&aelia_cs_currency=EUR"},{"product_variation_id":130509,"price":"859","prettyPrice":"USD859","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130509&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130509","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-cohorts\/?attribute_type=Up+to+20+users&add-to-cart=25946&variation_id=130509&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130510,"price":"1413","prettyPrice":"1413EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130510&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130510","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-cohorts\/?attribute_type=Up+to+50+users&add-to-cart=25946&variation_id=130510&aelia_cs_currency=EUR"},{"product_variation_id":130510,"price":"1699","prettyPrice":"USD1699","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130510&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=25946&variation_id=130510","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-cohorts\/?attribute_type=Up+to+50+users&add-to-cart=25946&variation_id=130510&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-cohorts\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":null,"ratingCount":0,"reviewCount":0}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{},"versions":[{"name":"6.0.4","release":"2026-10-12 06:16:25","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/Cohorts\/6.0.4\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Discover what keeps your visitors engaged over time. Identify and resolve churn bottlenecks to effectively lower your acquisition costs.<\/p>\n\n<p>Imagine if you could peek into how different groups of your visitors or users behave throughout time. With cohort analysis, you can track groups of users for weeks or months after they take action on your site, such as signing up to newsletters or purchasing. Cohorts are the secret weapon to transform one-time visitors into long-term users, directly influencing your revenue and growth.<\/p>\n\n<p>Go beyond collecting data and unlock the full picture of your users\u2019 lifecycle with Matomo's Cohorts plugin. Follow the behaviours of new visitors and users, giving you a clear view of their engagement lifespan. Compare behaviours between converting and non-converting visitors and identify patterns for lowering your company's churn.<\/p>\n\n<h3>How Cohorts Works<\/h3>\n\n<h4>Analyse Visitor Retention Over Time<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>See how visitors interact with your site from their first visit until after they've purchased. Compare and contrast the journeys of various cohorts simultaneously.<\/p>\n<p>View key metrics in the Cohorts report, including your website's retention rate, overall revenue, and revenue for individual goals.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/Cohorts\/image1.png\" style=\"margin-left:24px;\" alt=\"Analyse Visitor Retention Over Time\" \/>\n<\/div>\n<\/div>\n\n<h4>Explore Diverse Metrics for Enhanced Retention Insights<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Start your cohort analysis with 'Returning Visitors %' to gauge the frequency of repeat visits within your cohorts. This metric is instrumental in identifying patterns of user drop-off.<\/p>\n<p>Expand your analysis to include vital metrics like revenue, conversion rates, and overall visit volume, enabling a holistic understanding of how these factors fluctuate across different user groups.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/Cohorts\/image2.jpg\" style=\"margin-left:24px;\" alt=\"Explore Diverse Metrics for Enhanced Retention Insights\" \/>\n<\/div>\n<\/div>\n\n<h4>Refine Your Cohort Analysis with Segmentation<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Segment your cohort reports to uncover the reasons behind specific customer behaviours, such as why users acquired before a certain date might not return or spend.<\/p>\n<p>Take your analysis a step further by comparing these insights with other, more successful cohorts, deepening your understanding of purchasing patterns.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/Cohorts\/image3.jpg\" style=\"margin-left:24px;\" alt=\"Refine Your Cohort Analysis with Segmentation\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Cohorts Today<\/h3>\n\n<p>Unlock the whole story behind your users' journeys with Cohorts. Dive into behaviours, retention, and revenue with clarity. Transform data into action, guiding your visitors from fleeting clicks to lasting connections.<\/p>\n\n<p>Start your 30-day free trial today and discover the key to lasting user engagement.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>A special cohorts table that allows you to easily compare cohorts, accompanied by a time series.<\/li>\n<li>Define cohorts by any period length, including weeks, months and years.<\/li>\n<li>A new segment: visitor acquisition date.<\/li>\n<\/ul>\n\n<h3>Export and API features<\/h3>\n\n<ul>\n<li>HTTP API to fetch all Cohorts data.<\/li>\n<li>No limit to how many Cohorts you can fetch at a time.<\/li>\n<\/ul>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.4 - 2026-10-12\n- Fixed the Cohorts dashboard widget missing its selector for the number of cohorts shown on Matomo 6<\/p>\n\n<p>6.0.3 - 2026-09-28\n- Relative report dates such as \"today\" or \"last 7 days\" are now resolved in the website's timezone, so cohorts and their date labels no longer shift to a neighbouring day for websites whose timezone differs from the server's<\/p>\n\n<p>6.0.2 - 2026-09-14\n- Fixed the metric selector overlapping the Cohorts widgets' own controls, which left refresh, minimise, maximise and close unusable on a dashboard and blocked the close button of a maximised widget. It now sits in its own row above the report, at the same width in both widgets, and the Cohorts Chart's last horizontal axis label is no longer cut off at the edge of the widget.\n- Fixed the Cohorts Chart not showing percentage metrics such as Returning Visitors % when Matomo was used in Basque, Kurdish or Turkish, and rounding them down to whole percents in Persian. Its vertical axis and tooltips now show the percent sign.\n- Fixed two Cohorts widget display issues: a long metric name was drawn over the metric selector's dropdown arrow, and the chart legend did not line up when it wrapped onto a second line.\n- Fixed the Cohorts Chart widget plotting the oldest cohorts, which are usually empty, until another metric was picked. It now shows the same most recent cohorts on a dashboard whatever number of cohorts the Cohorts page is set to.\n- Fixed the Cohorts Chart widget's vertical axis labels being drawn against the edge of the widget instead of clear of it, as they are on Matomo's other charts.<\/p>\n\n<p>6.0.1 - 2026-08-31\n- Corrected cohort dates being shifted by a day on Matomo installations whose database server does not run in UTC. Reports already archived on such an installation keep the old dates until Cohorts is re-archived.<\/p>\n\n<p>6.0.0 - 2026-08-11\n- Compatibility with Matomo 6<\/p>\n\n<p>5.1.9 - 2026-08-10\n- Disabled the metric forecast on the Cohorts evolution graphs (introduced in Matomo 5.13), as forecasts are not meaningful for cohort data<\/p>\n\n<p>5.1.8 - 2026-04-27\n- Renamed \"Cohorts\" to \"Cohorts Table\" in \"Add dashboard widget\" UI\n- Updated API documentation<\/p>\n\n<p>5.1.7 - 2026-02-02\n- Updated API documentation<\/p>\n\n<p>5.1.6 - 2025-11-24\n- Improved url parameter checking for Get Cohorts report<\/p>\n\n<p>5.1.5 - 2025-09-01\n- Added dashboard widget for the updated Cohorts Chart<\/p>\n\n<p>5.1.4 - 2025-07-07\n- Textual change<\/p>\n\n<p>5.1.3 - 2025-04-14\n- Adjusted Cohorts Chart to stop cohort lines when no more data exists for that cohort<\/p>\n\n<p>5.1.2 - 2025-03-31\n- Changed the position of metrics filter\n- Improved text for number of cohorts dropdown\n- Corrected issue preventing closing the Cohorts widget<\/p>\n\n<p>5.1.1 - 2025-01-28\n- Changed period default to empty from null, to not throw an exception if undefined\n- Updated cover images to show new visualisation change<\/p>\n\n<p>5.1.0 - 2025-01-20\n- Cohort visualisation graph updated to show growth\/drop-off per cohort\n- Fixed a PHP error due to a wrong datatype<\/p>\n\n<p>5.0.11 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.0.10 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.9\n- Added cover image for marketplace<\/p>\n\n<p>5.0.8\n- Started hiding icon to change visualisation\n- Fixed background color of gradient to start from #3450A3<\/p>\n\n<p>5.0.7\n- Improving the algorithm that converts time strings back to numeric values for comparison<\/p>\n\n<p>5.0.6\n- Fixed hover for first columns to show required info<\/p>\n\n<p>5.0.5\n- Updated README.md\n- Adjustments to the color gradient logic<\/p>\n\n<p>5.0.4\n- Archiving: Ensure parameter is provided in correct type<\/p>\n\n<p>5.0.3\n- Minor UI fixes<\/p>\n\n<p>5.0.2\n- Fix issue with evolution graph not always loading correctly<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.0.8\n- Fix issue with Matomo 4.14<\/p>\n\n<p>4.0.7\n- Added semantics type for metrics\n- Widening narrow select<\/p>\n\n<p>4.0.6\n- Added translation using Weblate (Bulgarian)<\/p>\n\n<p>4.0.5\n- Fixes to handle notices<\/p>\n\n<p>4.0.4\n- Fixed userID not getting archived for non day report\n- Fixed encoding issue for graph labels<\/p>\n\n<p>4.0.3\n- Add category help text<\/p>\n\n<p>4.0.2\n- Fix archiving error<\/p>\n\n<p>4.0.1\n- Rearchive reports on activation<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4<\/p>\n\n<p>3.0.11\n - Fix SQL error when fetching one day as a range<\/p>\n\n<p>3.0.10\n - Add segment even if no idSite is specified, but idSites (witth the ending \"s\") is specified so API.getSegmentsMetadata will show the segment.<\/p>\n\n<p>3.0.9\n - Fix archiving issue where archiving ranges caused broken SQL. (Archiving ranges for Cohorts should only trigger day archiving, nothing else.)<\/p>\n\n<p>3.0.8\n - Add code to disable comparison in anticipation of 3.12.\n - Fix for showing nb_users along w\/ nb_uniq_visitors when enabled.\n - Changes to README.<\/p>\n\n<p>3.0.7\n - Move Cohorts menu item to Visitors menu.\n - Fix bug in naming of ecommerce goal metrics.<\/p>\n\n<p>3.0.6\n - Fix bug if no data in evolution graph, no rows are selectable.\n - Fix bug that doubled selectable rows each time a new row was selected in evolution graph.\n - Fix bug in detection of date for cohort tooltip.<\/p>\n\n<p>3.0.5\n - Fix warning when computing cell background and cell tooltip.<\/p>\n\n<p>3.0.4\n - Fix unique visitors calculation for year periods.<\/p>\n\n<p>3.0.3\n - Disable report metadata since scheduled reports\/mobile app cannot handle cohort reports yet.<\/p>\n\n<p>3.0.2\n - Bug fix affecting controller actions that do not require an idSite parameter.\n - Bug fix affecting cohorts INI config if already present when installing plugin.<\/p>\n\n<p>3.0.1\n - Bug fix for cohort table translations.\n - Bug fix for viewing cohorts w\/ range periods.<\/p>\n\n<p>3.0.0\n - Initial public release<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/Cohorts\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"ConsoleUI","displayName":"Console UI","owner":"openmost","description":"Run Matomo console commands from the browser, with command autocompletion, when you have no SSH access.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/console-ui","createdDateTime":"2026-10-16 17:32:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/ConsoleUI\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/ConsoleUI","type":"url"}],"isTheme":false,"keywords":["admin","cli","console","command","terminal","shared hosting","ssh"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/ConsoleUI","lastUpdated":"2026-10-21 21:54:03","latestVersion":"5.0.5","numDownloads":50,"screenshots":["https:\/\/plugins.matomo.org\/ConsoleUI\/images\/5.0.5\/Autocompletion_of_commands_and_options.png","https:\/\/plugins.matomo.org\/ConsoleUI\/images\/5.0.5\/Command_library_with_usage_and_options.png","https:\/\/plugins.matomo.org\/ConsoleUI\/images\/5.0.5\/Run_Matomo_console_commands_with_live_colored_output.png"],"coverImage":"https:\/\/plugins.matomo.org\/ConsoleUI\/images\/5.0.5\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-21 21:52:24"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["development"],"promotions":{},"versions":[{"name":"5.0.0","release":"2026-10-16 17:32:04","requires":{"matomo":">=5.10.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/5.0.0"},{"name":"5.0.1","release":"2026-10-16 17:34:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/5.0.1"},{"name":"6.0.0","release":"2026-10-16 18:06:05","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/6.0.0"},{"name":"5.0.2","release":"2026-10-16 18:36:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/5.0.2"},{"name":"5.0.3","release":"2026-10-17 12:44:05","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/5.0.3"},{"name":"6.0.1","release":"2026-10-17 12:44:31","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/6.0.1"},{"name":"6.0.2","release":"2026-10-21 21:02:13","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/6.0.2"},{"name":"5.0.4","release":"2026-10-21 21:16:13","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/5.0.4"},{"name":"6.0.3","release":"2026-10-21 21:52:04","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/6.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/6.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/6.0.3"},{"name":"5.0.5","release":"2026-10-21 21:54:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ConsoleUI\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ConsoleUI\/commits\/5.0.5","readmeHtml":{"description":"\n\n<p>Run Matomo console commands from the browser, with autocompletion and a library of every available command, when you have no SSH access to the server: shared hosting, managed platforms, locked down servers.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>A console in Matomo<\/strong>: Administration &gt; Platform &gt; Console, for super users only. Type a command, its output appears as it runs, with the colors of a real terminal.<\/li>\n<li><strong>Autocompletion<\/strong>: command names while you type the first word, then the options of the command, with their descriptions. Tab accepts a suggestion, Up and Down browse the suggestions or the commands you ran.<\/li>\n<li><strong>Command library<\/strong>: every command of your Matomo, core and plugins, grouped by namespace and searchable, with its description, usage, arguments and options. One click inserts it in the console.<\/li>\n<li><strong>Live output<\/strong>: the output is streamed while the command runs, logs included, so long commands such as <code>core:archive<\/code> show their progress. A Stop button (or Ctrl+C) interrupts the running command, and it keeps running if you only close the page.<\/li>\n<li><strong>No shell needed<\/strong>: commands run inside Matomo, the same way the <code>console<\/code> script runs them. It works on hostings where <code>exec()<\/code>, <code>proc_open()<\/code> or SSH are disabled.<\/li>\n<li>Translated into 12 languages.<\/li>\n<\/ul>\n\n<h3>Security<\/h3>\n\n<ul>\n<li>Super users only, the page and the command endpoint both check it.<\/li>\n<li>The page asks the super user to confirm their password first, like installing a plugin does, and asks again once the confirmation expires.<\/li>\n<li>Commands only run from a logged in browser session (session token, POST only). The endpoint is not part of the HTTP API, a <code>token_auth<\/code> alone cannot run a command.<\/li>\n<li>Development commands (<code>development:*<\/code>, <code>generate:*<\/code>, <code>tests:*<\/code>, <code>vue:*<\/code>, <code>translations:*<\/code>...), commands calling system tools through a shell (<code>git:*<\/code>, <code>log:watch<\/code>) and fake data generators (<code>visitorgenerator:*<\/code>) are never available. Plugin and Marketplace commands follow the <code>enable_plugins_admin<\/code> setting.<\/li>\n<li><code>config:set<\/code> and <code>config:delete<\/code> cannot change the <code>[ConsoleUI]<\/code> and <code>[Development]<\/code> sections, nor <code>enable_plugin_upload<\/code>, <code>enable_plugins_admin<\/code> and <code>always_load_commands_from_plugin<\/code>. <code>core:archive --url<\/code> only accepts the URL of this Matomo, <code>--xhprof<\/code> and <code>--matomo-domain<\/code> are refused.<\/li>\n<li>Every command is written to the Matomo logs with the login of the super user, values of password, token, key and config options masked. The <code>ConsoleUI.commandExecuted<\/code> event lets an audit plugin record it too.<\/li>\n<li>The server administrator can restrict or turn off the console in <code>config\/config.ini.php<\/code>, and the console cannot change that section itself:<\/li>\n<\/ul>\n\n<pre><code>[ConsoleUI]\n; turns the console off\nenabled = 0\n; when set, only these commands are available\nallowed_commands[] = \"core:archive\"\nallowed_commands[] = \"core:clear-caches\"\n; commands removed from the console, on top of the development ones\nblocked_commands[] = \"user:*\"\n<\/code><\/pre>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or later, up to Matomo 6 excluded (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>)<\/li>\n<li>On Matomo 6, install Console UI 6.x instead.<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install Console UI from the Marketplace (Administration &gt; Platform &gt; Marketplace) and activate it.<\/li>\n<li>Go to Administration &gt; Platform &gt; Console and confirm your password.<\/li>\n<li>Type a command, for example <code>core:archive<\/code> or <code>core:clear-caches<\/code>, or pick one in the command library.<\/li>\n<\/ol>\n\n<h3>Privacy and data<\/h3>\n\n<p>The plugin stores nothing: the commands you type stay in the page and are forgotten when you leave it. Each command run is written to the Matomo logs. The plugin sends no data to third parties.<\/p>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. When the console is not enough, we <a href=\"https:\/\/openmost.com\/matomo\/services\/integration?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=consoleui\">install, upgrade and maintain Matomo<\/a> on any hosting, archiving and performance tuning included.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How do I install this plugin?<\/strong><\/p>\n\n<p>Install it from the Matomo Marketplace like any other plugin:<\/p>\n\n<ul>\n<li>Go to Administration &gt; Platform &gt; Marketplace<\/li>\n<li>Search for \"<strong>Console UI<\/strong>\", install and activate the plugin.<\/li>\n<li>Go to <strong>Administration &gt; Platform &gt; Console<\/strong>.<\/li>\n<\/ul>\n\n<p><strong>Who can use the console?<\/strong><\/p>\n\n<p>Super users only, after confirming their password. Other users do not see the menu entry, and the page and the command endpoint refuse them.<\/p>\n\n<p><strong>Does it need <code>exec()<\/code>, <code>proc_open()<\/code> or SSH?<\/strong><\/p>\n\n<p>No. Commands run inside Matomo, the same way the <code>console<\/code> script runs them, so the console works on shared hostings where these functions are disabled. Nothing typed in the page is handed to a shell.<\/p>\n\n<p><strong>Why is a command missing?<\/strong><\/p>\n\n<p>Development commands are never available from the browser. The server administrator may also have restricted the console with <code>allowed_commands<\/code> or <code>blocked_commands<\/code> in the <code>[ConsoleUI]<\/code> section of <code>config\/config.ini.php<\/code>.<\/p>\n\n<p><strong>A command asks a question in a terminal, what happens here?<\/strong><\/p>\n\n<p>Commands run without interaction, as with <code>--no-interaction<\/code>: a question gets its default answer. Check the options of the command with <code>--help<\/code> to answer it on the command line instead, for example with <code>--force<\/code> or <code>--yes<\/code> when the command offers one.<\/p>\n\n<p><strong>The connection was lost during a long command, is it stopped?<\/strong><\/p>\n\n<p>No, the command keeps running on the server until it ends. Some hostings cut requests that send nothing for a minute or more. Follow the command in the Matomo logs.<\/p>\n\n<p><strong>Are the commands I run recorded?<\/strong><\/p>\n\n<p>Yes. Each command is written to the Matomo logs with the login of the super user who ran it, with the values of password, token or key options masked.<\/p>\n\n<p><strong>How do I turn the console off?<\/strong><\/p>\n\n<p>Add <code>enabled = 0<\/code> under a <code>[ConsoleUI]<\/code> section of <code>config\/config.ini.php<\/code>, or deactivate the plugin.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Console UI brings the Matomo <code>console<\/code> to the administration of Matomo, for the instances you cannot reach with SSH.<\/p>\n\n<h3>Running a command<\/h3>\n\n<p>Go to <strong>Administration &gt; Platform &gt; Console<\/strong>. Matomo asks for your password first, then shows the console.<\/p>\n\n<p>Type a command and press Enter. You can paste a command from the Matomo documentation as is: the <code>.\/console<\/code>, <code>console<\/code> or <code>php console<\/code> prefix is ignored. The output appears while the command runs, and the last line gives the exit code and the duration.<\/p>\n\n<p>Commands never ask questions: they run as with the <code>--no-interaction<\/code> option, so a command expecting a confirmation uses its default answer. Add <code>--help<\/code> to a command to read its options first.<\/p>\n\n<h3>Autocompletion and history<\/h3>\n\n<ul>\n<li>While you type the first word, the console suggests the matching commands.<\/li>\n<li>After the command name, it suggests its options. An option expecting a value is completed with <code>=<\/code>.<\/li>\n<li><strong>Tab<\/strong> accepts the selected suggestion, <strong>Up<\/strong> and <strong>Down<\/strong> browse the suggestions, or the commands you ran when no suggestion is open.<\/li>\n<li><strong>Ctrl+C<\/strong> or the <strong>Stop<\/strong> button stops the running command, <strong>Ctrl+L<\/strong> clears the output, <strong>Copy<\/strong> copies it to the clipboard.<\/li>\n<\/ul>\n\n<p>The history stays in the page and is forgotten when you leave it, as a command line may contain a password.<\/p>\n\n<h3>Command library<\/h3>\n\n<p>Below the console, the library lists every command of your Matomo, core and plugins, grouped by namespace. Search by name or description, select a command to read its usage, arguments and options, then click <strong>Use this command<\/strong> to insert it in the console.<\/p>\n\n<h3>Restricting the console<\/h3>\n\n<p>The server administrator controls the console in <code>config\/config.ini.php<\/code>:<\/p>\n\n<pre><code>[ConsoleUI]\nenabled = 0                          ; turns the console off\nallowed_commands[] = \"core:archive\"  ; when set, only these commands are available\nblocked_commands[] = \"user:*\"        ; commands removed from the console\n<\/code><\/pre>\n\n<p>Patterns accept <code>*<\/code> wildcards. <code>list<\/code> and <code>help<\/code> stay available. Development commands, <code>git:*<\/code>, <code>log:watch<\/code> and <code>visitorgenerator:*<\/code> are always removed, and plugin commands follow <code>enable_plugins_admin<\/code>. <code>config:set<\/code> and <code>config:delete<\/code> cannot change the <code>[ConsoleUI]<\/code> and <code>[Development]<\/code> sections, nor the plugin upload and plugins admin settings.<\/p>\n\n<h3>Stopping a command<\/h3>\n\n<p>While a command runs, the <strong>Run<\/strong> button becomes <strong>Stop<\/strong>. The command is interrupted the next time it writes output or a log line, like Ctrl+C on the command line, and ends with the exit code 130. A command that writes nothing for a while stops when it writes again.<\/p>\n\n<h3>Long commands<\/h3>\n\n<p>The output is streamed while the command runs, and the command keeps running if you close the page or lose the connection. Some hostings cut a request that sends nothing for a while (often 60 to 100 seconds): the console then reports a lost connection, check the Matomo logs to follow the command.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.0.5<\/h3>\n\n<ul>\n<li>Fix: the Stopping and Stopped labels of the console are translated instead of showing a missing translation message.<\/li>\n<\/ul>\n\n<h3>v5.0.4<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v5.0.3<\/h3>\n\n<ul>\n<li>Fix the missing translation of the Stop button<\/li>\n<\/ul>\n\n<h3>v5.0.2<\/h3>\n\n<ul>\n<li>Accessibility improvements in the console (command suggestions, reload link)<\/li>\n<\/ul>\n\n<h3>v5.0.1<\/h3>\n\n<ul>\n<li>Requires Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>)<\/li>\n<\/ul>\n\n<h3>v5.0.0<\/h3>\n\n<ul>\n<li>Console page under Administration &gt; Platform &gt; Console, for super users, behind a password confirmation<\/li>\n<li>Commands run in-process, without shell, with their output and logs streamed live and colored<\/li>\n<li>Autocompletion of command names and options<\/li>\n<li>Command library with the description, usage, arguments and options of every command<\/li>\n<li>Development commands are never available, <code>[ConsoleUI]<\/code> settings in <code>config\/config.ini.php<\/code> restrict or turn off the console<\/li>\n<li>Every command is written to the Matomo logs, with secret option values masked<\/li>\n<li>Translated into 12 languages<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ConsoleUI\/download\/5.0.5"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ConsoleUI\/changelog"},"consumer":{"license":null}},{"name":"ConversionApi","displayName":"Conversion Api","owner":"ReinMengelberg","description":"The Conversion Api plugin allows users to integrate their data directly with Marketing platforms, like Meta, LinkedIn and Google.","homepage":null,"createdDateTime":"2025-05-22 11:12:02","donate":{},"support":[{"name":"Email","key":"email","value":"rein.mengelberg@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/ReinMengelberg\/ConversionApi","type":"url"}],"isTheme":false,"keywords":["Marketing","google","meta","ads","conversion api","linkedin"],"basePrice":0,"authors":[{"name":"ReinMengelberg","email":"rein.mengelberg@gmail.com","homepage":"https:\/\/applyfin.com"}],"repositoryUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi","lastUpdated":"2025-06-04 08:32:03","latestVersion":"0.2.9","numDownloads":8881,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/integration.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2025-06-17 13:49:01"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"0.1.0","release":"2025-05-22 11:12:03","requires":{"matomo":">=5.4.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.1.0"},{"name":"0.1.3","release":"2025-05-23 11:14:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.1.3"},{"name":"0.1.4","release":"2025-05-23 16:24:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.1.4"},{"name":"0.1.5","release":"2025-05-23 16:24:07","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.1.5"},{"name":"0.1.7","release":"2025-05-23 17:04:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.1.7"},{"name":"0.2.0","release":"2025-05-23 17:20:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.2.0"},{"name":"0.2.1","release":"2025-05-24 11:20:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.2.1"},{"name":"0.2.2","release":"2025-05-24 11:46:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.2.2"},{"name":"0.2.3","release":"2025-05-26 10:00:04","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.2.3"},{"name":"0.2.4","release":"2025-05-26 10:54:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.2.4"},{"name":"0.2.5","release":"2025-05-26 11:34:04","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":87,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.2.5"},{"name":"0.2.8","release":"2025-06-04 08:22:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.2.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.2.8"},{"name":"0.2.9","release":"2025-06-04 08:32:03","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8747,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ReinMengelberg\/ConversionApi\/commits\/0.2.9","readmeHtml":{"description":"\n\n<p>ConversionApi is a powerful Matomo plugin designed to enhance your analytics capabilities by seamlessly integrating visitor data with conversion tracking APIs. The plugin allows you to map predefined variables to custom dimensions, enabling better tracking and analysis of conversion-related metrics across your websites.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/ConversionApi\/download\/0.2.9"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ConversionApi\/changelog"},"consumer":{"license":null}},{"name":"ConzentCmp","displayName":"Conzent Cmp","owner":"conzent-net","description":"Adds Conzent CMP as a native tag in Matomo Tag Manager for GDPR cookie consent.","homepage":"https:\/\/getconzent.com","createdDateTime":"2026-03-23 10:48:03","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/getconzent.com\/docs","type":"url"},{"name":"Email","key":"email","value":"support@getconzent.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/conzent-net\/conzent-matomo-cmp\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/conzent-net\/conzent-matomo-cmp","type":"url"}],"isTheme":false,"keywords":["TagManager","Consent","CMP","GDPR","cookie","ePrivacy","CCPA"],"basePrice":0,"authors":[{"name":"Conzent","email":"support@getconzent.com","homepage":"https:\/\/getconzent.com"}],"repositoryUrl":"https:\/\/github.com\/conzent-net\/conzent-matomo-cmp","lastUpdated":"2026-03-23 10:48:03","latestVersion":"1.0.0","numDownloads":1341,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/ConzentCmp\/images\/1.0.0\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-03-23 10:58:32"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-03-23 10:48:03","requires":{"matomo":">=4.0.0,<6.99.99"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1341,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/ConzentCmp\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/conzent-net\/conzent-matomo-cmp\/commits\/1.0.0","readmeHtml":{"description":"\n\n<p>Adds <strong>Conzent CMP<\/strong> as a native tag type in Matomo Tag Manager. Manage cookie consent on your website with a simple Website Key \u2014 no custom HTML required.<\/p>\n\n<p>Conzent is a Google CMP Certified consent management platform that supports GDPR, CCPA, ePrivacy, and IAB TCF v2.2.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Native Matomo Tag Manager integration \u2014 select \"Conzent CMP\" from the tag list<\/li>\n<li>Configure with just a Website Key<\/li>\n<li>GDPR, CCPA &amp; ePrivacy compliant cookie consent banner<\/li>\n<li>Google Consent Mode v2 support<\/li>\n<li>IAB TCF v2.2 support<\/li>\n<li>Works with self-hosted Conzent OCI installations (configurable Server URL)<\/li>\n<\/ul>\n\n<h3>How to use<\/h3>\n\n<ol>\n<li>Go to <strong>Tag Manager<\/strong> in Matomo<\/li>\n<li>Select your container<\/li>\n<li>Click <strong>Create New Tag<\/strong><\/li>\n<li>Select <strong>Conzent CMP<\/strong> from the \"Consent Management\" category<\/li>\n<li>Enter your <strong>Website Key<\/strong> (found in your Conzent dashboard under Sites)<\/li>\n<li>Assign a trigger (e.g., \"All Page Views\")<\/li>\n<li>Save and publish your container<\/li>\n<\/ol>\n\n<h3>Self-hosted Conzent OCI<\/h3>\n\n<p>If you are running a self-hosted Conzent OCI instance, change the <strong>Server URL<\/strong> field to your installation URL.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 4.0 or later<\/li>\n<li>Tag Manager plugin activated (included by default since Matomo 3.7)<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<ul>\n<li>Website: <a href=\"https:\/\/getconzent.com\">https:\/\/getconzent.com<\/a><\/li>\n<li>Documentation: <a href=\"https:\/\/getconzent.com\/docs\">https:\/\/getconzent.com\/docs<\/a><\/li>\n<li>Issues: <a href=\"https:\/\/github.com\/conzent-net\/conzent-matomo-cmp\/issues\">https:\/\/github.com\/conzent-net\/conzent-matomo-cmp\/issues<\/a><\/li>\n<\/ul>","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/ConzentCmp\/download\/1.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ConzentCmp\/changelog"},"consumer":{"license":null}},{"name":"CrashAnalytics","displayName":"Crash Analytics","owner":"matomo-org","description":"Detect crashes to improve the user experience, increase conversions and recover revenue. Resolve them with insights to minimise developer hours.","homepage":"https:\/\/plugins.matomo.org\/CrashAnalytics","createdDateTime":"2023-08-30 05:06:01","donate":{},"support":[],"isTheme":false,"keywords":["monitoring","monitor","javascript","log","error","php","crash","exception","js"],"basePrice":154,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-22 05:16:08","latestVersion":"6.1.3","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/CrashAnalytics\/images\/6.1.3\/0_Overview.png","https:\/\/plugins.matomo.org\/CrashAnalytics\/images\/6.1.3\/1_Overview_changes.png","https:\/\/plugins.matomo.org\/CrashAnalytics\/images\/6.1.3\/2_Real_time.png","https:\/\/plugins.matomo.org\/CrashAnalytics\/images\/6.1.3\/3_Visits_log.png","https:\/\/plugins.matomo.org\/CrashAnalytics\/images\/6.1.3\/4_Crash_messages.png","https:\/\/plugins.matomo.org\/CrashAnalytics\/images\/6.1.3\/5_Crash_detail.png","https:\/\/plugins.matomo.org\/CrashAnalytics\/images\/6.1.3\/6_Row_evolution.png","https:\/\/plugins.matomo.org\/CrashAnalytics\/images\/6.1.3\/7_Replay_session.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/CrashAnalytics.png","previews":[{"type":"demo","provider":"link","url":"https:\/\/demo.matomo.cloud\/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#?idSite=1&period=day&date=yesterday&category=CrashAnalytics_Crashes&subcategory=CrashAnalytics_Overview"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":true,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/CrashAnalytics","variations":[{"product_variation_id":130520,"price":"153","prettyPrice":"153EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130520&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130520","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-crashanalytics\/?attribute_type=1+to+4+users&add-to-cart=84315&variation_id=130520&aelia_cs_currency=EUR"},{"product_variation_id":130520,"price":"189","prettyPrice":"USD189","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130520&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130520","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-crashanalytics\/?attribute_type=1+to+4+users&add-to-cart=84315&variation_id=130520&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130521,"price":"1209","prettyPrice":"1209EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130521&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130521","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-crashanalytics\/?attribute_type=Up+to+20+users&add-to-cart=84315&variation_id=130521&aelia_cs_currency=EUR"},{"product_variation_id":130521,"price":"1449","prettyPrice":"USD1449","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130521&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130521","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-crashanalytics\/?attribute_type=Up+to+20+users&add-to-cart=84315&variation_id=130521&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130522,"price":"2409","prettyPrice":"2409EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130522&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130522","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-crashanalytics\/?attribute_type=Up+to+50+users&add-to-cart=84315&variation_id=130522&aelia_cs_currency=EUR"},{"product_variation_id":130522,"price":"2889","prettyPrice":"USD2889","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130522&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=84315&variation_id=130522","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-crashanalytics\/?attribute_type=Up+to+50+users&add-to-cart=84315&variation_id=130522&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-crashanalytics\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":null,"ratingCount":0,"reviewCount":0}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{"featured":1},"versions":[{"name":"6.1.3","release":"2026-10-22 05:16:08","requires":{"matomo":">=6.0.0-b2,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/CrashAnalytics\/6.1.3\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p><strong>Crash Analytics<\/strong> by Matomo: Uncover Errors and Elevate Your Site\u2019s Performance.<\/p>\n\n<p>Broken carts, glitchy checkouts, unresponsive contact forms \u2013 they're not just annoyances; they're revenue pitfalls waiting to happen.<\/p>\n\n<p>13% of all pageviews come with lurking JavaScript errors that can cripple your visitors' experiences and jeopardise your revenue potential. Recent statistics reveal that <a href=\"https:\/\/www.retaildive.com\/news\/website-bugs-lead-to-cart-abandonment\/549828\/\">58%<\/a> of visitors are inclined to abandon purchases as a result of bugs, while an astonishing <a href=\"https:\/\/www.retaildive.com\/news\/website-bugs-lead-to-cart-abandonment\/549828\/\">75%<\/a> are driven to completely abandon websites due to these frustrating experiences.<\/p>\n\n<p>To provide some context, consider a website that usually earns 25,000 EUR per month. If this site is encountering errors in 13% of all pageviews, it could potentially result in a monthly loss of 1,855 EUR.<\/p>\n\n<p>With Crash Analytics, you can improve the user experience, boost conversion rates and grow revenue with 100% website reliability.<\/p>\n\n<p>Even with the most rigorous tests, you can't foresee every glitch across diverse browsers, setups and scenarios. Factors like ad blockers, fluctuating internet speeds and evolving browser versions compound the complexity. This is where Crash Analytics excels.<\/p>\n\n<p><strong>Crash Analytics for Matomo<\/strong> empowers you to preemptively detect and efficiently resolve errors that could impact your conversions and bottom line. Here's how:<\/p>\n\n<ul>\n<li><strong>Reliability Out-of-the-Box:<\/strong> Begin detecting crashes instantly with no configuration needed, giving you the power to resolve issues and enhance your site's performance right away.<\/li>\n<li><strong>Real-Time Crash Insight:<\/strong> Catch errors in real-time, especially after deploying changes, so you're always on the pulse.<\/li>\n<li><strong>Proactive Alert System:<\/strong> Stay ahead with instant alerts when an error occurs and scheduled crash reports, ensuring bugs never compromise your site's speed, user experience or bottom line again.<\/li>\n<li><strong>Holistic Insights:<\/strong> Combine Matomo features such as segments, session recordings or visitor logs with crashes to dig deep and understand the user\u2019s device, software and precise actions taken before encountering a bug.<\/li>\n<li><strong>Synchronising Developers and Marketers:<\/strong> Bridge the gap between your technical team and marketing experts. Track emerging, disappearing and recurring errors, forward crash data to developers and prioritise fixes that matter.<\/li>\n<li><strong>Cross-stack Proficiency:<\/strong> It's not just about JavaScript. Crash Analytics is your ally in tackling server-side crashes too \u2013 whether PHP, Android, iOS, Java or more.<\/li>\n<\/ul>\n\n<p><strong>Finally, all your website metrics in one place.<\/strong><\/p>\n\n<p>Matomo's traditional and behavioural web analytics, now enhanced with Crash Analytics.<\/p>\n\n<h3>Our promise<\/h3>\n\n<p><a href=\"https:\/\/shop.matomo.org\/free-trial\/\"><img src=\"https:\/\/plugins.matomo.org\/img\/free_trial_image.png\" style=\"width:220px;float:right;margin-bottom:10px;\" alt=\"Our promise to you\" \/><\/a>Crash Analytics is simple to use, since we started using it, we were able to identify and remediate issues that we either weren\u2019t aware of or couldn\u2019t understand before. This raised the quality and reduced the amount of lost conversions. Hand-crafted by the makers of Matomo, we are certain once you start using it, you will absolutely love it as well.<\/p>\n\n<blockquote>\n  <p>This is why we give you a <a href=\"https:\/\/shop.matomo.org\/free-trial\/\">free 30 day trial<\/a>. We will remind you about the subscription seven days before the end of the trial. There are no strings attached.<\/p>\n<\/blockquote>\n\n<p>So now that you know that you have nothing to lose, start identifying and fixing crashes on your website now and let us know how you go. We are happy to help you get started and are looking forward to hearing how it helps you.<\/p>\n\n<h3>Perfectly integrated and supported<\/h3>\n\n<p>We are the creators of Matomo and know it better than anyone else. This means all plugins are perfectly integrated into Matomo and come with outstanding features and quality to grow your business.<\/p>\n\n<ul>\n<li>Use annotations to mark deploys.<\/li>\n<li>Get alerted when crashes increase.<\/li>\n<li>Set up regular automated reports via email or text message.<\/li>\n<li>View crash information on the go via our mobile app.<\/li>\n<li>View which actions people performed before and after a crash.<\/li>\n<li>Slice and dice your data by using the powerful segmentation feature.<\/li>\n<li>Struggle to reproduce an issue? Set up a session recording.<\/li>\n<\/ul>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Automatically tracks JavaScript errors on your website.<\/li>\n<li>Ability to track server-side errors via one of our SDKs.<\/li>\n<li>Various real-time reports about what crashes are happening right now.<\/li>\n<li>View new, disappeared, and reappeared crashes.<\/li>\n<li>Merge similar crashes into one crash.<\/li>\n<li>View reports by evolution over time.<\/li>\n<li>Easily find out which pages have the most crashes.<\/li>\n<li>Break down crashes by source, first party, third party, custom category, and more<\/li>\n<li>Merge similar crashes into one crash<\/li>\n<li>Get relevant visitor and device information about every crash as well as stack trace, and more.<\/li>\n<li>Not interested in certain crashes? Easily ignore crashes you don\u2019t want to see to reduce noise<\/li>\n<li>Merge different crashes to remove the noise in your data<\/li>\n<li>Easily forward crash data to developers<\/li>\n<li>Optionally possible to sample crashes, customise crashing information such as stack traces, and more.<\/li>\n<\/ul>\n\n<h3>More information<\/h3>\n\n<p>To learn more about this premium feature have a look at the <a href=\"https:\/\/matomo.org\/guide\/reports\/crash-analytics\/\">Crash Analytics User guide<\/a>.<\/p>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/guide\/reports\/crash-analytics\/\">Crash Analytics User Guide<\/a> covers how to get the most out of this plugin.<\/p>\n\n<p>The <a href=\"https:\/\/developer.matomo.org\/guides\/crash-analytics\">Crash Analytics developer guides<\/a> help you set up and configure the tracking of crashes in your websites and apps.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.1.3 - 2026-10-22\n- Fixed an error shown after updating the plugin from the Marketplace<\/p>\n\n<p>6.1.2 - 2026-10-12\n- Improved the inline help of the Crash Analytics reports and linked them to the related documentation\n- Fixed the Previous and Next links being missing from the visits list in the crash details popup<\/p>\n\n<p>6.1.1 - 2026-09-28\n- Relative report dates such as \"today\" or \"yesterday\" are now resolved in the website's timezone, so the crash overview's comparison with the previous period no longer uses a neighbouring day for websites whose timezone differs from the server's\n- Fixed the Activity Log failing to load once a crash event had been recorded with no valid site or crash id<\/p>\n\n<p>6.1.0 - 2026-09-14\n- Added general settings for the crash limit per pageview, restricting tracking to specific source domains, disabling stack trace logging and tracking browser extension errors\n- Added stack trace logging to the settings enforced by CNIL compliance mode\n- Fixed no crashes being tracked at all when the tracking code passed several domains to onlyTrackSourcesWithDomain\n- Fixed the loading indicator showing as a white box in dark mode<\/p>\n\n<p>6.0.1 - 2026-09-07\n- Fixed crash type and crash link being lost for crashes that share a message and resource URI<\/p>\n\n<p>6.0.0 - 2026-08-24\n- Compatibility with Matomo 6\n- Updated the crash message column to show the whole message and only truncate it once it fills the column<\/p>\n\n<p>5.0.16 - 2026-08-17\n- Added code to fix memory consumption for row evolution data<\/p>\n\n<p>5.0.15 - 2026-07-20\n- Fixed popover URL being overridden with invalid values\n- Added code to ignore crash type and source in totals calculation<\/p>\n\n<p>5.0.14 - 2026-05-25\n- Fixed FAQ links in Crash Analytics report footers<\/p>\n\n<p>5.0.13 - 2026-05-15\n- Fixed crash summary context showing undefined crash occurrence dates when visitor log data is unavailable\n- Fixes require md5 error, breaking tracking code<\/p>\n\n<p>5.0.12 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.0.11 - 2026-04-13\n- Added more restrictive check for crash merge and unmerge to be part of same site ID<\/p>\n\n<p>5.0.10 - 2026-03-02\n- Updated text for crash message tables to be more clear<\/p>\n\n<p>5.0.9 - 2026-02-16\n- Added escaping for crash input values\n- Added Matomo cloud only system setting to configure tracking hits % for CrashAnalytics<\/p>\n\n<p>5.0.8 - 2026-02-02\n- Increased precision on crash rate metric to 2 decimal places\n- Updated API documentation\n- Added option to disable crash analytics tracking\n- Updated code to search by crash message, type &amp; source for other reports too<\/p>\n\n<p>5.0.7 - 2026-01-19\n- Added code to allow searching across crash message, type &amp; source<\/p>\n\n<p>5.0.6 - 2026-01-05\n- Added code to send only one crash if user in sample range<\/p>\n\n<p>5.0.5 - 2025-03-17\n- Increase minimum Matomo core version to 5.0.0-rc1<\/p>\n\n<p>5.0.4 - 2024-10-21\n- Updated code to limit lastMinutes query parameter<\/p>\n\n<p>5.0.3 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.2\n- Added cover image for marketplace<\/p>\n\n<p>5.0.1\n- Fixes PHP 8.1 deprecation errors<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/CrashAnalytics\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"CrazyEggWidgetByAmperage","displayName":"Crazy Egg Widget","owner":"AMPERAGE-Marketing","description":"Show Crazy Egg snapshots for the current site as a dashboard widget.","homepage":"https:\/\/www.amperagemarketing.com","createdDateTime":"2018-01-16 00:04:03","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/wiki","type":"url"},{"name":"Email","key":"email","value":"kzeni1@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget","type":"url"}],"isTheme":false,"keywords":["widget","dashboard","heatmap","amperage","crazy egg","crazyegg","heat map"],"basePrice":0,"authors":[{"name":"Amperage Marketing & Fundraising","email":"digital@amperagemarketing.com","homepage":"http:\/\/www.amperagemarketing.com"},{"name":"Kurt Zenisek","email":"kzeni1@gmail.com","homepage":"http:\/\/kzeni.com"}],"repositoryUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget","lastUpdated":"2023-10-02 22:16:02","latestVersion":"5.0.1","numDownloads":25544,"screenshots":["https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/images\/5.0.1\/crazy-egg-widget-hover.png","https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/images\/5.0.1\/crazy-egg-widget.png","https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/images\/5.0.1\/settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"11","numContributors":"1","lastCommitDate":"2023-10-02 22:14:26"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.2","release":"2018-01-16 00:04:03","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3992,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CrazyEggWidgetByAmperage\/download\/1.0.2"},{"name":"1.0.3","release":"2019-12-16 21:46:06","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":737,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CrazyEggWidgetByAmperage\/download\/1.0.3"},{"name":"1.0.4","release":"2020-11-25 04:10:03","requires":{"piwik":">=3.2.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":329,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CrazyEggWidgetByAmperage\/download\/1.0.4"},{"name":"1.0.5","release":"2021-01-29 00:04:03","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2594,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/1.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/commits\/1.0.5-Matomo-3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CrazyEggWidgetByAmperage\/download\/1.0.5"},{"name":"1.0.6","release":"2021-01-29 00:12:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6794,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/1.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CrazyEggWidgetByAmperage\/download\/1.0.6"},{"name":"5.0.0","release":"2023-10-02 22:04:06","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CrazyEggWidgetByAmperage\/download\/5.0.0"},{"name":"5.0.1","release":"2023-10-02 22:16:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11094,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Crazy-Egg-Widget\/commits\/5.0.1","readmeHtml":{"description":"\n\n<p>Show Crazy Egg snapshots for the current site as a dashboard widget. First, you specify your CrazyEgg.com API keys in your user settings, and then your dashboard widget will check which site's being viewed and display any\/all snapshots under that account for that site.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>5.0.1<\/h2>\n\n<ul>\n<li>Updated changelog &amp; other metadata for 5.x releases.<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<ul>\n<li>Prepped release for Matomo 5.x while also version-bumping the plugin to 5.0.0 as a base value per Matomo's recommendation\/convention for Matomo 5.x plugins.<\/li>\n<\/ul>\n\n<h2>1.0.6<\/h2>\n\n<ul>\n<li>Version bump Matomo 4 plugin as that is technically newer.<\/li>\n<\/ul>\n\n<h2>1.0.5<\/h2>\n\n<ul>\n<li>Split Matomo 3 and Matomo 4 versions.<\/li>\n<\/ul>\n\n<h2>1.0.4<\/h2>\n\n<ul>\n<li>Confirmed Matomo 4 compliance.<\/li>\n<\/ul>\n\n<h2>1.0.3<\/h2>\n\n<ul>\n<li>Better scoped the widget styles.<\/li>\n<li>Made more use of existing CSS within Matomo instead of using custom styles.<\/li>\n<\/ul>\n\n<h2>1.0.2<\/h2>\n\n<ul>\n<li>Added API keys as a user-specific setting.<\/li>\n<\/ul>\n\n<h2>1.0.1<\/h2>\n\n<ul>\n<li>Added snapshot screenshots &amp; heatmap overlay.<\/li>\n<\/ul>\n\n<h2>1.0<\/h2>\n\n<ul>\n<li>Initial Release.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CrazyEggWidgetByAmperage\/download\/5.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CrazyEggWidgetByAmperage\/changelog"},"consumer":{"license":null}},{"name":"CustomAlerts","displayName":"Custom Alerts","owner":"matomo-org","description":"Create custom Alerts to be notified of important changes on your website or app!","homepage":"https:\/\/matomo.org","createdDateTime":"2014-01-15 23:26:05","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts","type":"url"}],"isTheme":false,"keywords":["Report","alerts","notification","monitoring"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts","lastUpdated":"2026-08-24 06:28:12","latestVersion":"6.0.0","numDownloads":209742,"screenshots":["https:\/\/plugins.matomo.org\/CustomAlerts\/images\/6.0.0\/Create_Alert.png","https:\/\/plugins.matomo.org\/CustomAlerts\/images\/6.0.0\/History_Of_Alerts.png","https:\/\/plugins.matomo.org\/CustomAlerts\/images\/6.0.0\/List_Of_Alerts.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/CustomAlerts.png","previews":[],"activity":{"numCommits":"777","numContributors":"49","lastCommitDate":"2026-10-22 15:59:29"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"database","categories":["insights"],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-01-15 23:26:06","requires":{"piwik":">=2.0.4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.0"},{"name":"0.1.1","release":"2014-01-16 00:28:05","requires":{"piwik":">=2.0.4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.1"},{"name":"0.1.2","release":"2014-01-16 00:40:05","requires":{"piwik":">=2.0.4-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.2"},{"name":"0.1.3","release":"2014-01-16 02:14:06","requires":{"piwik":">=2.0.4-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":36,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.3"},{"name":"0.1.4","release":"2014-01-21 02:54:06","requires":{"piwik":">=2.0.4-b3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.4"},{"name":"0.1.5","release":"2014-01-22 20:12:06","requires":{"piwik":">=2.0.4-b3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.5"},{"name":"0.1.6","release":"2014-01-23 00:48:05","requires":{"piwik":">=2.0.4-b3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.6"},{"name":"0.1.7","release":"2014-01-23 23:34:06","requires":{"piwik":">=2.0.4-b3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":42,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.7"},{"name":"0.1.8","release":"2014-01-28 22:54:06","requires":{"piwik":">=2.0.4-b5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.8"},{"name":"0.1.9","release":"2014-01-29 04:44:06","requires":{"piwik":">=2.0.4-b5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":39,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.9"},{"name":"0.1.10","release":"2014-02-03 00:54:06","requires":{"piwik":">=2.0.4-b7"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.10"},{"name":"0.1.11","release":"2014-02-03 01:40:06","requires":{"piwik":">=2.0.4-b7"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":81,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.11"},{"name":"0.1.12","release":"2014-02-12 02:26:07","requires":{"piwik":">=2.0.4-b9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":221,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.12"},{"name":"0.1.14","release":"2014-03-11 12:10:07","requires":{"piwik":">=2.2.1-b2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":49,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.14","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.14"},{"name":"0.1.15","release":"2014-03-12 00:46:06","requires":{"piwik":">=2.1.1-b2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":692,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.15","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.15"},{"name":"0.1.16","release":"2014-05-24 07:30:07","requires":{"piwik":">=2.1.1-b2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.16","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.16"},{"name":"0.1.17","release":"2014-05-24 09:14:11","requires":{"piwik":">=2.1.1-b2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":245,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.17","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.17"},{"name":"0.1.18","release":"2014-06-05 10:14:11","requires":{"piwik":">=2.4.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2392,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.18","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.18"},{"name":"0.1.19","release":"2015-02-12 21:06:04","requires":{"piwik":">=2.11.0-b2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":516,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.19","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.19"},{"name":"0.1.20","release":"2015-03-27 01:54:04","requires":{"piwik":">=2.11.0-b2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2117,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.20","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.20"},{"name":"0.1.21","release":"2015-10-30 00:04:04","requires":{"piwik":">=2.15.0-b18"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1188,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.21","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.21"},{"name":"0.1.22","release":"2016-01-14 20:12:04","requires":{"piwik":">=2.15.0-b18"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2878,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.22","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.22"},{"name":"3.0.0","release":"2016-09-13 21:42:03","requires":{"piwik":">=3.0.0-dev,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1196,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/3.0.0"},{"name":"0.1.23","release":"2016-10-06 02:00:04","requires":{"piwik":">=2.15.0-b18,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2197,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/0.1.23","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/0.1.23"},{"name":"3.0.1","release":"2017-03-19 10:40:07","requires":{"piwik":">=3.0.0-dev,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1376,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/3.0.1"},{"name":"3.0.2","release":"2017-07-10 09:12:07","requires":{"piwik":">=3.0.0-dev,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1571,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/3.0.2"},{"name":"3.0.3","release":"2017-11-01 22:06:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3063,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/3.0.3"},{"name":"3.0.4","release":"2018-06-18 10:08:05","requires":{"piwik":">=3.0.0-dev,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2789,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/3.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/3.0.4"},{"name":"3.0.5","release":"2019-01-07 00:58:06","requires":{"piwik":">=3.8.0-rc2,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3062,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/3.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/3.0.5"},{"name":"3.0.6","release":"2020-01-15 10:22:06","requires":{"piwik":">=3.8.0-rc2,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5915,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/3.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/3.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/3.0.6"},{"name":"4.0.0","release":"2020-07-29 05:32:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":618,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 19:52:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16280,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/4.0.1"},{"name":"4.0.2","release":"2021-08-18 03:22:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":718,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/4.0.2"},{"name":"4.0.3","release":"2021-09-20 05:18:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11667,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/4.0.3"},{"name":"4.0.4","release":"2022-03-28 02:30:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9508,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/4.0.4"},{"name":"4.1.0","release":"2022-04-26 02:34:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":26789,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/4.1.0"},{"name":"5.0.0","release":"2023-05-04 02:26:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":147,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.0.0"},{"name":"5.0.1","release":"2023-08-08 22:46:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.0.1"},{"name":"5.0.2","release":"2023-08-28 05:48:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3200,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.0.0-b3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.0.2"},{"name":"4.1.1","release":"2023-08-28 05:48:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":54450,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/4.1.1"},{"name":"5.0.3","release":"2024-01-29 04:02:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4236,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.0.3"},{"name":"5.0.4","release":"2024-04-22 05:30:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4625,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.0.4"},{"name":"5.0.5","release":"2024-06-27 06:50:20","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5812,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.0.5"},{"name":"5.0.6","release":"2024-09-23 02:42:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10306,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.0.6"},{"name":"5.0.7","release":"2025-07-07 10:12:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2969,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.0.7"},{"name":"5.1.0","release":"2025-09-30 03:34:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2287,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.1.0"},{"name":"5.2.0","release":"2025-11-24 03:00:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1715,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.2.0"},{"name":"5.2.1","release":"2025-12-08 08:00:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2061,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.2.1"},{"name":"5.2.2","release":"2026-01-19 02:02:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1426,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.2.2"},{"name":"5.2.3","release":"2026-02-05 01:10:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1709,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.2.3"},{"name":"5.2.4","release":"2026-03-02 04:32:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1942,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.2.4"},{"name":"5.2.5","release":"2026-03-30 03:52:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2805,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.2.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.2.5"},{"name":"5.2.6","release":"2026-04-27 04:30:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1565,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.2.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.2.6"},{"name":"5.3.0","release":"2026-05-11 04:44:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1828,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.3.0"},{"name":"5.3.1","release":"2026-06-08 05:02:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1697,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.3.1"},{"name":"5.3.2","release":"2026-06-29 05:16:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2471,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.3.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.3.2"},{"name":"5.3.3","release":"2026-07-27 07:46:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4954,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/5.3.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/5.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/5.3.3"},{"name":"6.0.0","release":"2026-08-24 06:28:12","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":181,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomAlerts\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomAlerts\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>Create Custom Alerts + Be notified by email\/SMS\/Slack!<\/p>\n\n<p>Alerts are a great way to get notified of changes on your website. Want to know if your new product hits less than 100 sales in a week or your new article attracts more than 200 visitors a day? Create alerts that make sense to you. Be notified by email, SMS or Slack when the conditions for your alerts are met. Stay on top of your website!<\/p>\n\n<p>The Alert log will help you to better understand the success of your website. You can use it to analyse how often your website hit more than 10000 visits per day or on how many days a product was sold more than 50 times.<\/p>\n\n<p>This plugin was crowdfunded with the support of 37 Matomo community members!<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What exactly is included in this feature?<\/strong><\/p>\n\n<p>Here is the complete list of features that are included in this project:<\/p>\n\n<ul>\n<li>Define new Alert (\"Big drop in purchases\")<\/li>\n<li>Select a website on which the Alert is defined<\/li>\n<li>Receive an alert by email (email will contain Alert description + link to Matomo dashboard URL for the given website ID and period).<\/li>\n<li>Receive an alert by SMS (SMS will contain the Alert description and numbers that triggered the Alert)<\/li>\n<li>Receive an alert by Slack (Slack post will contain the Alert description and numbers that triggered the Alert)<\/li>\n<li>Select the Alert period: should it be daily, weekly or monthly?<\/li>\n<li>Select the report (Websites, Keywords, Countries, general stats)<\/li>\n<li>Define Metrics (visits, page view, avg. visit duration, Goal 1 conversions, total goal conversions, etc.)<\/li>\n<li>Define the Alert: when Visits decrease 50%, when purchases are more than 50 per day, etc.<\/li>\n<\/ul>\n\n<p><strong>What reports are available to the Alert system?<\/strong><\/p>\n\n<p>You can create an alert for any available report in Matomo. Plugins can define new reports which will be automatically picked up by Alerts.<\/p>\n\n<p><strong>What alert conditions are available?<\/strong><\/p>\n\n<p>You can create alerts for the following metrics:<\/p>\n\n<ul>\n<li>Visits, Visits Evolution, Unique Visits<\/li>\n<li>Actions, Action Evolution<\/li>\n<li>Pageviews, Pageviews Evolution<\/li>\n<li>Time on page<\/li>\n<li>Bounce rate<\/li>\n<li>Goal revenue<\/li>\n<li>Downloads<\/li>\n<li>and many more..<\/li>\n<\/ul>\n\n<p>To define the condition you can select the conditions:<\/p>\n\n<ul>\n<li>Greater than, less than<\/li>\n<li>Equal, Not Equal<\/li>\n<li>Percentage increase\/decrease<\/li>\n<\/ul>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>6.0.0 - 2026-08-09 - Compatibility with Matomo 6<\/li>\n<li>5.3.3 - 2026-07-27 - Added strict comparison check<\/li>\n<li>5.3.2 - 2026-06-29 - Added code to improve the access check before sending an alert<\/li>\n<li>5.3.1 - 2026-06-08 - Added restrict access check for MultiSites.getAll report for non superusers<\/li>\n<li>5.3.0 - 2026-05-11 - Added alert description and helptexts<\/li>\n<li>5.2.6 - 2026-04-27 - Updated API documentation<\/li>\n<li>5.2.5 - 2026-03-30 - Added escaping for report_matched value<\/li>\n<li>5.2.4 - 2026-03-02 - Updated API documentation<\/li>\n<li>5.2.3 - 2026-02-05 - Alerts now get deleted when a user's site access is revoked<\/li>\n<li>5.2.2 - 2026-01-19 - Added tooltips in add\/edit alerts, manage alerts &amp; in the inline text for the delivery method<\/li>\n<li>5.2.1 - 2025-12-08 - Fixes default value showing up as empty entry for alert_mediums<\/li>\n<li>5.2.0 - 2025-11-24 - Added ability to send alerts to a Microsoft Teams channel<\/li>\n<li>5.1.0 - 2025-09-29 Refactored UI to support different mediums to alert and changes to alert via Slack<\/li>\n<li>5.0.7 - 2025-07-07 Textual changes<\/li>\n<li>5.0.6 - 2024-09-23 Added check if reports used by alert are done archiving and retry if not archived<\/li>\n<li>5.0.5 Combined all the actions into one column<\/li>\n<li>5.0.4 Added plugin category for Marketplace<\/li>\n<li>5.0.3 Added inline help to mention events filter FAQ<\/li>\n<li>5.0.2 Fixed alert conditions not reloading on site change<\/li>\n<li>5.0.1 Compatibility with Matomo 5.0.0-b4<\/li>\n<li>5.0.0 Compatibility with Matomo 5.0<\/li>\n<li>4.1.0 Migrate AngularJS to Vue<\/li>\n<li>4.0.4 Fixed autocomplete for country to trigger alerts<\/li>\n<li>4.0.3 Grouped alert condition select in UI<\/li>\n<li>4.0.2 Improve report selector when defining a custom alert<\/li>\n<li>4.0.0 Compatibility with Matomo 4.0<\/li>\n<li>3.0.6: Do not pass trigger=archivephp to API method calls.<\/li>\n<li>3.0.1: Email alerts: beautiful email design<\/li>\n<li>3.0.0: Compatibility with Piwik 3.0<\/li>\n<li>0.1.22: Improved the look of some form elements<\/li>\n<li>0.1.21: Compatible with Piwik 2.15.0, fixed: alert number format can be wrong when using percentages<\/li>\n<li>0.1.0: First beta<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CustomAlerts\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomAlerts\/changelog"},"consumer":{"license":null}},{"name":"CustomDimensions","displayName":"Custom Dimensions","owner":"matomo-org","description":"Extend Matomo to your needs by defining and tracking Custom Dimensions in scope Action or Visit.","homepage":"https:\/\/matomo.org","createdDateTime":"2015-11-25 03:26:03","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions","type":"url"}],"isTheme":false,"keywords":["custom dimensions","track"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions","lastUpdated":"2020-03-15 13:34:04","latestVersion":"3.1.10","numDownloads":94728244,"screenshots":["https:\/\/plugins.matomo.org\/CustomDimensions\/images\/3.1.10\/Action_Report.png","https:\/\/plugins.matomo.org\/CustomDimensions\/images\/3.1.10\/Goal_Conversions.png","https:\/\/plugins.matomo.org\/CustomDimensions\/images\/3.1.10\/Manage.png","https:\/\/plugins.matomo.org\/CustomDimensions\/images\/3.1.10\/Visit_Report.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"289","numContributors":"6","lastCommitDate":"2023-04-03 00:15:59"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-11-25 03:26:04","requires":{"piwik":">=2.15.1-b3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":161,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/0.1.0"},{"name":"0.1.2","release":"2015-12-07 04:16:04","requires":{"piwik":">=2.15.1-b8"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":733,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/0.1.2"},{"name":"0.1.3","release":"2016-01-21 19:30:07","requires":{"piwik":">=2.15.1-b8"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":389,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/0.1.3"},{"name":"0.1.4","release":"2016-02-04 19:56:04","requires":{"piwik":">=2.15.1-b8"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2773,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/0.1.4"},{"name":"0.1.5","release":"2016-08-03 20:56:05","requires":{"piwik":">=2.15.1-b8"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":483,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/0.1.5"},{"name":"0.1.6","release":"2016-08-16 07:52:04","requires":{"piwik":">=2.15.1-b8,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2567,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/0.1.6"},{"name":"3.0.0","release":"2016-09-13 22:00:05","requires":{"piwik":">=3.0.0-dev,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3218,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.0.0"},{"name":"3.0.1","release":"2017-04-03 22:00:07","requires":{"piwik":">=3.0.0-dev,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1797,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.0.1"},{"name":"3.0.2","release":"2017-06-16 01:52:09","requires":{"piwik":">=3.0.0-dev,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1717,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.0.2"},{"name":"3.1.0","release":"2017-09-05 16:36:05","requires":{"piwik":">=3.1.0-rc1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1519,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.0"},{"name":"3.1.1","release":"2017-10-12 00:14:05","requires":{"piwik":">=3.2.0-b3,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1146,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.1"},{"name":"3.1.2","release":"2017-11-01 22:04:05","requires":{"piwik":">=3.2.0-b3,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16139,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.2"},{"name":"3.1.3","release":"2018-06-18 12:12:04","requires":{"piwik":">=3.2.0-b3,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9621,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.3"},{"name":"3.1.4","release":"2018-11-29 01:00:06","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":310,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.4"},{"name":"3.1.5","release":"2018-12-03 18:38:05","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5725,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.5"},{"name":"3.1.6","release":"2019-01-28 19:48:06","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3305,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.6.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.6"},{"name":"3.1.7","release":"2019-04-28 21:10:05","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":857,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomDimensions\/3.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.7"},{"name":"3.1.8","release":"2019-05-21 23:18:05","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3068,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomDimensions\/3.1.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.8"},{"name":"3.1.9","release":"2019-08-13 08:54:05","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":94654599,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomDimensions\/3.1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.9"},{"name":"3.1.10","release":"2020-03-15 13:34:04","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18117,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomDimensions\/3.1.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomDimensions\/commits\/3.1.10","readmeHtml":{"description":"\n\n<p>This plugins allows you to configure and track any <a href=\"https:\/\/matomo.org\/docs\/custom-dimensions\/\">Custom Dimensions<\/a>. You can configure a Custom Dimension\nby giving it a name and a scope (Action or Visit). Afterwards you will see a new menu item in the reporting area\nfor each configured dimension and be able to get its data. You can also export the report as a widget, segment by this\n dimenson, and more. For more information read the <a href=\"https:\/\/matomo.org\/docs\/custom-dimensions\/\">Custom Dimensions user guide<\/a> or have a look in the FAQ.<\/p>\n\n<p><strong>Warning<\/strong>: Depending on the database size of your Matomo this plugin may take a long time to install.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>I have a large database, can I install the plugin on the command line?<\/strong><\/p>\n\n<p>Yes, this is not only possible but even recommended as the installation may take hours. To do this follow these steps:<\/p>\n\n<ul>\n<li>Download the Plugin from <a href=\"https:\/\/plugins.piwik.org\/CustomDimensions\">https:\/\/plugins.piwik.org\/CustomDimensions<\/a><\/li>\n<li>Extract the files within the downloaded ZIP file<\/li>\n<li>Copy the <code>CustomDimensions<\/code> directory into the <code>plugins<\/code> directory of your Matomo (Piwik)<\/li>\n<li>Execute the command <code>.\/console plugin:activate CustomDimensions<\/code> within your Matomo directory<\/li>\n<\/ul>\n\n<p><strong>Where can I manage Custom Dimensions?<\/strong><\/p>\n\n<p>Custom Dimensions can be managed by clicking on your username or user icon in the top right. There will be a menu\nitem \"Custom Dimensions\" within the \"Manage\" section of the left menu. By clicking on it you can manage Custom Dimensions.\nPlease note that the permission Admin is required in order to be able to manage them.<\/p>\n\n<p><strong>Where can I find the Id for a Custom Dimension?<\/strong><\/p>\n\n<p>You can find them by going to the \"Manage Custom Dimensions\" page in your personal area. For each dimension you will\nfind the Id in the table that lists all available Custom Dimensions.<\/p>\n\n<p><strong>How do I set a value for a dimension in the JavaScript Tracker?<\/strong><\/p>\n\n<p>Please have a look at the <a href=\"https:\/\/developer.piwik.org\/guides\/tracking-javascript-guide#custom-dimensions\">JavaScript Tracker guide for Custom Dimensions<\/a>.<\/p>\n\n<p><strong>How do I set a value for a dimension in the PHP Tracker?<\/strong><\/p>\n\n<p><code>$tracker-&gt;setCustomTrackingParameter('dimension' . $customDimensionId, $value);<\/code><\/p>\n\n<p>Please note custom tracking parameters are cleared after each tracking request. If you want to keep the same\nCustom Dimensions over all request make sure to call this method before each tracking call.<\/p>\n\n<p><strong>I have configured all available Custom Dimension slots, can I add more?<\/strong><\/p>\n\n<p>Yes, this is possible. To make a new Custom Dimension slot available execute the following command including the scope option:<\/p>\n\n<pre><code>.\/console customdimensions:add-custom-dimension --scope=action\n.\/console customdimensions:add-custom-dimension --scope=visit\n<\/code><\/pre>\n\n<p>Be aware that this can take a long time depending on the size of your database as it requires MySQL schema changes.\nYou can directly create multiple Custom Dimension slots. To do this add the option <code>--count=X<\/code>. Usually it doesn't take much\nlonger to create directly multiple new slots.<\/p>\n\n<p><strong>Is it possible to delete a Custom Dimension and all of its data?<\/strong><\/p>\n\n<p>In the UI it is only possible to deactivate a dimension. However, on the command line you can remove a Custom Dimension\nand report it's log data by executing the following console command:<\/p>\n\n<pre><code>.\/console customdimensions:remove-custom-dimension --scope=$scope --index=$index\n<\/code><\/pre>\n\n<p>Make sure to replace <code>$scope<\/code> and <code>$index<\/code> with the correct values. To get a list of all available indexes execute <code>.\/console customdimensions:info<\/code>.<\/p>\n\n<p>Removing a Custom Dimension may take a long time as it requires MySQL schema changes. Currently, only log data is removed. Archived reports will be\nnot deleted currently.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>3.1.10\n\n<ul>\n<li>Performance &amp; code improvements<\/li>\n<li>Translation updates<\/li>\n<\/ul><\/li>\n<li>3.1.9\n\n<ul>\n<li>Remove custom dimension configs for the correct scope<\/li>\n<li>Improve speed of auto suggest for custom dimension for high traffic sites<\/li>\n<li>Compability with <a href=\"https:\/\/matomo.org\/docs\/google-analytics-importer\/\">Google Analytics Importer<\/a><\/li>\n<\/ul><\/li>\n<li>3.1.8\n\n<ul>\n<li>Trim and truncate raw values from tracker<\/li>\n<\/ul><\/li>\n<li>3.1.7\n\n<ul>\n<li>Add primary key for better replication<\/li>\n<\/ul><\/li>\n<li>3.1.6\n\n<ul>\n<li>Fix custom dimensions in scheduled reports may be repeated<\/li>\n<\/ul><\/li>\n<li>3.1.5\n\n<ul>\n<li>Fix a permission check<\/li>\n<\/ul><\/li>\n<li>3.1.4\n\n<ul>\n<li>Fix flattened reports may define wrong segment selector<\/li>\n<li>Internal changes<\/li>\n<\/ul><\/li>\n<li>3.1.1\n\n<ul>\n<li>Adds support for <a href=\"https:\/\/plugins.piwik.org\/CustomReports\">Custom Reports<\/a><\/li>\n<li>Better sorting for auto suggestion in segments<\/li>\n<\/ul><\/li>\n<li>3.1.0\n\n<ul>\n<li>Makes plugin compatible with Piwik 3.1.0 (Adjustments to make custom dimensions visible in visitor log and profile)<\/li>\n<\/ul><\/li>\n<li>3.0.2\n\n<ul>\n<li>Make sure to unsanitize extraction patterns so HTML entities can be used<\/li>\n<\/ul><\/li>\n<li>3.0.1:\n\n<ul>\n<li>Language updates<\/li>\n<li>No longer show an empty entry as <code>Value not defined<\/code><\/li>\n<\/ul><\/li>\n<li>3.0.0: Compatibility with Piwik 3.0<\/li>\n<li>0.1.5\n\n<ul>\n<li>Fix some problems where a wrong whitespace might cause JavaScript errors and causes the UI to not work<\/li>\n<li>Fix a typo in the UI in the JavaScript code which sets a custom dimension<\/li>\n<\/ul><\/li>\n<li>0.1.4 Fix a possible JavaScript error if Transitions plugin is disabled<\/li>\n<li>0.1.3 Fix UI of Custom Dimensions was not working properly when not using English as language<\/li>\n<li>0.1.2\n\n<ul>\n<li>New feature: Mark an extraction as case sensitive<\/li>\n<li>New feature : Show actions that had no value defined<\/li>\n<li>New feature : Link to Page URLs in subtables<\/li>\n<\/ul><\/li>\n<li>0.1.1 Bugfixes<\/li>\n<li>0.1.0 Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CustomDimensions\/download\/3.1.10"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomDimensions\/changelog"},"consumer":{"license":null}},{"name":"CustomDimensionsManager","displayName":"Custom Dimensions Manager","owner":"NatLibFi","description":"Manage custom dimensions configuration. Console interface only.","homepage":"https:\/\/github.com\/NatLibFi\/CustomDimensionsManager","createdDateTime":"2023-04-24 08:04:06","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/NatLibFi\/CustomDimensionsManager\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/NatLibFi\/CustomDimensionsManager","type":"url"}],"isTheme":false,"keywords":["custom dimensions"],"basePrice":0,"authors":[{"name":"Ere Maijala","email":"ere.maijala@helsinki.fi","homepage":"https:\/\/github.com\/NatLibFi\/CustomDimensionsManager"}],"repositoryUrl":"https:\/\/github.com\/NatLibFi\/CustomDimensionsManager","lastUpdated":"2023-10-02 09:36:03","latestVersion":"0.1.2","numDownloads":12988,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"2","numContributors":"1","lastCommitDate":"2023-10-02 09:35:06"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2023-04-24 08:04:06","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3554,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomDimensionsManager\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/NatLibFi\/CustomDimensionsManager\/commits\/v0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomDimensionsManager\/download\/0.1.1"},{"name":"0.1.2","release":"2023-10-02 09:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9434,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomDimensionsManager\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/NatLibFi\/CustomDimensionsManager\/commits\/v0.1.2","readmeHtml":{"description":"\n\n<p>This plugin allows management of custom dimensions configuration using Matomo's <a href=\"https:\/\/matomo.org\/faq\/general\/faq_21827\/\">console<\/a>. No web interface is provided.<\/p>\n\n<h3>Available Functions<\/h3>\n\n<p>Currently the following functionality is provided:<\/p>\n\n<ul>\n<li>Synchronization of custom dimensions configuration between sites.<\/li>\n<li>Deletion of custom dimensions configuration of a single site.<\/li>\n<\/ul>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>CustomDimensionsManager provides some administrative commands that can be used to manage custom dimensions configuration of multiple sites. The commands are executed using Matomo's <a href=\"https:\/\/matomo.org\/faq\/general\/faq_21827\/\">console<\/a>.<\/p>\n\n<h3>The 'synchronize' Command<\/h3>\n\n<p>This is the main function with the purpose of synchronizing custom dimensions configurations of sites.<\/p>\n\n<p>The command <code>customdimensionsmanager:synchronize<\/code> allows you to copy configuration of custom dimensions from a specific site to another in a Matomo installation. The source site could be considered a template for other sites.<\/p>\n\n<p>You can also use <code>*<\/code> as the target site to copy configuration of the source site to all other sites. This makes it possible to e.g. run the process regularly as a cron task.<\/p>\n\n<p>The <code>--dry-run<\/code> option can be used to test what the command would do without actually making any changes.<\/p>\n\n<h3>The 'delete' Command<\/h3>\n\n<p>The command <code>customdimensionsmanager:delete<\/code> allows you to delete all custom dimensions configuration of a single site.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v0.1.2<\/h3>\n\n<ul>\n<li>Added support for Matomo 5.x.<\/li>\n<\/ul>\n\n<h3>v0.1.1<\/h3>\n\n<ul>\n<li>Improvements to the README file and docs.<\/li>\n<li>Addition of LICENSE file in preparation for publishing on the Marketplace.<\/li>\n<\/ul>\n\n<h3>v0.1.0<\/h3>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CustomDimensionsManager\/download\/0.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomDimensionsManager\/changelog"},"consumer":{"license":null}},{"name":"CustomiseTranslations","displayName":"Customise Translations","owner":"Findus23","description":"This plugin allows you to modify all translateable strings in Matomo.","homepage":"https:\/\/lw1.at","createdDateTime":"2018-10-26 19:32:03","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations","type":"url"}],"isTheme":false,"keywords":["language","customisation"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations","lastUpdated":"2023-07-22 20:46:02","latestVersion":"1.1.0","numDownloads":28291,"screenshots":["https:\/\/plugins.matomo.org\/CustomiseTranslations\/images\/1.1.0\/settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"48","numContributors":"17","lastCommitDate":"2024-08-18 21:02:26"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2018-10-26 19:32:04","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/0.1.0"},{"name":"0.1.1","release":"2018-10-26 20:26:03","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":33,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/0.1.1"},{"name":"0.1.2","release":"2018-10-28 07:52:04","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2019,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/0.1.2"},{"name":"0.2.0","release":"2020-10-10 16:28:03","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2216,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/0.2.0"},{"name":"1.0.0","release":"2020-10-10 16:34:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":131,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/1.0.0"},{"name":"1.0.1","release":"2020-12-04 11:08:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1270,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/1.0.1"},{"name":"1.0.2","release":"2021-09-04 19:58:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":893,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/1.0.2"},{"name":"1.0.3","release":"2021-11-19 18:34:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4582,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/1.0.3"},{"name":"1.1.0","release":"2023-07-22 20:46:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17136,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-CustomiseTranslations\/commits\/1.1.0","readmeHtml":{"description":"\n\n<p>This plugin allows you to quickly replace translatable texts in Matomo.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>1.1.0<\/h2>\n\n<p>Matomo 5 compatibility<\/p>\n\n<h2>1.0.3<\/h2>\n\n<p>add French, Japanese, Portuguese, Portuguese (Brazil) and Ukrainian translations<\/p>\n\n<h2>1.0.2<\/h2>\n\n<p>add German, Greek, Italian and Turkish translations<\/p>\n\n<h2>1.0.1<\/h2>\n\n<p>fix DI (thanks to @Aramics)<\/p>\n\n<h2>1.0.0<\/h2>\n\n<p>Matomo 4 compatibility<\/p>\n\n<h2>0.2.0<\/h2>\n\n<p>Allow translating \"General\", \"Mobile\" and \"RowEvolution\" translation strings.<\/p>"},"download":"\/api\/2.0\/plugins\/CustomiseTranslations\/download\/1.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomiseTranslations\/changelog"},"consumer":{"license":null}},{"name":"CustomizeLogoUrl","displayName":"Customize Logo Url","owner":"Simoblaster","description":"Plugin that allows you to configure the destination URL of the Matomo logo through the Admin Dashboard.","homepage":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl","createdDateTime":"2025-07-01 12:26:02","donate":{},"support":[{"name":"Email","key":"email","value":"simone.saturno@innovaway.it","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl","type":"url"}],"isTheme":false,"keywords":["admin","configuration","logo","navigation","settings"],"basePrice":0,"authors":[{"name":"Innovaway S.p.A.","email":"simone.saturno@innovaway.it","homepage":"https:\/\/innovaway.it"}],"repositoryUrl":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl","lastUpdated":"2025-07-02 09:28:03","latestVersion":"1.0.6","numDownloads":7753,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2025-07-02 09:26:04"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2025-07-01 12:26:02","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomizeLogoUrl\/download\/1.0.0"},{"name":"1.0.3","release":"2025-07-01 12:26:06","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomizeLogoUrl\/download\/1.0.3"},{"name":"1.0.4","release":"2025-07-02 09:06:03","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomizeLogoUrl\/download\/1.0.4"},{"name":"1.0.5","release":"2025-07-02 09:10:03","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomizeLogoUrl\/download\/1.0.5"},{"name":"1.0.6","release":"2025-07-02 09:28:03","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7739,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Simoblaster\/matomo-plugin-CustomizeLogoUrl\/commits\/1.0.6","readmeHtml":{"description":"\n\n<p>By default, clicking on the Matomo logo in the top-left corner navigates to the current Matomo installation homepage. This plugin provides the flexibility to redirect users to any custom URL when they click on the logo, directly configurable from the Matomo administration panel.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/CustomizeLogoUrl\/download\/1.0.6"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomizeLogoUrl\/changelog"},"consumer":{"license":null}},{"name":"CustomOptOut","displayName":"Custom Opt Out","owner":"Zeichen32","description":"Create your own opt-out iframe css styles.","homepage":"https:\/\/www.zwei-entwickler.de","createdDateTime":"2013-12-20 18:48:04","donate":{"paypal":"info@two-developers.com","bitcoin":null},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/","type":"url"}],"isTheme":false,"keywords":["Opt-Out","CSS"],"basePrice":0,"authors":[{"name":"Jens Averkamp","email":"j.averkamp@two-developers.com","homepage":"https:\/\/github.com\/Zeichen32"},{"name":"Sven Motz","email":"s.motz@two-developers.com","homepage":"https:\/\/github.com\/xMysteriox"}],"repositoryUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut","lastUpdated":"2023-10-09 14:14:03","latestVersion":"2.0.5","numDownloads":192485,"screenshots":["https:\/\/plugins.matomo.org\/CustomOptOut\/images\/2.0.5\/CustomOptOut.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"106","numContributors":"22","lastCommitDate":"2024-07-07 22:45:59"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2013-12-20 18:48:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.1"},{"name":"0.1.2","release":"2013-12-20 19:12:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":262,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.2"},{"name":"0.1.3","release":"2014-01-10 12:14:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":543,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.3"},{"name":"0.1.4","release":"2014-03-01 12:24:03","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":581,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.4"},{"name":"0.1.5","release":"2014-03-26 11:12:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1277,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.5"},{"name":"0.1.6","release":"2014-06-03 11:04:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.6"},{"name":"0.1.7","release":"2014-06-03 11:16:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1287,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.7"},{"name":"0.1.8","release":"2014-07-21 23:06:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1083,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.8"},{"name":"0.1.9","release":"2014-09-13 12:00:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2596,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.1.9"},{"name":"0.2.0","release":"2015-01-06 14:26:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1278,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.2.0"},{"name":"0.2.1","release":"2015-02-18 13:14:04","requires":{"piwik":">=2.0.0,<3.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.2.1"},{"name":"0.2.2","release":"2015-02-18 13:32:04","requires":{"piwik":">=2.0.0,<3.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":596,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.2.2"},{"name":"0.2.3","release":"2015-02-28 20:24:04","requires":{"piwik":">=2.7.0,<3.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":774,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.2.3"},{"name":"0.2.4","release":"2015-03-18 20:06:03","requires":{"piwik":">=2.7.0,<3.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.2.4"},{"name":"0.2.5","release":"2015-03-18 20:58:04","requires":{"piwik":">=2.7.0,<3.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2980,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.2.5"},{"name":"0.3.0","release":"2015-07-24 12:58:04","requires":{"piwik":">=2.7.0,<3.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":544,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.3.0"},{"name":"0.3.1","release":"2015-08-05 11:32:03","requires":{"piwik":">=2.7.0,<3.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2134,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.3.1"},{"name":"0.4.0","release":"2015-10-22 20:24:03","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2580,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.4.0"},{"name":"0.4.1","release":"2016-01-18 11:46:03","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1438,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.4.1"},{"name":"0.4.2","release":"2016-02-17 09:42:03","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8023,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/0.4.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/0.4.2"},{"name":"1.0.0","release":"2016-12-15 22:34:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":817,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/CustomOptOut\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/1.0.0"},{"name":"1.0.1","release":"2016-12-20 16:44:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6124,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/CustomOptOut\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/1.0.1"},{"name":"1.0.3","release":"2017-12-04 17:32:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5.9"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13844,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/CustomOptOut\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/1.0.3"},{"name":"2.0.0","release":"2020-09-09 01:32:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3994,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/CustomOptOut\/2.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/2.0.0"},{"name":"2.0.1","release":"2021-12-06 18:08:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2756,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/CustomOptOut\/2.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/2.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/2.0.1"},{"name":"2.0.3","release":"2022-04-19 12:58:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17021,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/CustomOptOut\/2.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/2.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/2.0.3"},{"name":"2.0.4","release":"2023-02-10 10:06:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":53406,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/CustomOptOut\/2.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/2.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/2.0.4"},{"name":"2.0.5","release":"2023-10-09 14:14:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":66510,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/CustomOptOut\/2.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Zeichen32\/PiwikCustomOptOut\/commits\/2.0.5","readmeHtml":{"description":"\n\n<p>Adds a new admin tab allowing to change the opt-out CSS Styles for each website.<\/p>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>1) Click on the \"Settings\" link located in the top menu on the right<\/p>\n\n<p>2) Click on the \"Custom Opt-Out\" tab located in the \"Settings\" section of the sidebar on the left<\/p>\n\n<p>3) Enter your customized CSS code into the textarea input field called \"Custom Css\" e.g.<\/p>\n\n<pre><code>  body {\n    font-family: Arial, Verdana, sans-serif;\n    font-size: 12px;\n    color: #ddd;\n    line-height: 160%;\n    margin: 10px;\n    padding: 0;\n  }\n<\/code><\/pre>\n\n<p>or insert a URL to the file containing your custom CSS into the input field called \"External CSS File\" e.g.<\/p>\n\n<p><code>http:\/\/www.example.org\/styles\/piwikcustom.css<\/code><\/p>\n\n<p>4) Click the \"Save\" button.<\/p>\n\n<p>5) Use the iframe code provided below the input fields to add the Matomo (Piwik)i Opt-Out to your website.<\/p>\n\n<h2>Notice:<\/h2>\n\n<p>If you want to use this plugin with a Matomo version lower than 3.0.0-b1, please use a plugin version &lt; 1.0.0.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>CustomOptOut 2.0.5<\/h3>\n\n<ul>\n<li>Update translation<\/li>\n<\/ul>\n\n<h3>CustomOptOut 2.0.4<\/h3>\n\n<ul>\n<li>Update translation<\/li>\n<\/ul>\n\n<h3>CustomOptOut 2.0.3<\/h3>\n\n<ul>\n<li>Update translation<\/li>\n<\/ul>\n\n<h3>CustomOptOut 2.0.2<\/h3>\n\n<ul>\n<li>Update translation<\/li>\n<\/ul>\n\n<h3>CustomOptOut 2.0.1<\/h3>\n\n<ul>\n<li>Update translations<\/li>\n<li>Mantoma 4 compatibility<\/li>\n<\/ul>\n\n<h3>CustomOptOut 2.0.0<\/h3>\n\n<ul>\n<li>Matomo  4 compatibility<\/li>\n<li>Fix spelling issue<\/li>\n<\/ul>\n\n<h3>CustomOptOut 1.0.2, 1.0.3 (HotFix)<\/h3>\n\n<ul>\n<li>(PR #53) CSS fix and libraries update<\/li>\n<li>Update <a href=\"http:\/\/codemirror.net\">CodeMirror Editor<\/a><\/li>\n<\/ul>\n\n<h3>CustomOptOut 1.0.1<\/h3>\n\n<ul>\n<li>Fix settings listener<\/li>\n<\/ul>\n\n<h3>CustomOptOut 1.0.0<\/h3>\n\n<ul>\n<li>The first stable final version<\/li>\n<li>Drop support for Piwik &lt;= 3.0.0-b1<\/li>\n<li>Add support for injecting javascript to the OptOut View<\/li>\n<li>Update <a href=\"http:\/\/codemirror.net\">CodeMirror Editor<\/a><\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.4.3:<\/h4>\n\n<ul>\n<li>(Issue #43) Add new feature to inject Javascript to the OptOut iFrame.<\/li>\n<li>Update <a href=\"http:\/\/codemirror.net\">CodeMirror Editor<\/a><\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.4.2:<\/h4>\n\n<ul>\n<li>(Issue #41) Add missing \"readableByCurrentUser\" property<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.4.1:<\/h4>\n\n<ul>\n<li>(Issue #38) Add new plugin setting options to define default css styles.<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.4.0:<\/h4>\n\n<ul>\n<li>Use new OptOutManager<\/li>\n<li>Drop support for Piwik &lt; 2.15.0<\/li>\n<li>Use piwiks default OptOutView and Controller<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.3.1:<\/h4>\n\n<ul>\n<li>(Issue #32) Use idsite instead of idSite parameter<\/li>\n<li>(Issue #33) Loose site id between switching Opt Out states<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.3.0:<\/h4>\n\n<ul>\n<li>Use the new OptOut Manager, so this Plugin can change the style of the core OptOut View<\/li>\n<li>Update Transifex translations<\/li>\n<li>Update <a href=\"http:\/\/codemirror.net\">CodeMirror Editor<\/a><\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.2.5: (HotFix)<\/h4>\n\n<ul>\n<li>Fix <a href=\"http:\/\/codemirror.net\">CodeMirror Editor<\/a> Textarea with large css code<\/li>\n<li>Fix invalid html in optout template<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.2.4:<\/h4>\n\n<ul>\n<li>(Issue #23) Check DNT in OptOut Page<\/li>\n<li>Update <a href=\"http:\/\/codemirror.net\">CodeMirror Editor<\/a><\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.2.3:<\/h4>\n\n<ul>\n<li>(Issue #22) Remove escaping from externel css url<\/li>\n<li>Fix PluginSettings<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.2.2: (HotFix)<\/h4>\n\n<ul>\n<li>Update <a href=\"http:\/\/codemirror.net\">CodeMirror Editor<\/a><\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.2.1:<\/h4>\n\n<ul>\n<li>(Issue #21) Remove possibility to change opt-out text for each website (Breaking Changes in <a href=\"https:\/\/github.com\/piwik\/piwik\/blob\/master\/CHANGELOG.md#piwik-2110\">Piwik 2.11.0<\/a>)<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.2.0:<\/h4>\n\n<ul>\n<li>Add possibility to change opt-out text for each website<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.9:<\/h4>\n\n<ul>\n<li>Add XFrameOption <a href=\"https:\/\/github.com\/piwik\/piwik\/commit\/25545fdc55a1decd13548c1f3f6479789956e56c\">See Piwik Commit<\/a><\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.8:<\/h4>\n\n<ul>\n<li>(MR #15) Make the opt-out form work even if JavaScript is disabled (craue)<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.7:<\/h4>\n\n<ul>\n<li>(MR #14) Update Readme (kghbln)<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.6:<\/h4>\n\n<ul>\n<li>Add <a href=\"http:\/\/codemirror.net\">CodeMirror Editor<\/a> to highlight the CSS Code<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.5: (HotFix)<\/h4>\n\n<ul>\n<li>(Issue #6) Disable AngularJs form binding<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.4:<\/h4>\n\n<ul>\n<li>(Issue #3) Code updated to support Piwik 2.1 and newer<\/li>\n<li>(Issue #2) Allow relative urls in css file field<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.3:<\/h4>\n\n<ul>\n<li>(MR #1) Added a p-tag around the opt-out text for better markup and easier styling. (christianseel)<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.2:<\/h4>\n\n<ul>\n<li>Fix wrong css escaping<\/li>\n<\/ul>\n\n<h4>CustomOptOut 0.1.1:<\/h4>\n\n<ul>\n<li>Initial Version<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CustomOptOut\/download\/2.0.5"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomOptOut\/changelog"},"consumer":{"license":null}},{"name":"CustomReports","displayName":"Custom Reports","owner":"matomo-org","description":"Standard reports answer common analytics questions. Custom Reports answers your questions. Build custom reporting views tailored to your goals, KPIs, and business requirements.","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2017-10-12 03:42:12","donate":{},"support":[],"isTheme":false,"keywords":["segment","custom","reports","filter"],"basePrice":220,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-19 04:54:22","latestVersion":"5.6.2","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/CustomReports\/images\/5.6.2\/0_Report_Content_Definition.png","https:\/\/plugins.matomo.org\/CustomReports\/images\/5.6.2\/1_Report_Filter_Definition.png","https:\/\/plugins.matomo.org\/CustomReports\/images\/5.6.2\/2_Example_Report_By_Minute.png","https:\/\/plugins.matomo.org\/CustomReports\/images\/5.6.2\/3_Example_Report_Events.png","https:\/\/plugins.matomo.org\/CustomReports\/images\/5.6.2\/4_Example_Report_Revenue_Per_Country.png","https:\/\/plugins.matomo.org\/CustomReports\/images\/5.6.2\/5_Example_Report_By_User.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/CustomReports.png","previews":[{"type":"demo","provider":"link","url":"https:\/\/demo.matomo.cloud\/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#?idSite=1&period=day&date=yesterday&segment=&category=CustomReports_CustomReports&subcategory=2"},{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/Ss0jtGLaeDM","id":"Ss0jtGLaeDM"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/CustomReports","variations":[{"product_variation_id":130493,"price":"219","prettyPrice":"219EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130493&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130493","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-customreports\/?attribute_type=1+to+4+users&add-to-cart=5900&variation_id=130493&aelia_cs_currency=EUR"},{"product_variation_id":130493,"price":"269","prettyPrice":"USD269","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130493&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130493","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-customreports\/?attribute_type=1+to+4+users&add-to-cart=5900&variation_id=130493&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130494,"price":"1739","prettyPrice":"1739EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130494&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130494","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-customreports\/?attribute_type=Up+to+20+users&add-to-cart=5900&variation_id=130494&aelia_cs_currency=EUR"},{"product_variation_id":130494,"price":"2089","prettyPrice":"USD2089","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130494&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130494","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-customreports\/?attribute_type=Up+to+20+users&add-to-cart=5900&variation_id=130494&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130495,"price":"3459","prettyPrice":"3459EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130495&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130495","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-customreports\/?attribute_type=Up+to+50+users&add-to-cart=5900&variation_id=130495&aelia_cs_currency=EUR"},{"product_variation_id":130495,"price":"4149","prettyPrice":"USD4149","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130495&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=5900&variation_id=130495","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-customreports\/?attribute_type=Up+to+50+users&add-to-cart=5900&variation_id=130495&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-customreports\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"4.67","ratingCount":3,"reviewCount":3}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{"bestselling":1},"versions":[{"name":"5.6.2","release":"2026-10-19 04:54:22","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/CustomReports\/5.6.2\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Every organisation measures success differently. <a href=\"https:\/\/matomo.org\/guide\/reporting-tools\/custom-reports\/\">Custom Reports<\/a> provide the flexibility to analyse user behaviour, content performance, and Ecommerce activity on your terms.<\/p>\n\n<p>Create reports, apply filters, and structure the output around your actual reporting needs rather than working backwards from predefined dashboards.<\/p>\n\n<p><strong>Need more granularity?<\/strong> Increase the <a href=\"https:\/\/matomo.org\/faq\/on-premise\/how-do-i-change-the-number-of-dimensions-shown-in-a-custom-report\/\">number of dimensions<\/a> per report, adjust row limits, and tune performance for large datasets.<\/p>\n\n<h3>How Custom Reports work<\/h3>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Build reports that reflect your own goals. Choose from hundreds of <a href=\"https:\/\/matomo.org\/faq\/custom-reports\/faq_25245\/\">metrics<\/a> and <a href=\"https:\/\/matomo.org\/faq\/custom-reports\/faq_25243\/\">dimensions<\/a> - covering everything from page behaviour and form completions to checkout steps and content consumption.<\/p>\n<p>Compare behaviours across different visitor segments and identify patterns that may otherwise remain hidden in broader reports.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/CustomReports\/image1.png\" style=\"margin-left:24px;\" alt=\"Build reports that reflect your own goals\" \/>\n<\/div>\n<\/div>\n\n<h4>Put recurring reports on autopilot<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p><a href=\"https:\/\/matomo.org\/guide\/manage-matomo\/email-reports\/\">Automate report delivery<\/a> and spend less time compiling updates. Schedule custom reports for automatic delivery via email or SMS, or extend delivery options to <a href=\"https:\/\/plugins.matomo.org\/MicrosoftTeams\">Microsoft Teams<\/a> or <a href=\"https:\/\/plugins.matomo.org\/Slack\">Slack<\/a> with integration plugins. The right people see the numbers they need, on a cadence that suits them.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/CustomReports\/image2.jpg\" style=\"margin-left:24px;\" alt=\"Put recurring reports on autopilot\" \/>\n<\/div>\n<\/div>\n\n<h4>Export and share data your way<\/h4>\n\n<p>Export directly from the <a href=\"https:\/\/matomo.org\/faq\/how-to\/faq_26727\/\">Matomo interface<\/a>, pull data via the <a href=\"https:\/\/developer.matomo.org\/api-reference\/api\">HTTP API<\/a>, or query the underlying MySQL tables for advanced workflows. Use your custom report data in Looker Studio, <a href=\"https:\/\/matomo.org\/guide\/apis\/export-data-to-other-tools\/\">BI platforms<\/a>, data warehouses or wherever your organisation's reporting already lives.<\/p>\n\n<p>Add reports as <a href=\"https:\/\/matomo.org\/faq\/dashboards\/create-dashboards-and-customise-widgets-and-layout\/\">dashboard widgets<\/a> to share focused views with specific teams, clients, or stakeholders with controlled access.<\/p>\n\n<h4>Understand what happens before a conversion<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Pair <a href=\"https:\/\/matomo.org\/guide\/reports\/event-tracking\/\">Event Tracking<\/a> with Custom Reports to see which interactions (clicks, downloads, video plays, form completions) precede conversions. Identify where users drop off and treat those exit points as optimisation opportunities rather than lost causes.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/CustomReports\/image4.png\" style=\"margin-left:24px;\" alt=\"Understand what happens before a conversion\" \/>\n<\/div>\n<\/div>\n\n<h4>Built into the Matomo experience<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Custom Reports extends what's already in Matomo, giving you more ways to explore and interpret your data.<\/p>\n<p>Apply <a href=\"https:\/\/matomo.org\/faq\/reporting-tools\/build-custom-segments-in-matomo\/\">Segments<\/a> to analyse specific audiences, use <a href=\"https:\/\/matomo.org\/guide\/reporting-tools\/row-evolution\/\">Row Evolution<\/a> to track changes over time, <a href=\"https:\/\/matomo.org\/faq\/reports\/the-visits-log-report\/\">Visitor Logs<\/a> to investigate individual journeys, and pivot reports to compare data across multiple dimensions. Build custom dashboards to bring related reports together in one view.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/CustomReports\/image3.png\" style=\"margin-left:24px;\" alt=\"Built into the Matomo experience\" \/>\n<img src=\"https:\/\/plugins.matomo.org\/img\/CustomReports\/image5.jpg\" style=\"margin-left:24px;\" alt=\"Built into the Matomo experience\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Custom Reports Today<\/h3>\n\n<p>No cap on reports. Create as many custom reports as you need for marketing, product, sales, finance, or executive audiences. There is no limit on the number of reports you can create and share.<\/p>\n\n<p>Start your 30-day free trial today. Full access to Custom Reports. No credit card required.<\/p>\n\n<h3>Custom Reports features<\/h3>\n\n<ul>\n<li>Create compelling custom reports tailored to your needs without any developer knowledge in just seconds.<\/li>\n<li>Choose from over 200 dimensions and metrics.<\/li>\n<li>Supports several visualisations including evolution over time graphs, data tables, bar graph, pie chart, cloud chart, and others.<\/li>\n<li>Define a report filter which is applied on the raw data to show the data only for a subset of your visitors and users.<\/li>\n<li>Put your custom report on any existing reporting page or on its own reporting page.<\/li>\n<li>Superusers can make reports available for all websites.<\/li>\n<\/ul>\n\n<h3>Integrates with Matomo Analytics<\/h3>\n\n<ul>\n<li>Enjoy features that are not supported by most standard Matomo reports such as pivoting.<\/li>\n<li>Drill down deeper and filter custom reports <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">with Segments<\/a>.<\/li>\n<li>View the evolution over time of any dimension value with <a href=\"https:\/\/matomo.org\/docs\/row-evolution\/\">Row Evolution<\/a>.<\/li>\n<li>View the segmented <a href=\"https:\/\/matomo.org\/docs\/real-time\/#visitor-log\">Visitor Log<\/a> with just one click.<\/li>\n<li>Supports other typical Matomo features like flatten, search, and more.<\/li>\n<li>View your custom reports on the go with the <a href=\"https:\/\/matomo.org\/mobile\/\">Matomo Mobile App<\/a>.<\/li>\n<li>Create unlimited number of reports. <a href=\"https:\/\/matomo.org\/docs\/data-limits\/\">No data limits<\/a>.<\/li>\n<li>Supports other premium features like <a href=\"https:\/\/plugins.matomo.org\/MediaAnalytics\">Media Analytics<\/a>, <a href=\"https:\/\/plugins.matomo.org\/FormAnalytics\">Form Analytics<\/a> and <a href=\"https:\/\/plugins.matomo.org\/ActivityLog\">Activity Log<\/a>.<\/li>\n<\/ul>\n\n<h3>Export and API features<\/h3>\n\n<ul>\n<li>Get automatic <a href=\"https:\/\/matomo.org\/docs\/email-reports\/\">email and sms reports<\/a> for your custom reports, or send them to your colleagues or customers.<\/li>\n<li><a href=\"https:\/\/matomo.org\/docs\/embed-piwik-report\/\">Embed<\/a> the custom report widgets directly in your app, dashboard, or even TV screen!<\/li>\n<li>HTTP API to manage your custom reports.<\/li>\n<li>HTTP API to fetch and export all <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#CustomReports\">Custom Reports<\/a>.<\/li>\n<li>Get access to all the raw data via MySQL for 100% data ownership.<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/custom-reports\/\">Custom Reports User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/custom-reports\/\">Custom Reports FAQ<\/a> cover how to get the most out of this plugin.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>5.6.2 - 2026-10-19\n- The API now tells a user without access to a website that they lack write access when adding, changing, pausing, resuming or deleting its custom reports, rather than view access\n- Fixed week, month and year totals of a created or edited custom report being lower than the sum of their days when they were archived again, eg the current month during hourly archiving<\/p>\n\n<p>5.6.1 - 2026-08-21\n- Fixed an unknown \"Created by\" or \"Last updated by\" value in Manage Custom Reports linking to a page that could not be found, and made the whole \"Unknown\" label clickable instead of just the help icon\n- Fixed an error when filling in who created and last updated existing custom reports, on databases where the activity log table uses a different collation than the user table\n- Fixed the plugin being deactivated when filling in who created and last updated existing custom reports failed, leaving those columns empty instead<\/p>\n\n<p>5.6.0 - 2026-08-17\n- Added drag &amp; drop reordering of the selected dimensions and metrics when editing a custom report\n- Added \"Created by\", \"Creation date\", \"Last updated\" and \"Last updated by\" columns to Manage Custom Reports, showing who created each report and who last changed it and when\n- Updated the dimension and metric selectors with a refreshed dropdown style that opens below the field and scrolls when the list is long\n- Locked reports now offer to unlock when clicking or dragging the report content fields\n- Added new \"Number of events\" metric showing the number of tracked events<\/p>\n\n<p>5.5.0 - 2026-08-03\n- Added new \"KPI card\" report type showing a single metric with a sparkline and a comparison to the previous period\n- Added code to allow using country and continent dimensions together<\/p>\n\n<p>5.4.14 - 2026-07-21\n- Updated Marketplace description\n- Updated check for existing mapped idSites scope before updating\n- Normalized website IDs for reports mapped to multiple sites<\/p>\n\n<p>5.4.13 - 2026-06-29\n- Added code to check existing mapped idSites scope before updating\n- Fixed dark mode colours for metric and dimension dropdowns in the report editor<\/p>\n\n<p>5.4.12 - 2026-05-19\n- Updated custom report creation inline helptexts\n- Improved visual consistency of creation form layout\n- Fixed dark mode incompability with older Matomo versions<\/p>\n\n<p>5.4.11 - 2026-05-11\n- Updated custom report ordering to use a Vue draggable list\n- Added code to show current site when editing and creating custom reports<\/p>\n\n<p>5.4.10 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.4.9 - 2026-01-05\n- Preview screenshot updated for higher quality<\/p>\n\n<p>5.4.8 - 2025-12-08\n- Fixed CHANGELOG.md versioning\n- Preview screenshot updated to show higher dimensions<\/p>\n\n<p>5.4.7 - 2025-11-24\n- README.md updated<\/p>\n\n<p>5.4.6 - 2025-11-10\n- Added operating system version dimension<\/p>\n\n<p>5.4.5 - 2025-10-13\n- Added triggering of event when reports are copied<\/p>\n\n<p>5.4.4 - 2025-09-15\n- Added ability to copy a custom report when Matomo 5.4.0-b4 or later is installed\n- Fixed bug when creating an evolution report which prevented historical archiving of weekly\/monthly\/yearly data<\/p>\n\n<p>5.4.3 - 2025-07-21\n- Stopped filtering empty values for regionCode dimension<\/p>\n\n<p>5.4.2 - 2025-06-09\n- Added custom_reports_max_dimensions config setting if not present in config.ini.php<\/p>\n\n<p>5.4.1 - 2025-05-15\n- Fixed array reference error<\/p>\n\n<p>5.4.0 - 2025-05-12\n- Added the ability to use more than 3 dimensions\n- No longer show Insights visualization option when it's not available<\/p>\n\n<p>5.3.4 - 2025-04-15\n- Made preview report timeframes as a config value<\/p>\n\n<p>5.3.3 - 2025-03-17\n-  Improved preview report performance to limit by timeframe<\/p>\n\n<p>5.3.2 - 2025-03-03\n- Added new <code>getNthLevelTableDimension<\/code> method to support new Matomo core changes\n- Added query validation check before add, update or preview of report<\/p>\n\n<p>5.3.1 - 2025-02-17\n- Improved paused state message<\/p>\n\n<p>5.3.0 - 2025-02-03\n- Added code to pause\/resume a custom report<\/p>\n\n<p>5.2.3 - 2025-01-20\n- Fixes add and update report not working when rearchive_reports_in_past_last_n_months &amp; custom_reports_rearchive_reports_in_past_last_n_months config is set as 0<\/p>\n\n<p>5.2.2 - 2025-01-15\n- Lower campaign values based on a event to honor keep campaign parameter capitalisation setting<\/p>\n\n<p>5.2.1 - 2025-01-06\n- Added code to allow admins to add\/edit multiple websites if access to all websites in a report<\/p>\n\n<p>5.2.0 - 2024-12-09\n- Added option to assign multiple idSites to a single report\n- Added action type dimension\n- Updated region dimension query to group by country and show region name instead of region code<\/p>\n\n<p>5.1.1 - 2024-12-02\n- Added region and action type dimension<\/p>\n\n<p>5.1.0 - 2024-11-18\n- Added an option to sort subcategory reports<\/p>\n\n<p>5.0.19 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.0.18 - 2024-10-21\n- Added config for setting custom reports historical archiving period<\/p>\n\n<p>5.0.17 - 2024-09-26\n- Added some new metrics specifically for this plugin:\n  - Average Product Quantity\n  - Average Product Price\n  - Product Revenue (Total &amp; avg)\n  - Total Click Outlinks (Clicked Outlinks)\n  - Content Impressions\n  - Content Interactions\n  - Content Interaction Rate\n  - Product Category (Dimension)<\/p>\n\n<p>5.0.16 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.15\n- Improved validation for dimensions being added to look for allowed dimensions<\/p>\n\n<p>5.0.14\n- Added cover image for marketplace<\/p>\n\n<p>5.0.13\n- Fixed error when changing number of rows in evolution report<\/p>\n\n<p>5.0.12\n- Added a fix to show 2nd dimension when 3rd dimension has no data<\/p>\n\n<p>5.0.11\n- Added missing translations for glossary<\/p>\n\n<p>5.0.10\n- Improved performance for reports that use dimensions accessed by a visit action via right join<\/p>\n\n<p>5.0.9\n- Updated README.md<\/p>\n\n<p>5.0.8\n- Fixed evolution graph refresh issue after metric selection<\/p>\n\n<p>5.0.7\n- Fixed regression in archiving when a new report is created<\/p>\n\n<p>5.0.6\n- Changes to hide the delete button when user doesn't have permission to delete report<\/p>\n\n<p>5.0.5\n- Fix archiving error due to labels not defined\n- Added code to allow creating report with same name.<\/p>\n\n<p>5.0.4\n- Fixed error when no metric to sort available in getMetricToSortMultiPeriod()<\/p>\n\n<p>5.0.3\n- Fixed warnings during archive process<\/p>\n\n<p>5.0.2\n- Fixed undefined key notice during previewReport<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.1.7\n- Fixes regression from previous version where Insights wouldn't load<\/p>\n\n<p>4.1.6\n- Fixes issue where report view preferences do not persist<\/p>\n\n<p>4.1.5\n- Fixes for PHP 8.1<\/p>\n\n<p>4.1.4\n- Fix report links not maintaining the selected date and\/or segment<\/p>\n\n<p>4.1.3\n- Fix possible XSS if segment definition contains valid angularjs syntax<\/p>\n\n<p>4.1.2\n- Fixed Unsupported operand error for preview report.<\/p>\n\n<p>4.1.1\n- Fixed Unsupported operand error due to wrong dimension selection for subtable, #PG-1329<\/p>\n\n<p>4.1.0\n- Migrate AngularJS code to Vue.<\/p>\n\n<p>4.0.15\n- Added check to limit live queries for previewReport action if live_query_max_execution_time is set<\/p>\n\n<p>4.0.14\n- Fixed sub data table warning\n- Fixed code to show maximum of 3 metrics when type evolution graph for email report<\/p>\n\n<p>4.0.13\n- Changed dimension name to UTC time for Server Time dimensions<\/p>\n\n<p>4.0.12\n- Started supporting 3 dimensions in preview report<\/p>\n\n<p>4.0.11\n- Fixed namespace when previewing a report<\/p>\n\n<p>4.0.10\n- Started re-archiving only when reportType\/dimensionIds\/metricIds\/segmentFilter are changed\n- Show empty datatable for no new rows found to avoid fatal error\n- Disabled segmented visitor log got download dimension<\/p>\n\n<p>4.0.9\n- Fixed preview report to work even if not metrics provided by other plugins.<\/p>\n\n<p>4.0.8\n- Updated README.md to highlight benefit of custom reports and mentioned simpler reports<\/p>\n\n<p>4.0.7\n- Add config to aggregate unique metrics instead of raw data for periods specified in config<\/p>\n\n<p>4.0.6\n- Fix archiving of unique metrics in evolution graphs for week, month and year periods<\/p>\n\n<p>4.0.5\n- Add category help text<\/p>\n\n<p>4.0.4\n- Tweak message when editing a custom report and browser archiving is disabled<\/p>\n\n<p>4.0.3\n- Add back the archive reports command<\/p>\n\n<p>4.0.2\n- Ability to rearchive reports on custom report creation\/update<\/p>\n\n<p>4.0.1\n- Compatibility with Matomo 4.X<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4.X<\/p>\n\n<p>3.1.27\n- Improve archive command<\/p>\n\n<p>3.1.26\n- List dimension IDs in glossary<\/p>\n\n<p>3.1.25\n- Add new config setting <code>custom_reports_disabled_dimensions<\/code> to disable dimensions<\/p>\n\n<p>3.1.24\n- Ignore new region dimension as it won't work<\/p>\n\n<p>3.1.23\n- Fix view link in manage custom reports may not work when report is configured for all websites\n- Fix goalId archiving<\/p>\n\n<p>3.1.22\n- Fix archiver<\/p>\n\n<p>3.1.21\n- Add possibility to set max execution time<\/p>\n\n<p>3.1.20\n- Better segment filter check<\/p>\n\n<p>3.1.19\n- Apply segment filter in segmented visitor log\n- Better support for Matomo 3.12<\/p>\n\n<p>3.1.18\n- Sort aggregated reports before generating the report (week, month, year, range)\n- Compatibility with Matomo 3.12<\/p>\n\n<p>3.1.17\n- Add more options to archive command<\/p>\n\n<p>3.1.16\n- Support new segmentation in Matomo 3.12<\/p>\n\n<p>3.1.15\n- Compatibility with Matomo 3.12<\/p>\n\n<p>3.1.14\n- Show search box for entities\n- Support usage of a reader DB when configured<\/p>\n\n<p>3.1.13\n- Enable more dimensions (visitorId, geolocation)<\/p>\n\n<p>3.1.12\n- Add more translations\n- Make sure a report can be moved to its own page after it was assigned to another page<\/p>\n\n<p>3.1.11\n- Add Turkish translation\n- Enable Order ID dimension<\/p>\n\n<p>3.1.10\n- Improve report generation for some combination of dimensions<\/p>\n\n<p>3.1.9\n- Fix report preview unter circumstances doesn't show column names when no report is configured yet<\/p>\n\n<p>3.1.8\n- Add config setting to always show unique visitors in all periods<\/p>\n\n<p>3.1.7\n- Improve handling of unique visitors and users<\/p>\n\n<p>3.1.6\n- Use correct category names\n- Calculate unique visitors and users from raw data for periods != day if enabled in config in evolution graphs when only these metrics are used<\/p>\n\n<p>3.1.5\n- Support more languages\n- Added command to archive reports in past<\/p>\n\n<p>3.1.4\n- Support new languages\n- Use new brand colors\n- Ensure segment definition is shown correctly<\/p>\n\n<p>3.1.3\n- Fix possible combination with event name and event value may not return a result<\/p>\n\n<p>3.1.2\n- Add dimensions and metrics information to glossary\n- Support new \"Write\" role<\/p>\n\n<p>3.1.1\n- Make sure pie and bar graphs show available columns<\/p>\n\n<p>3.1.0\n- Support <a href=\"https:\/\/plugins.matomo.org\/RollUpReporting\">Roll-Up Reporting<\/a>. Create custom reports across multiple sites.<\/p>\n\n<p>3.0.6\n- Prevent possible fatal error when opening manage screen for all websites\n- New config setting <code>custom_reports_validate_report_content_all_websites<\/code> which, when enabled under the <code>[CustomReports]<\/code> section, allows the creation of Custom Reports on \"All websites\", even those that contain \"Custom dimensions\" or other entities which may not be present on all websites. This is useful when you have many (or all) websites with the exact same dimensions Ids and\/or Goals Ids across all websites.<\/p>\n\n<p>3.0.5\n- Renamed Piwik to Matomo<\/p>\n\n<p>3.0.4\n- Prevent possible error when putting a custom report to another custom report page<\/p>\n\n<p>3.0.3\n- Prevent possible problems with custom dimensions in custom reports when also using roll-ups.<\/p>\n\n<p>3.0.2\n- Added German translation\n- When generating report data and data needs to be truncated, make sure to sort the data by the first column of the report\n- Make number of rows within a datatable configurable \n- Make sure aggregated reports are truncated if needed<\/p>\n\n<p>3.0.1\n- Make sure custom reports category can be always selected when creating a new custom report<\/p>\n\n<p>3.0.0\n- Custom Reports for Piwik 3<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomReports\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"CustomTheme","displayName":"Custom Theme","owner":"Chardonneaur","description":"Live theme editor for Matomo super-administrators. Control colours, typography, background image, and UI roundness \u2014 no code required. Changes apply.","homepage":"https:\/\/github.com\/Chardonneaur\/CustomTheme","createdDateTime":"2026-03-05 10:18:02","donate":{},"support":[{"name":"Email","key":"email","value":"contact@ronan-chardonneau.fr","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/CustomTheme\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Chardonneaur\/CustomTheme","type":"url"}],"isTheme":false,"keywords":["theme","branding","customisation","design","ui","colours","typography","white-label"],"basePrice":0,"authors":[{"name":"Ronan Chardonneau","email":"contact@ronan-chardonneau.fr","homepage":"https:\/\/ronan-chardonneau.fr"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/CustomTheme","lastUpdated":"2026-03-05 10:18:02","latestVersion":"1.0.0","numDownloads":6423,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/customisation.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-03-05 10:17:02"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-03-05 10:18:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6423,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTheme\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/CustomTheme\/commits\/1.0.0","readmeHtml":{"description":"\n\n<p>CustomTheme gives Matomo super-administrators a complete visual editor built directly into the administration panel. Adjust your Matomo instance's look and feel to match your organisation's brand in minutes \u2014 without editing any files or writing any CSS.<\/p>\n\n<p>All changes are applied live across the entire Matomo interface: reports, menus, widgets, dialogs, and data tables.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>34 colour controls<\/strong> \u2014 brand colour, header, text, backgrounds, menus, widgets, focus rings, code blocks, links, and more<\/li>\n<li><strong>Automatic palette generation<\/strong> \u2014 pick one primary colour and instantly generate a full harmonious colour palette using HSL colour theory<\/li>\n<li><strong>Background image<\/strong> \u2014 upload a PNG, JPG, GIF, or WebP image; control display mode (cover \/ contain \/ repeat), overlay opacity, and blur intensity<\/li>\n<li><strong>Typography<\/strong> \u2014 choose from 11 curated font stacks or upload your own custom font (WOFF2, WOFF, TTF, or OTF)<\/li>\n<li><strong>Shape roundness<\/strong> \u2014 five presets from sharp corners (0 px) to pill-shaped (999 px), applied consistently to all UI elements<\/li>\n<li><strong>Live preview<\/strong> \u2014 colour changes are reflected immediately in the admin interface before saving<\/li>\n<li><strong>One-click reset<\/strong> \u2014 restore all Matomo defaults at any time<\/li>\n<\/ul>\n\n<h3>Security<\/h3>\n\n<ul>\n<li>All theme editor endpoints require super-administrator access<\/li>\n<li>Colour values are validated against a strict hex colour pattern before saving<\/li>\n<li>File uploads are validated by MIME type and magic bytes; SVG is intentionally blocked to prevent stored XSS<\/li>\n<li>Uploaded assets are served through an authenticated PHP proxy \u2014 files are never directly accessible from the webroot<\/li>\n<li>CSRF protection via Matomo nonce on all mutating actions<\/li>\n<li>Font-family input blocks remote loading patterns (<code>url()<\/code>, <code>@import<\/code>, <code>https:\/\/<\/code>)<\/li>\n<\/ul>\n\n","faq":"<p><strong>Does this affect all users?<\/strong>\nYes \u2014 CustomTheme applies a global theme to the entire Matomo instance. All users see the same theme. Individual users cannot override it.<\/p>\n\n<p><strong>Will this conflict with other theme plugins?<\/strong>\nCustomTheme uses Matomo's <code>Theme.configureThemeVariables<\/code> event and injects a small <code>&lt;style&gt;<\/code> block in the page header. It should coexist with other themes, but the last plugin to apply a variable wins.<\/p>\n\n<p><strong>What happens if I deactivate the plugin?<\/strong>\nMatomo immediately returns to its default theme. Settings are preserved in the database \u2014 reactivating the plugin restores your custom theme.<\/p>\n\n<p><strong>What happens if I uninstall the plugin?<\/strong>\nAll saved settings are removed along with any uploaded font or background image files.<\/p>\n\n<p><strong>Is the uploaded background image or font file accessible without authentication?<\/strong>\nNo. Files are stored outside the webroot in the plugin's <code>data\/<\/code> directory, which is protected by an <code>.htaccess<\/code> rule. All file serving goes through an authenticated PHP proxy action.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>1.0.0 \u2014 2026-03-04<\/h2>\n\n<p>Initial release.<\/p>\n\n<ul>\n<li>Live theme editor accessible at Administration \u2192 System \u2192 Custom Theme<\/li>\n<li>34 colour controls covering all major Matomo UI variables<\/li>\n<li>Automatic harmonious palette generation from a single primary colour (HSL colour theory)<\/li>\n<li>Background image upload with display mode, overlay opacity, and blur controls<\/li>\n<li>Typography: 11 curated font stacks plus custom font upload (WOFF2\/WOFF\/TTF\/OTF)<\/li>\n<li>Shape roundness: 5 presets applied consistently across all UI elements<\/li>\n<li>Live colour preview before saving<\/li>\n<li>One-click reset to Matomo defaults<\/li>\n<li>Security: super-admin only, hex validation, MIME\/magic-byte file validation, SVG blocked, authenticated file proxy, CSRF protection<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CustomTheme\/download\/1.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomTheme\/changelog"},"consumer":{"license":null}},{"name":"CustomTranslations","displayName":"Custom Translations","owner":"matomo-org","description":"Translate entities and tracked values into different languages. For example Custom dimensions, dashboard names, custom report names, event values, ...","homepage":"https:\/\/innocraft.com","createdDateTime":"2018-12-11 21:46:04","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"contact@innocraft.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/issues","type":"url"}],"isTheme":false,"keywords":["i18n","translation","translate","international","custom dimension","custom reports"],"basePrice":0,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations","lastUpdated":"2026-08-24 06:00:12","latestVersion":"6.0.0","numDownloads":30098,"screenshots":["https:\/\/plugins.matomo.org\/CustomTranslations\/images\/6.0.0\/0_Custom_Translations_Manage.png","https:\/\/plugins.matomo.org\/CustomTranslations\/images\/6.0.0\/1_Renamed_Custom_Reports.png","https:\/\/plugins.matomo.org\/CustomTranslations\/images\/6.0.0\/2_Renamed_Dimensions.png","https:\/\/plugins.matomo.org\/CustomTranslations\/images\/6.0.0\/3_Renamed_Event_Name.png","https:\/\/plugins.matomo.org\/CustomTranslations\/images\/6.0.0\/4_Renamed_Event_Value.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/CustomTranslations.png","previews":[],"activity":{"numCommits":"270","numContributors":"34","lastCommitDate":"2026-10-22 23:57:51"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"database","categories":["customisation"],"promotions":{},"versions":[{"name":"3.0.0","release":"2018-12-11 21:46:04","requires":{"piwik":">=3.8.0-b4,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3510,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/3.0.0"},{"name":"4.0.0","release":"2020-07-29 04:42:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":300,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:28:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2181,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/4.0.1"},{"name":"4.1.0","release":"2022-04-26 02:36:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":591,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/4.1.0"},{"name":"4.1.1","release":"2022-08-01 07:36:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3383,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/4.1.1"},{"name":"5.0.0","release":"2023-05-08 00:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":883,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/5.0.0"},{"name":"5.0.1","release":"2024-04-22 05:54:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8425,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/5.0.1"},{"name":"5.0.2","release":"2026-03-02 04:34:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2274,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/5.0.2"},{"name":"5.0.3","release":"2026-04-27 04:34:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7047,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/5.0.3"},{"name":"5.0.4","release":"2026-08-10 07:04:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1359,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/5.0.4"},{"name":"6.0.0","release":"2026-08-24 06:00:12","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":145,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomTranslations\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-CustomTranslations\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>Lets you translate the following entities and tracked values into another language:<\/p>\n\n<ul>\n<li>Tracked <a href=\"https:\/\/plugins.matomo.org\/CustomDimensions\">custom dimension<\/a> values<\/li>\n<li>Tracked event values<\/li>\n<li>Configured <a href=\"https:\/\/plugins.matomo.org\/CustomDimensions\">custom dimension<\/a> names<\/li>\n<li>Configured <a href=\"https:\/\/plugins.matomo.org\/CustomReports\">custom report<\/a> names<\/li>\n<li>Configured Dashboard names<\/li>\n<\/ul>\n\n<p>This plugin does currently not let you change any already translated text in Matomo itself. You may be interested in\nthe <a href=\"https:\/\/plugins.matomo.org\/CustomiseTranslations\">Customise Translations<\/a> plugin if you want to alter any translation.<\/p>\n\n<p>Once you have installed and activated the plugin, go to \"Administration =&gt; System =&gt; Custom Translations\" to customise translations.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>6.0.0 - 2026-08-11<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<\/ul>\n\n<h3>5.0.4 - 2026-08-10<\/h3>\n\n<ul>\n<li>Added validation rule for translation values<\/li>\n<\/ul>\n\n<h3>5.0.3 - 2026-04-27<\/h3>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h3>5.0.2 - 2026-03-02<\/h3>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h3>5.0.1<\/h3>\n\n<ul>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<h3>4.1.1<\/h3>\n\n<ul>\n<li>Translation updates<\/li>\n<\/ul>\n\n<h3>4.1.0<\/h3>\n\n<ul>\n<li>Migrate from AngularJS to Vue.<\/li>\n<\/ul>\n\n<h3>4.0.1<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 4<\/li>\n<\/ul>\n\n<h3>3.0.0<\/h3>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CustomTranslations\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomTranslations\/changelog"},"consumer":{"license":null}},{"name":"CustomVariables","displayName":"Custom Variables","owner":"matomo-org","description":"Categorise your visitors and actions with custom name-value pairs. Segment by these values and get more insights to draw the right conclusions.","homepage":"https:\/\/matomo.org","createdDateTime":"2020-08-24 02:16:02","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables","type":"url"}],"isTheme":false,"keywords":["custom variables"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables","lastUpdated":"2026-08-24 06:28:18","latestVersion":"6.0.0","numDownloads":297506,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/CustomVariables.png","previews":[],"activity":{"numCommits":"580","numContributors":"45","lastCommitDate":"2026-10-21 06:42:26"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"4.0.0","release":"2020-08-24 02:16:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":207,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 19:56:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14751,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/4.0.1"},{"name":"4.1.0","release":"2022-04-26 02:46:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":24031,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/4.1.0"},{"name":"4.1.1","release":"2022-08-01 07:40:02","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":49410,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/4.1.1"},{"name":"4.1.2","release":"2023-03-23 04:44:02","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1366,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/4.1.2"},{"name":"4.1.3","release":"2023-03-23 20:44:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":83540,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/4.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/4.1.3"},{"name":"5.0.0","release":"2023-05-05 00:04:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":194,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/5.0.0"},{"name":"5.0.1","release":"2023-08-10 21:42:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":171,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/5.0.1"},{"name":"5.0.2","release":"2023-10-09 08:20:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":36360,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/5.0.2"},{"name":"5.0.3","release":"2024-11-05 02:08:04","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14057,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/5.0.3"},{"name":"5.0.4","release":"2025-01-20 07:44:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":39689,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomVariables\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/5.0.4"},{"name":"5.0.5","release":"2026-03-16 01:10:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9625,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomVariables\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/5.0.5"},{"name":"5.0.6","release":"2026-04-27 04:36:04","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":23876,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomVariables\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/5.0.6"},{"name":"6.0.0","release":"2026-08-24 06:28:18","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":229,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomVariables\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-CustomVariables\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugins allows you to configure and track <a href=\"https:\/\/matomo.org\/docs\/custom-variables\/\">Custom Variables<\/a> in your Matomo Analytics.<\/p>\n\n<p>This feature used to be part of Matomo. However, we no longer plan to further develop custom variables and only fix important bugs or security issues and we might stop supporting Custom Variables in the future.<\/p>\n\n<p>We therefore highly recommend using <a href=\"https:\/\/matomo.org\/docs\/custom-dimensions\/\">Custom Dimensions<\/a> instead which is directly available within your Matomo. Learn more about the <a href=\"https:\/\/matomo.org\/faq\/general\/faq_21117\/\">advantages of Custom Dimensions<\/a>.<\/p>\n\n<p><strong>Warning<\/strong>: Depending on the database size of your Matomo this plugin may take a long time to install.<\/p>\n\n<h1>Custom Variables User Guide<\/h1>\n\n<h3>What is the value of Custom Variables?<\/h3>\n\n<p>Matomo offers a Custom Variables feature for collecting custom metrics related to your page views and visits. For example, if you want to track things such as the Tags associated with a certain page that is viewed or the user role of somebody navigating through your website. This kind of data is typically managed through your CMS (Content Management System) and is likely to be different for each site so it needs a little configuration to get started.<\/p>\n\n<h3>Custom Variables vs Custom Dimensions<\/h3>\n\n<p><strong>Custom Variables serve a similar purpose to Custom Dimensions, however, <a href=\"https:\/\/matomo.org\/docs\/custom-dimensions\/\">Custom Dimensions<\/a> have many <a href=\"https:\/\/matomo.org\/faq\/general\/faq_21117\/\">advantages over Custom Variables<\/a> so in most cases you should use Custom Dimensions.<\/strong><\/p>\n\n<p>In fact, we generally recommend that the only time that you should use Custom Variables is when you need to store more than one value for the same dimension. For example in blogging and social media systems it is common to associate multiple tags with a post. In this case you could collect all of the tags within your analytics for analysis which wouldn\u2019t be possible with Custom Dimensions.<\/p>\n\n<h3>The Anatomy of a Custom Variable<\/h3>\n\n<p>Custom Variables consist of four different elements, all of which are required.<\/p>\n\n<ul>\n<li><strong>Index<\/strong> - This is a unique numeric ID which is typically between 1-5 that references the data. You can hold up to 5 custom variables for each scope by default, however if you are using Matomo On-Premise, it is possible to configure it to <a href=\"https:\/\/matomo.org\/faq\/how-to\/faq_17931\/\">add more than 5 custom variables<\/a> for each scope.<\/li>\n<li><strong>Name<\/strong> - This is a user-friendly label to identify the variable. For example, <strong>Tag<\/strong>.<\/li>\n<li><strong>Value<\/strong> - This is the actual value of the variable. For example, if the variable is tracking tags an article about Matomo could be filed as \u201cMarketing\u201d, \u201cAnalytics\u201d or both.<\/li>\n<li><strong>Scope<\/strong> - This defines whether the variable is page scoped i.e. attached to the page it is loaded on or visit scoped and connected with the visitor that is on the page.<\/li>\n<\/ul>\n\n<p>All of the fields are limited to a total of 200 characters.<\/p>\n\n<h3>Example Custom Variables<\/h3>\n\n<p>To help you understand the different elements we have provided an example Variable for each of the potential scopes below.<\/p>\n\n<h4>Visit Scope Dimensions: User Role<\/h4>\n\n<p>This is useful because in many cases users can have multiple roles on a website. For example somebody who is both Staff and a Moderator.<\/p>\n\n<p><strong>Sample Values:<\/strong><\/p>\n\n<ul>\n<li>Index: <strong><i>1<\/i><\/strong><\/li>\n<li>Name: <strong><i>User Role<\/i><\/strong><\/li>\n<li>Value: <strong><i>Staff<\/i><\/strong><\/li>\n<li>Scope: <strong><i>visit<\/i><\/strong><\/li>\n<\/ul>\n\n<h4>Action Scope Dimension: Tags<\/h4>\n\n<p>A common design pattern for websites on platforms like WordPress is filing content under a single \u201cCategory\u201d while adding several \u201cTags\u201d to add more specific definitions to the content. For example an article might be found in the \u201cMarketing\u201d category while also holding tags for \u201cAnalytics\u201d \u201cMatomo\u201d and \u201cPlugins\u201d.<\/p>\n\n<p><strong>Sample Values:<\/strong><\/p>\n\n<ul>\n<li>Index: <strong><i>1<\/i><\/strong><\/li>\n<li>Name: <strong><i>Tags<\/i><\/strong><\/li>\n<li>Value: <strong><i>Marketing<\/i><\/strong><\/li>\n<li>Scope: <strong><i>action<\/i><\/strong><\/li>\n<\/ul>\n\n<h3>How to Get Started with Custom Variables<\/h3>\n\n<p>While Custom Variables are available by default in <a href=\"https:\/\/matomo.org\/matomo-cloud\/\">Matomo Cloud<\/a>, they are no longer installed by default in <a href=\"https:\/\/matomo.org\/matomo-on-premise\/\">Matomo On-Premise<\/a>. Therefore if you do want to use them, the first thing that you need to do is install the <a href=\"https:\/\/plugins.matomo.org\/CustomVariables\">Custom Variables plugin<\/a>. You can find instructions on how to do that below.<\/p>\n\n<h4>How to install the Custom Variables Plugin<\/h4>\n\n<h5>How to install the Custom Variables Plugin for Matomo On-Premise<\/h5>\n\n<ol>\n<li>Log in to your Matomo Dashboard with a <strong>Super User<\/strong> account.<\/li>\n<li>Click the <strong>Cog Icon<\/strong> in the Top Menu to visit your Matomo settings.<\/li>\n<li>Go to the <strong>Marketplace<\/strong> page within the <strong>Platform<\/strong> settings.<\/li>\n<li>Find the <strong>Custom Variables<\/strong> plugin and click the big green <strong>Install<\/strong> button. (You may need to confirm your password at this stage.)<\/li>\n<li>The plugin will be downloaded to your Matomo instance and you can click the big green <strong>Activate Plugin<\/strong> button to start using it. Note: It is also possible to activate it via the command line by using the following command: .\/console plugin:activate CustomVariables<\/li>\n<\/ol>\n\n<h5>How to install the Custom Variables Plugin for WordPress<\/h5>\n\n<ol>\n<li>Log in to your WordPress dashboard.<\/li>\n<li>Go to the <strong>Marketplace<\/strong> section of the <strong>Matomo Analytics<\/strong> menu.<\/li>\n<li>Download the Custom Variables Plugin.<\/li>\n<li>Tap on <strong>Add New<\/strong> within the WordPress <strong>Plugins<\/strong> menu.<\/li>\n<li>Click <strong>Upload Plugin<\/strong> and follow the prompts to upload the Custom Variables plugin zip that you just downloaded.<\/li>\n<li>Click <strong>Activate<\/strong> to enable the plugin with Matomo.<\/li>\n<\/ol>\n\n<h4>How to add Custom Variables to your Web pages<\/h4>\n\n<p>Setting up Custom Variables will generally require that you are comfortable editing code or have access to a developer who can configure them for you. If you are already creating custom code to pull data from a content management system then it likely makes sense to set up your tracking within that custom code at the same time. However, in some cases it is possible to extract data using Matomo Tag Manager and there are details on that process below.<\/p>\n\n<h5>How to set up the HTTP Tracking API with Tag Manager<\/h5>\n\n<p>The actual code for setting Custom Variables is fairly simple. It starts by wrapping the function with a <code>_paq.push([   ]);<\/code> which sends it to Matomo. Next, the <code>setCustomVariable()<\/code> is set and within that are the four elements: index, name, value and scope.<\/p>\n\n<pre>\n_paq.push([setCustomVariable(index, name, value, scope = \"visit\"]);\n<\/pre>\n\n<p>It is important that you use a unique index for each value as the index will only ever store the most recent value. However, you can use the same name against multiple indexes so that you can store multiple values for a metric. You can find examples of this for both scopes formatted for the <a href=\"https:\/\/developer.matomo.org\/api-reference\/tracking-api\">HTTP tracking API<\/a> below.<\/p>\n\n<p><strong>Visit Scoped Custom Variable Examples<\/strong><\/p>\n\n<p>In this example we are tracking a Role variable where website users can hold multiple roles at the same time. In this case it is associating both a \u201cStaff\u201d and \u201cModerator\u201d role with the visitor that will persist for all actions within their entire visit.<\/p>\n\n<pre>\n_paq.push([setCustomVariable(1, \"Role\", \"Staff\", scope = \"visit\"]);\n_paq.push([setCustomVariable(2, \"Role\", \"Moderator\", scope = \"visit\"]);\n<\/pre>\n\n<p><strong>Page Scoped Custom Variable Examples<\/strong><\/p>\n\n<p>In this example of a Page scoped custom variable multiple tags are associated with a specific page view. In this case both the \u201cGuide\u201d and \u201cVideos\u201d tag will be associated with the pageview, however this won\u2019t be associated with other page views unless the same code is also present on those pages.<\/p>\n\n<pre>\n_paq.push([setCustomVariable, 1, \"Tag\", \"Guides\", scope = \"page\"]);\n_paq.push([setCustomVariable, 2, \"Tag\", \"Videos\", scope = \"page\"]);\n<\/pre>\n\n<p>When using the <a href=\"https:\/\/developer.matomo.org\/api-reference\/tracking-api\">HTTP tracking API<\/a> you must make sure that you set your custom variables before <code>trackPageview<\/code> is called. You can find more information on doing this via Matomo Tag Manager further down the page.<\/p>\n\n<h5>Tracking\/Capturing Custom Variables via Matomo Tag Manager<\/h5>\n\n<p>While it may not always be the easiest way to pull data from your existing content management system, it is also possible to set up Custom Variables with <a href=\"https:\/\/matomo.org\/docs\/tag-manager\/\">Matomo Tag Manager<\/a>. The specific method for collecting data will vary depending on what you would like to collect but the general configuration is detailed below.<\/p>\n\n<ol>\n<li>You will need to start out by installing and <a href=\"https:\/\/matomo.org\/docs\/tag-manager\/#how-can-i-set-up-matomo-tag-manager-on-my-website\">configuring Matomo Tag Manager<\/a> if you haven\u2019t already.<\/li>\n<li>Next, Set up a Matomo Analytics Tag with the <strong>Tracking Type<\/strong> set to <strong><i>Initialise tracker only. Don\u2019t track anything<\/i><\/strong>. This is because we will be creating separate tags to ensure that tracking works correctly. You will also need to click to <strong>Show advanced settings<\/strong> and look for the <strong>Priority<\/strong> text field. By default, this is set to <strong>999<\/strong>, however you should change this to <strong>1<\/strong> so it becomes one of the first tags to fire when a page is loaded.<\/li>\n<li>Next, you need to set up the tag that will actually track your pageviews. This can be done using a <strong>Custom HTML<\/strong> tag and should contain the following code:\n<pre>\n&lt;script&gt;\n  var _paq = window._paq = window._paq || [];\n  _paq.push(['trackPageView']);\n&lt;\/script&gt;\n<\/pre>\nYou will also want to ensure that this tag fires after your existing Priority for this tag so make sure you click <strong>Show advanced settings<\/strong> and update the Priority text field to <strong>999<\/strong> so that it always fires after the initial tag.<\/li>\n<li>And finally you need to set up a <strong>Custom HTML<\/strong> tag for any Custom Variables that you would like to set.\n<pre>\n&lt;script&gt;\n  var _paq = window._paq = window._paq || [];\n_paq.push(['setCustomVariable', 1, 'User Role', 'Guest', scope = 'visit']);\n_paq.push(['setCustomVariable', 1, 'Tag', 'Marketing', scope = 'page']);\n_paq.push(['setCustomVariable', 2, 'Tag', {&#8291;{dataLayer - Tags}}, scope = 'page']);\n&lt;\/script&gt;\n<\/pre>\nYou can combine several variables in a single tag if it makes sense, but you will need to ensure that the tag only fires when relevant. For example, if you create a <strong>Tags<\/strong> variable for tracking tags associated with pageviews, then you will need to create a Trigger that only fires when a page is loaded with the relevant tags. You can <a href=\"https:\/\/matomo.org\/docs\/tag-manager\/#triggers\">learn more about triggers here<\/a>. Any tags that you create containing variables will need to be set to a <strong>Priority<\/strong> number somewhere between your first tag <strong>1<\/strong> and your pageview tag <strong>999<\/strong>. This is so the tags all load in the correct sequence. For example:\n\n<ul>\n<li><strong>Matomo Analytics Init Tag<\/strong> - Priority 1<\/li>\n<li><strong>Custom Variables Tag<\/strong> - Priority 99<\/li>\n<li><strong>Pageview Tag<\/strong> - Priority 999<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n<h5>Advanced: Output custom variables in your CMS dynamic code with the PHP API<\/h5>\n\n<p>If you are a developer then you may also want to look at our case study where we show how one website integrated dynamic custom Variables with WordPress CMS using the <a href=\"https:\/\/developer.matomo.org\/api-reference\/PHP-Matomo-Tracker\">PHP Tracking API<\/a>. You can also find full documentation on how to set custom variables this way in the <a href=\"https:\/\/developer.matomo.org\/api-reference\/PHP-Matomo-Tracker#setcustomvariable\">official PHP tracking development documentation<\/a> here.<\/p>\n\n<h3>How to Analyse Custom Variables<\/h3>\n\n<p>You can find the <strong>Custom Variables<\/strong> report within the <strong>Visitors<\/strong> section of main navigation down the left hand side of the page. Custom Variable reports are shown in <a href=\"https:\/\/matomo.org\/docs\/matomo-tour\/#tables-5\">Table format<\/a> by default, however, like most tables in Matomo there are <a href=\"https:\/\/matomo.org\/docs\/matomo-tour\/#alternative-visualisations-of-table-data\">alternative visualisations available<\/a>.<\/p>\n\n<p>The specific metrics available vary depending on the scope of the custom variable. The number of <strong>Actions<\/strong> will be shown for both <strong>Page<\/strong> and <strong>Visit<\/strong> scoped variables, but <strong>Visit<\/strong> scoped variables also offer the following additional metrics:<\/p>\n\n<ul>\n<li>Visits<\/li>\n<li>Unique Visitors<\/li>\n<li>Users<\/li>\n<\/ul>\n\n<p>When reviewing Action scoped results, these values are simply blank and replaced with a hyphen as no relevant data is stored.<\/p>\n\n<p><img src=\"https:\/\/matomo.org\/wp-content\/uploads\/2023\/03\/Custom_Variable_Actions.png\" alt=\"\" width=\"933\" height=\"598\" class=\"alignnone size-full wp-image-62440\" \/><\/p>\n\n<h4>Hierarchical vs Flat Analysis<\/h4>\n\n<p>By default variable data is displayed in hierarchical format. This means you can click on the plus icon for any of the top level names to reveal the values stored against that specific Name for easy comparison. Below is an example comparing different page type on a dive review website:<\/p>\n\n<p><img src=\"https:\/\/matomo.org\/wp-content\/uploads\/2023\/03\/Custom_Variables_By_Type.png\" alt=\"\" width=\"933\" height=\"659\" class=\"alignnone size-full wp-image-62442\" \/><\/p>\n\n<p>Alternatively you can flatten the table to compare disparate metrics against each other. For example comparing the success of certain page types against content from certain authors. Not all comparisons will make sense so it is up to you to consider whether this view is relevant for the custom variables tracked on your site.<\/p>\n\n<p><img src=\"https:\/\/matomo.org\/wp-content\/uploads\/2023\/03\/Custom_Variables_Flattened.png\" alt=\"\" width=\"933\" height=\"529\" class=\"alignnone size-full wp-image-62444\" \/><\/p>\n\n<p>You can switch between these modes by hovering your mouse over the table to reveal a green icon menu in the bottom left of the screen. You can then click on the cog icon which provides several options including switching between hierarchical and flat data views, exclude rows with low data or <a href=\"https:\/\/matomo.org\/faq\/custom-reports\/faq_25253\/\">pivot your data<\/a>.<\/p>\n\n<p><img src=\"https:\/\/matomo.org\/wp-content\/uploads\/2023\/03\/Custom_Variables_Flat_Actions.png\" alt=\"\" width=\"933\" height=\"529\" class=\"alignnone size-full wp-image-62470\" \/><\/p>\n\n<h3>Resources<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/developer.matomo.org\/guides\/tracking-javascript-guide#custom-variables\">Developer JavaScript Tracking Guide for Custom Variables<\/a><\/li>\n<li><a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#CustomVariables\">Developer Hooks for Custom Variables in the Reporting API<\/a><\/li>\n<li><a href=\"https:\/\/matomo.org\/faq\/how-to\/faq_17931\/\">How to Extend Custom Variable Limits for Matomo On-Premise<\/a><\/li>\n<li><a href=\"https:\/\/matomo.org\/faq\/general\/faq_21117\/\">Advantages of Custom Dimensions over Custom Variables<\/a><\/li>\n<li><a href=\"http:\/\/developer.matomo.org\/api-reference\/reporting-api#CustomVariables\">Developer Documentation of REST API for Custom Variables<\/a><\/li>\n<\/ul>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.0 - 2026-08-09\n- Compatibility with Matomo 6<\/p>\n\n<p>5.0.6 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.0.5 - 2026-03-02\n- Updated API documentation<\/p>\n\n<p>5.0.4 - 2025-01-20\n- Added missing license file<\/p>\n\n<p>5.0.3 - 2024-11-05\n- Updated the conversion query to force index<\/p>\n\n<p>5.0.2\n- Archiving: Ensure parameter is provided in correct type<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.1.3\n- Update documentation<\/p>\n\n<p>4.1.2\n- Update documentation\n- Translation updates<\/p>\n\n<p>4.1.1\n- Translation updates<\/p>\n\n<p>4.1.0 \n- migrate from AngularJS to Vue.\n- Replaced substr() with mb_substr() to correctly cut utf8 values.\n- Fixed warnings and depreciation for PHP8.1<\/p>"},"download":"\/api\/2.0\/plugins\/CustomVariables\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomVariables\/changelog"},"consumer":{"license":null}},{"name":"CustomVariablesExtended","displayName":"Custom Variables Extended","owner":"MichaelRoosz","description":"Provides 20 additional custom variables which do not need additional columns in the log tables (\"log_visit\", etc).","homepage":"https:\/\/github.com\/MichaelRoosz\/plugin-CustomVariablesExtended","createdDateTime":"2025-01-15 10:22:02","donate":{"paypal":"michael.roosz@web.de","bitcoin":null},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/MichaelRoosz\/plugin-CustomVariablesExtended\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/MichaelRoosz\/plugin-CustomVariablesExtended","type":"url"}],"isTheme":false,"keywords":["custom","variables","Extended","additional"],"basePrice":0,"authors":[{"name":"Michael Roosz","email":"michael.roosz@web.de","homepage":null}],"repositoryUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-CustomVariablesExtended","lastUpdated":"2025-03-04 10:46:03","latestVersion":"5.0.3","numDownloads":14138,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2025-03-04 10:44:06"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2025-01-15 10:22:03","requires":{"matomo":">=5.1.1-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomVariablesExtended\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-CustomVariablesExtended\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariablesExtended\/download\/1.0.0"},{"name":"1.0.1","release":"2025-01-15 10:30:03","requires":{"matomo":">=5.1.1-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomVariablesExtended\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-CustomVariablesExtended\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariablesExtended\/download\/1.0.1"},{"name":"5.0.1","release":"2025-01-15 16:36:04","requires":{"matomo":">=5.1.1-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":199,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomVariablesExtended\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-CustomVariablesExtended\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomVariablesExtended\/download\/5.0.1"},{"name":"5.0.3","release":"2025-03-04 10:46:03","requires":{"matomo":">=5.1.1-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13928,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/CustomVariablesExtended\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-CustomVariablesExtended\/commits\/5.0.3","readmeHtml":{"description":"\n\n<p>The standard \"Custom Variables\" plugin allows to use up to about 25 custom variables. Trying to use more will fail because each variable requires two dedicated columns in the log tables.\nThis plugins provides 20 additional custom variables which do not need additional columns in the log tables (\"log_visit\", etc).<\/p>\n\n<p>They can be used just like normal custom variables and are available via the custom variable index 101 through 120.<\/p>\n\n","faq":"","documentation":"","changelog":"<h3>5.0.3<\/h3>\n\n<ul>\n<li>Fix plugin version<\/li>\n<\/ul>\n\n<h3>5.0.2<\/h3>\n\n<ul>\n<li>Fix namespace of language files<\/li>\n<\/ul>\n\n<h3>5.0.1<\/h3>\n\n<ul>\n<li>Fix version number in plugin info<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<ul>\n<li>First stable release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/CustomVariablesExtended\/download\/5.0.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomVariablesExtended\/changelog"},"consumer":{"license":null}},{"name":"CustomWidgets","displayName":"Custom Widgets","owner":"openmost","description":"Add a widget with your own content to dashboards: news, links, videos, iframes, images or any HTML.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/custom-widgets","createdDateTime":"2025-03-23 13:04:02","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/CustomWidgets\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/CustomWidgets","type":"url"}],"isTheme":false,"keywords":["widget","custom","content","widgets","html","text"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/CustomWidgets","lastUpdated":"2026-10-21 21:16:19","latestVersion":"5.0.1","numDownloads":10429,"screenshots":["https:\/\/plugins.matomo.org\/CustomWidgets\/images\/5.0.1\/Custom_widget_on_a_dashboard_next_to_reports.png","https:\/\/plugins.matomo.org\/CustomWidgets\/images\/5.0.1\/Pick_the_widget_in_the_dashboard_menu_with_live_preview.png","https:\/\/plugins.matomo.org\/CustomWidgets\/images\/5.0.1\/Settings_widget_title_and_HTML_content.png"],"coverImage":"https:\/\/plugins.matomo.org\/CustomWidgets\/images\/5.0.1\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/4EYuO3xsH2U","id":"4EYuO3xsH2U"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-21 21:15:20"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"1.0.1","release":"2025-03-23 13:04:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CustomWidgets\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomWidgets\/download\/1.0.1"},{"name":"1.0.3","release":"2025-03-24 19:22:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":176,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CustomWidgets\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomWidgets\/download\/1.0.3"},{"name":"1.0.4","release":"2025-03-27 11:50:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10051,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CustomWidgets\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomWidgets\/download\/1.0.4"},{"name":"6.0.0","release":"2026-09-15 20:06:03","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":56,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CustomWidgets\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomWidgets\/download\/6.0.0"},{"name":"5.0.0","release":"2026-10-14 15:24:12","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":60,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CustomWidgets\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/CustomWidgets\/download\/5.0.0"},{"name":"5.0.1","release":"2026-10-21 21:16:19","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":54,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/CustomWidgets\/commits\/5.0.1","readmeHtml":{"description":"\n\n<p>Add a widget with your own content to Matomo dashboards: team news, links to internal resources, embedded videos, iframes, images or any HTML content.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>One custom widget<\/strong> with its own title and content (text and HTML)<\/li>\n<li><strong>Simple configuration<\/strong> in the General settings, editable by super users<\/li>\n<li><strong>Any HTML content<\/strong>: <code>&lt;iframe&gt;<\/code>, <code>&lt;img&gt;<\/code>, <code>&lt;svg&gt;<\/code> and <code>&lt;canvas&gt;<\/code> elements never overflow the widget width<\/li>\n<li><strong>YouTube ready<\/strong>: YouTube and YouTube no-cookie iframes are allowed by the Matomo Content Security Policy<\/li>\n<li>Available on every website, in the <strong>Custom Widget<\/strong> category of the dashboard widget selector<\/li>\n<li>The widget can be embedded outside Matomo with the Widgetize feature<\/li>\n<\/ul>\n\n<p>The Matomo 6 version of the plugin adds unlimited widgets, a dedicated management page with a code editor and live preview, per website display, allowed external domains and an HTTP API.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6.0.0<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate the plugin from the Matomo Marketplace (<strong>Administration &gt; Platform &gt; Marketplace<\/strong>).<\/li>\n<li>Go to <strong>Administration &gt; System &gt; General settings<\/strong>, section <strong>CustomWidgets<\/strong>.<\/li>\n<li>Enter the widget title and the content to display, then save.<\/li>\n<li>Open a dashboard, click <strong>Dashboard &gt; Widgets<\/strong>, and pick your widget in the <strong>Custom Widget<\/strong> category.<\/li>\n<\/ol>\n\n<h3>Privacy and data<\/h3>\n\n<p>The widget title and content are stored in the Matomo database as plugin system settings. The plugin sends nothing outside your Matomo instance. The HTML content is displayed as written and is not filtered, so only add content you trust.<\/p>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. When you need widgets driven by your own data or business logic, we build <a href=\"https:\/\/openmost.com\/matomo\/services\/plugin-development?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=customwidgets\">custom Matomo plugins<\/a> from a written spec, tested on the Matomo versions you run and maintained over time.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How to install this plugin?<\/strong><\/p>\n\n<p>This plugin is available in the official Matomo Marketplace. Install it the same way as other plugins:<\/p>\n\n<ul>\n<li>Go to the administration panel<\/li>\n<li>Open the Marketplace section and select \"Plugins\"<\/li>\n<li>Search for \"<strong>CustomWidgets<\/strong>\", install and activate the plugin<\/li>\n<li>Go to <strong>Administration &gt; System &gt; General settings<\/strong>, section <strong>CustomWidgets<\/strong>, to set the title and the content of the widget<\/li>\n<\/ul>\n\n<p><strong>Who can edit the widget?<\/strong><\/p>\n\n<p>Only super users can edit the widget, from the General settings. Every user can add it to their dashboards.<\/p>\n\n<p><strong>Can I create several widgets?<\/strong><\/p>\n\n<p>Version 5.x of the plugin provides one custom widget. The Matomo 6 version of the plugin supports unlimited widgets, managed from a dedicated page.<\/p>\n\n<p><strong>Why is my iframe not displayed?<\/strong><\/p>\n\n<p>Content loaded from another domain is blocked by the Matomo Content Security Policy. YouTube and YouTube no-cookie iframes are allowed by the plugin.<\/p>\n\n<p><strong>Is the content of the widget filtered?<\/strong><\/p>\n\n<p>No, the HTML is displayed as it is written, so only add content you trust.<\/p>\n\n<p><strong>How can I contribute to this plugin?<\/strong><\/p>\n\n<p>Open an issue or a pull request on <a href=\"https:\/\/github.com\/openmost\/CustomWidgets\">GitHub<\/a>, or contact us at ronan@openmost.com.<\/p>\n\n<p><strong>How long will this plugin be maintained?<\/strong><\/p>\n\n<p>As long as possible. We use Matomo and this plugin on many projects every day, so issues are fixed as fast as possible.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Add custom content, such as text and custom HTML code, to your dashboards with a dedicated widget.\nShare internal news, useful links, videos, iframes or any content with your team.<\/p>\n\n<h3>Configure the widget<\/h3>\n\n<ol>\n<li>Go to <strong>Administration &gt; System &gt; General settings<\/strong>, section <strong>CustomWidgets<\/strong>.<\/li>\n<li>Enter the title of the widget and the content to display (text and HTML).<\/li>\n<li>Save the settings.<\/li>\n<\/ol>\n\n<h3>Add the widget to a dashboard<\/h3>\n\n<p>Open a dashboard, click on <strong>Dashboard<\/strong>, then <strong>Widgets<\/strong> and select the widget in the <strong>Custom Widget<\/strong> category.<\/p>\n\n<h3>Display external content<\/h3>\n\n<p>YouTube and YouTube no-cookie iframes are allowed by the Matomo Content Security Policy, so you can embed a video right away:<\/p>\n\n<pre><code>&lt;iframe width=\"100%\" height=\"315\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/VIDEO_ID\" allowfullscreen&gt;&lt;\/iframe&gt;\n<\/code><\/pre>\n\n<p>Iframes, images, videos, SVG and canvas elements never overflow the widget width.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>5.0.1<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<ul>\n<li>The version number now follows the Matomo major version (5.x for Matomo 5).<\/li>\n<li>Fix the link of the default widget content when Matomo is installed in a sub directory<\/li>\n<li>The <strong>Custom Widget<\/strong> category name is translated into 12 languages<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<li>Requires Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>1.0.4<\/h3>\n\n<p>update: Default widget content link<\/p>\n\n<h3>1.0.3<\/h3>\n\n<p>update: Documentation<\/p>\n\n<h3>1.0.2<\/h3>\n\n<p>update: Iframe, image, svg and canvas with fitting.<\/p>\n\n<h3>1.0.1<\/h3>\n\n<p>publication on Matomo Marketplace<\/p>\n\n<h3>1.0.0<\/h3>\n\n<p>setup: Plugin initial upload<\/p>"},"download":"\/api\/2.0\/plugins\/CustomWidgets\/download\/5.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/CustomWidgets\/changelog"},"consumer":{"license":null}},{"name":"DataExport","displayName":"Data Export","owner":"jorgeuos","description":"Export database or connect to your BI tools.","homepage":"https:\/\/jorgeuos.com","createdDateTime":"2024-02-15 23:26:02","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/jorgeuos\/DataExport\/docs","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org\/","type":"url"},{"name":"Email","key":"email","value":"hey@jorgeuos.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/jorgeuos\/DataExport\/issues","type":"url"}],"isTheme":false,"keywords":["export","analytics","DataExport","Data","Database","BI","Business Intelligence"],"basePrice":0,"authors":[{"name":"Jorgeuos","email":"hey@jorgeuos.com","homepage":null}],"repositoryUrl":"https:\/\/github.com\/jorgeuos\/DataExport","lastUpdated":"2025-11-11 14:02:07","latestVersion":"1.1.10","numDownloads":15856,"screenshots":["https:\/\/plugins.matomo.org\/DataExport\/images\/1.1.10\/1-Default-view.png","https:\/\/plugins.matomo.org\/DataExport\/images\/1.1.10\/2-Default-view.png","https:\/\/plugins.matomo.org\/DataExport\/images\/1.1.10\/3-Settings-page.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"46","numContributors":"1","lastCommitDate":"2026-02-06 10:29:56"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2024-02-15 23:26:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":137,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/0.1.0"},{"name":"0.1.2","release":"2024-02-24 02:08:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":151,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/0.1.2"},{"name":"1.0.0","release":"2024-02-27 23:18:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":240,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.0.0"},{"name":"1.1.0","release":"2024-03-04 21:54:06","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.0"},{"name":"1.1.1","release":"2024-03-04 22:10:06","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":186,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.1"},{"name":"1.1.2","release":"2024-03-20 12:02:06","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":62,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.2"},{"name":"1.1.3","release":"2024-03-21 16:28:06","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.3"},{"name":"1.1.4","release":"2024-03-21 17:54:06","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":488,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.4"},{"name":"1.1.5","release":"2024-04-08 18:18:07","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4311,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.5"},{"name":"1.1.6","release":"2024-11-23 01:04:07","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.6"},{"name":"1.1.7","release":"2024-11-23 14:18:06","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":96,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.7"},{"name":"1.1.8","release":"2024-11-28 16:00:07","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":309,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.8"},{"name":"1.1.9","release":"2024-12-17 22:10:06","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3390,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/1.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.9"},{"name":"1.1.10","release":"2025-11-11 14:02:07","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6458,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DataExport\/1.1.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jorgeuos\/DataExport\/commits\/v1.1.10","readmeHtml":{"description":"\n\n<p>This plugin allows you to <strong>export<\/strong>, <strong>download<\/strong>, <strong>sync<\/strong>, and <strong>import<\/strong> your Matomo database.\nPlus you can <strong>export raw data<\/strong> to a CSV file and much more.<\/p>\n\n<p>You can easily import the data into another Matomo instance. For example,\nyou can use your real data into your development environment.<\/p>\n\n<p>I have added some features to export raw data to a CSV file.\nThis is useful if you want to use the data in another tool, such as Excel, Tableau, or PowerBI.\nThis is a brand new plugin and some features are very experimental,\nif you have any issues, please create an issue on GitHub.<\/p>\n\n<h3>Caution<\/h3>\n\n<p>This plugin is not designed for exporting\/importing large data sets(yet). Use at your own risk.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Export and download the database to a file<\/li>\n<li>Import a database from a file<\/li>\n<li>Export and download raw data to a CSV file<\/li>\n<li>Console commands to:\n\n<ul>\n<li>Dump the database<\/li>\n<li>Sync the database<\/li>\n<li>Import the database<\/li>\n<li>Create the database<\/li>\n<li>Drop the database<\/li>\n<li>Cleanup old backups<\/li>\n<li>Export queries to CSV<\/li>\n<\/ul><\/li>\n<li>API endpoints to:\n\n<ul>\n<li>Export raw data<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h3>In the works<\/h3>\n\n<p>We will update this plugin, probaly with paid features to connect to other\nanalytics tools. Such as Snowlflake, Google BigQuery, Apache Kafka, etc.\nStay tuned!<\/p>\n\n<h3>Installation<\/h3>\n\n<p>Install it via Matomo Marketplace<\/p>\n\n<h3>How to use<\/h3>\n\n<p>Navigate to <code>Admin<\/code> -&gt; <code>Platform<\/code> -&gt; <code>Data Export<\/code> and follow the instructions.<\/p>\n\n<h3>The UI<\/h3>\n\n<p>The UI is pretty straightforward. You can export the database, import a database, and export raw data to a CSV file.<\/p>\n\n<h3>Raw data exports<\/h3>\n\n<p>I have collected a few queries from the Matomos faq: <a href=\"https:\/\/matomo.org\/faq\/how-to\/how-do-i-write-sql-queries-to-select-visitors-list-of-pageviews-searches-events-in-the-matomo-database\/\">How do I write SQL queries...<\/a>.<\/p>\n\n<h3>Command line<\/h3>\n\n<h4>DB commands<\/h4>\n\n<pre><code>$ .\/console db:dump\n$ .\/console db:import\n$ .\/console db:drop\n$ .\/console db:create\n\n<\/code><\/pre>\n\n<h3>Syncing databases<\/h3>\n\n<p>I have added an option to sync databases. This is useful if you want to sync your database to an external server or S3 bucket.<\/p>\n\n<p>You need to configure the destination in: <code>Admin(Cog wheel)<\/code> --&gt; <code>System<\/code> --&gt; <code>General settings<\/code> --&gt; <code>Data Export<\/code><\/p>\n\n<p>And Select the Checkbox, <code>Sync File to External Server<\/code>.<\/p>\n\n<p>Fill in all the required settings.\n<img src=\"https:\/\/github.com\/jorgeuos\/DataExport\/assets\/21176316\/8f032996-863f-4d10-8c4d-f2bf7e159fa2\" alt=\"8f032996-863f-4d10-8c4d-f2bf7e159fa2\" \/><\/p>\n\n<p>Then it should sync every time a new dump is generated with the <code>scheduled-tasks<\/code>, if you have set up a <code>.\/console core:archive<\/code>-job, you don't necessarily need to run it manually, It will automatically run when the <code>core:archive<\/code> process runs, one exception is if you added the <code>--disable-scheduled-tasks<\/code> flag to the command.<\/p>\n\n<p>You can also test the settings by running the following command:<\/p>\n\n<pre><code>$ .\/console scheduled-tasks:run \"Piwik\\Plugins\\DataExport\\Tasks.databaseDumpTask\"\n<\/code><\/pre>\n\n<p>You can try to add the verbose flag <code>-vvv<\/code> for more log messages. If you encounter any bugs or issues, just create a new issue and I will try to fix it as soon as possible.<\/p>\n\n<p>Just make sure you have added all the needed configuration settings in the UI or in your <code>config.ini.php<\/code> file.<\/p>\n\n<h3>Configuration<\/h3>\n\n<p>You can configure in the UI or add the following settings to your <code>config.ini.php<\/code> file:<\/p>\n\n<pre><code>[DataExport]\n; dataExportBackupPath:\n; Path to store the backups on the Matomo server\ndataExportBackupPath = \"\"\n; dataExportAutoDump:\n; available options: \"none\", \"daily\", \"weekly\"\ndataExportAutoDump = \"none\"\n; dataExportAutoDumpCompression:\n; available options: \"none\", \"zip\", \"tar\"\ndataExportAutoDumpCompression = \"none\"\n; dataExportSyncExternal:\n; 1 for true, 0 for false\ndataExportSyncExternal = 0\n; dataExportSyncOption:\n; or \"sftp\"\ndataExportSyncOption = \"s3\"\n; dataExportSyncFilePath:\n; Path for s3 or Remote Path for sftp\ndataExportSyncFilePath = \"\"\n; dataExportSyncBucketName:\n; for s3 or Hostname for sftp\ndataExportSyncBucketName = \"\"\n; dataExportSyncKey:\n; Access Key for s3 or Username for sftp\ndataExportSyncKey = \"\"\n; dataExportSyncSecret:\n; Secret Key for s3 or Password for sftp\ndataExportSyncSecret = \"\"\n; dataExportSyncRegion:\n; Region for s3\ndataExportSyncRegion = \"\"\n<\/code><\/pre>\n\n<h3>Cleanup command<\/h3>\n\n<p>Downloading files from the UI will generate a copy that stays on the server.\nIn  order to not take up too much disk space Cleanup is set to run once a day and it deletes files older than 7 days.<\/p>\n\n<pre><code>$ .\/console scheduled-tasks:run --force \"Piwik\\Plugins\\DataExport\\Tasks.cleanBackupsFolderTask\"\n<\/code><\/pre>\n\n<p>To manually delete all files, you can run:<\/p>\n\n<pre><code>$ .\/console dataexport:clean-backups -f\n<\/code><\/pre>\n\n<h3>API endpoints<\/h3>\n\n<p>I have started to add some API endpoints, but consider them experimental for now.\n<strong>CAUTION: The queries are run as live queries, so use sparingly.<\/strong><\/p>\n\n<p>You can specify the date, idSite, and format.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>curl --request GET \\\n  --url 'https:\/\/YOUR_MATOMO_URL\/index.php?module=API&amp;method=DataExport.selectAllVisitsAndActions&amp;date=2024-02-20&amp;idSite=1&amp;format=json&amp;token_auth=YOUR_ADMIN_TOKEN'\n<\/code><\/pre>\n\n<h3>Support<\/h3>\n\n<p>If you need help with exporting raw logs to a data warehouse, such as Snowflake, Google BigQuery, or Apache Kafka, contact me for a quote at <a href=\"hey@jorgeuos.com\">hey@jorgeuos.com<\/a>.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Where goes the files on the server?<\/strong><\/p>\n\n<pre><code>$MATOMO_ROOT\/tmp\/de_backups\/{dbdump}-{Y-m-d_H-i-s}.sql\n<\/code><\/pre>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>\n\n<h2>Description<\/h2>\n\n<p>This plugin allows you to <strong>export<\/strong>, <strong>download<\/strong>, <strong>sync<\/strong>, and <strong>import<\/strong> your Matomo database.\nPlus you can <strong>export raw data<\/strong> to a CSV file and much more.<\/p>\n\n<p>You can easily import the data into another Matomo instance. For example,\nyou can use your real data into your development environment.<\/p>\n\n<p>I have added some features to export raw data to a CSV file.\nThis is useful if you want to use the data in another tool, such as Excel, Tableau, or PowerBI.\nThis is a brand new plugin and some features are very experimental,\nif you have any issues, please create an issue on GitHub.<\/p>\n\n<p><img src=\"https:\/\/plugins.matomo.org\/DataExport\/images\/1.1.1\/1-Default-view.png?w=1024\" alt=\"1-Default-view.png?w=1024\" \/>\n<img src=\"https:\/\/plugins.matomo.org\/DataExport\/images\/1.1.1\/2-Default-view.png?w=1024\" alt=\"2-Default-view.png?w=1024\" \/>\n<img src=\"https:\/\/plugins.matomo.org\/DataExport\/images\/1.1.1\/3-Settings-page.png?w=1024\" alt=\"3-Settings-page.png?w=1024\" \/><\/p>\n\n<h3>Caution<\/h3>\n\n<p>This plugin is not designed for exporting\/importing large data sets(yet).<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Export and download the database to a file<\/li>\n<li>Import a database from a file<\/li>\n<li>Export and download raw data to a CSV file<\/li>\n<li>Console commands to:\n\n<ul>\n<li>Dump the database<\/li>\n<li>Sync the database<\/li>\n<li>Import the database<\/li>\n<li>Create the database<\/li>\n<li>Drop the database<\/li>\n<li>Cleanup old backups<\/li>\n<li>Export queries to CSV<\/li>\n<\/ul><\/li>\n<li>API endpoints to:\n\n<ul>\n<li>Export raw data<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h2>In the works<\/h2>\n\n<p>We will update this plugin, probaly with paid features to connect to other\nanalytics tools. Such as Snowlflake, Google BigQuery, Apache Kafka, etc.\nStay tuned!<\/p>\n\n<h2>Installation<\/h2>\n\n<p>Install it via Matomo Marketplace<\/p>\n\n<h2>How to use<\/h2>\n\n<p>Navigate to <code>Admin<\/code> -&gt; <code>Platform<\/code> =&gt; <code>Data Export<\/code> and follow the instructions.<\/p>\n\n<h2>Configuration<\/h2>\n\n<p>Example of the configuration file:<\/p>\n\n<pre><code>[DataExport]\ndataExportBackupPath = \"\"\ndataExportAutoDump = \"daily\"\ndataExportAutoDumpCompression = \"zip\"\ndataExportSyncExternal = 1\ndataExportSyncOption = \"sftp\"\ndataExportSyncFilePath = \"\/home\/YOUR_USER\/backups\"\ndataExportSyncBucketName = \"192.168.0.1\"\ndataExportSyncKey = \"USERNAME\"\ndataExportSyncSecret = \"YOUR_PASSWORD\"\ndataExportSyncRegion = \"\"\n<\/code><\/pre>\n\n<h2>License<\/h2>\n\n<p>GPLv3 for now.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>1.1.10\n- Added disabable ssl option to mysqldump command and added some missing translations.<\/p>\n\n<p>1.1.9\n- WP handles file paths differently than PIWIK_INCLUDE_PATH, changed to <strong>DIR<\/strong> for relative paths<\/p>\n\n<p>1.1.8\n- Added directory check for the export folder for the CSV export<\/p>\n\n<p>1.1.7\n- Changed to positional statements\n- Solved CSV naming bug\n- Added extra logic to get allSites in CSV<\/p>\n\n<p>1.1.6\n- Fixed databaseDumpTask runner<\/p>\n\n<p>1.1.5<\/p>\n\n<ul>\n<li>Fixed compression bug<\/li>\n<li>Updated the README.md<\/li>\n<li>Rearrange the ChangeLog to chronological order<\/li>\n<\/ul>\n\n<p>1.1.4<\/p>\n\n<ul>\n<li>Removed filter_var for compressions, allow multiple compressions<\/li>\n<\/ul>\n\n<p>1.1.3<\/p>\n\n<ul>\n<li>Added more checks for the export folder\nRan into the the same bug again<\/li>\n<\/ul>\n\n<p>1.1.2<\/p>\n\n<ul>\n<li>Fixed Bug when dir is empty<\/li>\n<li>Added translations for the client side<\/li>\n<\/ul>\n\n<p>1.1.1<\/p>\n\n<p>Trying to fix the Description in the Matomo Marketplace<\/p>\n\n<p>1.1.0<\/p>\n\n<p>Added support for exporting data to a remote server\n- Feature: Sync to S3\n- Feature: Sync to SFTP\n- Feature: Finished the DB:dump Task, it had a bugs\n- Feature: Updated the README.md<\/p>\n\n<p>1.0.0<\/p>\n\n<p>Bump to a major release\n- Feature: Added bunch of new features for compression\n- Feature: Added CSV option for exporting raw data\n- Feature: Added Cleanup feature to clean up export folder\n- Feature: Added API support for exporting data<\/p>\n\n<p>More is coming soon...<\/p>\n\n<p>0.1.2<\/p>\n\n<ul>\n<li>Feature: Add command line interface to export data<\/li>\n<\/ul>\n\n<pre><code>$ bin\/console db:dump\n$ bin\/console db:import\n$ bin\/console db:drop\n$ bin\/console db:create\n<\/code><\/pre>\n\n<ul>\n<li>Feature: Add support for exporting data as a tar.gz file<\/li>\n<li>Feature: Add support for cleaning up export folder<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/DataExport\/download\/1.1.10"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DataExport\/changelog"},"consumer":{"license":null}},{"name":"DDBotTracker","displayName":"DDBotTracker","owner":"Mikanoshi","description":"Separate tracking of parsers, crawlers, scrapers and any other bots supported by Matomo's built-in DeviceDetector.","homepage":"https:\/\/code.highspec.ru\/Mikanoshi\/DDBotTracker","createdDateTime":"2026-10-11 09:04:02","donate":{"bitcoin":null},"support":[{"name":"Email","key":"email","value":"iam@mikanoshi.name","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/code.highspec.ru\/Mikanoshi\/DDBotTracker\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/code.highspec.ru\/Mikanoshi\/DDBotTracker","type":"url"}],"isTheme":false,"keywords":["tracker","assistant","agent","DeviceDetector","bot","crawler","scraper","fetcher","parser","reader","site monitor","validator","security checker","benchmark"],"basePrice":0,"authors":[{"name":"Mikanoshi","email":"iam@mikanoshi.name","homepage":"https:\/\/mikanoshi.name"}],"repositoryUrl":"https:\/\/github.com\/Mikanoshi\/DDBotTracker","lastUpdated":"2026-10-22 11:42:04","latestVersion":"1.1.0","numDownloads":173,"screenshots":["https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/Supported_bot_categories.png","https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/Total_actions_-_Bar_graph.png","https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/Total_actions_-_Pie_chart.png","https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/Total_actions_-_Table.png","https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/Total_actions_-_Tag_cloud.png","https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/Visited_pages_-_Flat.png","https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/Visited_pages_-_Hierarchical.png","https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/Widget_-_Bots_vs_Visitors.png"],"coverImage":"https:\/\/plugins.matomo.org\/DDBotTracker\/images\/1.1.0\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-22 11:40:37"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.1","release":"2026-10-12 19:58:03","requires":{"php":">=8.1.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DDBotTracker\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Mikanoshi\/DDBotTracker\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DDBotTracker\/download\/1.0.1"},{"name":"1.0.2","release":"2026-10-12 22:38:03","requires":{"php":">=8.1.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":141,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DDBotTracker\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Mikanoshi\/DDBotTracker\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DDBotTracker\/download\/1.0.2"},{"name":"1.1.0","release":"2026-10-22 11:42:04","requires":{"php":">=8.1.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DDBotTracker\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Mikanoshi\/DDBotTracker\/commits\/1.1.0","readmeHtml":{"description":"\n\n<p>Matomo excludes any detected bots from tracked visits using their <a href=\"https:\/\/github.com\/matomo-org\/device-detector\">DeviceDetector library<\/a>.<\/p>\n\n<p>DDBotTracker plugin allows to track these bots separately.<\/p>\n\n<p>New report page is available at Visitors &gt; Bots, as well as additional widgets for the dashboard.<\/p>\n\n<h3>Installation \/ Update<\/h3>\n\n<p>See <a href=\"https:\/\/matomo.org\/faq\/plugins\/faq_21\/\">https:\/\/matomo.org\/faq\/plugins\/faq_21\/<\/a>.<\/p>\n\n<h3>How to setup tracking<\/h3>\n\n<p>No additional setup required, bots will be tracked regardless of <em>bots<\/em> or <em>recMode<\/em> tracking parameters.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>1.1.0<\/h3>\n\n<p>Tracking parameter <code>bots=1<\/code> is no longer required and should be removed if it was added just for this plugin. Excluding bot visits is done by default Matomo's detection.<\/p>"},"download":"\/api\/2.0\/plugins\/DDBotTracker\/download\/1.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DDBotTracker\/changelog"},"consumer":{"license":null}},{"name":"DefaultSegmentApplied","displayName":"Default Segment Applied","owner":"Chardonneaur","description":"Allows users to set a default segment that is automatically applied when viewing reports.","homepage":"https:\/\/github.com\/Chardonneaur\/DefaultSegmentApplied","createdDateTime":"2026-02-06 20:14:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/DefaultSegmentApplied\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Chardonneaur\/DefaultSegmentApplied","type":"url"}],"isTheme":false,"keywords":["default","segment","settings","personal","user preferences"],"basePrice":0,"authors":[{"name":"Chardonneaur","email":null,"homepage":"https:\/\/github.com\/Chardonneaur"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/DefaultSegmentApplied","lastUpdated":"2026-02-10 10:12:03","latestVersion":"1.1.0","numDownloads":4866,"screenshots":["https:\/\/plugins.matomo.org\/DefaultSegmentApplied\/images\/1.1.0\/personal_settings_default_segment.png","https:\/\/plugins.matomo.org\/DefaultSegmentApplied\/images\/1.1.0\/personal_settings_inline_help.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/customisation.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-02-10 10:10:12"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-02-06 20:14:03","requires":{"matomo":">=5.0.0,<6.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DefaultSegmentApplied\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/DefaultSegmentApplied\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DefaultSegmentApplied\/download\/1.0.0"},{"name":"1.1.0","release":"2026-02-10 10:12:03","requires":{"matomo":">=5.0.0,<6.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4847,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DefaultSegmentApplied\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/DefaultSegmentApplied\/commits\/1.1.0","readmeHtml":{"description":"\n\n<p>When configured, the selected segment is automatically applied to all report pages, saving users from having to manually select their preferred segment each time they access Matomo. The segment is applied transparently via the URL and respects manually selected segments \u2014 it only activates when no segment is already present in the URL.<\/p>\n\n<p>This is a <strong>per-user setting<\/strong>: each authenticated user can choose their own default segment independently.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Where do I configure my default segment?<\/h2>\n\n<p>Go to <strong>Administration &gt; Personal &gt; Settings<\/strong>. You will find a <strong>Default Segment<\/strong> dropdown in the <strong>DefaultSegmentApplied<\/strong> section.<\/p>\n\n<h2>Does the default segment affect other users?<\/h2>\n\n<p>No. This is a per-user setting. Each authenticated user can choose their own default segment independently.<\/p>\n\n<h2>What happens if I manually select a different segment?<\/h2>\n\n<p>The plugin only applies the default segment when no segment is already present in the URL. If you manually select a segment from the segment bar, it takes priority and the default is not applied.<\/p>\n\n<h2>Can I remove my default segment?<\/h2>\n\n<p>Yes. Go to <strong>Administration &gt; Personal &gt; Settings<\/strong> and select <strong>\"All Visits\"<\/strong> from the Default Segment dropdown, then click Save.<\/p>\n\n<h2>What happens if the segment I selected is deleted?<\/h2>\n\n<p>The plugin validates the segment on every page load. If your saved default segment no longer exists, it is silently ignored and no segment is applied.<\/p>\n\n<h2>Does this plugin work for anonymous users?<\/h2>\n\n<p>No. The default segment feature is only available for authenticated (logged-in) users.<\/p>\n\n<h2>Which segments appear in the dropdown?<\/h2>\n\n<p>All saved segments available to your user account (created by you or shared with you) are listed. You need at least one saved segment in the Segment Editor for the dropdown to show options.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>1.1.0<\/h2>\n\n<ul>\n<li>Added admin-level \"Default Segment for All Users\" setting in General Settings<\/li>\n<li>Users without a personal default segment now fall back to the admin-configured default<\/li>\n<li>Personal default segments continue to take priority over the admin default<\/li>\n<li>Updated inline help to explain the fallback behavior<\/li>\n<li>Added English and French translations for new settings<\/li>\n<\/ul>\n\n<h2>1.0.0<\/h2>\n\n<ul>\n<li>Initial release<\/li>\n<li>Per-user default segment setting in Personal Settings<\/li>\n<li>Automatic segment application when viewing reports<\/li>\n<li>Does not override manually selected segments<\/li>\n<li>Graceful transition when changing the default segment<\/li>\n<li>English and French translations<\/li>\n<li>Inline help with use case example in the admin UI<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/DefaultSegmentApplied\/download\/1.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DefaultSegmentApplied\/changelog"},"consumer":{"license":null}},{"name":"DevelopmentToogle","displayName":"Development Toogle","owner":"Findus23","description":"Quickly enable and disable the development mode.","homepage":"https:\/\/lw1.at","createdDateTime":"2019-09-09 21:04:03","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle","type":"url"}],"isTheme":false,"keywords":["development"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle","lastUpdated":"2023-07-22 20:58:02","latestVersion":"0.3.0","numDownloads":16406,"screenshots":["https:\/\/plugins.matomo.org\/DevelopmentToogle\/images\/0.3.0\/screenshot.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"52","numContributors":"18","lastCommitDate":"2024-08-17 11:09:31"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2019-09-09 21:04:03","requires":{"piwik":">=3.11.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevelopmentToogle\/download\/0.1.0"},{"name":"0.1.1","release":"2019-09-09 21:08:02","requires":{"piwik":">=3.11.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3206,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevelopmentToogle\/download\/0.1.1"},{"name":"0.2.0","release":"2020-08-21 09:44:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":163,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevelopmentToogle\/download\/0.2.0"},{"name":"0.2.1","release":"2020-10-10 16:52:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":914,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevelopmentToogle\/download\/0.2.1"},{"name":"0.2.2","release":"2021-09-04 19:48:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":480,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevelopmentToogle\/download\/0.2.2"},{"name":"0.2.3","release":"2021-11-19 18:40:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3772,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevelopmentToogle\/download\/0.2.3"},{"name":"0.3.0","release":"2023-07-22 20:58:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7862,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-DevelopmentToogle\/commits\/0.3.0","readmeHtml":{"description":"\n\n<p>This plugin adds a new icon to the main navbar for admins that quickly toogles the development features.<\/p>\n\n<p>Disabling the development mode makes Matomo far quicker as caches aren't disabled.<\/p>\n\n<pre><code>[Development]\nenabled = 0\ndisable_merged_assets = 0\n<\/code><\/pre>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.3.0<\/h3>\n\n<p>Matomo 5 compatibility<\/p>\n\n<h3>0.2.3<\/h3>\n\n<p>add Japanese, Italian, Chinese, Portuguese, Portuguese (Brazil) and Ukrainian translations<\/p>\n\n<h3>0.2.2<\/h3>\n\n<p>Add French, German, Treek and Turkish translations<\/p>\n\n<h3>0.2.1<\/h3>\n\n<p>fix order in top menu<\/p>\n\n<h3>0.2.0<\/h3>\n\n<p>Matomo 4 compatibility<\/p>\n\n<h3>0.1.1<\/h3>\n\n<p>fix description<\/p>\n\n<h3>0.1.0<\/h3>\n\n<p>initial version<\/p>"},"download":"\/api\/2.0\/plugins\/DevelopmentToogle\/download\/0.3.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DevelopmentToogle\/changelog"},"consumer":{"license":null}},{"name":"DeviceDetectorCache","displayName":"Device Detector Cache","owner":"matomo-org","description":"Makes tracking faster by detecting many devices, operating systems, bots, and browsers from a cache.","homepage":"https:\/\/matomo.org","createdDateTime":"2019-10-23 20:14:04","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/issues","type":"url"}],"isTheme":false,"keywords":["performance","tracking","device","detector"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache","lastUpdated":"2026-08-24 06:00:17","latestVersion":"6.0.0","numDownloads":42480,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/DeviceDetectorCache.png","previews":[],"activity":{"numCommits":"161","numContributors":"22","lastCommitDate":"2026-10-21 09:44:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"database","categories":["database"],"promotions":{},"versions":[{"name":"3.0.0","release":"2019-10-23 20:18:03","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1128,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/3.0.0"},{"name":"3.0.1","release":"2020-02-02 20:24:44","requires":{"piwik":">=3.12.0-b3,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1047,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/3.0.1"},{"name":"3.0.2","release":"2020-03-24 21:27:21","requires":{"piwik":">=3.12.0-b3,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2086,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/3.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/3.0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/3.0.2"},{"name":"4.0.0","release":"2020-07-30 12:10:19","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":44,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.0.0"},{"name":"3.0.3","release":"2020-08-04 02:28:39","requires":{"piwik":">=3.12.0-b3,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":114,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/3.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/3.0.3"},{"name":"3.1.0","release":"2020-08-05 00:42:03","requires":{"piwik":">=3.12.0-b3,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3364,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/3.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/3.1.0"},{"name":"4.1.0","release":"2020-08-05 01:52:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":301,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.1.0"},{"name":"4.2.0","release":"2020-08-31 03:06:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":47,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.2.0"},{"name":"4.2.1","release":"2020-09-03 01:56:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":275,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.2.1"},{"name":"4.2.2","release":"2020-11-02 20:02:03","requires":{"matomo":">=4.0.0-rc1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2748,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.2.2"},{"name":"4.2.3","release":"2021-11-15 07:32:03","requires":{"matomo":">=4.0.0-rc1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3463,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.2.3"},{"name":"4.3.0","release":"2022-09-29 03:42:02","requires":{"matomo":">=4.12.0-b3,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":553,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.3.0"},{"name":"4.2.4","release":"2022-10-07 08:26:03","requires":{"matomo":">=4.0.0-rc1,<4.12.0-b3"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.2.4"},{"name":"4.3.1","release":"2022-10-07 08:36:02","requires":{"matomo":">=4.12.0-b3,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5830,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/4.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/4.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/4.3.1"},{"name":"5.0.0","release":"2023-05-05 00:28:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":73,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/5.0.0"},{"name":"5.0.1","release":"2023-10-03 04:32:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":106,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/5.0.1"},{"name":"5.0.2","release":"2023-11-21 00:40:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2097,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/5.0.2"},{"name":"5.0.3","release":"2024-04-22 05:58:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19053,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/5.0.3"},{"name":"6.0.0","release":"2026-08-24 06:00:17","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":140,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-DeviceDetectorCache\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>Makes device detection in Matomo faster by having cached entries for many commonly used user agents.<\/p>\n\n<p>By default, Matomo runs thousands of regular expressions for each tracking request to detect what Browser, Device, Operating system, ... is being used and to detect if a user agent is a bot or not.<\/p>\n\n<p>This plugin changes this by first looking if a cached result exists for the particular user agent and if so, directly loads the result from the file system.<\/p>\n\n<p>We recommend this plugin only if you have a very high traffic website (&gt; 200M requests a month). Depending on your server it may save you a few ms per tracking request (say 5ms which may be say 10% of the total tracking request time).<\/p>\n\n<p>If you have not that much traffic, the overhead might not be worth it.<\/p>\n\n<h3>How to set it up<\/h3>\n\n<h4>Config setup<\/h4>\n\n<p>Configure these values in your <code>config\/config.ini.php<\/code><\/p>\n\n<pre><code>[DeviceDetectorCache]\naccess_log_path = \"\/var\/log\/httpd\/access_log\" # The path to your access log file. This command needs to have read permission for this file\naccess_log_regex = \"\/^(\\S+) (\\S+) (\\S+) \\[([^:]+):(\\d+:\\d+:\\d+) ([^\\]]+)\\] \\\"(\\S+) (.*?) (\\S+)\\\" (\\S+) (\\S+) \\\"([^\\\"]*)\\\" \\\"([^\\\"]*)\\\"$\/\" # the regex used to extract the user agent\nregex_match_entry = 14 # defines which subpattern of the abovce regex matches the user agent\nnum_cache_entries = 200000 # how many user agents should be cached. This value basically depends on your memory and disk space. Likely there is no need to change this\n<\/code><\/pre>\n\n<h4>Testing if it works<\/h4>\n\n<p>Run this command to see if it works:<\/p>\n\n<pre><code>php \/path\/to\/matomo\/console device-detector-cache:warm-cache -vvv\n<\/code><\/pre>\n\n<p>It should show how many user agents were detected and should print the top 10 most commonly found user agents if things are configured correctly.<\/p>\n\n<p>Cached files will be stored in <code>\/tmp\/devicecache\/<\/code>. Make sure there is write access for this folder. Every time this command runs previously created cache entries will be deleted.<\/p>\n\n<h4>Set up a cronjob<\/h4>\n\n<p>If above test goes well you need to set up a cronjob that runs regularly (eg every few hours or days) to update the cached entries based on the access log.<\/p>\n\n<p>The cronjob needs to look like for example like this:<\/p>\n\n<pre><code>0 8 * * * php \/path\/to\/matomo\/console device-detector-cache:warm-cache\n<\/code><\/pre>\n\n<p>If you have multiple servers, you need to set up the command on every server that processes tracking requests.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.0\n- Compatibility with Matomo 6.X<\/p>\n\n<p>5.0.3\n- Added plugin category for Marketplace<\/p>\n\n<p>5.0.2\n- Fixes errors due to incorrect default values<\/p>\n\n<p>5.0.1\n- Fixes errors from undefined indexes<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5.X<\/p>\n\n<p>4.3.0\n- Compatibility with Matomo 4.12, and Adjustments for client hints support<\/p>\n\n<p>4.2.3\n- Fixed parsers not being set when cache is present<\/p>\n\n<p>4.2.2\n- Compatibility with Matomo 4<\/p>\n\n<p>4.2.1\n- Compatibility with PHP DI 6<\/p>\n\n<p>4.2.0\n- Performance improvements<\/p>\n\n<p>4.1.0\n- Changed how this command works. It now requires a configuration.<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4.X<\/p>\n\n<p>3.1.0\n- Changed how this command works. It now requires a configuration.<\/p>\n\n<p>3.0.3\n- Add more cache entries<\/p>\n\n<p>3.0.2\n- Add more cache entries<\/p>\n\n<p>3.0.1\n- Add more cache entries<\/p>\n\n<p>3.0.0\n- Initial version<\/p>"},"download":"\/api\/2.0\/plugins\/DeviceDetectorCache\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DeviceDetectorCache\/changelog"},"consumer":{"license":null}},{"name":"DeviceFeatureWebGL","displayName":"Device Feature Web GL","owner":"sgiehl","description":"This plugin allows you to track browser compatibility for WebGL.","homepage":"http:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL","createdDateTime":"2017-07-05 19:54:03","donate":{"paypal":"stefangiehl@web.de","flattr":"https:\/\/flattr.com\/thing\/2578144\/sgiehl","bitcoin":null},"support":[],"isTheme":false,"keywords":["webgl"],"basePrice":0,"authors":[{"name":"Stefan Giehl","email":"stefan@matomo.org","homepage":"http:\/\/github.com\/sgiehl"}],"repositoryUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL","lastUpdated":"2026-08-31 07:02:03","latestVersion":"6.0.0","numDownloads":100958,"screenshots":["https:\/\/plugins.matomo.org\/DeviceFeatureWebGL\/images\/6.0.0\/report.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"34","numContributors":"1","lastCommitDate":"2026-08-31 07:00:23"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.1","release":"2017-07-05 19:54:03","requires":{"piwik":">=3.0.5-b1,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1390,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceFeatureWebGL\/download\/1.0.1"},{"name":"1.0.2","release":"2018-03-07 19:46:03","requires":{"piwik":">=3.0.5-b1,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4732,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceFeatureWebGL\/download\/1.0.2"},{"name":"1.0.3","release":"2020-05-22 19:12:03","requires":{"piwik":">=3.0.5-b1,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2340,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceFeatureWebGL\/download\/1.0.3"},{"name":"4.0.0","release":"2020-06-05 20:36:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":354,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceFeatureWebGL\/download\/4.0.0"},{"name":"4.0.1","release":"2020-08-25 07:18:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":32547,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceFeatureWebGL\/download\/4.0.1"},{"name":"5.0.0","release":"2023-08-21 14:10:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":59517,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceFeatureWebGL\/download\/5.0.0"},{"name":"6.0.0","release":"2026-08-31 07:02:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":78,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-DeviceFeatureWebGL\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugin adds browser plugin detection for WebGL to the already existing browser plugin reports in Matomo<\/p>\n\n<h3>Requirements<\/h3>\n\n<p><a href=\"https:\/\/github.com\/matomo-org\/matomo\">Matomo<\/a> 5.0.0-b1 or higher is required.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>automatic detection of WebGL support in browsers<\/li>\n<\/ul>\n\n","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/DeviceFeatureWebGL\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DeviceFeatureWebGL\/changelog"},"consumer":{"license":null}},{"name":"DeviceNetworkInformation","displayName":"Device Network Information","owner":"MichaelRoosz","description":"Detects network type on mobile devices where the browser supports it.","homepage":"https:\/\/github.com\/MichaelRoosz\/plugin-DeviceNetworkInformation","createdDateTime":"2018-08-22 13:56:03","donate":{"paypal":"michael.roosz@web.de","bitcoin":null},"support":[],"isTheme":false,"keywords":["network","type","mobile"],"basePrice":0,"authors":[{"name":"Michael Roosz","email":"michael.roosz@web.de","homepage":null}],"repositoryUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-DeviceNetworkInformation","lastUpdated":"2024-10-31 11:42:06","latestVersion":"5.0.1","numDownloads":19666,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"1","numContributors":"1","lastCommitDate":"2024-10-31 11:41:47"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"3.0.3","release":"2018-08-22 13:56:03","requires":{"piwik":">=3.1.0-rc1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7091,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceNetworkInformation\/3.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-DeviceNetworkInformation\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceNetworkInformation\/download\/3.0.3"},{"name":"4.0.1","release":"2022-04-12 04:58:06","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3229,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceNetworkInformation\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-DeviceNetworkInformation\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DeviceNetworkInformation\/download\/4.0.1"},{"name":"5.0.1","release":"2024-10-31 11:42:06","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9346,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DeviceNetworkInformation\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-DeviceNetworkInformation\/commits\/5.0.1","readmeHtml":{"description":"\n\n<p>Detects network type on (mobile) devices where the browser supports it.\nMakes use of the Navigator.connection property( https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Navigator\/connection ).<\/p>\n\n","faq":"","documentation":"","changelog":"<p>5.0.1: Compatibility with Matomo 5<\/p>\n\n<p>4.0.1: Compatibility with Matomo 4<\/p>\n\n<p>3.0.3: First stable release<\/p>"},"download":"\/api\/2.0\/plugins\/DeviceNetworkInformation\/download\/5.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DeviceNetworkInformation\/changelog"},"consumer":{"license":null}},{"name":"DevicePixelRatio","displayName":"Device Pixel Ratio","owner":"johsin18","description":"Collects statistics on the device pixel ratio of the visitor's devices.  Useful to analyze how many visitors have Retina or other high DPI displays.","homepage":null,"createdDateTime":"2018-07-29 19:18:04","donate":{"paypal":"johannes@singler.name","flattr":"","bitcoin":null},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/wiki","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin","type":"url"}],"isTheme":false,"keywords":["Retina","high DPI","high resolution","hires","hi-res","device pixel ratio"],"basePrice":0,"authors":[{"name":"Johannes Singler","email":"johannes@singler.name","homepage":null}],"repositoryUrl":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin","lastUpdated":"2026-10-05 05:56:04","latestVersion":"2.0.2","numDownloads":40789,"screenshots":["https:\/\/plugins.matomo.org\/DevicePixelRatio\/images\/2.0.2\/Device_Pixel_Ratio_Ranges_Report.png","https:\/\/plugins.matomo.org\/DevicePixelRatio\/images\/2.0.2\/Device_Pixel_Ratio_Report.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"34","numContributors":"1","lastCommitDate":"2026-10-05 05:54:07"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2018-07-29 19:18:04","requires":{"piwik":">=3.5.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevicePixelRatio\/download\/0.1.0"},{"name":"1.0.0","release":"2018-07-29 19:24:04","requires":{"piwik":">=3.5.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":294,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevicePixelRatio\/download\/1.0.0"},{"name":"1.0.1","release":"2018-08-08 13:14:03","requires":{"piwik":">=3.5.1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4525,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevicePixelRatio\/download\/1.0.1"},{"name":"1.0.2","release":"2020-03-07 11:30:03","requires":{"piwik":">=3.5.1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4818,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/commits\/1.0.2-version-updated","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevicePixelRatio\/download\/1.0.2"},{"name":"2.0.0","release":"2020-09-10 15:50:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9571,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/commits\/2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevicePixelRatio\/download\/2.0.0"},{"name":"2.0.1","release":"2023-06-05 20:22:02","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21541,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DevicePixelRatio\/download\/2.0.1"},{"name":"2.0.2","release":"2026-10-05 05:56:04","requires":{"matomo":">=6.0.0,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/johsin18\/DevicePixelRatioMatomoPlugin\/commits\/2.0.2","readmeHtml":{"description":"\n\n<p>This plugin collects statistics on the device pixel ratio of the visitor's devices.  This is useful to analyze how many visitors have Retina or other high DPI displays.  Find the respective report in the Visitors - Devices section.  You can switch to \"Device Pixel Ratio Ranges\" to see what share of visitors has a device pixel ratio of up to 1.00, 2.00, and so on.  Also, the screen resolution in the visitor log is augmented with the device pixel ratio (abbreviated to DPR there).<\/p>\n\n<p>The measurement is based on the <a href=\"https:\/\/drafts.csswg.org\/cssom-view\/#dom-window-devicepixelratio\">window.devicePixelRatio<\/a> browser variable, which is <a href=\"https:\/\/caniuse.com\/#search=devicePixelRatio\">supported<\/a> by all modern browsers.  Note that also a full page zoom different from 100% changes the device pixel ratio.  A user setting the zoom to 200% on a regular screen will be counted in the same way as a user having a Retina display with 100% zoom.  Still, the user with 200% zoom would also benefit from higher DPI assets.<\/p>\n\n<p>The device pixel ratio is stored with two decimals accuracy.  For browsers not reporting the device pixel ratio, and for visits having occurred before the installation of this plugin, we report the value \"Unknown\".<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Shouldn't the plugin analyze the pure device pixel ratio, wihtout taking the zoom into account?<\/strong><\/p>\n\n<p>I do not think that you can query the browser for neither the full page zoom nor the pure pixel device ratio, window.pixelDeviceRatio gives you both at the same time.<\/p>\n\n<p><strong>What if the device pixel ratio changes during the visit (e.g. by the user changing the full page zoom level)?<\/strong><\/p>\n\n<p>The plugin records the device pixel ratio at the beginning of each visit, later changes are ignored.  I might think about an option for taking the value for the last action instead, if you provide me with very good arguments for that.<\/p>\n\n<p><strong>An unknown device pixel ratio is reported for all visitors.  What is wrong?<\/strong><\/p>\n\n<p>This plugin needs to add a snippet to the JavaScript code that make the browser report visitor actions.  To allow this addition, matomo.js must be writable in you installation (\"Writable JavaScript Tracker\" in System Check must be checked).  As the script might be cached on client side, it might take a while until all clients will correctly report the device pixel ratio.  If you report the actions using some other API, add \"devicePixelRatio=1.23\" to the arguments.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>2.0.2<\/h2>\n\n<ul>\n<li>Make compatible with Matomo 6 (no real changes, just adapted test expectations).\nMatomo 4 and 5 are no longer supported, use version 2.0.1 for those.<\/li>\n<\/ul>\n\n<h2>2.0.1<\/h2>\n\n<ul>\n<li>Declare compatible with Matomo 5 (no real changes).<\/li>\n<\/ul>\n\n<h2>2.0.0<\/h2>\n\n<ul>\n<li>Make compatible with Matomo 4.<\/li>\n<li>Reverted the change of 1.0.2, as the reason turned out to be a bug in Matomo core, which was fixed in Matomo 3.13.6.<\/li>\n<\/ul>\n\n<h2>1.0.2<\/h2>\n\n<ul>\n<li>Fixed a bug revealed by Matomo 3.13, which made the devicePixelRatio query not being added to the JavaScript tracker code.<\/li>\n<\/ul>\n\n<h2>1.0.1<\/h2>\n\n<ul>\n<li>Pie chart now the default visualization for device pixel ratio ranges.<\/li>\n<li>Improvements to the description.<\/li>\n<\/ul>\n\n<h2>1.0.0<\/h2>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/DevicePixelRatio\/download\/2.0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DevicePixelRatio\/changelog"},"consumer":{"license":null}},{"name":"DiagnosticsExtended","displayName":"Diagnostics Extended","owner":"Findus23","description":"Additional checks for the System Check.","homepage":"https:\/\/lw1.at","createdDateTime":"2021-04-12 17:10:04","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-DiagnosticsExtended\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-DiagnosticsExtended","type":"url"}],"isTheme":false,"keywords":["debugging","system check"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended","lastUpdated":"2023-07-22 21:44:02","latestVersion":"0.2.0","numDownloads":21043,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"83","numContributors":"19","lastCommitDate":"2024-07-21 20:09:33"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2021-04-12 17:10:04","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.0"},{"name":"0.1.1","release":"2021-04-13 15:42:03","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.1"},{"name":"0.1.2","release":"2021-04-13 15:48:03","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.2"},{"name":"0.1.4","release":"2021-04-15 10:00:03","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":362,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.4"},{"name":"0.1.5","release":"2021-05-17 11:24:03","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.5"},{"name":"0.1.6","release":"2021-05-17 15:02:03","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":847,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.6"},{"name":"0.1.7","release":"2021-09-02 15:42:03","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":76,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.7"},{"name":"0.1.8","release":"2021-09-04 19:36:03","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1024,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.8"},{"name":"0.1.9","release":"2021-12-14 19:18:03","requires":{"matomo":">=4.2.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7817,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.1.9"},{"name":"0.2.0","release":"2023-07-22 21:44:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10843,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/matomo-DiagnosticsExtended\/commits\/0.2.0","readmeHtml":{"description":"\n\n<p>This plugin adds a collection of new checks to the Matomo System Check page. They are a bit <strong>more experimental<\/strong> and can be more likely to give incorrect results, but might help you find issues with your Matomo setup.<\/p>\n\n<p>Please report back any unexpected results you come across or other feedback so that the checks can be improved and possible integrated into Matomo core once they work reliably.<\/p>\n\n<h3>Currently supported tests:<\/h3>\n\n<ul>\n<li>curl version check<\/li>\n<li>MySQL\/MariaDB version check<\/li>\n<li>matomo.js check (Gzip, MIME-Type)<\/li>\n<li>Opcache check (enabled and set up correctly)<\/li>\n<li>php.ini settings<\/li>\n<li>php running as root<\/li>\n<li>php version check<\/li>\n<li>check if secret files are protected by webserver<\/li>\n<\/ul>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.2.0<\/h3>\n\n<p>Matomo 5 compatibility<\/p>\n\n<h3>0.1.9<\/h3>\n\n<ul>\n<li>removed URLCheck as a similar test is now part of Matomo<\/li>\n<li>improved matomo.js check thanks to @d--j<\/li>\n<li>improved and added translations thanks to the <a href=\"https:\/\/hosted.weblate.org\/credits\/matomo\/communityplugin-diagnosticsextended\/\">contributors on Weblate<\/a><\/li>\n<\/ul>\n\n<h3>0.1.8<\/h3>\n\n<p>Add Greek translation<\/p>\n\n<h3>0.1.7<\/h3>\n\n<p>Add German and Turkish translation<\/p>\n\n<h3>0.1.6<\/h3>\n\n<p>skip user check if <code>posix_getuid()<\/code> doesn't exist<\/p>\n\n<h3>0.1.5<\/h3>\n\n<p>fix a warning when <code>opcache_get_status()<\/code> is not allowed<\/p>\n\n<h3>0.1.4<\/h3>\n\n<p>fix the repository URL<\/p>\n\n<h3>0.1.3 (unpublished)<\/h3>\n\n<ul>\n<li>remove logged warning from PHP check<\/li>\n<li>don't fail if headers are missing<\/li>\n<li>skip checks when <code>enable_internet_features = 0<\/code> is set<\/li>\n<li>also accept brotli compression<\/li>\n<\/ul>\n\n<h3>0.1.2<\/h3>\n\n<ul>\n<li>fix PHP version check<\/li>\n<li>add version output to curl check<\/li>\n<\/ul>\n\n<h3>0.1.1<\/h3>\n\n<p>fix incorrect translations<\/p>\n\n<h3>0.1.0<\/h3>\n\n<p>first version released<\/p>"},"download":"\/api\/2.0\/plugins\/DiagnosticsExtended\/download\/0.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DiagnosticsExtended\/changelog"},"consumer":{"license":null}},{"name":"DisableTracking","displayName":"Disable Tracking","owner":"lippoliv","description":"Disable tracking for specific sites without removing the tracking code or losing the data.","homepage":"https:\/\/lw-scm.de\/lipperts-web\/piwik-plugin-disabletracking","createdDateTime":"2016-12-23 11:04:03","donate":{"paypal":"info@lipperts-web.de","bitcoin":null},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/lw-scm.de\/lipperts-web\/piwik-plugin-disabletracking\/-\/blob\/master\/src\/docs\/index.md","type":"url"},{"name":"Email","key":"email","value":"incoming+lipperts-web-piwik-plugin-disabletracking-148-issue-@git.lipperts-web.de","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/lw-scm.de\/lipperts-web\/piwik-plugin-disabletracking\/-\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/lw-scm.de\/lipperts-web\/piwik-plugin-disabletracking\/-\/tree\/master","type":"url"}],"isTheme":false,"keywords":["tracking","disable","site"],"basePrice":0,"authors":[{"name":"Lipperts WEB","email":"info@lipperts-web.de","homepage":"https:\/\/lipperts-web.de"}],"repositoryUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking","lastUpdated":"2023-12-28 09:52:02","latestVersion":"1.3.1","numDownloads":31470,"screenshots":["https:\/\/plugins.matomo.org\/DisableTracking\/images\/1.3.1\/Admin_View.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"26","numContributors":"1","lastCommitDate":"2023-12-28 10:31:59"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.0.0","release":"2016-12-23 11:04:03","requires":{"piwik":">=3.0.0-stable,<4.0.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DisableTracking\/download\/0.0.0"},{"name":"1.0.2","release":"2016-12-23 11:16:03","requires":{"piwik":">=3.0.0-stable,<4.0.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DisableTracking\/download\/1.0.2"},{"name":"1.0.3","release":"2016-12-23 11:34:03","requires":{"piwik":">=3.0.0-stable,<4.0.0","php":">=5.5.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6284,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DisableTracking\/download\/1.0.3"},{"name":"1.1.0","release":"2021-01-10 13:16:03","requires":{"piwik":">=3.0.0,<5.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DisableTracking\/download\/1.1.0"},{"name":"1.1.1","release":"2021-01-11 07:52:03","requires":{"piwik":">=3.0.0,<5.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":56,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking\/commits\/1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DisableTracking\/download\/1.1.1"},{"name":"1.2.0","release":"2021-01-17 12:38:03","requires":{"piwik":">=3.0.0,<5.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9377,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DisableTracking\/download\/1.2.0"},{"name":"1.3.0","release":"2023-12-25 11:22:03","requires":{"piwik":">=3.0.0,<6.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":143,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking\/commits\/1.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DisableTracking\/download\/1.3.0"},{"name":"1.3.1","release":"2023-12-28 09:52:02","requires":{"piwik":">=3.0.0,<6.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15578,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/lippoliv\/piwik-plugin-disabletracking\/commits\/1.3.1","readmeHtml":{"description":"\n\n<p>In some cases it's pretty handy to disable tracking for selected websites of your Matomo instance, even for a short\ntimespan or forever. Working this way you can keep the collected data for later reporting.<\/p>\n\n<p>This plugin is for free, feel free to spend me a coffe and send me your feedback. Further information you can find in\nMatomo marketplace.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Will this plugin disable all site tracking initially?<\/strong><\/p>\n\n<p>No.<\/p>\n\n<p><strong>Does this plugin provide an API?<\/strong><\/p>\n\n<p>No.<\/p>\n\n<p><strong>Is this plugin under support?<\/strong><\/p>\n\n<p>Yes. Please review the support options in the <a href=\"https:\/\/plugins.matomo.org\/DisableTracking\">marketplace<\/a>.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>For some customers I provide access to my on-premise Matomo. Every now and then, I need to block new data to come in,\nbut still provide access to already existing data. So in 2016, I developed this plugin for personal reasons.<\/p>\n\n<h2>Respect open source community<\/h2>\n\n<p>After 2016 the development stuck. Plugin worked, no changes needed. But this is not how open source works.<\/p>\n\n<p>When Matomo 4 came out, I feared to update my on-premise instance because this plugin maybe doe not work. Stupid right?<\/p>\n\n<p>So in 2021 <strong>I investigated a significant effort in test automation<\/strong> for this plugin. Right now, the logic of this\nplugin is covered by integration tests which will run against all supported Matomo versions. In addition to run those\ntests against my code changes, I run them once a week against newest developments so in case of problems, I get notified\nby CI\/CD instead of you.<\/p>\n\n<h2>GitHub is a mirror<\/h2>\n\n<p>For the Matomo marketplace it is needed to have a GitHub project hosting the code.<\/p>\n\n<p>Even if for this plugin there is a GitHub project, it is just a kind of mirror to my GitLab project. Changes are\nautomatically pushed to GitHub, also releases will be automaticcally be created.<\/p>\n\n<p>Feel free to still fork my GitHub project, even if I do not accept pull requests. I'm looking forward to take over your\nchanges manually.<\/p>\n\n<h2>What's tested?<\/h2>\n\n<p>This plugin is tested by using <a href=\"https:\/\/docs.gitlab.com\/ce\/ci\/\">GitLab CI<\/a>.<\/p>\n\n<h3>PHP compatibility<\/h3>\n\n<p>I make sure all code changes are compatible to:<\/p>\n\n<ul>\n<li>php 8.0<\/li>\n<li>php 7.4<\/li>\n<li>php 7.3<\/li>\n<li>php 7.2<\/li>\n<li>php 7.1<\/li>\n<li>php 7.0<\/li>\n<li>php 5.6<\/li>\n<\/ul>\n\n<h3>Integration with Matomo<\/h3>\n\n<p>I make sure that the plugin works as expected with this Matomo versions:<\/p>\n\n<ul>\n<li>newest Matomo 3<\/li>\n<li>newest Matomo 4<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>1.3.1 Multiple sites can be disabled<\/li>\n<li>1.3.0 Support Matomo 5, Support PHP 8<\/li>\n<li>1.2.0 Security update (SQL Injection), add german translation, update documentation and faq<\/li>\n<li>1.1.1 Update plugin metadata<\/li>\n<li>1.1.0 Support Matomo 4<\/li>\n<li>1.0.3 BUGFIX: Checking for ADMIN Permission<\/li>\n<li>1.0.2 Version number set<\/li>\n<li>1.0.1 Prepare for Marketplace<\/li>\n<li>1.0.0 Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/DisableTracking\/download\/1.3.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DisableTracking\/changelog"},"consumer":{"license":null}},{"name":"DisableUrlDecoding","displayName":"Disable Url Decoding","owner":"Anisatum","description":"Disables URL-Decoding of current location and referer to avoid losing data in URL-encoded paths and parameters.","homepage":"https:\/\/github.com\/Anisatum\/matomo-plugin-DisableUrlDecoding\/","createdDateTime":"2024-02-29 18:38:02","donate":{},"support":[{"name":"Email","key":"email","value":"anisatum@proton.me","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Anisatum\/matomo-plugin-DisableUrlDecoding\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Anisatum\/matomo-plugin-DisableUrlDecoding\/","type":"url"}],"isTheme":false,"keywords":["url","encoding","outlinks"],"basePrice":0,"authors":[{"name":"Anisatum","email":"anisatum@proton.me","homepage":"https:\/\/github.com\/Anisatum"}],"repositoryUrl":"https:\/\/github.com\/Anisatum\/matomo-plugin-DisableUrlDecoding","lastUpdated":"2024-03-01 19:12:02","latestVersion":"1.0.1","numDownloads":7630,"screenshots":["https:\/\/plugins.matomo.org\/DisableUrlDecoding\/images\/1.0.1\/SystemSettings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2024-03-09 19:14:32"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2024-02-29 18:38:03","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":37,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/DisableUrlDecoding\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Anisatum\/matomo-plugin-DisableUrlDecoding\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DisableUrlDecoding\/download\/1.0.0"},{"name":"1.0.1","release":"2024-03-01 19:12:02","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7593,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/DisableUrlDecoding\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Anisatum\/matomo-plugin-DisableUrlDecoding\/commits\/1.0.1","readmeHtml":{"description":"\n\n<p>To properly handle some special characters, browsers need to URL-encode them. For example a URL with a search query\n\"Heatmap &amp; session recording\" could look like:<\/p>\n\n<pre><code>https:\/\/example.com\/path\/?q=Heatmap+%26+session+recording&amp;post_type=1234\n<\/code><\/pre>\n\n<p>By default, Matomo applies URL-decoding to every address it logs, so the above address will be saved as:<\/p>\n\n<pre><code>https:\/\/example.com\/path\/?q=Heatmap+&amp;+session+recording&amp;post_type=1234\n<\/code><\/pre>\n\n<p>Cutting the query down to \"Heatmap \", and creating a \" session recording\" parameter that wasn't actually used.\nDecoding URLs containing encoded text will always result in similar issues. This plugin offers several\nways to disable URL-decoding.<\/p>\n\n<p>Intended to resolve issues like <a href=\"https:\/\/github.com\/matomo-org\/matomo\/issues\/21111\">#21111<\/a>, <a href=\"https:\/\/github.com\/matomo-org\/matomo\/issues\/14715\">#14715<\/a>, and <a href=\"https:\/\/github.com\/matomo-org\/matomo\/pull\/16628\">#16628<\/a>.<\/p>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The plugin can be activated from the System Settings, or through Javascript. The Javascript settings override the System\nSettings. URL-decoding can be disabled for:<\/p>\n\n<ul>\n<li>All pages<\/li>\n<li>Only for specified URL Parameters<\/li>\n<li>Only for pages matching a Regular Expression, or to groups captured by it<\/li>\n<\/ul>\n\n<h3>Disable Decoding For All Pages<\/h3>\n\n<p>To enable through Javascript:<\/p>\n\n<pre><code>_paq.push(['DisableUrlDecoding.doNotDecode']);\n<\/code><\/pre>\n\n<p>Simply do not decode the URLs, ever. This option <em>should<\/em> work correctly in most cases, but there are two issues to\nconsider:<\/p>\n\n<ul>\n<li>URL-decoding was originally implemented because of addresses UTF-16 encoded characters. For example a URL like:<\/li>\n<\/ul>\n\n<pre><code>https:\/\/example.com\/path\/?post_type=H%E4ll%F6\n<\/code><\/pre>\n\n<p>Is not compatible with the URL-encoding that is commonly used, and would therefore cause issues down the line. If\nstandard URL-decoding with the <code>decodeURIComponent<\/code> function fails, <code>unescape<\/code>, which handles UTF-16 encoding, is\napplied, and the URL becomes:<\/p>\n\n<pre><code>https:\/\/example.com\/path\/?post_type=H\u00e4ll\u00f6\n<\/code><\/pre>\n\n<p>Modern browsers do not use UTF-16 encoding anymore, but if you are still getting such requests you might want to\nconsider one of the less aggressive options listed below<\/p>\n\n<ul>\n<li>The default Matomo logic has become expected behavior. If your website uses addresses like:<\/li>\n<\/ul>\n\n<pre><code>https:\/\/example.com\/path%20with%20whitespace\/\n<\/code><\/pre>\n\n<p>which are stored as<\/p>\n\n<pre><code>https:\/\/example.com\/path with whitespace\/\n<\/code><\/pre>\n\n<p>you might not have noticed any issues, since browsers automatically convert whitespaces to <code>%20<\/code>. If you've gathered a\nlot of data with decoded URLs, disabling it would cause \"new\" pages to appear in your reporting, and could have\nother downstream effects.<\/p>\n\n<p>In these cases you might want to keep the old logic for most addresses, and only disable decoding in specific\ncases.<\/p>\n\n<h3>Disable Decoding For Specified URL Parameters<\/h3>\n\n<p>To enable through Javascript:<\/p>\n\n<pre><code>_paq.push(['DisableUrlDecoding.doNotDecode', {disableFor: \"params\", params: ['q', 'search']}]);\n<\/code><\/pre>\n\n<p>This allows you to disable the decoding of specified parameters, in this case <code>q<\/code> and <code>search<\/code>. The URL:<\/p>\n\n<pre><code>https:\/\/example.com\/path%20with%20whitespace\/?q=Heatmap+%26+session+recording&amp;post_type=H%E4ll%F6\n<\/code><\/pre>\n\n<p>will be stored as:<\/p>\n\n<pre><code>https:\/\/example.com\/path with whitespace\/?q=Heatmap+%26+session+recording&amp;post_type=H\u00e4ll\u00f6\n<\/code><\/pre>\n\n<h3>Disable Decoding For URLs Matching a Regular Expression<\/h3>\n\n<p>To enable through Javascript:<\/p>\n\n<pre><code>_paq.push(['DisableUrlDecoding.doNotDecode', {disableFor: \"regexp\", regexp: \"example\\\\.com\\\\\/(.*)\\\\\/\\\\?(q=.*)&amp;\"}]);\n<\/code><\/pre>\n\n<p>This allows you to disable the decoding of groups captured by the RegExp. The URL:<\/p>\n\n<pre><code>https:\/\/example.com\/path%20with%20whitespace\/?q=Heatmap+%26+session+recording&amp;post_type=H%E4ll%F6\n<\/code><\/pre>\n\n<p>will be stored as:<\/p>\n\n<pre><code>https:\/\/example.com\/path%20with%20whitespace\/?q=Heatmap+%26+session+recording&amp;post_type=H\u00e4ll\u00f6\n<\/code><\/pre>\n\n<p>Using a Regular Expression with no groups will disable decoding for the entire URL matching it.<\/p>\n\n<h3>Fallback<\/h3>\n\n<p>If the plugin configuration results in a URL that cannot be handled by <code>decodeURIComponent<\/code>, the old logic will be used\nas fallback. For example the configuration:<\/p>\n\n<pre><code>_paq.push(['DisableUrlDecoding.doNotDecode', {disableFor: \"regexp\", regexp: \"example\\\\.com\"}]);\n<\/code><\/pre>\n\n<p>applied to the URL:<\/p>\n\n<pre><code>https:\/\/example.com\/path%20with%20whitespace\/?q=Heatmap+%26+session+recording&amp;post_type=H%E4ll%F6\n<\/code><\/pre>\n\n<p>would attempt to store the entire URL as is, but because the UTF-16 characters cannot be decoded\nwith <code>decodeURIComponent<\/code>, the <code>unescape<\/code> function is applied to the entire URL just like it would be usually done by\nMatomo. The end result being:<\/p>\n\n<pre><code>https:\/\/example.com\/path with whitespace\/?q=Heatmap+&amp;+session+recording&amp;post_type=H\u00e4ll\u00f6\n<\/code><\/pre>\n\n<h3>Re-Enable Decoding Through Javascript<\/h3>\n\n<p>It is also possible to selectively re-enable decoding through Javascript with the <code>doDecode<\/code> method:<\/p>\n\n<pre><code>_paq.push(['DisableUrlDecoding.doDecode'}]);\n<\/code><\/pre>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>1.0.1<\/strong><\/p>\n\n<ul>\n<li>Added documentation<\/li>\n<li>Added screenshots<\/li>\n<li>Cleanup<\/li>\n<\/ul>\n\n<p><strong>1.0<\/strong><\/p>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/DisableUrlDecoding\/download\/1.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DisableUrlDecoding\/changelog"},"consumer":{"license":null}},{"name":"DynamicDeviceDetectorCache","displayName":"Dynamic Device Detector Cache","owner":"oliverbestmann","description":"Makes tracking faster by detecting many devices, operating systems, bots, and browsers from a cache.","homepage":"https:\/\/github.com\/oliverbestmann\/DynamicDeviceDetectorCache","createdDateTime":"2023-01-18 09:52:02","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/oliverbestmann\/DynamicDeviceDetectorCache\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/oliverbestmann\/DynamicDeviceDetectorCache","type":"url"}],"isTheme":false,"keywords":["performance","tracking","device","detector"],"basePrice":0,"authors":[{"name":"Oliver Bestmann","email":null,"homepage":null}],"repositoryUrl":"https:\/\/github.com\/oliverbestmann\/DynamicDeviceDetectorCache","lastUpdated":"2023-01-19 08:14:03","latestVersion":"1.0.4","numDownloads":2055,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"116","numContributors":"15","lastCommitDate":"2024-01-05 13:15:30"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2023-01-18 09:52:03","requires":{"matomo":">=4.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DynamicDeviceDetectorCache\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/oliverbestmann\/DynamicDeviceDetectorCache\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DynamicDeviceDetectorCache\/download\/1.0.0"},{"name":"1.0.2","release":"2023-01-18 09:56:03","requires":{"matomo":">=4.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":26,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DynamicDeviceDetectorCache\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/oliverbestmann\/DynamicDeviceDetectorCache\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/DynamicDeviceDetectorCache\/download\/1.0.2"},{"name":"1.0.4","release":"2023-01-19 08:14:03","requires":{"matomo":">=4.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2021,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/DynamicDeviceDetectorCache\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/oliverbestmann\/DynamicDeviceDetectorCache\/commits\/1.0.4","readmeHtml":{"description":"\n\n<p>Makes device detection in Matomo faster by having cached entries for recently seen user agents.<\/p>\n\n<p>By default, Matomo runs thousands of regular expressions for each tracking request to detect what Browser, Device, Operating system, ... is being used and to detect if a user agent is a bot or not.<\/p>\n\n<p>This plugin changes this by first looking if a cached result exists for the particular user agent and if so, directly loads the result from the cache.\nThe difference to the existing <code>DeviceDetectorCache<\/code> plugin is that this plugin doesn't need any setup. No need to learn user agents\nfrom a log file.<\/p>\n\n<p>For us, this speeds up the tracking request by a factor of 5x.<\/p>\n\n<h3>How to set it up<\/h3>\n\n<p>You should be using redis for caching. The plugin might also work with file based caching, but we have not tested that.<\/p>\n\n<h4>Config setup<\/h4>\n\n<p>You can configure these values in your <code>config\/config.ini.php<\/code><\/p>\n\n<pre><code>[DynamicDeviceDetectorCache]\ncache_ttl_in_seconds = 300\n<\/code><\/pre>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>1.0.4:\n- Try to get matomo to pick up the description from the readme.<\/p>\n\n<p>1.0.0\n- Cache DeviceDetectors in redis<\/p>"},"download":"\/api\/2.0\/plugins\/DynamicDeviceDetectorCache\/download\/1.0.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/DynamicDeviceDetectorCache\/changelog"},"consumer":{"license":null}},{"name":"EcommerceEnhanced","displayName":"Ecommerce Enhanced","owner":"openmost","description":"Reads your shop's GA4 dataLayer and adds brands, variants, item lists, promotions, coupons, checkout funnels and buyer reports to Matomo ecommerce.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/ecommerce-enhanced","createdDateTime":"2026-10-20 10:50:04","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/EcommerceEnhanced","type":"url"}],"isTheme":false,"keywords":["variant","funnel","ecommerce","e-commerce","ga4","datalayer","enhanced-ecommerce","brand","coupon","promotion","checkout"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced","lastUpdated":"2026-10-22 22:10:30","latestVersion":"5.0.4","numDownloads":36,"screenshots":["https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Buyers_and_revenue_in_the_Ecommerce_overview.png","https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Ecommerce_steps_in_the_visitor_log.png","https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Ecommerce_steps_settings.png","https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Payment_types_and_shipping_tiers.png","https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Premium_Item_dimensions_free_preview_and_report.png","https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Premium_Repeat_purchases_free_preview_and_report.png","https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Products_report_by_brand_category_and_variant.png","https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Purchase_journey_funnel.png","https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/Shopping_behavior_and_checkout_behavior.png"],"coverImage":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/images\/5.0.4\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-22 22:08:26"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"ecommerce","categories":["ecommerce"],"promotions":{},"versions":[{"name":"5.0.0","release":"2026-10-20 10:50:08","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/5.0.0"},{"name":"6.0.0","release":"2026-10-20 10:50:32","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/6.0.0"},{"name":"5.0.1","release":"2026-10-21 11:16:08","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/5.0.1"},{"name":"6.0.1","release":"2026-10-21 11:16:52","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/6.0.1"},{"name":"6.0.2","release":"2026-10-21 21:54:16","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/6.0.2"},{"name":"5.0.2","release":"2026-10-21 21:54:28","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/5.0.2"},{"name":"6.0.3","release":"2026-10-22 15:34:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/6.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/6.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/6.0.3"},{"name":"5.0.3","release":"2026-10-22 15:34:24","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/5.0.3"},{"name":"6.0.4","release":"2026-10-22 22:10:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/6.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/6.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/6.0.4"},{"name":"5.0.4","release":"2026-10-22 22:10:30","requires":{"matomo":">=5.0.0,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EcommerceEnhanced\/commits\/5.0.4","readmeHtml":{"description":"\n\n<p><strong>Get GA4 grade ecommerce analytics in Matomo, without changing a line of your shop.<\/strong><\/p>\n\n<p>Your shop already describes every product view, add to cart, checkout step and order in its GA4 dataLayer. Native Matomo ecommerce only keeps the order and a few product fields. Ecommerce Enhanced reads the whole GA4 dataLayer and turns it into the reports GA4 users rely on: product and brand performance, item lists, promotions, coupons, shopping and checkout funnels, sales by source \/ medium, buyers and revenue per user. Your data stays in your Matomo, with no sampling.<\/p>\n\n<p>One checkbox in Matomo Tag Manager, or one line in your tracking code, and it works with WooCommerce, Shopify, Magento, PrestaShop and every shop that speaks GA4.<\/p>\n\n<h3>What you get for free<\/h3>\n\n<p><strong>Collection that just works<\/strong><\/p>\n\n<ul>\n<li>Reads GA4 dataLayer pushes, <code>gtag()<\/code> calls and legacy Universal Analytics Enhanced Ecommerce, from any CMS or extension (GTM4WP, Google Analytics for WooCommerce, Shopify, Magento, PrestaShop, Elevar, Stape...).<\/li>\n<li>Turned on with a checkbox in the Matomo Tag Manager \"Matomo Configuration\" variable (recommended), with one line in your tracking code (<code>_paq.push(['EcommerceEnhanced::enable'])<\/code>), or event by event from JavaScript with <code>_paq.push(['EcommerceEnhanced::track', ...])<\/code>.<\/li>\n<li>Every GA4 ecommerce event: item list views and clicks, product views, wishlist, adds and removals from cart, cart views, checkout, shipping and payment steps, purchases, refunds, promotion views and clicks.<\/li>\n<li>Native Matomo carts and orders are still sent, so the Ecommerce reports, goals and abandoned carts you know keep working, even if you deactivate the plugin.<\/li>\n<li>Variants kept apart, even when they share a SKU, with brand, list, promotion, coupon and discount per product line.<\/li>\n<li>Item lists and promotions remembered from the click to the order, as GA4 attributes them.<\/li>\n<li>Duplicate orders blocked, even when the confirmation page is reloaded or order ids are anonymised.<\/li>\n<li>Privacy by design: <code>user_data<\/code> (emails, phone numbers, addresses, hashed identifiers) is never read, product fields outside GA4 are only sent for the item dimensions you created, coupon codes can be hashed or skipped.<\/li>\n<\/ul>\n\n<p><strong>Reports GA4 users expect<\/strong><\/p>\n\n<ul>\n<li>Shopping behavior and checkout behavior funnels, with step and abandonment rates, without the Funnels plugin.<\/li>\n<li>Product performance, and Product Categories, Product Brands and Product Variants in the dimension switcher of the native Products report, next to Product Name, SKU and Category: views, adds to cart, purchases, item revenue, cart to view and purchase to view rates.<\/li>\n<li>Item lists and promotions: views, clicks, click rate, and the items added to cart and bought after them.<\/li>\n<li>Order details: orders, revenue and average order value by coupon, payment type, shipping tier, customer type (new or returning), affiliation and currency.<\/li>\n<li>Transactions: every order with its revenue, tax, shipping, items, coupon, payment and shipping choices.<\/li>\n<li>Sales by source \/ medium, the way GA4 shows it: <code>google \/ organic<\/code>, <code>newsletter \/ email<\/code>, <code>(direct) \/ (none)<\/code>.<\/li>\n<li>Buyers and revenue: purchasers, first time purchasers, revenue per user (ARPU) and per paying user (ARPPU), average order value and items per order, conversion rate and cart abandonment rate.<\/li>\n<li>Every step also appears in the Events report (category \"Ecommerce\"), with viewing steps kept out of the bounce rate, as in GA4.<\/li>\n<li>The visitor log shows the detail of each step: products, list, promotion, coupon, payment, shipping and order rank of the customer.<\/li>\n<li>One click creates the funnels of the Funnels plugin, when it is activated: the sales funnel of the ecommerce orders, and the Purchase journey and Checkout journey of GA4.<\/li>\n<\/ul>\n\n<p><strong>Native Matomo integration<\/strong><\/p>\n\n<ul>\n<li>23 new segments (<code>eeItemBrand<\/code>, <code>eeOrderCoupon<\/code>, <code>eeStep<\/code>, <code>eePromotionName<\/code>...), for example \"visits that added to cart without buying\": <code>eeStep==add_to_cart;eeStep!=purchase<\/code>.<\/li>\n<li>Every field available in Custom Reports, the segment editor, the API, scheduled reports and dashboards.<\/li>\n<li>GDPR tools (data subject export and deletion) and the deletion of old raw data cover every stored row.<\/li>\n<\/ul>\n\n<h3>What Premium adds<\/h3>\n\n<p>Every Premium report is visible in the free edition with a preview, so you know what you get. Premium shows them with your data, from the data already collected: no new tracking, no history lost, no report to rebuild.<\/p>\n\n<ul>\n<li><strong>Active users and buyers (Premium):<\/strong> 1, 7 and 30 day active users and buyers (DAU, WAU, MAU) and the DAU \/ MAU stickiness ratio.<\/li>\n<li><strong>Customers (Premium):<\/strong> repeat purchase rate, time between purchases, retention cohorts by day, week or month of the first purchase as a heatmap, customer lifetime value and RFM segments.<\/li>\n<li><strong>Acquisition (Premium):<\/strong> sales by first user source, time and visits from the first visit to the first purchase, abandoned carts by channel.<\/li>\n<li><strong>Shopping behavior (Premium):<\/strong> the shopping and checkout funnels split by device and by channel.<\/li>\n<li><strong>Item dimensions (Premium):<\/strong> your own product parameters (size, color, stock status...), configured as an \"Item\" scope of Custom Dimensions, each with a report in the Products dimension switcher, a segment and a Custom Reports dimension.<\/li>\n<li><strong>Merchandising (Premium):<\/strong> products bought together (market basket analysis), most abandoned products, product profit and margin from your cost of goods.<\/li>\n<li><strong>Orders (Premium):<\/strong> refunds, refund rate by product and net revenue, discount depth by product, coupon and category, orders by basket size and value, revenue of foreign currency orders converted to your website currency.<\/li>\n<\/ul>\n\n<h3>Why the GA4 format<\/h3>\n\n<p>GA4 ecommerce is the most widely used ecommerce dataLayer format. Most shop platforms and their extensions already emit it (WooCommerce with GTM4WP or Google Analytics for WooCommerce, Shopify, Magento, PrestaShop, Elevar, Stape and many more). Reading it means your shop does not need any Matomo specific development. The legacy Universal Analytics Enhanced Ecommerce format and <code>gtag()<\/code> calls are read as well.<\/p>\n\n<p>Official GA4 references:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\/ecommerce?client_type=gtm\">Measure ecommerce<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\/reference\/events?client_type=gtm\">Recommended events reference<\/a>: every event and parameter Ecommerce Enhanced reads<\/li>\n<\/ul>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Does my shop need any development?<\/strong><\/p>\n\n<p>Usually not. WooCommerce (with GTM4WP or Google Analytics for WooCommerce), Shopify, Magento, PrestaShop, Elevar, Stape and most shop extensions already push GA4 ecommerce events to the dataLayer. Enable the plugin with one line in your tracking code, or one checkbox in Matomo Tag Manager, and those events are read as they are. The Documentation tab lists every push the plugin expects.<\/p>\n\n<p><strong>Do I need Matomo Tag Manager or Google Tag Manager?<\/strong><\/p>\n\n<p>Matomo Tag Manager is the recommended way: check \"Read the GA4 ecommerce dataLayer (Ecommerce Enhanced)\" in the \"Matomo Configuration\" variable of your container and \"Actively synchronise from the Google Tag Manager data layer\" in the container settings, and the settings are tested in preview mode and versioned without touching your shop. Without Tag Manager, <code>_paq.push(['EcommerceEnhanced::enable'])<\/code> in your Matomo tracking code works too. Google Tag Manager is not needed: the plugin reads the dataLayer your shop already fills.<\/p>\n\n<p><strong>How do I check that it works?<\/strong><\/p>\n\n<p>Open the Visitor log of your website after a test visit: each ecommerce step (product view, add to cart, checkout, purchase) is listed with its products, list, promotion, coupon, payment and shipping. The steps also appear in the Events report, under the \"Ecommerce\" category.<\/p>\n\n<p><strong>Nothing is recorded, my tracker is self-hosted or served from a CDN<\/strong><\/p>\n\n<p>The plugin adds its code to the <code>matomo.js<\/code> file served by your Matomo. Matomo updates this file automatically when it is writable, otherwise run <code>.\/console custom-matomo-js:update<\/code>. A copy of <code>matomo.js<\/code> hosted elsewhere (CDN, your own server, a WordPress plugin bundling the tracker) does not contain it: update that copy from your Matomo after activating the plugin and after each plugin update.<\/p>\n\n<p><strong>Why are the reports empty before the activation date?<\/strong><\/p>\n\n<p>The plugin records the details of each ecommerce step from its activation on: earlier visits never sent them. Your native Matomo ecommerce reports keep their full history.<\/p>\n\n<p><strong>I updated the plugin, why do past reports still show the old numbers?<\/strong><\/p>\n\n<p>Reports are built during archiving. To rebuild past periods with the latest version, invalidate and re-archive them, for every period type (the default of the command), for example:<\/p>\n\n<pre><code>.\/console core:invalidate-report-data --sites=1 --dates=2026-01-01,2026-12-31\n.\/console core:archive\n<\/code><\/pre>\n\n<p>Adjust <code>--sites<\/code> and <code>--dates<\/code> to your data.<\/p>\n\n<p><strong>Why is the revenue different from my shop back office?<\/strong><\/p>\n\n<p>GA4 defines <code>value<\/code> without tax and shipping, so the plugin records an order revenue of <code>value + tax + shipping<\/code>. If your shop already sends the grand total in <code>value<\/code>, check \"The GA4 value includes tax and shipping\" in Administration, Websites, Ecommerce Enhanced. Refunds and cancelled orders are not subtracted from the native revenue: refunds and net revenue are reported by Ecommerce Enhanced Premium.<\/p>\n\n<p><strong>Can an order be counted twice?<\/strong><\/p>\n\n<p>No. Reloading the confirmation page does not send the order again, and Matomo keeps a single order per order id.<\/p>\n\n<p><strong>Is it compatible with consent banners and cookieless tracking?<\/strong><\/p>\n\n<p>Yes. The plugin follows the cookie settings of your Matomo tracker: with <code>disableCookies<\/code>, or while <code>requireCookieConsent<\/code> waits for consent, nothing is written in the browser, and withdrawing consent removes what was stored at once. <code>user_data<\/code> (emails, phone numbers, addresses, hashed identifiers) is never read, a product field outside the GA4 ones is only sent when you created an item dimension for it, and coupon codes are hashed by default. See \"Browser storage and consent\" in the Documentation tab.<\/p>\n\n<p><strong>Do I need the Funnels plugin?<\/strong><\/p>\n\n<p>No. The shopping and checkout funnels are built in. When the Funnels plugin is activated, the plugin settings can also create its sales funnel and the GA4 Purchase journey and Checkout journey in one click.<\/p>\n\n<p><strong>What happens if I deactivate the plugin?<\/strong><\/p>\n\n<p>Carts and orders keep being sent as native Matomo ecommerce requests, so your native Ecommerce reports, goals and abandoned carts keep working. The data recorded by the plugin is kept, also after uninstalling, and is used again if you reinstall it.<\/p>\n\n<p><strong>What does Premium add, and do I lose data by upgrading later?<\/strong><\/p>\n\n<p>Ecommerce Enhanced Premium adds customer, retention, merchandising, refund and multi-currency reports, previewed in the free edition. It reads the data the free plugin already collects, so upgrading later shows your full history without any tracking change. More on <a href=\"https:\/\/openmost.com\/matomo\/extensions\/ecommerce-enhanced?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=ecommerceenhanced\">Ecommerce Enhanced Premium<\/a>.<\/p>\n\n<p><strong>Will it slow down my large Matomo database?<\/strong><\/p>\n\n<p>Installing the plugin adds six empty columns to the <code>log_conversion<\/code> table, instant on MySQL 8.0.12+ and MariaDB 10.3.2+. On older versions run <code>.\/console core:update<\/code> from the command line. Reports are built during archiving, like the native ones.<\/p>\n\n<p><strong>Which versions of Matomo are supported?<\/strong><\/p>\n\n<p>Version 5.x of the plugin supports Matomo 5 (PHP 7.2.5 or later). Use the 6.x versions of the plugin for Matomo 6 (PHP 8.1 or later).<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Installation<\/h3>\n\n<p>Install and activate the plugin, then enable Ecommerce for your website (Administration, Websites, Manage). Then turn on the reading of the dataLayer, with one of the two methods below.<\/p>\n\n<h4>Recommended: Matomo Tag Manager<\/h4>\n\n<ol>\n<li>In your container, edit the \"Matomo Configuration\" variable: check \"Read the GA4 ecommerce dataLayer (Ecommerce Enhanced)\" and \"Register As Default Tracker\", so ecommerce events reach the Matomo tracker of the container.<\/li>\n<li>Edit the container itself (Tag Manager, Manage Containers): check \"Actively synchronise from the Google Tag Manager data layer\" and leave \"Ignore Google Tag Manager data layer\" unchecked. Shop extensions push their GA4 events to <code>dataLayer<\/code>: the container copies every push into its own data layer, where Ecommerce Enhanced reads it. Without this setting, the <code>dataLayer<\/code> pushes of your shop are not seen.<\/li>\n<li>Publish a new version of the container.<\/li>\n<\/ol>\n\n<p>At Openmost we recommend this method: the settings live in your container, so they are turned on, tested in preview mode and versioned without touching the code of your shop.<\/p>\n\n<p>Ecommerce events pushed directly to the Matomo Tag Manager data layer, <code>_mtm.push({event: 'purchase', ecommerce: {...}})<\/code>, are read as well. Ecommerce Enhanced reads the container data layer only, so a push synchronised from the dataLayer is never counted twice.<\/p>\n\n<h4>Other method (not recommended): the classic tracking code<\/h4>\n\n<p>Without Matomo Tag Manager, add one line to your Matomo tracking code, before <code>trackPageView<\/code>:<\/p>\n\n<pre><code>var _paq = window._paq = window._paq || [];\n_paq.push(['EcommerceEnhanced::enable']);\n_paq.push(['trackPageView']);\n\/\/ ... the rest of your tracking code\n<\/code><\/pre>\n\n<p>The tracker replays the ecommerce events already in the dataLayer, then reads every new push. If your dataLayer has another name:<\/p>\n\n<pre><code>_paq.push(['EcommerceEnhanced::enable', {dataLayerName: 'myDataLayer'}]);\n<\/code><\/pre>\n\n<p>It works the same way, but every change then means editing the tracking code of your shop.<\/p>\n\n<h4>Without a dataLayer, or choosing each event yourself<\/h4>\n\n<p>With either method above, Ecommerce Enhanced reads every ecommerce push of the dataLayer: this is the recommended setup. To decide yourself which events are sent and when, for example from your own Matomo Tag Manager tags, do not turn on the reading of the dataLayer and send each event from JavaScript instead, with the same GA4 fields. The mapping, reports and settings stay the same:<\/p>\n\n<pre><code>_paq.push(['EcommerceEnhanced::track', 'add_to_cart', {\n  currency: 'EUR',\n  value: 30.00,\n  items: [{item_id: 'SKU_123', item_name: 'Organic tee', item_variant: 'Red', price: 30.00, quantity: 1}]\n}]);\n<\/code><\/pre>\n\n<p>An object shaped like a dataLayer push (GA4, Universal Analytics or <code>gtag()<\/code> arguments) can also be passed as is:<\/p>\n\n<pre><code>_paq.push(['EcommerceEnhanced::push', {event: 'purchase', ecommerce: { \/* GA4 purchase fields *\/ }}]);\n<\/code><\/pre>\n\n<p><code>_paq.push(['EcommerceEnhanced::setCurrency', 'EUR'])<\/code> sets the currency used when an event has none, like <code>gtag('set', {currency: 'EUR'})<\/code>.<\/p>\n\n<h3>Expected dataLayer pushes<\/h3>\n\n<p>Clear the previous ecommerce object before each push, as GA4 recommends: <code>dataLayer.push({ecommerce: null});<\/code>. Ecommerce Enhanced reads each push on its own, the reset is harmless.<\/p>\n\n<h4>Item fields<\/h4>\n\n<p>Every <code>items<\/code> entry can carry these fields. <code>item_id<\/code> or <code>item_name<\/code> is required.<\/p>\n\n\n\n\n  Field\n  Read as\n\n\n\n\n  <code>item_id<\/code>\n  product SKU (also <code>id<\/code>, <code>sku<\/code>, <code>variant_id<\/code>)\n\n\n  <code>item_name<\/code>\n  product name (also <code>name<\/code>, <code>title<\/code>)\n\n\n  <code>item_brand<\/code>\n  brand\n\n\n  <code>item_category<\/code> to <code>item_category5<\/code>\n  categories (a single <code>\"A\/B\/C\"<\/code> category is split, as in Universal Analytics)\n\n\n  <code>item_variant<\/code>\n  variant, kept apart even when two variants share a SKU\n\n\n  <code>price<\/code>\n  unit price, already discounted\n\n\n  <code>quantity<\/code>\n  quantity, 1 when missing\n\n\n  <code>discount<\/code>\n  unit discount\n\n\n  <code>coupon<\/code>\n  item coupon\n\n\n  <code>item_list_id<\/code>, <code>item_list_name<\/code>, <code>index<\/code>\n  list the item was shown or selected in, and its position\n\n\n  <code>promotion_id<\/code>, <code>promotion_name<\/code>, <code>creative_name<\/code>, <code>creative_slot<\/code>\n  promotion the item came from\n\n\n  <code>affiliation<\/code>, <code>location_id<\/code>, <code>item_group_id<\/code>\n  supplier or store, physical location, parent product\n\n\n  any other field\n  item dimension (Premium), recorded when an item dimension with this dataLayer key exists, see <a href=\"#item-dimensions-premium\">Item dimensions<\/a>\n\n\n\n\n<p>Item list and promotion fields set on the event apply to the items that lack them. When an item is selected in a list or a promotion (<code>select_item<\/code>, <code>select_promotion<\/code>), it keeps that list or promotion when it is later added to cart and bought.<\/p>\n\n<h4>view_item_list<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'view_item_list',\n  ecommerce: {\n    item_list_id: 'related_products',\n    item_list_name: 'Related products',\n    items: [\n      {item_id: 'SKU_123', item_name: 'Organic tee', item_brand: 'Lumen', item_category: 'Apparel', price: 30.00, index: 1}\n    ]\n  }\n});\n<\/code><\/pre>\n\n<p>Read: <code>item_list_id<\/code>, <code>item_list_name<\/code>, items. The first 30 items of a list are recorded.<\/p>\n\n<h4>select_item<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'select_item',\n  ecommerce: {\n    item_list_id: 'related_products',\n    item_list_name: 'Related products',\n    items: [{item_id: 'SKU_123', item_name: 'Organic tee', index: 1}]\n  }\n});\n<\/code><\/pre>\n\n<p>Read: <code>item_list_id<\/code>, <code>item_list_name<\/code>, items. The list is remembered for the item.<\/p>\n\n<h4>view_item<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'view_item',\n  ecommerce: {\n    currency: 'EUR',\n    value: 30.00,\n    items: [{item_id: 'SKU_123', item_name: 'Organic tee', item_brand: 'Lumen', item_category: 'Apparel', item_variant: 'Red', price: 30.00}]\n  }\n});\n<\/code><\/pre>\n\n<p>Read: <code>currency<\/code>, <code>value<\/code>, items. When it is pushed before the first page view, the native Matomo product view is also set.<\/p>\n\n<h4>add_to_wishlist<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'add_to_wishlist',\n  ecommerce: {currency: 'EUR', value: 30.00, items: [{item_id: 'SKU_123', item_name: 'Organic tee', price: 30.00}]}\n});\n<\/code><\/pre>\n\n<p>Read: <code>currency<\/code>, <code>value<\/code>, items.<\/p>\n\n<h4>add_to_cart and remove_from_cart<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'add_to_cart',\n  ecommerce: {\n    currency: 'EUR',\n    value: 60.00,\n    items: [{item_id: 'SKU_123', item_name: 'Organic tee', item_variant: 'Red', price: 30.00, quantity: 2}]\n  }\n});\n<\/code><\/pre>\n\n<p>Read: <code>currency<\/code>, <code>value<\/code>, items. GA4 only sends the items added or removed, while a native Matomo cart update needs the whole cart: the plugin keeps a copy of the cart in the browser, applies each add and removal to it and sends the whole cart, so abandoned carts are reported natively. <code>remove_from_cart<\/code> has the same shape. See <a href=\"#browser-storage-and-consent\">Browser storage and consent<\/a>.<\/p>\n\n<h4>view_cart<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'view_cart',\n  ecommerce: {currency: 'EUR', value: 60.00, items: [\/* every item of the cart *\/]}\n});\n<\/code><\/pre>\n\n<p>Read: <code>currency<\/code>, <code>value<\/code>, items. The items list the whole cart: the cart kept by the plugin is corrected if it differs.<\/p>\n\n<h4>begin_checkout<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'begin_checkout',\n  ecommerce: {currency: 'EUR', value: 60.00, coupon: 'SUMMER10', items: [\/* every item of the cart *\/]}\n});\n<\/code><\/pre>\n\n<p>Read: <code>currency<\/code>, <code>value<\/code>, <code>coupon<\/code>, items. Checkout step 1.<\/p>\n\n<h4>add_shipping_info<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'add_shipping_info',\n  ecommerce: {currency: 'EUR', value: 60.00, shipping_tier: 'Express', items: [\/* cart items *\/]}\n});\n<\/code><\/pre>\n\n<p>Read: <code>currency<\/code>, <code>value<\/code>, <code>coupon<\/code>, <code>shipping_tier<\/code>, items. Checkout step 2. The shipping tier is copied to the order when the purchase event lacks it.<\/p>\n\n<h4>add_payment_info<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'add_payment_info',\n  ecommerce: {currency: 'EUR', value: 60.00, payment_type: 'Credit card', items: [\/* cart items *\/]}\n});\n<\/code><\/pre>\n\n<p>Read: <code>currency<\/code>, <code>value<\/code>, <code>coupon<\/code>, <code>payment_type<\/code>, items. Checkout step 3. The payment type is copied to the order when the purchase event lacks it.<\/p>\n\n<h4>purchase<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'purchase',\n  ecommerce: {\n    transaction_id: 'T_12345',\n    currency: 'EUR',\n    value: 60.00,\n    tax: 12.00,\n    shipping: 4.90,\n    coupon: 'SUMMER10',\n    affiliation: 'Online store',\n    payment_type: 'Credit card',\n    shipping_tier: 'Express',\n    customer_type: 'new',\n    items: [\n      {item_id: 'SKU_123', item_name: 'Organic tee', item_brand: 'Lumen', item_variant: 'Red', price: 30.00, quantity: 1},\n      {item_id: 'SKU_123', item_name: 'Organic tee', item_brand: 'Lumen', item_variant: 'Blue', price: 30.00, quantity: 1}\n    ]\n  }\n});\n<\/code><\/pre>\n\n<p>Read: <code>transaction_id<\/code> (required), <code>currency<\/code>, <code>value<\/code>, <code>tax<\/code>, <code>shipping<\/code>, <code>discount<\/code>, <code>coupon<\/code> (several codes separated by commas), <code>affiliation<\/code>, <code>payment_type<\/code>, <code>shipping_tier<\/code>, <code>customer_type<\/code> (<code>new<\/code> or <code>returning<\/code>, the Google Ads <code>new_customer<\/code> flag is read too), <code>customer_lifetime_value<\/code>, items.<\/p>\n\n<p>The native Matomo order is recorded with a revenue of <code>value + tax + shipping<\/code>, as GA4 defines <code>value<\/code> without tax and shipping. If your shop sends the grand total in <code>value<\/code>, check \"The GA4 value includes tax and shipping\" in the website settings. A purchase is recorded once: reloading the confirmation page does not record it again.<\/p>\n\n<h4>refund<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'refund',\n  ecommerce: {\n    transaction_id: 'T_12345',\n    currency: 'EUR',\n    value: 30.00,\n    items: [{item_id: 'SKU_123', item_variant: 'Red', price: 30.00, quantity: 1}]\n  }\n});\n<\/code><\/pre>\n\n<p>Read: <code>transaction_id<\/code>, <code>currency<\/code>, <code>value<\/code>, <code>tax<\/code>, <code>shipping<\/code>, items (partial refund). The refund is matched to its order, even when Matomo anonymises order ids.<\/p>\n\n<h4>view_promotion and select_promotion<\/h4>\n\n<pre><code>dataLayer.push({\n  event: 'view_promotion',\n  ecommerce: {\n    promotion_id: 'summer_sale',\n    promotion_name: 'Summer sale',\n    creative_name: 'summer_banner',\n    creative_slot: 'home_hero',\n    items: [{item_id: 'SKU_123', item_name: 'Organic tee'}]\n  }\n});\n<\/code><\/pre>\n\n<p>Read: <code>promotion_id<\/code>, <code>promotion_name<\/code>, <code>creative_name<\/code>, <code>creative_slot<\/code>, items. <code>select_promotion<\/code> has the same shape, and the promotion is remembered for its items.<\/p>\n\n<h4>Search results<\/h4>\n\n<p>A page of search results is an item list: send it as <code>view_item_list<\/code> with a list of its own, for example <code>item_list_id: 'search_results'<\/code> and <code>item_list_name: 'Search results'<\/code>. It then appears in the item list reports, and the products clicked or bought from it are attributed to it. The terms searched are already in the Site Search reports of Matomo.<\/p>\n\n<h4>Other formats<\/h4>\n\n<ul>\n<li><strong>gtag:<\/strong> <code>gtag('event', 'purchase', {...})<\/code> calls are read like the GA4 pushes above, <code>gtag('set', {currency: 'EUR'})<\/code> sets the default currency.<\/li>\n<li><strong>Universal Analytics Enhanced Ecommerce:<\/strong> <code>impressions<\/code>, <code>click<\/code>, <code>detail<\/code>, <code>add<\/code>, <code>remove<\/code>, <code>checkout<\/code> (step 1 begin checkout, 2 shipping, 3 payment), <code>checkout_option<\/code>, <code>purchase<\/code>, <code>refund<\/code>, <code>promoView<\/code> and <code>promoClick<\/code> are converted to their GA4 events. UA <code>revenue<\/code> is the grand total and is converted to the GA4 <code>value<\/code>.<\/li>\n<li>Event names prefixed with <code>dl_<\/code> (Elevar) or suffixed with <code>_stape<\/code> (Stape) are recognised.<\/li>\n<li>Event names otherwise follow GA4 exactly, letter case aside: <code>add_to_cart<\/code> is read, <code>addToCart<\/code> or <code>AddToCart<\/code> is ignored.<\/li>\n<\/ul>\n\n<h3>What is never recorded<\/h3>\n\n<p><code>user_data<\/code> and the other event level fields outside the GA4 ecommerce parameters are never read. Coupon codes are stored as a hash unless \"Keep coupon codes readable\" is turned on in the website settings. Other product fields are only sent by the tracker, and recorded, when you create an item dimension for them: choosing what they hold is the responsibility of the site owner and their DPO.<\/p>\n\n<h3>Browser storage and consent<\/h3>\n\n<p>To send whole carts and to never record an order twice, the tracker keeps a little state in the browser:<\/p>\n\n<ul>\n<li><code>mtm_ee_cart_&lt;idSite&gt;<\/code> in <code>localStorage<\/code>: the copy of the cart. It is shared by every tab and kept between visits, like the shop cart, and expires after 48 hours without change.<\/li>\n<li><code>mtm_ee_checkout_&lt;idSite&gt;<\/code> in <code>sessionStorage<\/code>: the shipping and payment choices of the current checkout.<\/li>\n<li><code>mtm_ee_sel_&lt;idSite&gt;<\/code> in <code>sessionStorage<\/code>: the list and promotion of the products selected in the current tab, to credit them when the product is added to cart or bought.<\/li>\n<li><code>mtm_ee_tx<\/code> in <code>localStorage<\/code>: a hash of the last 50 order ids already sent.<\/li>\n<\/ul>\n\n<p>This storage follows the cookie rules of your Matomo tracker. When cookies are disabled (<code>disableCookies<\/code>) or wait for consent (<code>requireCookieConsent<\/code> before <code>rememberCookieConsentGiven<\/code>), nothing is written and the state only lives in the current page. When consent is withdrawn (<code>forgetCookieConsentGiven<\/code>, <code>forgetConsentGiven<\/code> or <code>optUserOut<\/code>), every key above is removed at once, and so is the copy kept in the page. Browser storage is subject to the same consent rules as cookies: if your site relies on a consent exemption for audience measurement, check with your DPO that it covers these keys.<\/p>\n\n<p>Without browser storage, an add to cart on a new page only sends the item just added. Push <code>view_cart<\/code> and <code>begin_checkout<\/code> with every item of the cart, as GA4 expects: the plugin then corrects the cart it sends.<\/p>\n\n<h3>Website settings<\/h3>\n\n<p>Administration, Websites, Ecommerce Enhanced (website administrators):<\/p>\n\n<ul>\n<li><strong>The GA4 value includes tax and shipping:<\/strong> for shops that send the grand total in <code>value<\/code>.<\/li>\n<li><strong>Ecommerce steps:<\/strong> a table with one line per step, its event category (<code>Ecommerce<\/code>), event action (<code>Add to cart<\/code>) and event name (the GA4 event name, <code>add_to_cart<\/code>), and two switches:\n\n<ul>\n<li><strong>Shown in the Events report:<\/strong> the step is also a Matomo event. Switched off, it is still recorded in the Ecommerce Enhanced reports.<\/li>\n<li><strong>Non-interaction:<\/strong> the step keeps the visit alive but does not count as an action, so it does not lower the bounce rate. Viewing steps (<code>view_item_list<\/code>, <code>view_item<\/code>, <code>view_cart<\/code>, <code>view_promotion<\/code>) are switched on by default, as in GA4.<\/li>\n<\/ul><\/li>\n<li><strong>Keep coupon codes readable (do not hash them):<\/strong> off by default, each code is hashed before it is stored, so single use and gift codes are never readable. Turn it on for shared promotional codes (<code>SUMMER10<\/code>) you want to read in the reports.<\/li>\n<li><strong>Unit cost item parameter (Premium):<\/strong> the item dimension that holds the unit cost of goods, for the profit reports.<\/li>\n<\/ul>\n\n<p>The same page creates the funnels of the Funnels plugin, when it is activated: the sales funnel of the ecommerce orders, and the Purchase journey and Checkout journey of GA4, named in the language of the user who creates them. A funnel that already exists is kept, recognised by its steps. A sales funnel configured by hand is never replaced: when it differs from the complete template, an \"Update the sales funnel configuration\" button applies the template. The steps must be shown in the Events report for Funnels to see them.<\/p>\n\n<h3>Item dimensions (Premium)<\/h3>\n\n<p>Custom parameters of your products, for example a size, a color or a stock status, are configured with Ecommerce Enhanced Premium in Administration, Websites, Custom Dimensions, in the \"Item\" scope added next to the visit and action scopes. Each item dimension has:<\/p>\n\n<ul>\n<li>a <strong>dataLayer key<\/strong>, set when it is created: the key of the parameter in the items of your dataLayer, for example <code>color<\/code>;<\/li>\n<li>a <strong>name<\/strong>, the label displayed in the reports, for example \"Product Color\", which can be changed at any time without touching the tracking.<\/li>\n<\/ul>\n\n<pre><code>dataLayer.push({\n  event: 'add_to_cart',\n  ecommerce: {\n    items: [{\n      item_id: 'SKU_123',\n      item_name: 'Organic tee',\n      price: 30,\n      quantity: 1,\n      color: 'Red'\n    }]\n  }\n});\n<\/code><\/pre>\n\n<p>Add the parameter the same way to the items of every ecommerce event (<code>view_item<\/code>, <code>begin_checkout<\/code>, <code>purchase<\/code>...). Each item dimension then has a report in the dimension switcher of the Products report, a segment (<code>eeItemDimension1<\/code>...) and a Custom Reports dimension.<\/p>\n\n<p>10 item dimensions are available per website. More can be added from the command line, up to 30, as for the visit and action scopes:<\/p>\n\n<pre><code>.\/console customdimensions:add-custom-dimension --scope=item --count=5\n<\/code><\/pre>\n\n<p>The tracker only sends the item keys of the active item dimensions of the website: their list is written into <code>matomo.js<\/code>, which Matomo rewrites as soon as an item dimension is created, renamed, activated or deactivated. If your website loads a copy of the tracker (CDN, self-hosted file), refresh that copy after changing your item dimensions, as after any change of the Matomo tracker.<\/p>\n\n<p>Renaming an item dimension keeps the values recorded before, deactivating it stops recording new values. Only the item dimensions you create are stored, whatever their key: what they collect is the choice of the site owner and their DPO. Without Premium, the item dimensions already created are kept and still recorded, and they are listed marked \"Premium\" in the segment editor and in Custom Reports.<\/p>\n\n<h3>Reports<\/h3>\n\n<p>In the Ecommerce menu, in the order a shop owner reads them (Premium in italics):<\/p>\n\n<ul>\n<li><strong>Overview:<\/strong> buyers and revenue (purchasers, first time purchasers, ARPU, ARPPU, average order value, items per order, conversion rate, cart abandonment rate) as sparklines and over time; <em>refunds and net revenue<\/em>; <em>daily, weekly and monthly active users and buyers<\/em>.<\/li>\n<li><strong>Products:<\/strong> the native report, with Product Categories, Product Brands, Product Variants and <em>one report per item dimension<\/em> added to its dimension switcher, after Product Name, SKU and Category.<\/li>\n<li><strong>Merchandising:<\/strong> product performance with views, wishlist and cart adds, purchases, item revenue and rates; item lists and promotions; <em>products bought together<\/em>; <em>profit and margin by product, category and brand<\/em>.<\/li>\n<li><strong>Sales:<\/strong> sales by source \/ medium, next to the native sales by channel, campaign, page and location; <em>sales by first user channel and source \/ medium<\/em>.<\/li>\n<li><strong>Shopping behavior:<\/strong> the shopping and checkout funnels with step and abandonment rates; <em>the same journey by device type and by channel<\/em>; <em>abandoned carts by channel and source \/ medium, most abandoned products<\/em>.<\/li>\n<li><strong>Order details:<\/strong> transactions (every order with its revenue split and GA4 details); <em>orders by basket size and by order value<\/em>; payment types and shipping tiers (pies); coupons and <em>discount depth by coupon, product and category<\/em>; <em>refunds over time and refunded products<\/em>; affiliations and order currencies.<\/li>\n<li><strong>Customers:<\/strong> <em>repeat purchases<\/em>, with the <em>retention cohorts<\/em> by day, week or month right below; new and returning customers; <em>time to first purchase<\/em>; <em>lifetime value by channel<\/em>; <em>RFM segments<\/em>.<\/li>\n<\/ul>\n\n<p>Premium reports appear as locked cards, in the place of the report, until Ecommerce Enhanced Premium is activated.<\/p>\n\n<h3>Segments<\/h3>\n\n<p>Every stored field is a segment, also available in Custom Reports:<\/p>\n\n<ul>\n<li>order: <code>eeOrderCoupon<\/code>, <code>eeOrderPaymentType<\/code>, <code>eeOrderShippingTier<\/code>, <code>eeOrderCustomerType<\/code>, <code>eeOrderCurrency<\/code>, <code>eeOrderAffiliation<\/code>;<\/li>\n<li>cart and order lines: <code>eeItemBrand<\/code>, <code>eeItemVariant<\/code>, <code>eeItemListId<\/code>, <code>eeItemListName<\/code>, <code>eeItemCoupon<\/code>, <code>eeItemDiscount<\/code>, <code>eeItemAffiliation<\/code>, <code>eeItemLocationId<\/code>;<\/li>\n<li>shopping steps: <code>eeStep<\/code> (GA4 event name), <code>eeListId<\/code>, <code>eeListName<\/code>, <code>eeCheckoutStep<\/code>, <code>eeCheckoutOption<\/code>, <code>eePromotionId<\/code>, <code>eePromotionName<\/code>, <code>eePromotionCreativeName<\/code>, <code>eePromotionCreativeSlot<\/code>;<\/li>\n<li>item dimensions (Premium): <code>eeItemDimension1<\/code>, <code>eeItemDimension2<\/code>...<\/li>\n<\/ul>\n\n<p>For example <code>eeStep==add_to_cart;eeStep!=purchase<\/code> selects the visits that added to cart without buying.<\/p>\n\n<h3>Deactivating and uninstalling the plugin<\/h3>\n\n<p>The native Matomo ecommerce keeps working: carts and orders are always sent as native requests. While the plugin is deactivated its data is kept, but GDPR deletions and the deletion of old raw data no longer cover it.<\/p>\n\n<p>Uninstalling the plugin keeps its data as well: the <code>log_ee_order_item<\/code>, <code>log_ee_event<\/code> and <code>log_ee_event_item<\/code> tables and the <code>ee_*<\/code> columns of <code>log_conversion<\/code> stay in the database, and installing the plugin again reuses them. Matomo itself deletes the website settings of a plugin when it is uninstalled.<\/p>\n\n<h3>Removing the data<\/h3>\n\n<p>To delete the data recorded by the plugin, run this command <strong>before<\/strong> deactivating or uninstalling it:<\/p>\n\n<pre><code>.\/console ecommerceenhanced:remove-data\n.\/console ecommerceenhanced:remove-data --idsite=3,7\n<\/code><\/pre>\n\n<p>Without <code>--idsite<\/code> it deletes the data of every website. The native Matomo ecommerce data (orders, carts, products) is kept, and so are the reports already archived, which only hold totals. Then, to also drop the tables and columns, uninstall the plugin and run (with your table prefix):<\/p>\n\n<pre><code>DROP TABLE matomo_log_ee_order_item, matomo_log_ee_event, matomo_log_ee_event_item;\nALTER TABLE matomo_log_conversion DROP COLUMN ee_affiliation, DROP COLUMN ee_coupon, DROP COLUMN ee_currency,\n    DROP COLUMN ee_customer_type, DROP COLUMN ee_payment_type, DROP COLUMN ee_shipping_tier;\n<\/code><\/pre>\n\n<p>Database backups made before keep their copy of the data: delete or expire them as your retention policy requires.<\/p>\n\n<h3>Large databases<\/h3>\n\n<p>Installing the plugin adds six empty columns to the <code>log_conversion<\/code> table. On MySQL 8.0.12+ and MariaDB 10.3.2+ this is instant. On older versions the table is rebuilt: run <code>.\/console core:update<\/code> from the command line on large databases.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.0.4<\/h3>\n\n<ul>\n<li>The plugin is now listed in the Ecommerce category of the Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.0.3<\/h3>\n\n<ul>\n<li>Fix: the Ecommerce Enhanced option of the Tag Manager \"Matomo Configuration\" variable no longer replaces the variable, it extends it. Other plugins extending the same variable, such as Profile Gravatar and its \"Gravatar hash\" field, now keep their fields and their tracking code.<\/li>\n<\/ul>\n\n<h3>v5.0.2<\/h3>\n\n<ul>\n<li>Fix: the funnel update messages of the settings page are translated instead of showing a missing translation message.<\/li>\n<\/ul>\n\n<h3>v5.0.1<\/h3>\n\n<ul>\n<li>Product fields outside GA4 are only sent by the tracker, and kept in the browser, when the website has an active item dimension for them. Matomo writes the list into <code>matomo.js<\/code> and rewrites it when an item dimension changes.<\/li>\n<li>Withdrawing consent (<code>forgetCookieConsentGiven<\/code>, <code>forgetConsentGiven<\/code>, <code>optUserOut<\/code>) removes every key the plugin stored in the browser at once, including the products selected from a list or a promotion.<\/li>\n<li>New command <code>.\/console ecommerceenhanced:remove-data<\/code> to delete the data recorded by the plugin, for every website or some of them, before uninstalling it.<\/li>\n<\/ul>\n\n<h3>v5.0.0<\/h3>\n\n<ul>\n<li>First release, for Matomo 5.x (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>), PHP 7.2.5+.<\/li>\n<li>Reads the GA4 ecommerce dataLayer (GA4 objects, <code>gtag()<\/code> calls, Universal Analytics Enhanced Ecommerce), the Matomo Tag Manager data layer (<code>_mtm<\/code>, and the dataLayer when the container synchronises it) and <code>_paq.push(['EcommerceEnhanced::track', ...])<\/code> calls. Carts and orders keep being sent as native Matomo ecommerce requests.<\/li>\n<li>Records brands, variants, item lists, promotions, coupons, payment types, shipping tiers, customer types, checkout steps, wishlists and refunds in its own log tables, covered by segments, GDPR tools and the raw data purge.<\/li>\n<li>Item dimensions (size, color, stock status...) recorded from the items of the dataLayer, configured with Premium as an \"Item\" scope of the Custom Dimensions page: a dataLayer key set at creation and a free label, 10 per website, more with <code>.\/console customdimensions:add-custom-dimension --scope=item<\/code>. Without Premium they are listed marked \"Premium\" in the segment editor and Custom Reports.<\/li>\n<li>Reports: buyers and revenue, shopping and checkout funnels, product performance, Product Categories, Product Brands and Product Variants in the dimension switcher of the native Products report, item lists, promotions, transactions, coupons, payment types, shipping tiers, customer types, affiliations, currencies, sales by source \/ medium. 23 segments.<\/li>\n<li>Website settings on their own page, Administration, Websites, Ecommerce Enhanced: the ecommerce steps as a table with switches (shown in the Events report, non-interaction), readable or hashed coupon codes, and a one-click creation of the sales funnel and the GA4 Purchase journey and Checkout journey when the Funnels plugin is activated (an existing sales funnel is only updated on request).<\/li>\n<li>Visitor log: each ecommerce step shows its products, list, promotion, coupon, payment, shipping, customer type and order rank.<\/li>\n<li>Source \/ medium reports point to the free Marketing Campaigns Reporting plugin when it is not activated.<\/li>\n<li>Whole carts from GA4 adds and removals: the tracker keeps a copy of the cart in <code>localStorage<\/code>, shared by every tab and expiring after 48 hours without change, and <code>view_cart<\/code> \/ <code>begin_checkout<\/code> correct it. Browser storage follows the Matomo cookie consent and is cleared once consent is withdrawn.<\/li>\n<li>Oversized payloads: the tracker trims the items above 120 KB and reports how many were dropped, the server caps lists at 30 entries.<\/li>\n<li>Personal data: <code>user_data<\/code> is never read, coupon codes are hashed unless the website stores them as sent, item dimensions only record what the site owner created.<\/li>\n<li>Uninstalling keeps the data.<\/li>\n<li>Translated into 12 languages.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/EcommerceEnhanced\/download\/5.0.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/EcommerceEnhanced\/changelog"},"consumer":{"license":null}},{"name":"EmailReportExtended","displayName":"Email Report Extended","owner":"Chardonneaur","description":"A plugin which extends the number of rows to display within the email report.","homepage":"https:\/\/github.com\/Chardonneaur\/EmailReportExtended\/","createdDateTime":"2022-11-27 17:18:02","donate":{},"support":[{"name":"Email","key":"email","value":"contact@ronan-chardonneau.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/EmailReportExtended\/","type":"url"}],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Matomo","email":"contact@ronan-chardonneau.com","homepage":"https:\/\/github.com\/Chardonneaur\/EmailReportExtended\/"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/EmailReportExtended","lastUpdated":"2024-01-10 11:08:02","latestVersion":"5.0.0","numDownloads":9670,"screenshots":["https:\/\/plugins.matomo.org\/"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"14","numContributors":"1","lastCommitDate":"2024-01-10 11:06:51"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2022-11-27 17:18:02","requires":{"matomo":">=4.12.3-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2061,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/EmailReportExtended\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/EmailReportExtended\/commits\/1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EmailReportExtended\/download\/0.1.0"},{"name":"5.0.0","release":"2024-01-10 11:08:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7609,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/EmailReportExtended\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/EmailReportExtended\/commits\/5.0","readmeHtml":{"description":"\n\n<p>This community plugin allows you to change the default row number displayed on the Email report. By default it is set on 23 within the config file. The issue is that not all super user can have a direct access to the server. So this plugin is solving this issue by giving you a back end where to make this configuration.\nThis plugin has been jointly developed with Ronan Chardonneau and Lukas Winkler.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/EmailReportExtended\/download\/5.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/EmailReportExtended\/changelog"},"consumer":{"license":null}},{"name":"Endpoint","displayName":"Endpoint","owner":"Chardonneaur","description":"It allows you to see easily the Matomo endpoint for the HTTP tracking API.","homepage":"https:\/\/github.com\/Chardonneaur\/endpoint","createdDateTime":"2022-08-23 21:06:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/endpoint\/issues","type":"url"}],"isTheme":false,"keywords":["endpoint","http tracking api","measurement protocol"],"basePrice":0,"authors":[{"name":"Ronan Chardonneau","email":"contact@ronan-chardonneau.com","homepage":"https:\/\/github.com\/Chardonneaur"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/endpoint","lastUpdated":"2022-08-29 06:30:03","latestVersion":"0.1.6","numDownloads":5427,"screenshots":["https:\/\/plugins.matomo.org\/Endpoint\/images\/0.1.6\/Endpoint_plugin_backend.png","https:\/\/plugins.matomo.org\/Endpoint\/images\/0.1.6\/Where_to_find_the_Endpoint_plugin.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"28","numContributors":"1","lastCommitDate":"2022-08-29 06:29:13"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2022-08-23 21:06:03","requires":{"matomo":">=4.12.0-b2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Endpoint\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/endpoint\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Endpoint\/download\/0.1.0"},{"name":"0.1.2","release":"2022-08-24 13:22:03","requires":{"matomo":">=4.12.0-b2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Endpoint\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/endpoint\/commits\/0.1.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Endpoint\/download\/0.1.2"},{"name":"0.1.3","release":"2022-08-24 13:40:03","requires":{"matomo":">=4.12.0-b2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Endpoint\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/endpoint\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Endpoint\/download\/0.1.3"},{"name":"0.1.4","release":"2022-08-24 13:46:02","requires":{"matomo":">=4.12.0-b2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Endpoint\/0.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/endpoint\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Endpoint\/download\/0.1.4"},{"name":"0.1.5","release":"2022-08-24 19:40:02","requires":{"matomo":">=4.12.0-b2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Endpoint\/0.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/endpoint\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Endpoint\/download\/0.1.5"},{"name":"0.1.6","release":"2022-08-29 06:30:03","requires":{"matomo":">=4.11.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5400,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Endpoint\/0.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/endpoint\/commits\/0.1.6","readmeHtml":{"description":"\n\n<p>Get an easy access to your Matomo endpoint and start collecting data.<\/p>\n\n<p>When one need to introduce the Matomo HTTP tracking API, it's always a mess to find the Matomo endpoint. This plugin allows you to access it in one click and give you quickly an overview of how the data are collected within Matomo.<\/p>\n\n<p>Only the super user can access it.<\/p>\n\n<p>This plugin has been developped by a non developer so far from being perfect.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Which problem does this plugin solve?<\/strong><\/p>\n\n<p>When you need to introduce the concept of the Matomo HTTP Tracking API, you need to find your Matomo endpoint (the url of your tracker). There are several ways to do so, but I found them too long (copying\/pasting the image tracking code and then stripping out unecessary caracters), so that's why I created this plugin.<\/p>\n\n<p><strong>Are there any evolutions planned?<\/strong><\/p>\n\n<p>The general idea is to make the concept of the Matomo HTTP Tracking API easier to understand, so I will probably add some data collection method in order for users to easily identify how to push data to Matomo and see how the data looks like within the Matomo UI.<\/p>\n\n<p><strong>How is the plugin maintained?<\/strong><\/p>\n\n<p>As I am living my profesionnal career thanks to the Matomo software, I am maintaining this plugin all the time, though as I don't have a developer background I am not 100% sure I can fix bugs very fast.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/Endpoint\/download\/0.1.6"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Endpoint\/changelog"},"consumer":{"license":null}},{"name":"EnhancedAttribution","displayName":"Enhanced Attribution","owner":"carnaby-solutions","description":"Enhanced attribution tracking with goal URL analysis.","homepage":"https:\/\/www.carnaby.se\/matomo-enhanced-attribution\/","createdDateTime":"2025-06-24 15:14:03","donate":{},"support":[{"name":"Email","key":"email","value":"support@carnaby.se","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/carnaby-solutions\/matomo-enhanced-attribution\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/carnaby-solutions\/matomo-enhanced-attribution","type":"url"}],"isTheme":false,"keywords":["Marketing","tracking","conversion","analytics","goal","url","attribution","analysis"],"basePrice":0,"authors":[{"name":"Carnaby Solutions AB","email":"christian@carnaby.se","homepage":"https:\/\/www.carnaby.se\/"}],"repositoryUrl":"https:\/\/github.com\/carnaby-solutions\/matomo-enhanced-attribution","lastUpdated":"2025-07-10 21:28:02","latestVersion":"1.1.2","numDownloads":14863,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/insights.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2025-07-17 23:13:11"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"1.0.4","release":"2025-06-24 15:14:03","requires":{"matomo":">=4.0.0,<6.0.0","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/carnaby-solutions\/matomo-enhanced-attribution\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnhancedAttribution\/download\/1.0.4"},{"name":"1.0.5","release":"2025-06-24 15:28:03","requires":{"matomo":">=4.0.0,<6.0.0","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":600,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/carnaby-solutions\/matomo-enhanced-attribution\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnhancedAttribution\/download\/1.0.5"},{"name":"1.1.0","release":"2025-07-10 17:38:03","requires":{"matomo":">=5.0.0,<6.0.0","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/carnaby-solutions\/matomo-enhanced-attribution\/commits\/1.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnhancedAttribution\/download\/1.1.0"},{"name":"1.1.2","release":"2025-07-10 21:28:02","requires":{"matomo":">=5.0.0,<6.0.0","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14252,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/carnaby-solutions\/matomo-enhanced-attribution\/commits\/1.1.2","readmeHtml":{"description":"\n\n<p>Ever wondered what part of the site converts best? Or what combination of content and traffic source generates the most\nvaluable visitors?<\/p>\n\n<p>The Enhanced Attribution plugin for Matomo provides insights into goal conversions by combining goal URLs\nwith visitor (device type &amp; location) and traffic source data (source, medium, campaign).<\/p>\n\n<p>Fetch the data via Matomo's API for detailed analysis or view the web report for quick insights.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Enhanced Goal URL Analysis<\/strong>: Detailed tracking of goal conversion URLs with visitor data<\/li>\n<li><strong>Visitor Attribution<\/strong>: Indicator for return visits, source, medium &amp; channel<\/li>\n<li><strong>Geographic Data<\/strong>: Country, region, and city information for goal conversions<\/li>\n<li><strong>Technical Information<\/strong>: Operating system, browser, device type, and screen resolution data<\/li>\n<\/ul>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How is \"Goal url\" defined<\/strong><\/p>\n\n<p>The plugin use the traditional definion as used by other analytics suites: the URL of the page where a goal\nconversion occurs.<\/p>\n\n<p><strong>What data is used to determine the \"Goal url\"<\/strong><\/p>\n\n<p>The <code>url<\/code> field in the <code>log_conversion<\/code> table is used to determine the goal URL.<\/p>\n\n<p>The <a href=\"https:\/\/developer.matomo.org\/guides\/database-schema#conversions\">Matomo Database Schema<\/a> describe this as \"the URL that caused this conversion to be tracked\".<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>MySQL\/MariaDB database<\/li>\n<\/ul>\n\n<h3>Installation<\/h3>\n\n<p>Install via the <a href=\"https:\/\/plugins.matomo.org\/EnhancedAttribution\">Matomo Marketplace<\/a> or manually:<\/p>\n\n<ol>\n<li><p>Copy the plugin files to your Matomo installation:<\/p>\n\n<pre><code>\/path\/to\/matomo\/plugins\/EnhancedAttribution\/\n<\/code><\/pre><\/li>\n<li><p>Activate the plugin through the Matomo admin interface or via console:<\/p>\n\n<pre><code>.\/console plugin:activate EnhancedAttribution\n<\/code><\/pre><\/li>\n<\/ol>\n\n<h2>API Methods<\/h2>\n\n<h3>getGoalUrlsDetailed<\/h3>\n\n<p>Returns detailed goal URL data with visitor information and segment support.<\/p>\n\n<p><strong>Parameters:<\/strong>\n- <code>idSite<\/code> (int): Site ID\n- <code>period<\/code> (string): Period type ('day', 'week', 'month', 'year', 'range')\n- <code>date<\/code> (string): Date or date range\n- <code>segment<\/code> (string, optional): Matomo segment definition\n- <code>limit<\/code> (int, optional): Maximum number of rows to return (0 = no limit)<\/p>\n\n<p><strong>Example API call:<\/strong><\/p>\n\n<pre><code>?module=API&amp;method=EnhancedAttribution.getGoalUrlsDetailed&amp;idSite=1&amp;period=day&amp;date=2025-05-15&amp;format=json\n<\/code><\/pre>\n\n<p><strong>Example return data:<\/strong><\/p>\n\n<pre><code>[\n  {\n    \"conversion_url\": \"https:\/\/carnaby.se\/blog\/google-this-and-that\/\",\n    \"channel\": \"social\",\n    \"source\": \"facebook\",\n    \"campaign_medium\": \"\",\n    \"campaign_name\": \"\",\n    \"goal_id\": \"2\",\n    \"goal_name\": \"Newsletter Signup\",\n    \"server_time\": \"2025-05-15 09:15:42\",\n    \"date_s\": \"2025-05-15\",\n    \"time_s\": \"09:15:42\",\n    \"idvisit\": \"67890\",\n    \"idvisitor\": \"x9y8z7w6v5u4321\",\n    \"visitor_count_visits\": \"1\",\n    \"visitor_returning\": \"new\",\n    \"location_country\": \"us\",\n    \"location_city\": \"New York\",\n    \"config_os\": \"MAC\",\n    \"config_browser_name\": \"SF\",\n    \"config_device_type\": \"0\"\n  },\n  {\n    \"conversion_url\": \"https:\/\/carnaby.se\/article\/vector-databases\/\",\n    \"channel\": \"direct\",\n    \"source\": \"-\",\n    \"campaign_medium\": \"\",\n    \"campaign_name\": \"\",\n    \"goal_id\": \"3\",\n    \"goal_name\": \"Contact Form\",\n    \"server_time\": \"2025-05-15 16:45:12\",\n    \"date_s\": \"2025-05-15\",\n    \"time_s\": \"16:45:12\",\n    \"idvisit\": \"54321\",\n    \"idvisitor\": \"m1n2o3p4q5r6890\",\n    \"visitor_count_visits\": \"2\",\n    \"visitor_returning\": \"returning\",\n    \"location_country\": \"gb\",\n    \"location_city\": \"London\",\n    \"config_os\": \"IOS\",\n    \"config_browser_name\": \"MF\",\n    \"config_device_type\": \"1\"\n  }\n]\n<\/code><\/pre>\n\n<h2>Data Fields<\/h2>\n\n<p>The plugin enriches goal conversion data with the following fields:<\/p>\n\n<ul>\n<li><strong>Visitor Behavior<\/strong>: Visit count, returning visitor status, time since first visit<\/li>\n<li><strong>Geographic Data<\/strong>: Country, region, city<\/li>\n<li><strong>Technical Info<\/strong>: OS, browser, device type, screen resolution<\/li>\n<li><strong>Conversion Data<\/strong>: Goal URL, conversion timestamp, referrer information<\/li>\n<\/ul>\n\n<h2>Console Commands<\/h2>\n\n<h3>test:goalurls-performance<\/h3>\n\n<p>Performance testing command for goal URL queries.<\/p>\n\n<pre><code>.\/console enhancedattribution:test-goalurls-performance\n<\/code><\/pre>\n\n<h2>Development<\/h2>\n\n<h3>Code linting<\/h3>\n\n<p>Composer is setup to support <a href=\"https:\/\/github.com\/PHP-CS-Fixer\/PHP-CS-Fixer\">PHP-CS-Fixer<\/a>, a powerful and widely-used tool, to automatically format code and\nensure it adheres to modern coding standards like PSR-12.<\/p>\n\n<p><code>composer format<\/code> \u2013 This will automatically fix the coding style of your entire project.\n<code>composer check-style<\/code> \u2013 This will show you which files need formatting without actually modifying them, which is useful for continuous integration (CI) checks.<\/p>\n\n<h3>File Structure<\/h3>\n\n<ul>\n<li><code>EnhancedAttribution.php<\/code> - Main plugin class with event registration<\/li>\n<li><code>API.php<\/code> - API methods for data retrieval<\/li>\n<li><code>Commands\/TestGoalUrlsPerformance.php<\/code> - Performance testing command<\/li>\n<\/ul>\n\n<h3>Database Tables<\/h3>\n\n<p>The plugin primarily works with these Matomo tables:\n- <code>matomo_log_conversion<\/code> - Goal conversion data\n- <code>matomo_log_visit<\/code> - Visitor session data\n- <code>matomo_log_link_visit_action<\/code> - Page view actions<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>1.1.0 - 2025-07-10<\/h3>\n\n<ul>\n<li>Code cleanup, documentation added<\/li>\n<\/ul>\n\n<h3>1.1.2 - 2025-07-10<\/h3>\n\n<ul>\n<li>Renamed Class to conform with PSR-4 standards<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/EnhancedAttribution\/download\/1.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/EnhancedAttribution\/changelog"},"consumer":{"license":null}},{"name":"EnterpriseBundle","displayName":"Enterprise Bundle","owner":"InnoCraft","description":"Elevate your global brand\u2019s end-to-end marketing with intelligent analytics, including enterprise-grade compliance and elite support to drive impact at scale.","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2026-06-02 21:42:52","donate":{},"support":[],"isTheme":false,"keywords":["optimization","conversion","cro","sales","content","bundle","revenue","premium","support"],"basePrice":40800,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-06-02 21:42:52","latestVersion":"1.0.0","numDownloads":null,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/EnterpriseBundle.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":true,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/EnterpriseBundle","variations":[{"product_variation_id":130531,"price":"3400","prettyPrice":"3400EUR","currency":"EUR","period":"month","name":"Up to 50 users monthly","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130529&variation_id=130531&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130529&variation_id=130531","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-enterprisebundle\/?attribute_type=Up+to+50+users+monthly&add-to-cart=130529&variation_id=130531&aelia_cs_currency=EUR"},{"product_variation_id":130531,"price":"4080","prettyPrice":"USD4080","currency":"USD","period":"month","name":"Up to 50 users monthly","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130529&variation_id=130531&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130529&variation_id=130531","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-enterprisebundle\/?attribute_type=Up+to+50+users+monthly&add-to-cart=130529&variation_id=130531&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130530,"price":"34000","prettyPrice":"34000EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":4132,"prettyDiscount":"4132\u20ac","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130529&variation_id=130530&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130529&variation_id=130530","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-enterprisebundle\/?attribute_type=Up+to+50+users&add-to-cart=130529&variation_id=130530&aelia_cs_currency=EUR"},{"product_variation_id":130530,"price":"40800","prettyPrice":"USD40800","currency":"USD","period":"year","name":"Up to 50 users","discount":4964,"prettyDiscount":"$4964","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130529&variation_id=130530&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130529&variation_id=130530","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-enterprisebundle\/?attribute_type=Up+to+50+users&add-to-cart=130529&variation_id=130530&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-enterprisebundle\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":null,"ratingCount":0,"reviewCount":0}},"bundle":{"plugins":[{"name":"MediaAnalytics","displayName":"Media Analytics"},{"name":"AbTesting","displayName":"A\/B Testing"},{"name":"ActivityLog","displayName":"Activity Log"},{"name":"Funnels","displayName":"Funnels"},{"name":"WhiteLabel","displayName":"White Label"},{"name":"UsersFlow","displayName":"Users Flow"},{"name":"RollUpReporting","displayName":"Roll-Up Reporting"},{"name":"FormAnalytics","displayName":"Form Analytics"},{"name":"SearchEngineKeywordsPerformance","displayName":"Search Engine Keywords Performance"},{"name":"HeatmapSessionRecording","displayName":"Heatmap & Session Recording"},{"name":"WooCommerceAnalytics","displayName":"WooCommerce Analytics"},{"name":"LoginSaml","displayName":"Login SAML"},{"name":"CustomReports","displayName":"Custom Reports"},{"name":"MultiChannelConversionAttribution","displayName":"Multi Channel Conversion Attribution"},{"name":"Cohorts","displayName":"Cohorts"},{"name":"AdvertisingConversionExport","displayName":"Advertising Conversion Export"},{"name":"SEOWebVitals","displayName":"SEO Web Vitals"},{"name":"CrashAnalytics","displayName":"Crash Analytics"}]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-06-02 21:42:52","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":""},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>As organisations scale, data governance, access control, and system stability become critical. Enterprise teams must\ncoordinate across departments, meet regulatory requirements, and roll out changes with\nprecision, often under ISO, SOC 2, or internal compliance frameworks.<\/p>\n\n<p>The Matomo Enterprise Bundle is built to support this complexity with secure, centrally governed access that aligns with\norganisational policies for all sites and teams.<\/p>\n\n<p>\u00a0<\/p>\n\n<div style=\"text-align:left;\">\n  <h3>What\u2019s included in the Enterprise Bundle?<\/h3>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;margin:0 0 64px 0;\">\n    <table class=\"feature-table\" style=\"width:100%;border-collapse:collapse;font-family:Arial, sans-serif;\">\n        <tbody>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/saml.png\" alt=\"saml.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Login SAML Authentication\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Centralise access\n                                    control with SAML single sign-on that integrates with your existing identity provider.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/ldap.png\" alt=\"ldap.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    LDAP Authentication\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Allow users in LDAP to\n                                    log in to Matomo Analytics, and use LDAP information to personalise Matomo.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/ab-testing.png\" alt=\"ab-testing.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    A\/B Testing\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Drive higher\n                                    conversions and revenue by testing and selecting winning website or app variations.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/crash-analytics.png\" alt=\"crash-analytics.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Crash Analytics\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Detect crashes faster\n                                    with diagnostic insights to improve the user experience, and recover revenue.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/multi-channel.png\" alt=\"multi-channel.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Multi-channel attribution\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Understand how\n                                    marketing channels contribute to driving conversions and shift marketing efforts wisely.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/advertising-conversion.png\" alt=\"advertising-conversion.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Advertising Conversion Export\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Send attributed goal\n                                    conversions to Google Ads, Microsoft Advertising, and Yandex ad platforms.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/cohorts.png\" alt=\"cohorts.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Cohorts\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Measure user behaviour\n                                    over time to improve retention and increase customer lifetime value.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/roll-up-reporting.png\" alt=\"roll-up-reporting.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Roll-Up Reporting\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Analyse aggregated data\n                                    from multiple sites to track performance trends at an organisational level.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/white-label.png\" alt=\"white-label.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    White Label\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Provide stakeholders\n                                    with access to white labelled dashboards and reports and let your brand shine.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/activity-log.png\" alt=\"activity-log.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Activity Log\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">View detailed audit\n                                    logs of all activities for increased security, risk management, and diagnostics.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/heatmaps.png\" alt=\"heatmaps.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Heatmaps &amp; Session Recording\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Analyse real user\n                                    interactions to diagnose usability issues that traditional metrics cannot explain.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/funnels.png\" alt=\"funnels.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Funnels\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Explore the steps your\n                                    users take to complete a goal and optimise your website to boost conversion\n                                    rates.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/custom-reports.png\" alt=\"custom-reports.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Custom Reports\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Bring essential metrics\n                                    together by creating custom reports that align with your business goals.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/search-engine-keywords.png\" alt=\"search-engine-keywords.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Search Engine Keywords\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Uncover the keywords\n                                    used to find your site in search engines. The solution to 'Keyword not defined'.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/media-analytics.png\" alt=\"media-analytics.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Media Analytics\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Understand how\n                                    audiences consume your media with video and audio engagement metrics and insights.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/form-analytics.png\" alt=\"form-analytics.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Form Analytics\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Increase online form\n                                    conversions by analysing user behaviour and identifying key friction points.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/users-flow.png\" alt=\"users-flow.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Users Flow\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Identify the common\n                                    paths users take through your website and optimise routes that lead to conversions.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/woocommerce.png\" alt=\"woocommerce.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    WooCommerce\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">Drive revenue and\n                                    improve your sales funnel with insights from the WooCommerce Analytics integration.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/multi-channel.png\" alt=\"seo-web-vitals.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    SEO Web Vitals\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Monitor Core Web Vitals and uncover performance issues that impact search rankings, user experience, and conversions.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/support.png\" alt=\"support.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Support\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Build a long-term analytics strategy with dedicated guidance focused on governance, adoption, and measurable business outcomes.                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>            \n            <\/td>\n        <\/tr>\n        <\/tbody>\n    <\/table>\n<\/div>\n\n<div class=\"readme-analytics main-div-readme chat-bubble-border\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px 40px;\">\n  <div style=\"text-align:center;\">\n      <h3>The analytics engine for enterprise decision-making<\/h3>\n      <p style=\"text-align:center;\">When analytics spans multiple sites, teams, and markets, data consistency and decision confidence quickly break down. The Enterprise Bundle brings analytics into a single, trusted ecosystem, so\nall stakeholders work from the same trusted information \u2013 no silos, no contradictions.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"readme-support main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:75%;vertical-align:top;padding-right:20px;\">\n                  <h3>Enterprise Support Services<\/h3>\n                  <p>Build a long-term analytics strategy with dedicated guidance focused on governance, adoption, and measurable business outcomes.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Dedicated Customer Success Manager.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Strategic onboarding and cross-team adoption guidance designed to support organisation-wide analytics governance and collaboration.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Regular strategic check-ins to ensure Matomo continues evolving with your business needs.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Email-based technical support with a 12-hour response time (24\/5 coverage).<br \/><\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:25%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:45px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/support.png\" alt=\"support.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-saml main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:35%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:22px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/login-sso-saml.png\" alt=\"Login SAML\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:65%;vertical-align:top;\">\n                  <h3>Protect your data with controlled access<\/h3>\n                  <p>Disconnected identity systems make it difficult to control who can access sensitive analytics data. This increases security risk, audit effort, and operational overhead.<\/p>\n                  <p><strong>Login SAML<\/strong> delivers enterprise-grade single sign-on (SSO) authentication for strict security and governance requirements.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Ensure the right people see the right data.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Eliminate identity sprawl through central authentication.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Use your existing identity provider to manage access centrally.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Automate onboarding with just-in-time user provisioning and controlled access.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-ab-testing main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:75%;vertical-align:top;padding-right:20px;\">\n                  <h3>Make data-backed decisions on critical changes<\/h3>\n                  <p>Choosing the right layout, images, or message can feel like a guessing game. <strong>A\/B Testing<\/strong> turns proposed changes into controlled experiments before rollout.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Replace assumptions with evidence by identifying top-performing variations.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Make informed decisions based on reliable statistical results.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Reduce risk on high-impact changes by testing layouts and content before they affect\nrevenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Align experiments with business outcomes by defining success metrics tied to\nconversions, orders, or revenue.<br \/><\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:25%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:45px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/ab-testing.png\" alt=\"ab-testing.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-crash-analytics main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:45px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/crash-analytics.png\" alt=\"Crash Analytics\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>Maintain stability across critical user journeys<\/h3>\n                  <p>Users notice instability immediately, and even brief disruptions reduce confidence and increase abandonment.<\/p>\n                  <p><strong>Crash Analytics<\/strong> supports teams in diagnosing and resolving performance issues before they impact users and revenue.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Identify stability risks before they affect users.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Connect technical failures to changes in user behaviour.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">See where performance issues disrupt critical actions.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Resolve problems early to avoid lost revenue and trust.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-multi-channel-attribution main-div-readme chat-bubble-border\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px 40px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"right-div-readme\" style=\"vertical-align:top;\">\n                  <h3>Make every channel pull its weight<\/h3>\n                  <p>Not all channels contribute equally. You need data that tells you how much each interaction and channel adds to your bottom line, so you can guarantee the best return on your marketing spend.<\/p>\n                  <p><strong>Multi-channel Attribution <\/strong>turns separate touchpoints into a mapped customer journey, showing how search, social, email, direct visits, and referral channels work together over time. Compare different attribution models to pinpoint the value of each visitor interaction.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Stop undervaluing early-funnel channels.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Clearly identify which channels fuel conversions and revenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Adjust budgets based on impact, not assumptions.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-advertising-conversion-export main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:65%;vertical-align:top;padding-right:20px;\">\n                  <h3>Multiple ad campaigns, one easy workflow<\/h3>\n                  <p>Tracking the effectiveness of ad campaigns across Google, Microsoft, and Yandex is normally a complex endeavour.<\/p>\n                  <p><strong>Advertising Conversion Export<\/strong> makes it simple by tracking all required data through Matomo and exporting it to your advertising platforms automatically.<\/p>\n                  <p>No extra scripts or third-party pixels on your website.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Share accurate conversion data with ad platforms to improve targeting and ROI.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Skip Google tags and still send conversions where they need to go.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Support smarter bidding, better budget allocation, and invest campaigns that prove their\nvalue.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Integrate click and conversion data into your reporting tools to keep analysis\nunified.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:35%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:28px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/cohorts.png\" alt=\"cohorts.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-cohorts main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:35px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/property-investments-UK.png\" alt=\"property-investments-UK.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>From first click to long-term value<\/h3>\n                  <p><strong>Cohorts <\/strong>analysis reveals how groups of visitors behave after campaigns, feature releases, pricing changes, or onboarding improvements.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Test changes against different cohorts to learn what drives repeat engagement and\nincreases customer lifetime value.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Use these insights to strengthen retention, refine product strategy, and nurture high-value relationships over time.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:-64px 0 64px 0;padding:20px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;font-family:Nunito, sans-serif;\">\n              \u201cMatomo has improved the customer experience across a number of metrics, which has led to more inquiries and better business performance.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/property-investments-uk-white-background.jpg\" alt=\"Property Investments\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>Property Investments UK<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-roll-up-reporting main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Business performance in one view<\/h3>\n                  <p>To make decisions based on a complete picture, not isolated data, move from site-level metrics to an organisation-wide bird\u2019s eye view.<\/p>\n                  <p><strong>Roll-Up Reporting<\/strong> lets you aggregate data from multiple websites and apps into one consolidated report.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Reduce blind spots in executive reporting and align teams around shared performance\noutcomes.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Gain the insights you need by analysing and comparing the data of multiple digital\nproperties in a single dashboard.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:50%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:20px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/roll-up-reporting.png\" alt=\"roll-up-reporting.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-activity-log main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:40%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:45px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/activity-log.png\" alt=\"activity-log.png\" width=\"223\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:60%;vertical-align:top;\">\n                  <h3>Accountability across every change<\/h3>\n                  <p>As teams grow, so does the need for governance and accountability. The Enterprise Bundle includes tools that help you stay compliant across teams, markets, or agencies.<\/p>\n                  <p><strong>Activity Log<\/strong> provides full visibility into who changed what and when, so you can govern your analytics setup with clarity and control.<\/p>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-white-label main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Your platform, your brand<\/h3>\n                  <p>Consistency matters as much as control.<\/p>\n                  <p><strong>White Label<\/strong> Matomo and create a cohesive experience that supports trust and recognition.<\/p>\n                  <p>Present analytics under your brand and create presentation-ready reports for stakeholders or clients.<\/p>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:30px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/white-label.png\" alt=\"white-label.png\" width=\"244\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-package main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:22px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/package.png\" alt=\"Plugin package\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>One click to get all the insights<\/h3>\n                  <p>Make confident optimisation decisions without switching between disconnected tools. See what\u2019s happening on your site, understand why it\u2019s happening, and know exactly where to act to\nimprove conversions.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Install and activate a set of advanced plugins in a single, integrated package.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Turn scattered datapoints into insights that improve what matters: sign-ups, purchases,\ncustomer retention and revenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;font-family:Nunito, sans-serif;\">\n              \u201cPrivacy is important, but we also need to move at the speed of a startup, Matomo offers a full-feature web analytics solution that we can get up and running quickly\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/yorba.png\" alt=\"yorba.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>Yorba<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-heatmaps main-div-readme\" style=\"height:auto;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Turn visitor journeys into actionable insights<\/h3>\n                  <p>Reveal the moments that shape decisions, from hesitation to conversion. Use visual reports instead of surface-level metrics to quickly understand user behaviour and what drives\nbusiness results.<\/p>\n                  <p>Identify how visitors navigate, where they get stuck, and which journeys lead to meaningful outcomes, so you can focus on changes that move the needle.<\/p>\n                  <p>Enable your team to answer questions that drive real change:<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/heatmaps-point.png\" alt=\"heatmaps-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Heatmaps &amp; Session Recording<\/strong> show which page\nelements drive clicks and conversions.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/funnel-point.png\" alt=\"funnel-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Funnels<\/strong> reveal where visitors get stuck or exit before\ncompleting a key action.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/users-flow-point.png\" alt=\"users-flow-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Users Flow<\/strong> highlights the paths users take before\nconverting.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n                  <p>Heatmaps and funnels are non-negotiable tools for conversion rate optimisation because they replace assumptions with context and evidence.<\/p>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:32px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/ab-testing2.png\" alt=\"ab-testing2.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme chat-bubble-border\" style=\"height:auto;margin:64px 0;padding:20px;background-color:#e6f2ff;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container\" style=\"margin:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;font-family:Nunito, sans-serif;\">\n              \u201cWe initially thought a banner call-to-action at the bottom of a long landing page was ineffective. However, Matomo\u2019s detailed tracking showed that users were scrolling down and interacting\nwith the banner, which made it much easier for us to refine our design.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/stockholm-university.png\" alt=\"stockholm-university.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>Stockholm University<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-keywords-performance main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Improve website performance for better SEO and conversions<\/h3>\n                  <p><strong>SEO Web Vitals<\/strong> shows how page speed, responsiveness, and visual stability impact user experience, search visibility, and conversions. Analyse Core Web Vitals across your site and uncover the performance issues that affect engagement and business outcomes.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Monitor Core Web Vitals metrics like Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS).<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Identify technical performance issues that negatively impact user experience, engagement, and search rankings.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Prioritise optimisation efforts based on real-world performance trends and their impact on visitor behaviour and business outcomes.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/keywords-performance.png\" alt=\"keywords-performance.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-custom-reports main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:32px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/custom-reports.png\" alt=\"custom-reports.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>Design reports for your conversion goals<\/h3>\n                  <p>Your teams do not need more reports, they need the right reports.<\/p>\n                  <p>Custom Reports enable teams to cut through the noise by creating views that focus on the key data and actionable insights required for accelerated decision-making.<\/p>\n                  <p>Turn reporting into a tool for action, not observation.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Build reports that span the entire visitor experience, from pages to forms, checkout,\nand content consumption.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Choose from over 250 metrics and dimensions for advanced behavioural analysis.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Define a report filter to show the data only for a subset of your visitors and users.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;font-family:Nunito, sans-serif;\">\n              \u201cMatomo is user-friendly and provides all the features we need to understand our visitors and optimise our site\u2019s performance, while effortlessly ensuring compliance with EU privacy laws.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/mdft-academy.png\" alt=\"mdft-academy.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>MDFT Academy<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-keywords-performance main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Boost your SEO for maximum return on investment<\/h3>\n                  <p><strong>Search Engine Keywords Performance<\/strong> shows how search visibility, user intent, and technical accessibility influence conversions, not just traffic. Analyse how users from\nGoogle, Bing, and Yahoo find your site and which keywords lead to meaningful actions.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Identify which keyword segments contribute to valuable user interactions across search\nresults.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Remove technical barriers that prevent search engines from discovering and indexing\nhigh-value pages.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Prioritise optimisation efforts based on keyword performance trends and business\nimpact.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/keywords-performance.png\" alt=\"keywords-performance.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme chat-bubble-border\" style=\"height:auto;margin:64px 0;padding:20px;background-color:#e6f2ff;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container\" style=\"margin:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;font-family:Nunito, sans-serif;\">\n              \u201cBy gathering useful data faster, we could make actionable changes to our marketing campaigns, resulting in higher revenue and better performance.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/alloy.png\" alt=\"alloy.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>Alloy<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-media-forms main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:22px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/package.png\" alt=\"Plugin package\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>Optimise media &amp; forms to drive conversions<\/h3>\n                  <p>Media is becoming increasingly important in today\u2019s environment, but do you know which media is making the difference for your business? <b>Media Analytics<\/b> and <b>Form Analytics<\/b> surface how users interact with videos, audio, and forms across key conversion paths so your teams can focus on making content that improves engagement.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\"><b>Media Analytics<\/b> drives improvements in media content and placement to increase engagement and support conversion paths.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Analyse play, pause, completion rates, and exits to reveal how users engage with on-page video and audio.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\"><b>Form Analytics<\/b> drives improvements in form structure to increase qualified leads and reduce wasted acquisition spend on non-converting traffic.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Understand how users move through form fields, which fields get completed, and where users abandon the form.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;font-family:Nunito, sans-serif;\">\n              \u201cWe made specific adjustments based on Form Analytics, resulting in 3 times the leads in just a couple of days\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/concrete-cms.png\" alt=\"concrete-cms.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>Concrete CMS<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-ecommerce main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"vertical-align:top;padding-right:20px;\">\n                  <h3>Ecommerce analytics to optimise revenue<\/h3>\n                  <p>Get a comprehensive snapshot of your store's performance and key metrics such as order counts, revenue per visit, and the average conversion rate. Uncover where customers linger, leave or move from product discovery to checkout.<\/p>\n                  <p><strong>WooCommerce Analytics<\/strong> gives teams practical direction without adding operational overhead.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Get more value from the traffic you already have.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Improve purchase flow without increasing ad spend.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Concentrate optimisation on actions that contribute to revenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Understand how products, pages, and checkout steps influence completed orders or cart abandonment.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-bundle main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:22px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/package.png\" alt=\"Plugin package\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>More than software, a partner you can rely on<\/h3>\n                  <p>You don\u2019t need to navigate complex analytics alone. The Enterprise Bundle provides direct access to Matomo specialists who assist teams with implementation and privacy-related configuration.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Guided setup aligned with security and compliance requirements, helping teams go live faster.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Priority support to resolve issues quickly, minimising downtime and disruption.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Ongoing expert partnership that scales with complex, multi-team environments.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;font-family:Nunito, sans-serif;\">\n              \u201cThe collaboration and partnership with Matomo was very important because it made everything quite straightforward and we ended up with the ideal cookieless tracking solution. It was very easy to roll out, and everything was super\u2011well documented\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/climeworks.png\" alt=\"climeworks.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>Climeworks<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-business main-div-readme chat-bubble-border\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px 40px;\">\n    <div style=\"text-align:center;\">\n        <h3>Move to secure, enterprise-ready analytics<\/h3>\n        <p style=\"text-align:center;\">Gain clarity, control, and confidence at every level with enterprise-grade authentication, crash diagnostics, and structured experimentation.<\/p>\n        <p style=\"text-align:center;\">Contact Matomo and bring enterprise resilience to your analytics stack.<\/p>\n    <\/div>\n<\/div>\n\n<style>\n    .sticky-footer {\n        position: fixed;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        background: #fff;\n        border-top: 1px solid #ddd;\n        padding: 15px;\n        justify-content: space-between;\n        align-items: center;\n        box-shadow: 0 -2px 10px rgba(0,0,0,0.1);\n        z-index: 1000;\n    }\n\n    .sticky-footer .cta-row {\n        display: flex;\n        gap: 10px;\n        align-items: center;\n    }\n\n    div.js-sanitized-marketplace-html > .sticky-footer {\n        display: none;\n    }\n\n    section#description.slider-tabs__panel > .sticky-footer{\n        display: none;\n    }\n<\/style>\n\n<div class=\"sticky-footer\">\n    <div class=\"modal-content__footer modal-content__footer--with-free-trial\">\n        <img class=\"matomo-badge matomo-badge-modal\"\n             src=\"plugins\/Marketplace\/images\/matomo-badge.png\"\n             aria-label=\"Matomo plugin\"\n             alt=\"\">\n\n        <div class=\"cta-container cta-container-modal\">\n            <div class=\"cta-row\">\n                <div class=\"free-trial\">\n                    <form method=\"GET\"\n                          action=\"https:\/\/shop.matomo.org\/checkout\"\n                          target=\"_blank\"\n                          rel=\"noopener noreferrer\">\n\n                        <input type=\"hidden\" name=\"add-to-cart\" value=\"130529\">\n\n                        <select class=\"free-trial-dropdown\" name=\"aelia_cs_currency\">\n                            <option title=\"Currency EUR\" value=\"EUR\">EUR<\/option>\n                            <option title=\"Currency USD\" value=\"USD\">USD<\/option>\n                        <\/select>\n\n                        <select class=\"free-trial-dropdown\" name=\"variation_id\">\n                                                                                                <option title=\"Month\" value=\"130531\">\n                                        Up to 50 users - 3400 EUR per month \/\n                                        4080 USD per month\n                                    <\/option>\n                                                                                                                                <option title=\"Year\" value=\"130530\">\n                                        Up to 50 users - 34000 EUR per year \/\n                                        40800 USD per year\n                                    <\/option>\n                                                                                    <\/select>\n\n                        <button type=\"submit\"\n                                class=\"btn btn-block addToCartLink\"\n                                title=\"Click to complete purchase.\"\n                                rel=\"noreferrer noopener\">\n                            Add to cart\n                        <\/button>\n\n                    <\/form>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n","faq":"<h3>Can I trial the features included in the Enterprise Bundle?<\/h3>\n\n<p>The Enterprise Bundle is designed to deliver immediate value through a complete set of advanced features combined with\nonboarding and expert support, which is why it is not offered as a self-service trial.\nOrganisations typically choose Enterprise when they are ready for a full, supported analytics solution at scale. This\napproach ensures you get the complete experience from day one, without partial access or\nlimitations. If you would like to explore specific features first, individual Enterprise plugins can be trialled on\nMatomo On-Premise, or the full feature set can be explored via a Matomo Cloud trial.<\/p>\n\n<h3>Can I buy individual plugins?<\/h3>\n\n<p>The Enterprise Bundle includes all core and premium features that Matomo offers, so no additional individual plugins are\nneeded. The Enterprise bundle comes equipped with every feature and plugin Matomo\noffers. Any future features will automatically be added to the Enterprise bundle.<\/p>\n\n<h3>What support is included in the Enterprise bundle?<\/h3>\n\n<p>The Enterprise bundle includes priority email support with a 12-hour response time, available 24 hours a day, five days\na week. During onboarding, you receive one hour per week of live calls with Matomo\nexperts for the first six weeks, alongside guided documentation and expert-led resources. Ongoing support includes\naccess to Matomo specialists for complex technical questions, scalable implementations, and\nbest-practice guidance. An assigned Product Evangelist supports long-term value and adoption across your organisation,\nwith periodic check-ins to ensure your setup continues to align with organisational\ngoals.<\/p>","documentation":"","changelog":""},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/EnterpriseBundle\/changelog"},"isNewBundle":false,"consumer":{"license":1,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"EnvironmentVariables","displayName":"Environment Variables","owner":"matomo-org","description":"Allows you to specify Matomo config in environment variables instead of the config file.","homepage":"https:\/\/matomo.org","createdDateTime":"2019-01-25 03:12:04","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/issues\/","type":"url"}],"isTheme":false,"keywords":["configuration","php","environment","variables"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables","lastUpdated":"2026-10-19 06:28:03","latestVersion":"5.0.4","numDownloads":54556,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/EnvironmentVariables.png","previews":[],"activity":{"numCommits":"18","numContributors":"6","lastCommitDate":"2026-10-21 06:42:28"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"database","categories":["development"],"promotions":{},"versions":[{"name":"3.0.0","release":"2019-01-25 03:12:04","requires":{"piwik":">=3.6.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8163,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/3.0.0"},{"name":"4.0.0","release":"2020-07-28 23:24:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":685,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/4.0.0"},{"name":"4.0.1","release":"2020-09-03 02:30:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15116,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/4.0.1"},{"name":"5.0.0","release":"2023-05-05 04:16:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1836,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/5.0.0"},{"name":"5.0.1","release":"2024-05-06 04:18:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3051,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/5.0.1"},{"name":"5.0.2","release":"2024-10-21 08:10:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2440,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/5.0.2"},{"name":"5.0.3","release":"2025-01-20 07:46:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22877,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/EnvironmentVariables\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/5.0.3"},{"name":"6.0.0","release":"2026-08-31 05:56:12","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":134,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/EnvironmentVariables\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/6.0.0"},{"name":"6.0.1","release":"2026-10-12 06:26:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":41,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/EnvironmentVariables\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/6.0.1"},{"name":"5.0.4","release":"2026-10-19 06:28:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":213,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/EnvironmentVariables\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-EnvironmentVariables\/commits\/5.0.4","readmeHtml":{"description":"\n\n<p>Override any Matomo config with environment variables. To overwrite any setting, specify an environment variable in the following format:<\/p>\n\n<pre><code>MATOMO_$CATEGORY_$SETTING\n<\/code><\/pre>\n\n<p>For example to overwrite the database username and password which is usually defined in the <code>config\/config.ini.php<\/code> like this:<\/p>\n\n<pre><code class=\"ini\">[database]\nusername = \"root\"\npassword = \"secure\"\n<\/code><\/pre>\n\n<p>using environment variables like this:<\/p>\n\n<pre><code class=\"bash\">export MATOMO_DATABASE_USERNAME=root\nexport MATOMO_DATABASE_PASSWORD=secure\n<\/code><\/pre>\n\n<p>List values can be set via encoded JSON arrays:<\/p>\n\n<pre><code class=\"bash\">export MATOMO_GENERAL_TRUSTED_HOSTS='[\"1.2.3.4\",\"5.6.7.8\"]'\n<\/code><\/pre>\n\n<p>JSON objects are decoded too, into keyed arrays. Any other value, including JSON that fails to decode, is used literally.<\/p>\n\n<h3>Known issues:<\/h3>\n\n<ul>\n<li>At some point your Matomo may save\/write the config file, for example when changing certain settings through the UI such as the trusted hosts. In this case, the currently read environment variables will be saved in the config file.<\/li>\n<li>If this plugin is used with PHP-FPM, for example in combination with NGINX, PHP-FPM will not have access to the environment variables by default. The pool used by PHP-FPM must either explicit define which ENVs should be exposed, or set <code>clear_env = no<\/code> in <code>\/etc\/php7\/php-fpm.f\/&lt;pool&gt;.conf<\/code>.<\/li>\n<li>When defining the database credentials as environment variables, you may have to hard code the configs indicating that this plugin is activated, like the following:<\/li>\n<\/ul>\n\n<pre><code>[PluginsInstalled]\nPluginsInstalled[] = \"EnvironmentVariables\"\n\n[Plugins]\nPlugins[] = \"EnvironmentVariables\"\n<\/code><\/pre>\n\n<p>Another option is to use the following console commands during the deployment process:<\/p>\n\n<pre><code>.\/console config:set 'Plugins.Plugins[]=\"EnvironmentVariables\"'\n.\/console config:set 'PluginsInstalled.PluginsInstalled[]=\"EnvironmentVariables\"'\n<\/code><\/pre>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>5.0.4 - 2026-10-19<\/h3>\n\n<ul>\n<li>Support list configuration values via JSON arrays, e.g. for <code>trusted_hosts<\/code> via <code>MATOMO_GENERAL_TRUSTED_HOSTS=[\"example.com\",\"example.net\"]<\/code><\/li>\n<\/ul>\n\n<h3>5.0.3 - 2025-01-20<\/h3>\n\n<ul>\n<li>Added missing license file<\/li>\n<\/ul>\n\n<h3>5.0.2 - 2024-10-21<\/h3>\n\n<ul>\n<li>Documentation updated to hard code config<\/li>\n<\/ul>\n\n<h3>5.0.1<\/h3>\n\n<ul>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<h3>4.0.1<\/h3>\n\n<ul>\n<li>Compatibility with PHP DI 6<\/li>\n<\/ul>\n\n<h3>4.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 4<\/li>\n<\/ul>\n\n<h3>3.0.0<\/h3>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/EnvironmentVariables\/download\/5.0.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/EnvironmentVariables\/changelog"},"consumer":{"license":null}},{"name":"EventIcons","displayName":"Event Icons","owner":"tim-peters","description":"Replace generic event icons in the visitor log and live widget with specific Material Design icons per category and action.","homepage":null,"createdDateTime":"2026-08-11 09:20:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/tim-peters\/matomo-event-icons-plugin\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/tim-peters\/matomo-event-icons-plugin","type":"url"}],"isTheme":false,"keywords":["events","icons","material-design","live-widget","visitor-log"],"basePrice":0,"authors":[{"name":"Tim J. Peters","email":"dev@timjpeters.com","homepage":"https:\/\/www.timjpeters.com"}],"repositoryUrl":"https:\/\/github.com\/tim-peters\/matomo-event-icons-plugin","lastUpdated":"2026-09-03 14:42:04","latestVersion":"1.0.3","numDownloads":1432,"screenshots":["https:\/\/plugins.matomo.org\/EventIcons\/images\/1.0.3\/EventIcons_Plugin_Realtime_View.png","https:\/\/plugins.matomo.org\/EventIcons\/images\/1.0.3\/EventIcons_Plugin_Settings_Page.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/customisation.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-09-03 14:40:22"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"1.0.1","release":"2026-08-11 09:20:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":131,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EventIcons\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/tim-peters\/matomo-event-icons-plugin\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventIcons\/download\/1.0.1"},{"name":"1.0.3","release":"2026-09-03 14:42:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1301,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/EventIcons\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/tim-peters\/matomo-event-icons-plugin\/commits\/1.0.3","readmeHtml":{"description":"\n\n<p>Replace the generic grey event icons in Matomo's <strong>Visitor Log<\/strong> and <strong>Live (Real-time)<\/strong> widget with meaningful Material Design icons. Each event category\/action pair can be assigned its own icon \u2013 from over 2,100 included icons \u2013 so you can instantly recognise event types at a glance. Hold <strong>Cmd<\/strong> (macOS) or <strong>Alt<\/strong> while clicking an event icon to copy its tooltip text instead of opening the linked page.<\/p>\n\n<h3>How it works<\/h3>\n\n<ol>\n<li>Go to <strong>System \u2192 Event Icons<\/strong> and select a website.<\/li>\n<li>Click <strong>Load event types<\/strong> to detect recent events from the last 90 days.<\/li>\n<li>Assign an icon to each category\/action pair using the built-in icon picker.<\/li>\n<li>Save \u2013 the icons update immediately in the visitor log and live widget.<\/li>\n<\/ol>\n\n<p>The plugin bundles all Material Design icons as compact JSON path data (~570 KB). Icons are served as static SVG files directly by the web server \u2013 no PHP request per icon, no external API calls or dependencies.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Individual Material Design icons per event category\/action<\/li>\n<li>Works in Visitor Log and Live (Real-time) widget<\/li>\n<li>Auto-detects existing event types from recent tracking data<\/li>\n<li>2,100+ icons included \u2013 searchable picker<\/li>\n<li>Immediate update \u2013 no page reload needed<\/li>\n<li>Cmd-\/Alt-click an event icon to copy its tooltip text<\/li>\n<li>Lightweight \u2013 no external dependencies<\/li>\n<\/ul>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>I assigned icons but they don't appear. What's wrong?<\/h2>\n\n<p>Clear the Matomo cache: <strong>System \u2192 General Settings \u2192 Clear cache<\/strong>. If you're still seeing the old icons, make sure the browser cache is also cleared (hard refresh: Ctrl+F5 or Cmd+Shift+R).<\/p>\n\n<h2>Can I use custom icons not included in Material Design?<\/h2>\n\n<p>Yes. See the README.md \u2192 Adding custom icons section for instructions. Any SVG can be added as long as it is placed in the <code>icons\/material\/<\/code> directory, the JSON index is rebuilt, and the static files are synced (<code>php scripts\/generate-icons.php<\/code>).<\/p>\n\n<h2>Does this plugin work with Matomo 4?<\/h2>\n\n<p>No. The plugin targets Matomo 5.x (&gt;=5.0.0-b1, &lt;6.0.0-b1).<\/p>\n\n<h2>Does the plugin send data to external servers?<\/h2>\n\n<p>No. All icons are bundled locally. No external API calls, no tracking, no phoning home.<\/p>\n\n<h2>I see \"Time on page: 0s\" or no time at all.<\/h2>\n\n<p>The first action of each visit is the landing page \u2013 it has no time-on-page because there is no previous page. Subsequent actions show the time spent on the previous page. If all actions show no time, your tracking data may not include <code>time_spent_ref_action<\/code> (check if your tracker sends <code>ping<\/code> requests or if the page tracking is properly configured).<\/p>\n\n<h2>How do I uninstall the plugin?<\/h2>\n\n<p>Deactivate it in <strong>System \u2192 Plugins<\/strong>, then delete the <code>plugins\/EventIcons<\/code> directory. The database contains no custom tables \u2013 uninstalling leaves no traces.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Overview<\/h2>\n\n<p>Event Icons lets you replace the generic event icons in Matomo's Visitor Log and Live (Real-time) widget with specific icons per event category and action.<\/p>\n\n<h2>How icon replacement works<\/h2>\n\n<p>The plugin hooks into Matomo's JavaScript and CSS pipeline:<\/p>\n\n<ol>\n<li>A <strong>MutationObserver<\/strong> watches the DOM for new visitor log and live widget entries.<\/li>\n<li>When entries are detected, the plugin reads the event category\/action from the element's title attribute (live widget) or text content (visitor log).<\/li>\n<li>The category\/action pair is looked up in the user-defined mapping, and the matching icon's <code>&lt;img&gt;<\/code> src is replaced.<\/li>\n<li>An <strong>AJAX call<\/strong> fetches action timestamps (<code>server_time<\/code>, <code>time_spent_ref_action<\/code>) from the database and appends them to the tooltip.<\/li>\n<\/ol>\n\n<h2>Settings page<\/h2>\n\n<p>The settings page at <strong>System \u2192 Event Icons<\/strong> provides:<\/p>\n\n<ul>\n<li><strong>Website selector<\/strong> \u2013 choose which site's events to inspect.<\/li>\n<li><strong>Load event types<\/strong> \u2013 scans the last 90 days of tracking data for existing category\/action pairs.<\/li>\n<li><strong>Icon picker<\/strong> \u2013 search through 2,100+ Material Design icons by name.<\/li>\n<li><strong>Bulk assign<\/strong> \u2013 set the same icon for multiple rows at once.<\/li>\n<li><strong>Save selected<\/strong> \u2013 persists the mapping immediately.<\/li>\n<\/ul>\n\n<h2>Icons<\/h2>\n\n<p>Icons are stored in <code>icons\/material-paths.json<\/code> as a JSON object mapping icon names to SVG path data. Static SVG files for all icons live in <code>icons\/material\/<\/code> and are generated with <code>php scripts\/generate-icons.php<\/code>; the web server serves them directly, so each icon is a single browser-cached static file request instead of a full PHP request.<\/p>\n\n<p>To add custom icons, see README.md \u2192 Adding custom icons.<\/p>\n\n<h2>Database queries<\/h2>\n\n<p>The plugin performs two database queries:<\/p>\n\n<ol>\n<li><strong>Event detection<\/strong> (settings page): <code>SELECT cat.name, act.name, COUNT(*) FROM log_link_visit_action JOIN log_action ON ... GROUP BY cat.name, act.name<\/code> \u2013 scoped to last 90 days and a specific site.<\/li>\n<li><strong>Action times<\/strong> (tooltip enhancement): <code>SELECT server_time, time_spent_ref_action FROM log_link_visit_action WHERE idvisit = ? ORDER BY server_time ASC<\/code>.<\/li>\n<\/ol>\n\n<h2>Limitations<\/h2>\n\n<ul>\n<li>The first action of each visit always shows no time-on-page (landing page has no predecessor).<\/li>\n<li>The mapping is global \u2013 all sites share the same icon configuration.<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Unreleased<\/h2>\n\n<ul>\n<li>Icons are served as static SVG files (<code>icons\/material\/<\/code>) instead of one PHP request per icon \u2013 opening the icon picker no longer fires 2,000+ server-side requests<\/li>\n<li>Icon picker: lazy image loading and debounced search input<\/li>\n<li>New <code>scripts\/generate-icons.php<\/code> to regenerate static SVGs from <code>material-paths.json<\/code> (<code>--prune<\/code> removes orphaned files)<\/li>\n<\/ul>\n\n<h2>1.0.2<\/h2>\n\n<ul>\n<li>Cmd-\/Alt-click an event icon to copy its tooltip text instead of opening the linked page<\/li>\n<\/ul>\n\n<h2>1.0.0<\/h2>\n\n<p>Initial release.<\/p>\n\n<ul>\n<li>Replace generic event icons with Material Design icons in Visitor Log and Live widget<\/li>\n<li>Settings page with icon picker, bulk assign, and auto-detection of event types<\/li>\n<li>2,100+ Material Design icons bundled as compact JSON<\/li>\n<li>Per-website detection, global icon mapping<\/li>\n<li>MutationObserver-based dynamic DOM handling<\/li>\n<li>German and English translations<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/EventIcons\/download\/1.0.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/EventIcons\/changelog"},"consumer":{"license":null}},{"name":"EventsEnhanced","displayName":"Events Enhanced","owner":"openmost","description":"A detail page for every event category, action and name, with its evolution and related breakdowns.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/events-enhanced","createdDateTime":"2025-12-07 18:20:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/EventsEnhanced\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/EventsEnhanced","type":"url"}],"isTheme":false,"keywords":["event","events","\u00e9v\u00e9nement","\u00e9v\u00e9nements","enhanced","better","am\u00e9lior\u00e9","mieux"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/EventsEnhanced","lastUpdated":"2026-10-22 21:00:41","latestVersion":"5.2.1","numDownloads":7304,"screenshots":["https:\/\/plugins.matomo.org\/EventsEnhanced\/images\/5.2.1\/Event_detail_page_with_evolution_and_breakdowns.png","https:\/\/plugins.matomo.org\/EventsEnhanced\/images\/5.2.1\/Events_All_Dimensions_report.png","https:\/\/plugins.matomo.org\/EventsEnhanced\/images\/5.2.1\/Premium_reports_previewed_in_the_free_edition.png"],"coverImage":"https:\/\/plugins.matomo.org\/EventsEnhanced\/images\/5.2.1\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/QYSrh1gDS9g","id":"QYSrh1gDS9g"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-22 20:58:50"},"featured":true,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"database","categories":["database"],"promotions":{"featured":2},"versions":[{"name":"1.0.4","release":"2025-12-07 18:20:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":511,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/1.0.4"},{"name":"1.1.1","release":"2026-02-07 17:44:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6531,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/1.1.1"},{"name":"6.0.0","release":"2026-09-15 19:58:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":50,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/6.0.0"},{"name":"6.0.1","release":"2026-10-14 14:28:14","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/6.0.1"},{"name":"5.1.0","release":"2026-10-14 15:24:24","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":103,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/5.1.0"},{"name":"6.1.0","release":"2026-10-21 21:04:13","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/6.1.0"},{"name":"5.2.0","release":"2026-10-21 21:18:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":45,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/5.2.0"},{"name":"6.1.1","release":"2026-10-22 21:00:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/6.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/6.1.1"},{"name":"5.2.1","release":"2026-10-22 21:00:41","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":47,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/EventsEnhanced\/commits\/5.2.1","readmeHtml":{"description":"\n\n<p>Turn Matomo's Events reports into a navigable analysis: open a detail page for any event category, action or name and see how it evolves and what it is combined with.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Event detail pages<\/strong>: a \"View Event Details\" row action on the Events reports (Categories, Actions, Names) opens a dedicated page for the selected value. Selectors at the top of the page let you switch the dimension (category, action, name) and the value without going back to the report.<\/li>\n<li><strong>Evolution graph<\/strong> of the selected value over time, with a metric picker (events, visits, event value, events with a value).<\/li>\n<li><strong>Related breakdowns<\/strong> on each detail page: the two other event dimensions filtered on the selected value (for example the actions and names of a category) and the event values recorded for it.<\/li>\n<li><strong>Events (All Dimensions) report<\/strong> under Behavior &gt; Events: category, action and name in one hierarchical table, with visits, unique visitors, events, total, minimum, maximum and average event value. It is also available as a dashboard widget.<\/li>\n<li><strong>Top 10 evolution graphs<\/strong> for event names (under Behavior &gt; Events), and for event categories and actions (from the Related Reports links), with one line per value.<\/li>\n<li><strong>API methods<\/strong> for every breakdown, for example <code>EventsEnhanced.getEventActionsForCategory<\/code>, <code>EventsEnhanced.getEventNamesForAction<\/code>, <code>EventsEnhanced.getEventValuesForName<\/code>, <code>EventsEnhanced.getEventsWithAllDimensions<\/code> and <code>EventsEnhanced.getEventNamesEvolution<\/code>. Report metadata is complete, so API and AI clients (such as the McpServer plugin) can discover them.<\/li>\n<li><strong>Events derived from actions report<\/strong> under Behavior &gt; Events: the events GA4 collects automatically (<code>session_start<\/code>, <code>first_visit<\/code>, <code>page_view<\/code>, <code>click<\/code>, <code>file_download<\/code>, <code>view_search_results<\/code>, and <code>video_start<\/code>, <code>video_progress<\/code>, <code>video_complete<\/code> with Media Analytics, <code>form_start<\/code>, <code>form_submit<\/code> with Form Analytics), rebuilt from Matomo data and kept apart from your events, so you can compare Matomo with the GA4 Events report line by line.<\/li>\n<li><strong>GA4 names for Media Analytics events<\/strong>: when the Media Analytics plugin is activated, its automatic video and audio events are named after the GA4 events (<code>video_start<\/code>, <code>video_pause<\/code>, <code>video_resume<\/code>, <code>video_seek<\/code>, <code>video_complete<\/code>, and <code>audio_*<\/code> for audio) instead of the media title, so the Event Names report lists interactions you can compare with GA4.<\/li>\n<li>Segments, periods and the standard view permission of the Events reports apply everywhere.<\/li>\n<li>Translated into 12 languages.<\/li>\n<\/ul>\n\n<h4>Premium version<\/h4>\n\n<p><a href=\"https:\/\/openmost.com\/matomo\/extensions\/events-enhanced?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=eventsenhanced\">EventsEnhanced Premium<\/a> is an add-on of this plugin: installed next to it, it replaces the previews of every detail page with three reports:<\/p>\n\n<ul>\n<li><strong>Page URLs<\/strong> and <strong>Page titles<\/strong> where the selected events were actually triggered.<\/li>\n<li><strong>Countries<\/strong> of the visitors who triggered them.<\/li>\n<li><strong>Custom Dimensions<\/strong>: values of your action-scoped Custom Dimensions for the selected events.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.x (5.0.0 or later, below 6.0.0)<\/li>\n<li>The Events plugin (bundled with Matomo and enabled by default).<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install EventsEnhanced from the Marketplace (Administration &gt; Platform &gt; Marketplace), or copy the <code>EventsEnhanced<\/code> folder into the <code>plugins<\/code> directory of your Matomo installation.<\/li>\n<li>Activate it in Administration &gt; Plugins.<\/li>\n<li>Open Behavior &gt; Events, hover a row of any Events report and click the \"View Event Details\" icon.<\/li>\n<\/ol>\n\n<p>There are no settings. Reports are built during archiving, so data appears for periods archived after activation. To see past periods, or to get the corrected numbers of this version for periods archived before an update, invalidate and re-archive them, for every period type (the default of the command), for example <code>.\/console core:invalidate-report-data --sites=1 --dates=2025-01-01,2025-12-31 --plugin=EventsEnhanced<\/code> then <code>.\/console core:archive<\/code>.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<p>All reports are computed inside your Matomo database from the events you already track. The plugin sends no data to third parties.<\/p>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. Event reports are only as useful as the tracking behind them: we design <a href=\"https:\/\/openmost.com\/matomo\/services\/tracking-architecture?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=eventsenhanced\">Matomo tracking plans<\/a> with consistent event naming, goals and custom dimensions, then implement them in your tag manager.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>I just installed the plugin, where is my history?<\/strong><\/p>\n\n<p>Activating the plugin schedules its reports for past periods (EventsEnhanced Premium does the same for its own reports): the next <code>core:archive<\/code> run rebuilds them from the raw logs, nothing to do. How far back follows the <code>rearchive_reports_in_past_last_n_months<\/code> setting of Matomo (6 months by default). To go further, set it in the <code>[General]<\/code> section of <code>config\/config.ini.php<\/code> before activating the plugin, or invalidate older periods with the commands below. Periods whose raw logs were deleted (<code>delete_logs_older_than<\/code>) cannot be rebuilt.<\/p>\n\n<p><strong>What is the Events derived from actions report?<\/strong><\/p>\n\n<p>It lists the events GA4 collects automatically (<code>page_view<\/code>, <code>click<\/code>, <code>file_download<\/code>, <code>video_start<\/code>...), rebuilt from Matomo pageviews, outlinks, downloads, site searches, visits, Media Analytics plays and Form Analytics forms, so you can compare Matomo with GA4. These rows are not stored as Matomo events: your own events stay in Events (All Dimensions) and the other Events reports, the two never mix.<\/p>\n\n<p><strong>Why do my Media Analytics events show video_start instead of the video title?<\/strong><\/p>\n\n<p>The plugin renames the automatic Media Analytics events after the GA4 event names (<code>video_start<\/code>, <code>video_complete<\/code>...), so the Event Names report counts interactions instead of listing titles. The action is capitalized (<code>Play<\/code>, <code>Finish<\/code>...). Per video figures are in the Media reports of Media Analytics. Events you track yourself are renamed only when they use the <code>MediaVideo<\/code> or <code>MediaAudio<\/code> category with one of the actions <code>play<\/code>, <code>pause<\/code>, <code>resume<\/code>, <code>seek<\/code> or <code>finish<\/code>.<\/p>\n\n<p><strong>How do I access the event detail pages?<\/strong><\/p>\n\n<p>Open any Events report (Behavior &gt; Events), hover a row and click the \"View Event Details\" icon.<\/p>\n\n<p><strong>Why is a detail page empty for past periods?<\/strong><\/p>\n\n<p>The reports are built during archiving. Periods archived before the plugin was activated have no data until you invalidate and re-archive them, for every period type (the default of the command), for example:<\/p>\n\n<pre><code>.\/console core:invalidate-report-data --sites=1 --dates=2025-01-01,2025-12-31 --plugin=EventsEnhanced\n.\/console core:archive\n<\/code><\/pre>\n\n<p>Adjust <code>--sites<\/code> and <code>--dates<\/code> to your data. Keep the default periods: a month is built from its week archives, so a week archived before the plugin was active makes the month incomplete.<\/p>\n\n<p><strong>I updated the plugin, why do past reports still show the old numbers?<\/strong><\/p>\n\n<p>Version 5.1.0 fixes how the reports are archived: events without a name are counted under \"Event Name not defined\", the event value 0 is kept, the \"Others\" row of a truncated list is shown as \"Others\", and values with an apostrophe or another special character find their data. Reports archived before the update keep the old numbers until you invalidate and re-archive them with the commands above.<\/p>\n\n<p><strong>Why don't I see Custom Dimensions on the detail pages?<\/strong><\/p>\n\n<p>Custom Dimensions reports (premium) need the CustomDimensions plugin, at least one action-scoped Custom Dimension, and data for that dimension on the selected events.<\/p>\n\n<p><strong>Can I segment the detail page reports?<\/strong><\/p>\n\n<p>Yes, the segment, period and date selected in Matomo apply to every report of the detail page.<\/p>\n\n<p><strong>Does this plugin require any special permissions?<\/strong><\/p>\n\n<p>No. Anyone who can view the Events reports of a site can open its detail pages.<\/p>\n\n<p><strong>Which versions of Matomo are supported?<\/strong><\/p>\n\n<p>Version 5.x of the plugin supports Matomo 5 (5.0.0 or later). Use the 6.x versions for Matomo 6.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>EventsEnhanced adds a detail page for every event category, action and name. From any Events report (Behavior &gt; Events), hover a row and click the \"View Event Details\" icon.<\/p>\n\n<h3>Detail pages<\/h3>\n\n<p>Each detail page includes:<\/p>\n\n<ol>\n<li><strong>Dimension selectors<\/strong> to switch between category, action and name, and between values, without leaving the page.<\/li>\n<li><strong>Evolution graph<\/strong> of the selected value, with a metric picker (events, visits, event value, events with a value).<\/li>\n<li><strong>Related breakdowns<\/strong>:\n\n<ul>\n<li>Category pages: actions and names filtered on that category<\/li>\n<li>Action pages: categories and names filtered on that action<\/li>\n<li>Name pages: categories and actions filtered on that name<\/li>\n<li>Event values recorded for the selected value<\/li>\n<\/ul><\/li>\n<li><strong>Page URLs and Page titles (premium)<\/strong>: the pages where the selected events were actually triggered, not every page of the visits that contained them.<\/li>\n<li><strong>Countries (premium)<\/strong>: the countries of the visitors who triggered them.<\/li>\n<li><strong>Custom Dimensions (premium)<\/strong>: values of your action-scoped Custom Dimensions for the selected events.<\/li>\n<\/ol>\n\n<p>The free plugin shows previews of the premium reports. <a href=\"https:\/\/openmost.com\/matomo\/extensions\/events-enhanced?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=premium_upgrade&amp;utm_content=eventsenhanced\">EventsEnhanced Premium<\/a>, an add-on installed next to this plugin, replaces them with the real reports. Keep this plugin activated with it: it still archives every common report.<\/p>\n\n<h3>Additional reports<\/h3>\n\n<ul>\n<li><strong>Events (All Dimensions)<\/strong>: category, action and name in one hierarchical table under Behavior &gt; Events, also available as a dashboard widget.<\/li>\n<li><strong>Event Names Evolution (top 10)<\/strong> under Behavior &gt; Events, plus <strong>Event Categories Evolution<\/strong> and <strong>Event Actions Evolution<\/strong> from the Related Reports links.<\/li>\n<\/ul>\n\n<h3>Events derived from actions<\/h3>\n\n<p>Behavior &gt; Events &gt; Events derived from actions, below Events (All Dimensions), lists the events GA4 collects automatically, rebuilt from Matomo data. They are not Matomo events: they complement Events (All Dimensions) without mixing with it and do not appear in the other Events reports. The Counted from column shows the Matomo data behind each row.<\/p>\n\n\n\n\n  GA4 event\n  Counted from\n\n\n\n\n  session_start\n  Visits\n\n\n  first_visit\n  Visits of new visitors\n\n\n  page_view\n  Pageviews\n\n\n  click\n  Outlinks\n\n\n  file_download\n  Downloads\n\n\n  view_search_results\n  Site searches\n\n\n  video_start\n  Media Analytics video plays (more than one second watched, as in Media Analytics)\n\n\n  video_progress\n  Media Analytics video plays, one event per 10, 25, 50 and 75% milestone the furthest position reached\n\n\n  video_complete\n  Media Analytics video plays that reached the end\n\n\n  form_start\n  Form Analytics form starts\n\n\n  form_submit\n  Form Analytics form submissions\n\n\n\n\n<p>The video rows need Media Analytics and the form rows need Form Analytics. Each row opens the visitor log on its segment (<code>actionType<\/code>, <code>visitorType==new<\/code>, <code>media_plays_type==video<\/code>, <code>form_num_starts&gt;0<\/code> or <code>form_num_submissions&gt;0<\/code>). In the API (<code>EventsEnhanced.getEventsDerivedFromActions<\/code>), the <code>source<\/code> row metadata names the Matomo data of each row (<code>visits<\/code>, <code>new_visits<\/code>, <code>pageviews<\/code>, <code>outlinks<\/code>, <code>downloads<\/code>, <code>site_search<\/code>, <code>video_plays<\/code>, <code>video_progress<\/code>, <code>video_complete<\/code>, <code>form_starts<\/code>, <code>form_submissions<\/code>).<\/p>\n\n<h3>Media Analytics events<\/h3>\n\n<p>When the Media Analytics plugin is activated, the event name of its automatic events is replaced by the GA4 event name and the action is capitalized while the event is tracked. The category is kept, the media title stays in the Media reports.<\/p>\n\n\n\n\n  Category\n  Action\n  Event name\n\n\n\n\n  MediaVideo\n  Play\n  video_start\n\n\n  MediaVideo\n  Pause\n  video_pause\n\n\n  MediaVideo\n  Resume\n  video_resume\n\n\n  MediaVideo\n  Seek\n  video_seek\n\n\n  MediaVideo\n  Finish\n  video_complete\n\n\n  MediaAudio\n  Play\n  audio_start\n\n\n  MediaAudio\n  Pause\n  audio_pause\n\n\n  MediaAudio\n  Resume\n  audio_resume\n\n\n  MediaAudio\n  Seek\n  audio_seek\n\n\n  MediaAudio\n  Finish\n  audio_complete\n\n\n\n\n<p>Events tracked before the update keep the media title as event name and the lowercase action.<\/p>\n\n<h3>API methods<\/h3>\n\n<ul>\n<li><code>EventsEnhanced.getEventActionsForCategory<\/code>, <code>EventsEnhanced.getEventNamesForCategory<\/code><\/li>\n<li><code>EventsEnhanced.getEventCategoriesForAction<\/code>, <code>EventsEnhanced.getEventNamesForAction<\/code><\/li>\n<li><code>EventsEnhanced.getEventCategoriesForName<\/code>, <code>EventsEnhanced.getEventActionsForName<\/code><\/li>\n<li><code>EventsEnhanced.getEventValuesForCategory<\/code>, <code>EventsEnhanced.getEventValuesForAction<\/code>, <code>EventsEnhanced.getEventValuesForName<\/code><\/li>\n<li><code>EventsEnhanced.getEventsWithAllDimensions<\/code><\/li>\n<li><code>EventsEnhanced.getEventsDerivedFromActions<\/code><\/li>\n<li><code>EventsEnhanced.getEventNamesEvolution<\/code>, <code>EventsEnhanced.getEventCategoriesEvolution<\/code>, <code>EventsEnhanced.getEventActionsEvolution<\/code><\/li>\n<\/ul>\n\n<h3>Archiving<\/h3>\n\n<p>Reports are built during archiving, so data appears for periods archived after activation. To fill past periods, or to get the corrected numbers of the latest version for periods archived before the update, invalidate and re-archive them as described in the FAQ.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.2.1<\/h3>\n\n<ul>\n<li>Fix the archiving of the Events derived from actions report under a segment when Media Analytics or Form Analytics is activated: it failed with \"Unknown column 'log_inner.idsite'\" and stopped the segment archive.<\/li>\n<\/ul>\n\n<h3>v5.2.0<\/h3>\n\n<ul>\n<li>New <strong>Events derived from actions<\/strong> report under Behavior &gt; Events, below Events (All Dimensions): the events GA4 collects automatically, rebuilt from Matomo data so you can compare Matomo with the GA4 Events report. <code>session_start<\/code> and <code>first_visit<\/code> from visits, <code>page_view<\/code> from pageviews, <code>click<\/code> from outlinks, <code>file_download<\/code> from downloads, <code>view_search_results<\/code> from site searches and, with Media Analytics, <code>video_start<\/code>, <code>video_progress<\/code> (10, 25, 50 and 75% milestones) and <code>video_complete<\/code> from video plays and, with Form Analytics, <code>form_start<\/code> and <code>form_submit<\/code> from form starts and submissions. They are not Matomo events: they complement Events (All Dimensions) without mixing with it, a Counted from column shows the Matomo data behind each row and each row opens the visitor log on the matching segment. Also available as a dashboard widget and through the API (<code>EventsEnhanced.getEventsDerivedFromActions<\/code>). The update schedules it for past periods, the next <code>core:archive<\/code> run builds them.<\/li>\n<li>EventsEnhanced Premium is now an add-on of this plugin instead of a standalone edition: installed next to it, it replaces the previews of the event detail pages with its reports (page URLs, countries, Custom Dimensions), and this plugin keeps archiving every common report, so their history survives switching the add-on on and off.<\/li>\n<li>Activating the plugin rebuilds its reports for past periods from the raw logs on the next <code>core:archive<\/code> run, so a site that installs it gets its history without running any command. The period follows the <code>[General] rearchive_reports_in_past_last_n_months<\/code> setting of Matomo (6 months by default), raise it in <code>config\/config.ini.php<\/code> to rebuild further back.<\/li>\n<li>The related breakdown reports of the detail pages declare a report category, so their metadata is complete for API and AI clients such as the McpServer plugin.<\/li>\n<li>Events (All Dimensions) is shown full width.<\/li>\n<li>Media Analytics events follow the GA4 event names: the event name of the automatic video and audio events becomes <code>video_start<\/code>, <code>video_pause<\/code>, <code>video_resume<\/code>, <code>video_seek<\/code> and <code>video_complete<\/code> (<code>audio_*<\/code> for audio) instead of the media title. The action is capitalized (<code>Play<\/code>, <code>Pause<\/code>, <code>Resume<\/code>, <code>Seek<\/code>, <code>Finish<\/code>), the category (<code>MediaVideo<\/code>, <code>MediaAudio<\/code>) is unchanged and the media title stays in the Media reports. Only events tracked after the update are renamed. Nothing changes when Media Analytics is not activated.<\/li>\n<li>Remove the Page URLs, Page titles and Countries controller actions: they called API methods that only exist in EventsEnhanced Premium and failed with \"method does not exist\". Nothing linked to them, the detail page keeps showing these reports as Premium previews.<\/li>\n<li>Remove the unused <code>Pages<\/code> class and the documentation translations of the Premium-only reports.<\/li>\n<\/ul>\n\n<h3>v5.1.0<\/h3>\n\n<ul>\n<li>Fix: event categories, actions and names with an apostrophe or another special character are shown as is in the Event value selector, they were escaped twice (<code>d&amp;#039;un<\/code> instead of <code>d'un<\/code>). Their detail page no longer lists the value twice in the selector, and its reports now find their data.<\/li>\n<li>Data quality fixes in the archived reports. Events without a name are now counted under \"Event Name not defined\" in every breakdown, they were dropped from the reports by event name and from the event names of the category and action pages, so these lists added up to less than the event total. The event value 0 is no longer dropped from the event value reports. Event value sums are rounded like in the core Events reports. The \"Others\" row of a truncated list stays an \"Others\" row on the detail pages instead of a row labelled -1. A failed archiving query now fails the archive, so it is retried, instead of storing an incomplete report.<\/li>\n<li>Existing installs must invalidate and re-archive past periods to get the corrected numbers: <code>.\/console core:invalidate-report-data --sites=1 --dates=2025-01-01,2025-12-31 --plugin=EventsEnhanced<\/code> then <code>.\/console core:archive<\/code>. Keep the default periods: a month is built from its week archives, a week archived before the plugin was active has no data for the plugin and makes the month incomplete.<\/li>\n<li>The version number now follows the Matomo major version (5.x for Matomo 5).<\/li>\n<li>The Event Categories and Event Actions evolution reports now declare a report category, so their metadata is complete for API and AI clients such as the McpServer plugin. They still only appear from the Related Reports links.<\/li>\n<li>Premium report previews load their images relative to Matomo, fixing broken images when Matomo is installed in a sub directory<\/li>\n<li>Translated into 12 languages<\/li>\n<li>Plugin homepage, support email and documentation moved to openmost.com<\/li>\n<li>The Premium links of the documentation and of the report previews open the EventsEnhanced page of openmost.com, the version notes follow the new 5.x \/ 6.x numbering<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<li>Requires Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>Smaller package: the Vue build artifacts that Matomo does not load (source maps, CommonJS bundle) are no longer shipped.<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v1.1.0<\/h3>\n\n<h4>New features<\/h4>\n\n<ul>\n<li>add: Evolution graphs for top 10 event names, categories, and actions over time<\/li>\n<li>add: 2 additional series colors (brown 800, blue grey 800) to display 10 curves on evolution graphs<\/li>\n<li>add: Plugin dependency declaration for Events plugin<\/li>\n<li>add: Vue shims and TypeScript configuration for reliable builds<\/li>\n<\/ul>\n\n<h4>Improvements<\/h4>\n\n<ul>\n<li>update: API layer refactored, 9 near-identical methods consolidated into a single <code>getSubtableForDimension()<\/code> helper<\/li>\n<li>update: Controller refactored, merged duplicate table configuration methods into <code>configureEventDimensionTable()<\/code><\/li>\n<li>update: Added input validation for <code>dimensionType<\/code> parameter across all controller actions<\/li>\n<li>update: RecordBuilder <code>EventDimensionRelations<\/code> split into 2 optimized SQL queries, dimension reports no longer include <code>custom_float<\/code> in GROUP BY, fixing inflated visit counts<\/li>\n<li>update: Added RankingQuery support to both RecordBuilders for large dataset handling<\/li>\n<li>update: Removed premature <code>round()<\/code> during archiving in <code>EventsAllDimensions<\/code> to preserve full value precision<\/li>\n<li>update: Removed <code>Common::getRequestVar()<\/code> calls from Report <code>init()<\/code> methods (constructors should not access HTTP request)<\/li>\n<li>update: Replaced hardcoded \"Custom Dimension\" labels with <code>translate('CustomDimensions_CustomDimensionId')<\/code> for proper i18n<\/li>\n<li>update: Plugin category changed from \"database\" to \"analytics\"<\/li>\n<li>update: Vue source files converted to LF line endings for ESLint compatibility<\/li>\n<li>update: Removed \"Did you know?\" promotional footer from all reports and evolution graphs<\/li>\n<\/ul>\n\n<h4>Bug fixes<\/h4>\n\n<ul>\n<li>fix: Evolution graphs now correctly limit to top 10 series globally across all periods (previously each period had independent top N, causing inconsistent series)<\/li>\n<li>fix: CSS typo in GoPremiumWidget (<code>100\u00f9<\/code> changed to <code>100%<\/code>)<\/li>\n<li>fix: Flattened nested CSS selectors in GoPremiumWidget for broader browser compatibility<\/li>\n<li>fix: Removed hardcoded <code>tabindex=\"6\"<\/code> from GoPremiumWidget (accessibility anti-pattern)<\/li>\n<li>fix: GoPremiumWidget image path now uses computed <code>matomoBaseUrl<\/code> instead of hardcoded path<\/li>\n<li>fix: Replaced deprecated <code>piwik.*<\/code> globals with <code>Matomo.*<\/code> in row action JavaScript<\/li>\n<li>fix: Used <code>Object.prototype.hasOwnProperty.call()<\/code> instead of direct <code>.hasOwnProperty()<\/code> in row action<\/li>\n<li>fix: Removed duplicate inline <code>style<\/code> attribute from DimensionSelectors component<\/li>\n<li>fix: Fixed <code>fr.json<\/code> indentation inconsistency<\/li>\n<\/ul>\n\n<h4>Maintenance<\/h4>\n\n<ul>\n<li>add: <code>.gitignore<\/code> for <code>.DS_Store<\/code> and <code>.claude\/<\/code> files<\/li>\n<li>add: Error logging via <code>LoggerInterface<\/code> in API and RecordBuilder exception handlers<\/li>\n<li>remove: Dead code (<code>filterAndFlattenNestedSubtable<\/code>, <code>extractNestedSubtableByLabel<\/code>) from API<\/li>\n<li>remove: Unused <code>Common<\/code> import from 6 Report files<\/li>\n<\/ul>\n\n<h3>v1.0.4<\/h3>\n\n<ul>\n<li>update: Plugin name to match marketplace requirements<\/li>\n<\/ul>\n\n<h3>v1.0.3<\/h3>\n\n<ul>\n<li>update: Plugin description to match marketplace requirements<\/li>\n<\/ul>\n\n<h3>v1.0.2<\/h3>\n\n<ul>\n<li>update: Define plugin licence to GPL v3+<\/li>\n<\/ul>\n\n<h3>v1.0.1<\/h3>\n\n<ul>\n<li>add: Cover image for Matomo marketplace<\/li>\n<\/ul>\n\n<h3>v1.0.0<\/h3>\n\n<p>Plugin release, read README.md for more information.<\/p>"},"download":"\/api\/2.0\/plugins\/EventsEnhanced\/download\/5.2.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/EventsEnhanced\/changelog"},"consumer":{"license":null}},{"name":"ExcludeByDDNS","displayName":"Exclude By DDNS","owner":"sgiehl","description":"This plugin allows you to dynamically exclude a IP using DDNS update.","homepage":"http:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS","createdDateTime":"2015-02-08 22:10:03","donate":{"paypal":"stefangiehl@web.de","flattr":"https:\/\/flattr.com\/thing\/2578144\/sgiehl","bitcoin":null},"support":[],"isTheme":false,"keywords":["ddns","ipexclude"],"basePrice":0,"authors":[{"name":"Stefan Giehl","email":"stefan@matomo.org","homepage":"http:\/\/github.com\/sgiehl"}],"repositoryUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS","lastUpdated":"2026-08-31 07:06:03","latestVersion":"6.0.0","numDownloads":43781,"screenshots":["https:\/\/plugins.matomo.org\/ExcludeByDDNS\/images\/6.0.0\/settings.png","https:\/\/plugins.matomo.org\/ExcludeByDDNS\/images\/6.0.0\/superuser_status.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"156","numContributors":"25","lastCommitDate":"2026-10-08 13:59:14"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1","release":"2015-02-08 22:10:03","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":165,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.1"},{"name":"0.1.1","release":"2015-02-24 19:52:03","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":78,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.1.1"},{"name":"0.2.0","release":"2015-03-01 11:42:03","requires":{"piwik":">=2.4.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":237,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.2.0"},{"name":"0.2.1","release":"2015-03-28 15:32:03","requires":{"piwik":">=2.4.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":452,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.2.1"},{"name":"0.2.2","release":"2015-06-01 07:08:09","requires":{"piwik":">=2.4.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":351,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.2.2"},{"name":"0.3.0","release":"2015-07-28 20:36:02","requires":{"piwik":">=2.4.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.3.0"},{"name":"0.3.1","release":"2015-07-28 22:30:03","requires":{"piwik":">=2.9.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":166,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.3.1"},{"name":"0.4.0","release":"2015-08-15 18:44:03","requires":{"piwik":">=2.4.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1637,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.4.0"},{"name":"0.5.0","release":"2016-05-08 22:10:03","requires":{"piwik":">=2.4.0","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1451,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/0.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/0.5.0"},{"name":"3.0.0","release":"2016-09-17 16:46:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9166,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/3.0.0"},{"name":"4.0.0","release":"2020-10-20 13:04:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":264,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/4.0.0"},{"name":"4.0.1","release":"2021-01-19 15:26:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":569,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/4.0.1"},{"name":"4.0.2","release":"2021-07-13 07:54:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1708,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/4.0.2"},{"name":"4.0.3","release":"2022-03-11 08:54:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13000,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/4.0.3"},{"name":"5.0.0","release":"2023-08-24 08:50:03","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14456,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/5.0.0"},{"name":"6.0.0","release":"2026-08-31 07:06:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":72,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ExcludeByDDNS\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugin allows the Matomo users to dynamically exclude their IP address using DDNS update.<\/p>\n\n<h3>Requirements<\/h3>\n\n<p><a href=\"https:\/\/github.com\/matomo-org\/matomo\">Matomo<\/a> 5.0.0-b1 or higher is required.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Exclude one IP for each Matomo user<\/li>\n<li>Exclude and IP using an already updated hostname<\/li>\n<\/ul>\n\n","faq":"<p><strong>Which update method should I use, <em>DDNS Update<\/em> or <em>DDNS Hostname<\/em>?<\/strong><\/p>\n\n<p>If available, <strong><em>DDNS Update<\/em><\/strong> is recommended. This method is a bit more complicated to set up, but it leads to immediately updated IP's, as the client will trigger the update whenever a new IP is assigned.\nBut it may not be viable for all users, eg. \n* Not all DDNS clients allow custom update-URL's.\n* The client may be already serving another server and have no ability to talk to multiple servers at the same time.<\/p>\n\n<p>So, the <strong><em>DDNS Hostname<\/em><\/strong> can be an alternative. Use a DDNS service that is compatible with your client and enter the hostname from there to have the plugin resolve your dynamic IP. The downside: Updating happens via a scheduled task every hour, so there might be small windows with the new IP still being tracked, but not the old one.<\/p>\n\n<p><strong>What data do I need to set for DDNS Update<\/strong><\/p>\n\n<p>You need to set a custom URL to be triggered for an update.\nYour personal update-URL is shown in your Matomo installation (user-menu &gt; Personal &gt; DDNS Settings).<\/p>\n\n<p>The URL has the following scheme:<\/p>\n\n<pre><code>http{s}:\/\/{matomo.url}\/index.php?module=ExcludeByDDNS&amp;action=update&amp;token_auth={token_auth}\n<\/code><\/pre>\n\n<ul>\n<li>{s} Use HTTPS if available.<\/li>\n<li>{matomo.url}: The URL to your Matomo installation.<\/li>\n<li>{token_auth}: A token auth (user-menu &gt; Personal &gt; Security).<\/li>\n<\/ul>\n\n<p>There is no need to set user, password or domain name.<\/p>","documentation":"","changelog":"<ul>\n<li>Version 5.0.0 - Compatibility for Matomo &gt; 5.0.0<\/li>\n<li>Version 4.0.0 - Compatibility for Matomo &gt; 4.0.0<\/li>\n<li>Version 3.0.0 - Compatibility for Piwik &gt; 3.0.0<\/li>\n<li>Version 0.4.0 - Compatibility for Piwik &gt; 2.4.0<\/li>\n<li>Version 0.3.0 - Various improvements and translations<\/li>\n<li>Version 0.2.0 - Beta Release<\/li>\n<li>Version 0.1.0 - Alpha Release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ExcludeByDDNS\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ExcludeByDDNS\/changelog"},"consumer":{"license":null}},{"name":"ExcludeCountries","displayName":"Exclude Countries","owner":"Findus23","description":"Exclude or include visitors from selected countries.","homepage":"https:\/\/lw1.at","createdDateTime":"2020-09-01 16:24:03","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries","type":"url"}],"isTheme":false,"keywords":["tracking","geolocation","filter","countries"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries","lastUpdated":"2023-07-22 21:10:02","latestVersion":"0.3.0","numDownloads":35295,"screenshots":["https:\/\/plugins.matomo.org\/ExcludeCountries\/images\/0.3.0\/settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"12","numContributors":"1","lastCommitDate":"2023-07-22 21:08:31"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.2","release":"2020-09-01 16:24:03","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":20,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeCountries\/download\/0.1.2"},{"name":"0.1.3","release":"2020-09-03 09:50:04","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeCountries\/download\/0.1.3"},{"name":"0.1.4","release":"2020-09-04 11:20:04","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeCountries\/download\/0.1.4"},{"name":"0.1.5","release":"2020-09-04 11:38:03","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2774,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeCountries\/download\/0.1.5"},{"name":"0.2.0","release":"2020-10-10 17:50:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14164,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExcludeCountries\/download\/0.2.0"},{"name":"0.3.0","release":"2023-07-22 21:10:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18318,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ExcludeCountries\/commits\/0.3.0","readmeHtml":{"description":"\n\n<p>This plugin allows you to only track visitors from specific countries (or all but specific countries) and discards data from everyone else, reducing the amound of data stored in the database.<\/p>\n\n<p>You can verify that the plugin works by temporarily enabling <a href=\"https:\/\/developer.matomo.org\/api-reference\/tracking-api#debugging-the-tracker\">tracking debugging<\/a> and checking the log.<\/p>\n\n<h3>Important Limitations:<\/h3>\n\n<ul>\n<li>This plugin needs to check the geolocation while recieving the data. This means that every visit is geolocated twice which might cause (a small amount of) additional server load<\/li>\n<li>This plugin depends on your geolocation to be properly set up in Matomo. If the geolocation returns incorrect result, this plugin discards incorrect visitors.<\/li>\n<\/ul>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.3.0<\/h3>\n\n<p>Matomo 5 compatibility<\/p>\n\n<h3>0.2.0<\/h3>\n\n<p>Matomo 4 compatibility<\/p>\n\n<h3>0.1.3<\/h3>\n\n<p>fix bug causing no countries to be selected<\/p>\n\n<h3>0.1.2<\/h3>\n\n<p>fix release<\/p>\n\n<h3>0.1.1<\/h3>\n\n<p>fix release<\/p>\n\n<h3>0.1.0<\/h3>\n\n<p>Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/ExcludeCountries\/download\/0.3.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ExcludeCountries\/changelog"},"consumer":{"license":null}},{"name":"ExposureResearchTools","displayName":"Exposure Research Tools","owner":"BurninLeo","description":"Download unique visits as CSV, and support for merging data with pre-\/post surveys for selective exposure research (see Plugin Website for details).","homepage":"https:\/\/github.com\/BurninLeo\/ExposureResearchTools","createdDateTime":"2016-07-04 13:10:04","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/BurninLeo\/ExposureResearchTools","type":"url"},{"name":"Email","key":"email","value":"mail@dominik-leiner.de","type":"email"}],"isTheme":false,"keywords":["tracking","download","data retrieval","csv","research","selective exposure"],"basePrice":0,"authors":[{"name":"Dominik J. Leiner","email":"leiner@ifkw.lmu.de","homepage":"http:\/\/www.ls1.ifkw.uni-muenchen.de\/personen\/wiss_ma\/leiner_dominik\/index.html"}],"repositoryUrl":"https:\/\/github.com\/BurninLeo\/ExposureResearchTools","lastUpdated":"2018-06-20 13:44:03","latestVersion":"0.1.9","numDownloads":7989,"screenshots":["https:\/\/plugins.matomo.org\/ExposureResearchTools\/images\/0.1.9\/exports_visits.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"25","numContributors":"1","lastCommitDate":"2018-06-20 13:42:42"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2016-07-04 13:10:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":905,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/BurninLeo\/ExposureResearchTools\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExposureResearchTools\/download\/0.1.0"},{"name":"0.1.6","release":"2016-10-12 09:14:03","requires":{"piwik":">=2.16.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":884,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExposureResearchTools\/0.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/BurninLeo\/ExposureResearchTools\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExposureResearchTools\/download\/0.1.6"},{"name":"0.1.7","release":"2016-12-26 15:30:03","requires":{"piwik":">=2.16.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2667,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExposureResearchTools\/0.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/BurninLeo\/ExposureResearchTools\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExposureResearchTools\/download\/0.1.7"},{"name":"0.1.9","release":"2018-06-20 13:44:03","requires":{"piwik":">=2.16.0,<4.0.0-b1","php":">=5.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3533,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExposureResearchTools\/0.1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/BurninLeo\/ExposureResearchTools\/commits\/0.1.9","readmeHtml":{"description":"","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>0.1.0 Original release of the plugin (stable, 2016-07-04)<\/li>\n<li>0.1.4 Added resources (stable, 2016-10-06)\n\n<ul>\n<li>Resources (JavaScript example and SoSci Survey template) were added to integrate a selective exposure experiment into a survey<\/li>\n<li>A reference to the resources was added in the README, in the plugin description, and in the plugin itself<\/li>\n<\/ul><\/li>\n<li>0.1.7 Compatibility with Piwik 3.x\n\n<ul>\n<li>Changes report to appear in Piwik 3.x<\/li>\n<li>Shorten variable names for page times to comply with SPSS (max. 64 characters)<\/li>\n<\/ul><\/li>\n<li>0.1.8 Cleaning\n\n<ul>\n<li>Removed two undefined variable issues that triggered error log entries<\/li>\n<\/ul><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ExposureResearchTools\/download\/0.1.9"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ExposureResearchTools\/changelog"},"consumer":{"license":null}},{"name":"ExtraApiInformation","displayName":"Extra Api Information","owner":"Digitalist-Open-Cloud","description":"Exposes some information via API that is not normally available.","homepage":null,"createdDateTime":"2024-10-08 07:38:02","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraApiInformation","type":"url"},{"name":"Email","key":"email","value":"cloud@digitalist.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraApiInformation\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraApiInformation","type":"url"}],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Digitalist Open Cloud","email":"cloud@digitalist.com","homepage":"https:\/\/digitalist.cloud"},{"name":"Mikke Schir\u00e9n","email":"mikke.schiren@digitalist.com","homepage":"https:\/\/digitalist.cloud"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraApiInformation","lastUpdated":"2024-10-08 07:38:03","latestVersion":"0.1.3","numDownloads":9097,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/ExtraApiInformation\/images\/0.1.3\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2024-10-08 07:37:12"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.3","release":"2024-10-08 07:38:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9097,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraApiInformation\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraApiInformation\/commits\/0.1.3","readmeHtml":{"description":"\n\n<p>Exposes some core information via API that is normally not available in Matomo API.<\/p>\n\n<p>Please note that the information is only available for super users (admin role).<\/p>\n\n\n\n\n  API\n  Information\n  Options\n\n\n\n\n  <code>ExtraApiInformation.getArchivingStatus<\/code>\n  Shows status of archiving (last started and finished)\n  human date format (human=1)\n\n\n  <code>ExtraApiInformation.getInvalidationsCount<\/code>\n  Get number of invalidations (total, queued, in progress)\n  -\n\n\n\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h1>FAQ<\/h1>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Description<\/h2>\n\n<p>Exposes some core information via API that is normally not available in Matomo API.<\/p>\n\n<p>Please note that the information is only available for super users (admin role).<\/p>\n\n\n\n\n  API\n  Information\n  Options\n\n\n\n\n  <code>ExtraApiInformation.getArchivingStatus<\/code>\n  Shows status of archiving (last started and finished)\n  human date format (human=1)\n\n\n  <code>ExtraApiInformation.getInvalidationsCount<\/code>\n  Get number of invalidations (total, queued, in progress)\n  -\n\n\n\n\n<h2>Use cases<\/h2>\n\n<p>Why expose this information? There are couple of use cases:<\/p>\n\n<ul>\n<li>Automation: Having this metrics available opens up for more automation around Matomo.<\/li>\n<li>Matomo Exporter: Using the <a href=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-CLI?tab=readme-ov-file#prometheus-exporter\">Matomo Prometheus exporter<\/a>, you could activate this metrics.<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[0.1.0] - 2024-10-05<\/h2>\n\n<ul>\n<li>Started the plugin with some basic information.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ExtraApiInformation\/download\/0.1.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ExtraApiInformation\/changelog"},"consumer":{"license":null}},{"name":"ExtraTools","displayName":"Extra Tools","owner":"Digitalist-Open-Cloud","description":"Adds automatic installation from the console, db backups etc.","homepage":"https:\/\/digitalist.cloud\/matomo","createdDateTime":"2019-03-06 10:58:04","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/issues","type":"url"}],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Digitalist","email":"cloud@digitalist.com","homepage":"https:\/\/digitalist.cloud"},{"name":"Mikke Schir\u00e9n","email":"mikke.schiren@digitalist.com","homepage":"https:\/\/digitalist.cloud"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools","lastUpdated":"2026-10-14 05:58:05","latestVersion":"5.3.4","numDownloads":290580,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/ExtraTools\/images\/5.3.4\/_cover.png","previews":[],"activity":{"numCommits":"87","numContributors":"6","lastCommitDate":"2026-10-19 08:18:51"},"featured":true,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{"featured":3},"versions":[{"name":"0.1.0-alpha2","release":"2019-03-06 10:58:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-alpha2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-alpha2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-alpha2"},{"name":"0.1.0-alpha3","release":"2019-03-06 11:58:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1641,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-alpha3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-alpha3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-alpha3"},{"name":"0.1.0-alpha4","release":"2019-04-04 12:04:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-alpha4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-alpha4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-alpha4"},{"name":"0.1.0-alpha6","release":"2019-04-04 12:50:05","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":71,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-alpha6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-alpha6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-alpha6"},{"name":"0.1.0-alpha7","release":"2019-04-05 11:42:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":247,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-alpha7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-alpha7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-alpha7"},{"name":"0.1.0-alpha8","release":"2019-05-12 16:50:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":267,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-alpha8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-alpha8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-alpha8"},{"name":"0.1.0-alpha9","release":"2019-06-25 22:06:03","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-alpha9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-alpha9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-alpha9"},{"name":"0.1.0-alpha10","release":"2019-06-25 22:24:03","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":380,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-alpha10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-alpha10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-alpha10"},{"name":"0.1.0-beta1","release":"2019-09-27 12:26:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta1"},{"name":"0.1.0-beta2","release":"2019-09-27 12:58:03","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta2"},{"name":"0.1.0-beta3","release":"2019-09-27 13:24:05","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":488,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta3"},{"name":"0.1.0-beta4","release":"2020-01-31 15:24:04","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":137,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta4"},{"name":"0.1.0-beta5","release":"2020-03-16 16:22:04","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta5"},{"name":"0.1.0-beta6","release":"2020-03-17 00:12:03","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta6"},{"name":"0.1.0-beta7","release":"2020-03-17 08:52:04","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta7"},{"name":"0.1.0-beta8","release":"2020-03-17 10:58:05","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta8"},{"name":"0.1.0-beta9","release":"2020-03-19 12:34:03","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":93,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta9"},{"name":"0.1.0-beta10","release":"2020-04-20 15:02:05","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta10"},{"name":"0.1.0-beta12","release":"2020-04-21 08:36:04","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta12\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta12"},{"name":"0.1.0-beta13","release":"2020-04-21 14:42:06","requires":{"piwik":">=3.8.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":564,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/0.1.0-beta13\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/0.1.0-beta13","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/0.1.0-beta13"},{"name":"3.1.0-beta13","release":"2020-11-21 16:30:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-rc6"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/3.1.0-beta13\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/3.1.0-beta13","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/3.1.0-beta13"},{"name":"4.0.0-beta1","release":"2020-11-21 16:32:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":44,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta1"},{"name":"3.1.0-beta14","release":"2020-12-02 15:58:03","requires":{"piwik":">=3.8.0-stable,<4.0.0-rc6"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/3.1.0-beta14\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/3.1.0-beta14","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/3.1.0-beta14"},{"name":"4.0.0-beta2","release":"2020-12-02 16:00:05","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":60,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta2"},{"name":"3.1.0-beta15","release":"2020-12-11 11:32:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-rc6"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":40,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/3.1.0-beta15\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/3.1.0-beta15","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/3.1.0-beta15"},{"name":"3.1.0-beta16","release":"2020-12-22 16:08:03","requires":{"piwik":">=3.8.0-stable,<4.0.0-rc6"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2635,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/3.1.0-beta16\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/3.1.0-beta16","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/3.1.0-beta16"},{"name":"4.0.0-beta3","release":"2020-12-22 16:10:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1418,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta3"},{"name":"4.0.0-beta4","release":"2021-10-27 15:34:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta4"},{"name":"4.0.0-beta5","release":"2021-10-28 08:44:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":608,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta5"},{"name":"4.0.0-beta6","release":"2022-02-03 12:20:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":84,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta6"},{"name":"4.0.0-beta7","release":"2022-02-14 08:16:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta7"},{"name":"4.0.0-beta8","release":"2022-02-14 08:26:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":424,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta8"},{"name":"4.0.0-beta9","release":"2022-05-21 23:52:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta9"},{"name":"4.0.0-beta10","release":"2022-05-23 13:46:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":107,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.0-beta10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.0-beta10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.0-beta10"},{"name":"4.0.1-beta2","release":"2022-06-10 13:24:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":578,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.1-beta2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.1-beta2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.1-beta2"},{"name":"4.0.1-beta3","release":"2022-07-10 22:38:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":908,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.1-beta3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.1-beta3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.1-beta3"},{"name":"4.0.1-beta4","release":"2022-11-03 12:58:05","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":361,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.0.1-beta4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.0.1-beta4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.0.1-beta4"},{"name":"4.1.0-beta1","release":"2022-12-26 09:52:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.1.0-beta1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.1.0-beta1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.1.0-beta1"},{"name":"4.1.0-beta2","release":"2022-12-26 11:38:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":592,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.1.0-beta2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/v4.1.0-beta2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.1.0-beta2"},{"name":"4.1.0-beta3","release":"2023-04-11 12:26:03","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":266,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.1.0-beta3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.1.0-beta3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.1.0-beta3"},{"name":"5.0.0-beta1","release":"2023-05-05 10:04:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.0-beta1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.0-beta1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.0-beta1"},{"name":"4.1.0-beta4","release":"2023-05-15 09:30:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.1.0-beta4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.1.0-beta4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.1.0-beta4"},{"name":"5.0.0-beta2","release":"2023-05-15 09:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.0-beta2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.0-beta2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.0-beta2"},{"name":"4.1.0-beta5","release":"2023-05-15 09:36:08","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9215,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/4.1.0-beta5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/4.1.0-beta5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/4.1.0-beta5"},{"name":"5.0.0-beta3","release":"2023-05-17 09:50:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2246,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.0-beta3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.0-beta3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.0-beta3"},{"name":"5.0.0-beta4","release":"2024-02-04 14:44:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1309,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.0-beta4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.0-beta4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.0-beta4"},{"name":"5.0.1","release":"2024-04-02 14:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":183,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.1"},{"name":"5.0.2","release":"2024-04-08 14:38:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.2"},{"name":"5.0.3","release":"2024-04-08 15:46:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3396,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.3"},{"name":"5.0.4","release":"2024-08-30 14:30:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1881,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.4"},{"name":"5.0.7","release":"2024-10-24 14:32:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":64,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.7"},{"name":"5.0.8","release":"2024-10-28 12:56:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.0.8"},{"name":"5.1.0","release":"2024-10-28 13:12:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1123,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.1.0"},{"name":"5.1.1","release":"2024-11-18 13:42:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":911,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.1.1"},{"name":"5.1.2","release":"2025-02-21 09:22:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":242350,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.1.2"},{"name":"5.1.4","release":"2025-07-25 11:26:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.1.4"},{"name":"5.1.5","release":"2025-07-25 12:14:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10000,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.1.5"},{"name":"5.2.0","release":"2026-07-25 16:28:04","requires":{"matomo":">=5.1.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.2.0"},{"name":"5.3.0","release":"2026-07-25 19:02:04","requires":{"matomo":">=5.1.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.3.0"},{"name":"5.3.1","release":"2026-07-25 22:22:04","requires":{"matomo":">=5.1.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.3.1"},{"name":"5.3.2","release":"2026-07-26 07:46:04","requires":{"matomo":">=5.1.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5157,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.3.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.3.2"},{"name":"5.3.3","release":"2026-10-13 14:48:05","requires":{"matomo":">=5.1.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.3.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.3.3"},{"name":"5.3.4","release":"2026-10-14 05:58:05","requires":{"matomo":">=5.1.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":480,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ExtraTools\/5.3.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/commits\/5.3.4","readmeHtml":{"description":"","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Some extra cli commands to help with maintaining Matomo. Also providing an phpinfo page in the admin part.\nIntroducing new console commands:<\/p>\n\n<ul>\n<li><code>archive:list<\/code><\/li>\n<li><code>extra:bootstrap<\/code><\/li>\n<li><code>extra:config:get<\/code><\/li>\n<li><code>database:backup<\/code><\/li>\n<li><code>database:create<\/code><\/li>\n<li><code>database:drop<\/code><\/li>\n<li><code>database:import<\/code><\/li>\n<li><code>logger:delete<\/code><\/li>\n<li><code>logger:show<\/code><\/li>\n<li><code>matomo:install<\/code><\/li>\n<li><code>segment:admin<\/code><\/li>\n<li><code>segment:list<\/code><\/li>\n<li><code>site:add<\/code><\/li>\n<li><code>site:delete<\/code><\/li>\n<li><code>site:list<\/code><\/li>\n<li><code>site:url<\/code><\/li>\n<li><code>visits:get<\/code><\/li>\n<li><code>customdimensions:configure-new-dimension<\/code><\/li>\n<\/ul>\n\n<h2>Background<\/h2>\n\n<p>The main reason to doing this plugin was to get automatic installs to work with Matomo, including automatic updates -\nand version controlled deliveries with configuration in json or yaml.<\/p>\n\n<h2>Known bugs<\/h2>\n\n<p>Adding a site as part of <code>matomo:install<\/code> is currently broken, but you could just after the command run the <code>site:add<\/code> command:<\/p>\n\n<pre><code>.\/console site:add --name=Foo --urls=https:\/\/foo.bar\n<\/code><\/pre>\n\n<h2>Dependencies<\/h2>\n\n<p>Sine version 4.1.0-beta1 we are dependent on PHP 8.1<\/p>\n\n<h3>On host<\/h3>\n\n<ul>\n<li>mysql-client or mariadb-client (for database tasks)<\/li>\n<li>PHP json extension<\/li>\n<\/ul>\n\n<h3>In composer.json (Matomo root)<\/h3>\n\n<p>From version 5.1.0:<\/p>\n\n<ul>\n<li><code>composer require symfony\/yaml:~2.6.0<\/code> (moves it from dev)<\/li>\n<\/ul>\n\n<p>From version 4.1.0-beta1:<\/p>\n\n<ul>\n<li><code>composer require symfony\/yaml:~2.6.0<\/code> (moves it from dev)<\/li>\n<li><code>composer require symfony\/process:^5.4<\/code><\/li>\n<\/ul>\n\n<p>Earlier versions:<\/p>\n\n<ul>\n<li><code>composer require symfony\/yaml:~2.6.0<\/code> (moves it from dev)<\/li>\n<li><code>composer require symfony\/process:^3.4<\/code><\/li>\n<\/ul>\n\n<h2>Install<\/h2>\n\n<p>Git clone the plugin into your plugins folder:<\/p>\n\n<pre><code>git clone https:\/\/github.com\/digitalist-se\/extratools.git ExtraTools\n<\/code><\/pre>\n\n<h2>Config<\/h2>\n\n<p>Activate ExtraTools - in UI, or better - in the console:<\/p>\n\n<pre><code>console plugin:activate ExtraTools\n<\/code><\/pre>\n\n<p>Set up a db backup path, use the console (use the path you desire):<\/p>\n\n<pre><code>.\/console config:set 'ExtraTools.db_backup_path=\"\/var\/www\/html\/tmp\"'\n<\/code><\/pre>\n\n<p>Or add it manually to config.ini.php:<\/p>\n\n<pre><code>[ExtraTools]\ndb_backup_path = \"\/var\/www\/html\/tmp\"\n<\/code><\/pre>\n\n<h3>Database SSL\/TLS<\/h3>\n\n<p>The database commands (<code>database:backup<\/code>, <code>database:create<\/code>, <code>database:drop<\/code>,\n<code>database:import<\/code>) shell out to the <code>mysql<\/code>\/<code>mysqldump<\/code>\/<code>mysqladmin<\/code> clients. To\nconnect over SSL\/TLS they read the same SSL keys Matomo uses in the <code>[database]<\/code>\nsection of <code>config.ini.php<\/code>:<\/p>\n\n<pre><code>[database]\nenable_ssl = 1\nssl_ca = \"\/etc\/ssl\/certs\/ca-certificates.crt\"\nssl_cert = \"\/path\/to\/client-cert.pem\"\nssl_key = \"\/path\/to\/client-key.pem\"\nssl_ca_path = \"\/etc\/ssl\/certs\"\nssl_cipher = \"\"\nssl_no_verify = 1\n<\/code><\/pre>\n\n<p>Only <code>enable_ssl<\/code> is required to turn SSL on; the remaining keys are optional.\nSet <code>ssl_no_verify = 1<\/code> to require encryption without verifying the server\ncertificate. The settings are written to a temporary client option file, and\nclient specific options use the <code>loose-<\/code> prefix so they work with both the\nMySQL and MariaDB command line clients.<\/p>\n\n<p>For <code>matomo:install<\/code>, the same keys can be supplied via command line options\n(<code>--db-enable-ssl<\/code>, <code>--db-ssl-ca<\/code>, <code>--db-ssl-cert<\/code>, <code>--db-ssl-key<\/code>,\n<code>--db-ssl-ca-path<\/code>, <code>--db-ssl-cipher<\/code>, <code>--db-ssl-no-verify<\/code>), environment\nvariables, or the <code>database<\/code> section of an install file.<\/p>\n\n<h2>Commands<\/h2>\n\n<h3><code>archive:list<\/code><\/h3>\n\n<p>Gets al list of ongoing or scheduled core archivers, if such exist.<\/p>\n\n<h3><code>extra:bootstrap<\/code><\/h3>\n\n<p>Bootstraps Matomo (config, DI container, plugins) and warms the tracker cache\n(general plus per-site attributes). Use <code>--idsite<\/code> to warm specific sites, or\n<code>--skip-sites<\/code> to only warm the general cache.<\/p>\n\n<h3><code>extra:clear-external-cache<\/code><\/h3>\n\n<p>Clears Matomo's cache entries from the configured external (Redis) cache\nbackend using <code>SCAN<\/code>\/<code>DEL<\/code> instead of <code>FLUSHDB<\/code>. Use this when the regular\n<code>cache:clear<\/code> appears to not clear the cache \u2014 this happens when Redis is\nshared with other applications or the hosting provider disables\/restricts\n<code>FLUSHDB<\/code>\/<code>FLUSHALL<\/code>. Because it only deletes Matomo's own <code>matomocache_*<\/code>\nand <code>eagercache-*<\/code> keys, it is safe to run even if QueuedTracking's Redis\nqueue (<code>trackingQueueV1*<\/code>\/<code>QueuedTrackingLock*<\/code> keys) shares the same\n<code>database<\/code> as the cache \u2014 unlike <code>cache:clear<\/code> or a manual <code>redis-cli\nflushdb<\/code>, which would wipe the queue too. Does nothing (and exits successfully) if Redis is not\nthe configured cache backend.<\/p>\n\n<h3><code>extra:config:get<\/code><\/h3>\n\n<p>Gets a section config.\n@todo - make this more like config:set - so you have more options.<\/p>\n\n<h3><code>database:backup<\/code><\/h3>\n\n<p>Backups the db.<\/p>\n\n<h3><code>database:create<\/code><\/h3>\n\n<p>Creates the db defined i config.ini.php.\nAdding the --force flag stops the command for asking questions.<\/p>\n\n<h3><code>database:drop<\/code><\/h3>\n\n<p>Drops the db defined i config.ini.php - backup first if needed.\nAdding the --force flag stops the command for asking questions.<\/p>\n\n<h3><code>database:import<\/code><\/h3>\n\n<p>Imports database dump to database defined in config.ini.php, so if\nyou already have a installation - it overwrites it.<\/p>\n\n<h3><code>logger:delete<\/code><\/h3>\n\n<p>Removes logging entries from the DB, that is the internal logging in Matomo, not visits on sites.<\/p>\n\n<h3><code>logger:show<\/code><\/h3>\n\n<p>Show logging and query entries of logs from the database, output could be exported to CSV.<\/p>\n\n<h3><code>matomo:install<\/code><\/h3>\n\n<p>To use matomo:install, you need ExtraTools to always be enabled, add <code>always_load_commands_from_plugin=ExtraTools<\/code> to <code>common.config.ini.php<\/code>.<\/p>\n\n<p>Here is how we do it in ad docker image build:<\/p>\n\n<pre><code>    echo \"[General]\" &gt; \/var\/www\/html\/config\/common.config.ini.php; \\\n    echo \"always_load_commands_from_plugin=ExtraTools\" &gt;&gt; \/var\/www\/html\/config\/common.config.ini.php; \\\n<\/code><\/pre>\n\n<p>Installs Matamo. Wipes the current installation - as default it uses settings in\nyour config.ini.php file - but all values could be overridden with arguments or\nenvironment variables.<\/p>\n\n<p>If you have a license for Matomo Premium plugins, set the environment variable <code>MATOMO_LICENSE<\/code> with the correct\nlicense token. The environment variable is set as a normal environment variable, in shell using export, in a\ndocker-compose file, the environment array etc. If the variable is set, Matomo will have the license key set on install.<\/p>\n\n<h3><code>segment:admin<\/code><\/h3>\n\n<p>Administration of segments, only options right now is to delete or activate a segment, a deleted segment could later be activated again.<\/p>\n\n<h3><code>segment:list<\/code><\/h3>\n\n<p>List all segments, with ID, definition, date created and latest updated.<\/p>\n\n<h3><code>site:add<\/code><\/h3>\n\n<p>Adds a new site to track. If a site with the same name already exists, no site is added.<\/p>\n\n<h3><code>site:delete<\/code><\/h3>\n\n<p>Deletes a site with ID provided.<\/p>\n\n<h3><code>site:list<\/code><\/h3>\n\n<p>List sites, with the optional format argument - supported output is text(default), json and yaml.<\/p>\n\n<h3><code>site:url<\/code><\/h3>\n\n<p>Adds one or more URLs to a site.<\/p>\n\n<h3><code>visits:get<\/code><\/h3>\n\n<p>Get all archived visits, for one site or all. For a segment or all segments, for today, or another day etc.<\/p>\n\n<h3><code>customdimensions:configure-new-dimension<\/code><\/h3>\n\n<p>Configure a new custom dimension. BETA.<\/p>\n\n<h3>phpinfo page<\/h3>\n\n<p>Provides a phpinfo page in the admin section. Access it via:\nAdministration \u2192 Extra Tools \u2192 Phpinfo.<\/p>\n\n<p>This displays the PHP configuration information similar to <code>phpinfo()<\/code>.<\/p>\n\n<h3>Invalidated Archives<\/h3>\n\n<p>Lists invalidated archive entries from the database. This helps you see which archives\nhave been invalidated and need to be re-processed by the archiver. Access it via:\nAdministration \u2192 Extra Tools \u2192 Invalidations.<\/p>\n\n<p>Shows the archive name (or \"All visits\" for the default), period type, date, and when it was invalidated.<\/p>\n\n<h4>Requirements<\/h4>\n\n<p>Matomo needs a MySQL\/MariaDB host, with a user setup that is allowed to drop\nthat db.\nThe first user is created as a super user and it is need to have one to\nset up Matomo. If you do not add values in environment variables or options to\nmatomo:install command, it will use the defaults for the user - so important\nthat you change that users password after install.\nMatomo also creates a first site to track, this also has default values that\nyou could override with environment variables or options.<\/p>\n\n<p>You could also use a json-file for configuration - like all the above\nmentioned - and for installing plugins. An example json-file could be found in\nthe docs folder for this plugin.<\/p>\n\n<h4>Environment variables<\/h4>\n\n<p>Supported default environment variables from the official Matomo docker container:<\/p>\n\n<pre><code>MATOMO_DATABASE_HOST\nMATOMO_DATABASE_PORT\nMATOMO_DATABASE_TABLES_PREFIX\nMATOMO_DATABASE_USERNAME\nMATOMO_DATABASE_PASSWORD\nMATOMO_DATABASE_DBNAME\nMATOMO_DATABASE_ADAPTER\n<\/code><\/pre>\n\n<p>Non-default:<\/p>\n\n<pre><code>MATOMO_DATABASE_COLLATION\nMATOMO_DATABASE_CHARSET\nMATOMO_DATABASE_ENABLE_SSL\nMATOMO_DATABASE_SSL_CA\nMATOMO_DATABASE_SSL_CERT\nMATOMO_DATABASE_SSL_KEY\nMATOMO_DATABASE_SSL_CA_PATH\nMATOMO_DATABASE_SSL_CIPHER\nMATOMO_DATABASE_SSL_NO_VERIFY\n<\/code><\/pre>\n\n<p>These could be overridden with (historical reasons):<\/p>\n\n<pre><code>MATOMO_DB_HOST\nMATOMO_DB_PREFIX\nMATOMO_DB_USERNAME\nMATOMO_DB_PASSWORD\nMATOMO_DB_NAME\nMATOMO_DB_COLLATION\nMATOMO_DB_CHARSET\n<\/code><\/pre>\n\n<p>Other environment variables:<\/p>\n\n<pre><code>MATOMO_FIRST_USER_NAME\nMATOMO_FIRST_USER_EMAIL\nMATOMO_FIRST_USER_PASSWORD\n\nMATOMO_FIRST_SITE_NAME\nMATOMO_FIRST_SITE_URL\n\nMATOMO_LOG_TIMESTAMP (1)\n<\/code><\/pre>\n\n<h4>Installation preparation<\/h4>\n\n<p>If you have a config.ini.php in the config dir - delete it.\nRun:<\/p>\n\n<pre><code>console plugin:activate ExtraTools\n<\/code><\/pre>\n\n<p>Then follow one of the Examples below.<\/p>\n\n<h4>Example install 1 (recommended)<\/h4>\n\n<pre><code>console matomo:install --install-file=install.json\n<\/code><\/pre>\n\n<h4>Example install 2<\/h4>\n\n<pre><code>console matomo:install --db-username=myuser --db-pass=password \\\n  --db-host=localhost --db-port=3306 --db-name=matomo --first-site-name=Foo \\\n  --first-site-url=https\/\/foo.bar --first-user='Mr Foo Bar' \\\n  --first-user-email=foo@bar.com --first-user-pass=secret\n<\/code><\/pre>\n\n<h4>Example install 3<\/h4>\n\n<p>Using environment variables, docker-compose.yml example.<\/p>\n\n<pre><code>environment:\n      - MATOMO_DB_USERNAME=myuser\n      - MATOMO_DB_PASSWORD=secret\n      - MATOMO_DB_HOST=mysql\n      - MATOMO_DB_PORT=3306\n      - MATOMO_DB_NAME=matomo\n      - MATOMO_FIRST_USER_NAME=Mr Foo Bar\n      - MATOMO_FIRST_USER_EMAIL=foo@bar.com\n      - MATOMO_FIRST_USER_PASSWORD=secret\n      - MATOMO_FIRST_SITE_NAME=Foo\n      - MATOMO_FIRST_SITE_URL=https:\/\/foo.bar\n<\/code><\/pre>\n\n<h4>Order of values<\/h4>\n\n<p>Highest number = takes over. If you have you mysql server settings in environment\nvariables and provide the option --db-username=myuser, the latter is used for the\ndb username.<\/p>\n\n<ol>\n<li>config.ini.php (created when you install the first time)<\/li>\n<li>Environment variable<\/li>\n<li>Option (matomo:install --db-username=myuser)<\/li>\n<li>File overrides (matom-install --install-file=install.json)<\/li>\n<\/ol>\n\n<h2>CAUTION!<\/h2>\n\n<ul>\n<li><code>matamo:install<\/code> wipes your current installation.<\/li>\n<li><code>database:drop<\/code> - as it says - drops the entire db, make a backup first if you\nwant to save you data, and check if it's ok.<\/li>\n<li><code>database:import<\/code> - writes over your current database.<\/li>\n<li><code>site:delete<\/code> - really deletes a site you have setup in Matomo.<\/li>\n<\/ul>\n\n<p>This plugin comes with <strong>no<\/strong> guarantees. But it's free and open source.\nSo, let's make it better!<\/p>\n\n<h2>Version supported<\/h2>\n\n<p>This plugin requires Matomo &gt;= 5.1.0, &lt; 6.0.0-b1.<\/p>\n\n<h2>Thank you!<\/h2>\n\n<p>This plugin is based on work done by <a href=\"https:\/\/github.com\/nebev\">Ben Evans<\/a> in\nhttps:\/\/github.com\/nebev\/piwik-cli-setup, and also reusing code in Matomo\ncore.<\/p>\n\n<h2>Tests<\/h2>\n\n<p>How to run tests.<\/p>\n\n<h3>PHPstan<\/h3>\n\n<pre><code>docker-compose exec matomo bash -c \"\/var\/www\/html\/plugins\/ExtraTools\/vendor\/bin\/phpstan analyze -c \/var\/www\/html\/plugins\/ExtraTools\/tests\/phpstan.neon  --level=0 plugins\/ExtraTools\/\"\n<\/code><\/pre>\n\n<h3>Phpunit<\/h3>\n\n<pre><code>docker-compose up -d\ndocker-compose exec --user=root matomo bash -c  \"cd plugins\/ExtraTools &amp;&amp; composer install --no-interaction --no-progress\"\ndocker-compose exec matomo .\/console matomo:install --install-file=\/var\/www\/html\/config\/install.json --force\ndocker-compose exec matomo .\/console site:add --name=Foo --urls=https:\/\/foo.bar\ndocker-compose exec matomo touch \/var\/www\/html\/.gitmodules\ndocker-compose exec matomo .\/console development:enable\ndocker-compose exec matomo .\/console config:set --section=tests --key=http_host --value=web\ndocker-compose exec matomo .\/console config:set --section=tests --key=request_uri --value=\/\ndocker-compose exec matomo .\/console config:set --section=database_tests --key=host --value=db\ndocker-compose exec matomo .\/console config:set --section=database_tests --key=username --value=root\ndocker-compose exec matomo .\/console config:set --section=database_tests --key=password --value=root\ndocker-compose exec matomo .\/console config:set --section=database_tests --key=dbname --value=matomo_test\ndocker-compose exec matomo .\/console config:set --section=database_tests --key=tables_prefix --value=\"\"\ndocker-compose exec matomo \/var\/www\/html\/plugins\/ExtraTools\/vendor\/bin\/phpunit -c plugins\/ExtraTools\/tests\/phpunit.xml --coverage-text --testdox --log-junit report.xml\n<\/code><\/pre>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[Unreleased]<\/h2>\n\n<h2>Added<\/h2>\n\n<ul>\n<li><code>extra:clear-external-cache<\/code> command to clear Matomo's cache entries from the external (Redis) cache backend without relying on <code>FLUSHDB<\/code>.<\/li>\n<\/ul>\n\n<h2>[5.3.1] - 2026-07-26<\/h2>\n\n<h2>Fixed<\/h2>\n\n<ul>\n<li>Fix for tagmanager<\/li>\n<\/ul>\n\n<h2>[5.3.0] - 2026-07-25<\/h2>\n\n<h2>Fixed<\/h2>\n\n<ul>\n<li>Rewrite of some parts of the plugin to reduce codebase and remove dead code.<\/li>\n<\/ul>\n\n<h2>Added<\/h2>\n\n<ul>\n<li>Tests together with Digitalist Open Cloud Helm chart for Matomo.<\/li>\n<\/ul>\n\n<h2>[5.2.0] - 2026-07-25<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>SSL\/TLS support for the database commands (<code>database:backup<\/code>, <code>database:create<\/code>, <code>database:drop<\/code>, <code>database:import<\/code>) and <code>matomo:install<\/code>, using the <code>enable_ssl<\/code>, <code>ssl_ca<\/code>, <code>ssl_cert<\/code>, <code>ssl_key<\/code>, <code>ssl_ca_path<\/code>, <code>ssl_cipher<\/code> and <code>ssl_no_verify<\/code> keys from the <code>[database]<\/code> config, matching command line options and environment variables.<\/li>\n<\/ul>\n\n<h2>[5.1.5] - 2025-07-25<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/pull\/48\">Email sending enabled after install<\/a>, thanks @mbrodala<\/li>\n<li><a href=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/pull\/53\">Ensure correct directory with composer\/installers<\/a>, thanks @mbrodala<\/li>\n<li><a href=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-ExtraTools\/pull\/52\">Output \"currency\" in site:list command<\/a>, thanks @mbrodala<\/li>\n<\/ul>\n\n<h2>[5.1.4] - 2025-07-25<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Use ControllerAdmin for admin links.<\/li>\n<\/ul>\n\n<h2>[5.1.3] - 2025-02-21<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li><code>config:get<\/code> renamed to <code>extra:config:get<\/code><\/li>\n<\/ul>\n\n<h2>[5.1.2] - 2025-02-21<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Github actions for tests.<\/li>\n<\/ul>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Code formatting<\/li>\n<\/ul>\n\n<h2>[5.1.1] - 2024-11-18<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Prevent duplicates via \"site:add\" by <a href=\"https:\/\/github.com\/mbrodala\">mbrodala<\/a><\/li>\n<\/ul>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>License info on all files.<\/li>\n<\/ul>\n\n<h2>[5.1.0] - 2024-10-28<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Support for collation and charset - as needed for Matomo 5.1.2<\/li>\n<\/ul>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Drop and Create database functions.<\/li>\n<\/ul>\n\n<h2>[5.0.8] - 2024-10-28<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Running \"matomo:install\" without \"--force\" fails: \"getHelper can not be used\" #41<\/li>\n<li>Missing tables after \"matomo:install\" #44<\/li>\n<\/ul>\n\n<h2>[5.0.4] - 2024-08-30<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Marketplace cover<\/li>\n<\/ul>\n\n<h2>[5.0.3] - 2024-04-08<\/h2>\n\n<h3>Removed<\/h3>\n\n<ul>\n<li>Setting maintenance mode breaks, removing.<\/li>\n<\/ul>\n\n<h2>[5.0.2] - 2024-04-08<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Extra Tools menu in Administration interface.<\/li>\n<li>Documentation page at Administration -&gt; Extra Tools -&gt; Documentation.<\/li>\n<\/ul>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li><code>phpinfo()<\/code> page moved to: Administration -&gt; Extra Tools -&gt; Phpinfo.<\/li>\n<li>Archive validations page moved to: Administration -&gt; Extra Tools -&gt; Invalidations.<\/li>\n<\/ul>\n\n<h3>Removed<\/h3>\n\n<ul>\n<li>Old changelog entries removed, to make it simpler to follow the new format. The old was also badly updated (sorry for that).<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ExtraTools\/download\/5.3.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ExtraTools\/changelog"},"consumer":{"license":null}},{"name":"FacebookPageWidgetByAmperage","displayName":"Facebook Page Widget","owner":"AMPERAGE-Marketing","description":"Show Facebook Page plugin as a configurable widget.","homepage":"https:\/\/www.amperagemarketing.com","createdDateTime":"2018-02-01 03:00:05","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/wiki","type":"url"},{"name":"Email","key":"email","value":"kzeni1@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget","type":"url"}],"isTheme":false,"keywords":["widget","social","dashboard","Facebook","amperage","facebook page"],"basePrice":0,"authors":[{"name":"Amperage Marketing & Fundraising","email":"digital@amperagemarketing.com","homepage":"http:\/\/www.amperagemarketing.com"},{"name":"Kurt Zenisek","email":"kzeni1@gmail.com","homepage":"http:\/\/kzeni.com"}],"repositoryUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget","lastUpdated":"2023-10-02 22:16:06","latestVersion":"5.0.1","numDownloads":30029,"screenshots":["https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/images\/5.0.1\/facebook-page-widget.png","https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/images\/5.0.1\/setting.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"16","numContributors":"1","lastCommitDate":"2023-10-02 22:14:31"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2018-02-01 03:00:05","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1454,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/1.0.0"},{"name":"1.0.1","release":"2018-05-11 14:44:03","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8958,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/1.0.1"},{"name":"1.0.2","release":"2019-08-27 22:04:06","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/1.0.2"},{"name":"1.0.3","release":"2019-08-27 22:06:03","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":656,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/1.0.3"},{"name":"1.0.4","release":"2019-12-16 21:48:03","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1303,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/1.0.4"},{"name":"1.0.5","release":"2020-11-25 04:10:16","requires":{"piwik":">=3.3.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1035,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/1.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/1.0.5"},{"name":"1.0.6","release":"2021-01-28 23:54:03","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1727,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/1.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/1.0.6"},{"name":"1.0.7","release":"2021-01-29 00:10:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5724,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/1.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/1.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/1.0.7"},{"name":"5.0.0","release":"2023-10-02 22:04:10","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/5.0.0"},{"name":"5.0.1","release":"2023-10-02 22:16:06","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9164,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Facebook-Page-Widget\/commits\/5.0.1","readmeHtml":{"description":"\n\n<p>A widget for Matomo (formerly Piwik) that allows you to specify your Facebook Page and it then displays your Facebook Page stats on your dashboard.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>5.0.1<\/h2>\n\n<ul>\n<li>Updated changelog &amp; other metadata for 5.x releases.<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<ul>\n<li>Prepped release for Matomo 5.x while also version-bumping the plugin to 5.0.0 as a base value per Matomo's recommendation\/convention for Matomo 5.x plugins.<\/li>\n<\/ul>\n\n<h2>1.0.7<\/h2>\n\n<ul>\n<li>Version bump Matomo 4 plugin as that is technically newer.<\/li>\n<\/ul>\n\n<h2>1.0.6<\/h2>\n\n<ul>\n<li>Split Matomo 3 and Matomo 4 versions.<\/li>\n<\/ul>\n\n<h2>1.0.5<\/h2>\n\n<ul>\n<li>Confirmed Matomo 4 compliance.<\/li>\n<\/ul>\n\n<h2>1.0.4<\/h2>\n\n<ul>\n<li>Better scoped the widget styles.<\/li>\n<\/ul>\n\n<h2>1.0.3<\/h2>\n\n<ul>\n<li>Matomo plugin marketplace update.<\/li>\n<\/ul>\n\n<h2>1.0.2<\/h2>\n\n<ul>\n<li>Typo correction.<\/li>\n<\/ul>\n\n<h2>1.0.1<\/h2>\n\n<ul>\n<li>Updated text that\u2019s shown when the widget\u2019s loading.<\/li>\n<\/ul>\n\n<h2>1.0<\/h2>\n\n<ul>\n<li>Initial Release.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/FacebookPageWidgetByAmperage\/download\/5.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/FacebookPageWidgetByAmperage\/changelog"},"consumer":{"license":null}},{"name":"FeatureSupport","displayName":"Feature Support","owner":"Chardonneaur","description":"Helps administrators find GitHub issue trackers for installed Matomo features so they can report bugs and request improvements directly to developers.","homepage":"https:\/\/ronan-chardonneau.fr","createdDateTime":"2026-03-09 15:06:02","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/FeatureSupport\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Chardonneaur\/FeatureSupport","type":"url"}],"isTheme":false,"keywords":["github","support","feedback","issues"],"basePrice":0,"authors":[{"name":"Ronan Chardonneau","email":"contact@ronan-chardonneau.fr","homepage":"https:\/\/ronan-chardonneau.fr"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/FeatureSupport","lastUpdated":"2026-03-09 15:06:03","latestVersion":"0.1.1","numDownloads":5470,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-03-09 15:00:10"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2026-03-09 15:06:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5470,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FeatureSupport\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/FeatureSupport\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/FeatureSupport\/download\/0.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/FeatureSupport\/changelog"},"consumer":{"license":null}},{"name":"FeedPress","displayName":"Feed Press","owner":"maximevalette","description":"Displays your FeedPress feed analytics.","homepage":"https:\/\/feedpress.it","createdDateTime":"2013-12-20 07:28:04","donate":{"bitcoin":null},"support":[],"isTheme":false,"keywords":["rss","feed","feedpress","widget","subscribers"],"basePrice":0,"authors":[{"name":"Maxime VALETTE","email":"support@feedpress.it","homepage":"http:\/\/feedpress.it"}],"repositoryUrl":"https:\/\/github.com\/maximevalette\/FeedPressPiwikPlugin","lastUpdated":"2015-04-07 07:58:03","latestVersion":"1.0.2","numDownloads":10096,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"3","numContributors":"1","lastCommitDate":"2015-04-07 07:57:10"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2013-12-20 07:28:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/maximevalette\/FeedPressPiwikPlugin\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FeedPress\/download\/1.0.0"},{"name":"1.0.1","release":"2013-12-20 15:36:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2762,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/maximevalette\/FeedPressPiwikPlugin\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FeedPress\/download\/1.0.1"},{"name":"1.0.2","release":"2015-04-07 07:58:03","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7317,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/maximevalette\/FeedPressPiwikPlugin\/commits\/1.0.2","readmeHtml":{"description":"\n\n<p>This plugin displays your subscribers analytics from FeedPress directly into your Matomo (Piwik) dashboard.<\/p>\n\n","faq":"","documentation":"","changelog":"<h3>1.0.2<\/h3>\n\n<ul>\n<li>Removed deprecated Period::factory()<\/li>\n<\/ul>\n\n<h3>1.0.1<\/h3>\n\n<ul>\n<li>Using Piwik\\Http instead of cURL.<\/li>\n<li>Check in case the feed is too young (less than 10 days old).<\/li>\n<\/ul>\n\n<h3>1.0.0<\/h3>\n\n<ul>\n<li>First version. Enjoy!<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/FeedPress\/download\/1.0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/FeedPress\/changelog"},"consumer":{"license":null}},{"name":"FeinwerkDashboardSharing","displayName":"Feinwerk Dashboard Sharing","owner":"feinwerk-io","description":"Share a Matomo dashboard with your team. Recipients get an auto-synced, read-only copy that always reflects your current version.","homepage":"https:\/\/feinwerk.io","createdDateTime":"2026-10-14 22:22:04","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/plugins.feinwerk.io\/en\/docs\/plugins\/FeinwerkDashboardSharing","type":"url"},{"name":"Email","key":"email","value":"support@feinwerk.io","type":"email"}],"isTheme":false,"keywords":["dashboard","sync","sharing","share","team","read-only"],"basePrice":0,"authors":[{"name":"Peter Boehlke, Feinwerk.io","email":"support@feinwerk.io","homepage":"https:\/\/feinwerk.io"}],"repositoryUrl":"https:\/\/github.com\/feinwerk-io\/plugin-FeinwerkDashboardSharing","lastUpdated":"2026-10-15 09:48:04","latestVersion":"1.0.4","numDownloads":41,"screenshots":["https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/images\/1.0.4\/How_your_team_subscribes_to_one_shared_dashboard.png","https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/images\/1.0.4\/Share_a_dashboard_with_your_team_or_selected_colleagues.png","https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/images\/1.0.4\/Subscribe_to_a_dashboard_shared_with_you.png","https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/images\/1.0.4\/The_share_dialog_in_dark_mode.png","https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/images\/1.0.4\/The_subscribed_copy_is_read-only_and_syncs_on_opening.png"],"coverImage":"https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/images\/1.0.4\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-15 09:46:41"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"1.0.2","release":"2026-10-14 22:22:05","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/feinwerk-io\/plugin-FeinwerkDashboardSharing\/commits\/v1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FeinwerkDashboardSharing\/download\/1.0.2"},{"name":"1.0.4","release":"2026-10-15 09:48:04","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":41,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/feinwerk-io\/plugin-FeinwerkDashboardSharing\/commits\/v1.0.4","readmeHtml":{"description":"\n\n<p>Dashboards in Matomo are personal. If you have built a dashboard that your colleagues should also\nsee, you would normally have to recreate it for each person.<\/p>\n\n<p>FeinwerkDashboardSharing lets you share one of your dashboards:<\/p>\n\n<ul>\n<li><strong>Share with specific users or your whole team:<\/strong> pick the Matomo users who may subscribe, or offer\nthe dashboard to all users who can see one of your websites.<\/li>\n<li><strong>Auto-synced mirror:<\/strong> a subscriber gets their own copy of the dashboard. When you change your\ndashboard, the copy is updated the next time the subscriber opens it.<\/li>\n<li><strong>Read-only for recipients:<\/strong> subscribers can look at the shared dashboard, but cannot change the\nlayout or the widgets of the copy. Your original stays under your control.<\/li>\n<li><strong>Stop sharing at any time:<\/strong> withdrawing a share removes it from the list of available dashboards.<\/li>\n<li><strong>Only within your websites:<\/strong> a shared dashboard is offered only to users who can see at least one\nof your websites (super users see every share). Recipients see the reports with their own\npermissions, so only for websites they can access in Matomo.<\/li>\n<\/ul>\n\n<p>Documentation and more Plugins for Matomo: <a href=\"https:\/\/plugins.feinwerk.io\/en\/plugins\/FeinwerkDashboardSharing\">Feinwerk Plugins<\/a>.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Who can share a dashboard?<\/strong><\/p>\n\n<p>Every signed-in Matomo user can share their own dashboards. Click <em>Share this dashboard<\/em> above the widgets, then choose <em>All users who can see one of your websites<\/em> or enter the logins of specific users. Users with admin access also get a list of users to tick.<\/p>\n\n<p><strong>Who sees a shared dashboard?<\/strong><\/p>\n\n<p>Only users who can see at least one of your websites, whether you share it with all users or with a list of logins. Super users see every share. If you and a subscriber no longer have a website in common, the copy keeps its last version and is no longer synchronised.<\/p>\n\n<p><strong>What do recipients get?<\/strong><\/p>\n\n<p>Their own copy of the dashboard, marked with a people icon in the dashboard menu. The copy is read-only and is synchronised with your original every time it is opened.<\/p>\n\n<p><strong>Do recipients see data of websites they cannot access?<\/strong><\/p>\n\n<p>No. Only the widgets and their layout are shared. Every recipient sees the numbers with their own Matomo permissions, so only for websites they can access.<\/p>\n\n<p><strong>What happens when I stop sharing or remove the original?<\/strong><\/p>\n\n<p>Subscribers keep the last version they received, but it is no longer synchronised. After <em>Stop sharing<\/em> the copy becomes an ordinary dashboard of the subscriber. If you remove the original with Matomo's <em>Remove dashboard<\/em>, its shares end as well.<\/p>\n\n<p><strong>Does it work with per-widget segments?<\/strong><\/p>\n\n<p>Yes, together with FeinwerkDashboardSegment: subscribers then also get the segment and time range of each widget. FeinwerkDashboardSharing works on its own as well.<\/p>\n\n<p><strong>Does the plugin change Matomo?<\/strong><\/p>\n\n<p>No. It modifies neither Matomo core nor the bundled Dashboard plugin and keeps shares and subscriptions in tables of its own.<\/p>\n\n<p><strong>Where do I get help?<\/strong><\/p>\n\n<p>Documentation: https:\/\/plugins.feinwerk.io\/en\/docs\/plugins\/FeinwerkDashboardSharing. Support: support@feinwerk.io.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>1.0.4<\/h2>\n\n<ul>\n<li>Shared dashboards are now offered only to users who can see at least one of the owner's websites, also when they\nwere shared with a list of logins. Super users see every share. Before, a share with all users reached every user of\nthe Matomo instance, and with it the owner's login. A copy whose owner no longer has a website in common with you is\nno longer updated; you keep its last version.<\/li>\n<li>The option for sharing with everyone now says who that is: all users who can see one of your websites.<\/li>\n<li>A subscribed copy no longer takes over widget settings that would change the website, period or segment of a widget,\nor the account it is loaded with. Matomo already refused data of websites the subscriber cannot access; now such\nsettings are not copied at all. The metrics picked for a graph and, with FeinwerkDashboardSegment, the segments and\ntime ranges of single widgets are still carried over.<\/li>\n<li>Share names are limited to 100 characters, the length Matomo allows for dashboard names. Before, subscribing to a\nshare with a longer name could fail.<\/li>\n<li>A share name entered through the HTTP API is stored exactly as entered, like a name entered in the share dialog.<\/li>\n<li>When the plugin is activated, it removes the shares and subscriptions of users who were deleted while it was\ninactive, so a new user with the same login does not get them.<\/li>\n<\/ul>\n\n<h2>1.0.3<\/h2>\n\n<ul>\n<li>Subscribing to a shared dashboard no longer replaces your own main dashboard if you had never changed it. The shared\ndashboard is added next to it.<\/li>\n<li>After \"Unsubscribe\" your main dashboard opens right away, without an error message in the background.<\/li>\n<li>If the list of shares or users cannot be loaded, the share dialog and the import list now say so instead of staying\nempty.<\/li>\n<li>Spaces before or after the share name and the user logins are no longer stored.<\/li>\n<li>The \"Share\" button keeps its colour when you point at it.<\/li>\n<li>If an earlier version had put a shared dashboard in the place of your main dashboard, \"Unsubscribe\" now gives you your\nmain dashboard back.<\/li>\n<li>The \"Share\" button is easier to read in dark mode.<\/li>\n<li>Goal pages and other reports are no longer mistaken for a subscribed dashboard with the same number. Before, opening\nsuch a page could update your copy of the shared dashboard in the background.<\/li>\n<li>Together with FeinwerkDashboardSegment 0.7.1 or later, the owner's changed segments and time ranges of a widget show on\nthe first opening of a subscribed dashboard.<\/li>\n<\/ul>\n\n<h2>1.0.2<\/h2>\n\n<ul>\n<li>Subscribed dashboards are now marked in the dashboard menu: a people icon, and the owner's name (\"Synced from\n\u2026\") when you point at it.<\/li>\n<li>Removing a dashboard with Matomo's own \"Remove dashboard\" now also ends its subscription or its shares. Before,\na dashboard you created afterwards could be taken for the removed one.<\/li>\n<li>Clearer hint in the share dialog: everyone can enter logins; only admins also get a list of users to pick from.<\/li>\n<li>Easier to read labels in the share dialog, in light and dark mode.<\/li>\n<li>Requires PHP 8.1 or newer.<\/li>\n<\/ul>\n\n<h2>1.0.1<\/h2>\n\n<p>This version is for Matomo 5. Matomo 6 support comes with the next major version of the plugin.<\/p>\n\n<h2>1.0.0<\/h2>\n\n<p>Initial standalone release. Dashboard sharing, extracted from FeinwerkDashboardSegment: share a\ndashboard with specific users or everyone; recipients get an auto-synced, read-only copy.\nOptionally carries per-widget segments when FeinwerkDashboardSegment is installed.<\/p>"},"download":"\/api\/2.0\/plugins\/FeinwerkDashboardSharing\/download\/1.0.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/FeinwerkDashboardSharing\/changelog"},"consumer":{"license":null}},{"name":"FeinwerkDataExploration","displayName":"Feinwerk Data Exploration","owner":"feinwerk-io","description":"Explore your raw data on the spot: a free-form table with a secondary dimension and up to five metrics, without creating or archiving a report.","homepage":"https:\/\/feinwerk.io","createdDateTime":"2026-10-20 04:54:03","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/plugins.feinwerk.io\/en\/docs\/plugins\/FeinwerkDataExploration","type":"url"},{"name":"Email","key":"email","value":"support@feinwerk.io","type":"email"}],"isTheme":false,"keywords":["exploration","secondary dimension","free-form table","ad hoc analysis","raw data","GA4 explorations"],"basePrice":0,"authors":[{"name":"Peter Boehlke, Feinwerk.io","email":"support@feinwerk.io","homepage":"https:\/\/feinwerk.io"}],"repositoryUrl":"https:\/\/github.com\/feinwerk-io\/plugin-FeinwerkDataExploration","lastUpdated":"2026-10-20 19:08:05","latestVersion":"0.3.1","numDownloads":25,"screenshots":["https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/Chart_and_table_in_dark_mode.png","https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/Choose_the_second_dimension_with_search_and_groups.png","https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/Combine_a_dimension_a_second_dimension_and_metrics_in_a_chart_and_a_table.png","https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/Explore_a_report_row_or_the_whole_report_with_the_flask_icon.png","https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/Filter_break_down_or_see_the_visits_of_any_result_row.png","https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/Page_URLs_by_event_category_with_a_row_filter.png","https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/Save_explorations_for_yourself_or_share_them_with_your_team.png","https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/Settings_for_limits_read_replica_and_access.png","https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/The_System_Check_shows_how_explorations_run.png"],"coverImage":"https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/images\/0.3.1\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-20 19:06:02"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"0.1.1","release":"2026-10-20 04:54:04","requires":{"matomo":">=5.12.0,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/feinwerk-io\/plugin-FeinwerkDataExploration\/commits\/v0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FeinwerkDataExploration\/download\/0.1.1"},{"name":"0.2.0","release":"2026-10-20 13:54:06","requires":{"matomo":">=5.12.0,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/0.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/feinwerk-io\/plugin-FeinwerkDataExploration\/commits\/v0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FeinwerkDataExploration\/download\/0.2.0"},{"name":"0.3.0","release":"2026-10-20 14:42:05","requires":{"matomo":">=5.12.0,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/0.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/feinwerk-io\/plugin-FeinwerkDataExploration\/commits\/v0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FeinwerkDataExploration\/download\/0.3.0"},{"name":"0.3.1","release":"2026-10-20 19:08:05","requires":{"matomo":">=5.12.0,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/0.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/feinwerk-io\/plugin-FeinwerkDataExploration\/commits\/v0.3.1","readmeHtml":{"description":"\n\n<p>Matomo's reports are archived: they are fast, but you only get the combinations someone has set up in advance.\nQuestions like \"which browsers do visitors from our newsletter use?\" or \"which events happen on which page?\" need a\nsecondary dimension or a quick cross table, often just once.<\/p>\n\n<p>Feinwerk Data Exploration answers them directly from the raw data of your website:<\/p>\n\n<ul>\n<li><strong>Free-form table:<\/strong> choose a dimension, an optional secondary dimension and up to five metrics. The table appears\nat once, one row per combination, sortable by every column.<\/li>\n<li><strong>Many dimensions:<\/strong> channel type, referrer, keyword, referrer URL, campaign name, source and medium, continent,\ncountry, region, city, language, device type, brand and model, operating system and its version, browser and its\nversion, screen resolution, date, weekday, hour, entry and exit pages, page URLs and titles, event category, action\nand name, downloads, outlinks, site search keywords, visitor type, visit number, \"visit converted\" and your Custom\nDimensions (visit and action scope).<\/li>\n<li><strong>Visit, goal and action metrics:<\/strong> visits, unique visitors, actions, bounce rate, average visit duration, actions\nper visit, maximum actions in one visit, conversions (all goals or one goal), conversion rate, revenue, pageviews,\nunique pageviews, events, sum and average of event values, downloads, outlinks and site searches.<\/li>\n<li><strong>Save and share:<\/strong> save an exploration with its segment, for yourself or (with write access) for everyone who may\nuse explorations on the website, and open it again from the list at the top of the page.<\/li>\n<li><strong>Filters:<\/strong> every Matomo segment, plus simple row filters: a dimension contains, equals or does not contain a\ntext; a metric is greater or less than a number.<\/li>\n<li><strong>Open from your reports:<\/strong> \"Open in exploration\" under the standard reports (channels, referrers, keywords,\ncontinents, countries, devices, browsers and their versions, page URLs, events, campaigns and more) opens the exploration with that report's dimension, period and segment, and \"Explore\nthis row\" on a report row opens it on that row's visits, ready to break them down by a second dimension.<\/li>\n<li><strong>A menu on every row:<\/strong> filter to the row's value, break it down by a second dimension, or show the visits behind\nit in Matomo's Visits Log.<\/li>\n<li><strong>Chart, table or both:<\/strong> bars for every dimension, lines over time for date, hour and weekday (one line per value\nof the secondary dimension); the chart shows one of the chosen metrics.<\/li>\n<li><strong>Export and share:<\/strong> export as CSV or TSV, or copy the link: the exploration is part of the URL.<\/li>\n<li><strong>Safe for your Matomo:<\/strong> at most 31 days per exploration and 1,000 rows, a size check before every query (a\nperiod that is too large gets an offer of its most recent days that fit), a query time limit, at most two\nexplorations at the same time, results cached, and queries on the read replica if your Matomo has one. Super users\ncan adjust these limits (31 days and 1,000 rows are the maximum), and Matomo's System Check shows how explorations\nrun on your server.<\/li>\n<li><strong>Light and dark mode, English and German.<\/strong><\/li>\n<\/ul>\n\n<p>Documentation and more Plugins for Matomo: <a href=\"https:\/\/plugins.feinwerk.io\/en\/plugins\/FeinwerkDataExploration\">Feinwerk Plugins<\/a>.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How is this different from archived reports?<\/strong><\/p>\n\n<p>Archived reports last, keep a long history and serve dashboard widgets and scheduled emails. Feinwerk Data\nExploration is for questions you ask once or now: no setup, no waiting for archiving, at most 31 days, nothing is\nsaved as a report.<\/p>\n\n<p><strong>What does a saved exploration keep, and who sees it?<\/strong><\/p>\n\n<p>Its dimensions, metrics, goal, filters, sorting, number of rows, view and chart metric, and its segment. Not the\nperiod: it opens with the period you have selected, so one exploration serves last week as well as today. A private\nexploration is seen only by you; a shared one by everyone who may use explorations on the website (never by\nanonymous users). Sharing needs at least write access to the website; with view access you save explorations for\nyourself. Only the person who saved it, or a super user, can change or delete it. Each person can save up\nto 100 explorations per website.<\/p>\n\n<p><strong>Why at most 31 days?<\/strong><\/p>\n\n<p>Explorations read raw data. A month keeps the queries fast and protects your database. For long periods, archived\nreports are the right tool.<\/p>\n\n<p><strong>Why can anonymous users not use explorations?<\/strong><\/p>\n\n<p>Explorations query raw data and can be expensive, so they are only for signed-in users, even when anonymous users\nmay see the site's reports.<\/p>\n\n<p><strong>Why do the visits next to page URLs not add up to the total?<\/strong><\/p>\n\n<p>Next to an action dimension, visits count the visits that had this action. A visit with three pages counts on three\nrows.<\/p>\n\n<p><strong>Why can an exploration differ from an archived report?<\/strong><\/p>\n\n<p>If Matomo deletes old raw data (Administration \u2192 Privacy \u2192 Anonymize data \u2192 delete old raw data), explorations only\nsee the days still present; the page shows the earliest complete day. Archived reports may also group rare values\nunder \"Others\"; explorations list single values up to the row limit instead.<\/p>\n\n<p><strong>Does an exploration slow down Matomo?<\/strong><\/p>\n\n<p>Every exploration checks the number of visits first and offers a shorter period when one is too large, stops queries\nthat take too long, and runs at most two at the same time. If your Matomo has a read replica, explorations use it.<\/p>\n\n<p><strong>How does it behave on large websites and long periods?<\/strong><\/p>\n\n<p>An exploration reads the raw data of the period, so its time grows with the rows it reads: visits for visit dimensions\n(channel, country, device), actions for page, event, download or outlink dimensions, which are often many times the\nvisits. Before exploring, the page counts the visits of the period: above a quarter of the threshold (default\n2 million) it warns, above the threshold it offers the most recent days of the period that fit. A query that\ntakes longer than the time limit (default 30 seconds) is stopped, and after a slow exploration the page says how to\nmake it faster. Results, visit counts and filter values are kept for an hour (five minutes while today is included),\nso going back to an earlier exploration is instant, and a few quick changes start only one query.<\/p>\n\n<p><strong>What happens when a period is too large?<\/strong><\/p>\n\n<p>The page offers the most recent days of the period that fit the threshold, and one click loads them. When even a\nsingle day is too large, super users can raise the visit threshold in the settings (a segment does not help here:\nthe threshold counts all visits of the period).<\/p>\n\n<p><strong>Where do administrators see how explorations run?<\/strong><\/p>\n\n<p>In Matomo's System Check (<strong>Administration \u2192 Diagnostic \u2192 System Check<\/strong>): whether a read replica is used, whether\nthe database stops long queries, whether old raw data is deleted, and the limits in force.<\/p>\n\n<p><strong>What can I do when an exploration stops at the time limit?<\/strong><\/p>\n\n<ul>\n<li>Choose a shorter period, for example one week instead of a month.<\/li>\n<li>Add a segment, so fewer visits are read.<\/li>\n<li>Use a visit dimension instead of pages or events, or leave out the action metrics.<\/li>\n<li>Super users can let explorations run on a read replica (<code>[database_reader]<\/code> in <code>config\/config.ini.php<\/code>) and raise\nthe time limit when the database has room for it.<\/li>\n<li>Database operators of large instances: enough memory for temporary tables (MariaDB: <code>tmp_table_size<\/code> and\n<code>max_heap_table_size<\/code>, MySQL 8: <code>temptable_max_ram<\/code>) and a buffer pool that holds the indexes of the log tables\nhelp large explorations.<\/li>\n<li>For questions you ask regularly over long periods, archived reports are the better tool.<\/li>\n<\/ul>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>0.3.1<\/h2>\n\n<ul>\n<li>A result with a single row says \"1 row\" instead of \"1 rows\".<\/li>\n<\/ul>\n\n<h2>0.3.0<\/h2>\n\n<ul>\n<li>Sharing an exploration with the website's users needs at least write access to the website. With view access you\nsave explorations for yourself.<\/li>\n<li>\"Open in exploration\" also under the reports of websites, search engines, social networks, AI assistants and\nkeywords (each opens on the visits of its channel), continents, visits by visit number, device brands and models,\nand operating system and browser versions.<\/li>\n<\/ul>\n\n<h2>0.2.0<\/h2>\n\n<ul>\n<li>Save explorations and open them again: for yourself only, or for everyone who may use explorations on the website.\nA saved exploration keeps its settings and segment, the period stays the one you have selected.<\/li>\n<li>Eight more dimensions: keyword, referrer URL, visit number, continent, device brand, device model, operating system\nversion and browser version.<\/li>\n<li>Three more metrics: average event value, site searches and maximum actions in one visit.<\/li>\n<li>\"None\" in the choice of the second dimension is no longer written in capitals.<\/li>\n<li>The settings use one term for the read replica, and the plugin is named \"Feinwerk Data Exploration\".<\/li>\n<\/ul>\n\n<h2>0.1.1<\/h2>\n\n<ul>\n<li>Long values such as page URLs wrap in the result table instead of running into the next column.<\/li>\n<\/ul>\n\n<h2>0.1.0<\/h2>\n\n<p>First version for Matomo 5.12 and newer.<\/p>\n\n<ul>\n<li>Free-form table on the raw data: one dimension, an optional secondary dimension and up to five metrics, sortable\nby every column, up to 1,000 rows.<\/li>\n<li>Dimensions for acquisition, visitors, technology, time, visits, behaviour (pages, events, downloads, outlinks,\nsite search) and Custom Dimensions; campaign source and medium with Marketing Campaigns Reporting, the channel group\nwith Feinwerk Channel Grouping.<\/li>\n<li>Visit, goal and action metrics.<\/li>\n<li>Results as a table, a chart or both: bars per row, lines over time for date, hour and weekday.<\/li>\n<li>Matomo segments and row filters on dimensions and metrics.<\/li>\n<li>\"Open in exploration\" under the standard reports, and \"Explore this row\" on their rows.<\/li>\n<li>A menu on every result row: filter to this value, break it down by a second dimension, show these visits.<\/li>\n<li>A period that is too large gets an offer of its most recent days that fit.<\/li>\n<li>An entry in Matomo's System Check. No explorations on roll-up sites.<\/li>\n<li>Export as CSV or TSV, shareable links.<\/li>\n<li>Protection of your Matomo: at most 31 days, a size check before every query, a query time limit, at most two\nexplorations at the same time, cached results, read replica support. Settings for super users.<\/li>\n<li>Light and dark mode, English and German.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/FeinwerkDataExploration\/download\/0.3.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/FeinwerkDataExploration\/changelog"},"consumer":{"license":null}},{"name":"FlagCounter","displayName":"Flag Counter","owner":"sgiehl","description":"This plugin allows you to include a simple statistic in your website showing the flags and hits of the countries your visitors came from.","homepage":"http:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter","createdDateTime":"2015-01-05 23:22:04","donate":{"paypal":"stefangiehl@web.de","flattr":"https:\/\/flattr.com\/thing\/2578144\/sgiehl","bitcoin":null},"support":[],"isTheme":false,"keywords":["flag","flagcounter"],"basePrice":0,"authors":[{"name":"Stefan Giehl","email":"stefan@matomo.org","homepage":"http:\/\/github.com\/sgiehl"}],"repositoryUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter","lastUpdated":"2026-08-31 07:52:03","latestVersion":"6.0.0","numDownloads":48400,"screenshots":["https:\/\/plugins.matomo.org\/FlagCounter\/images\/6.0.0\/counter1.png","https:\/\/plugins.matomo.org\/FlagCounter\/images\/6.0.0\/counter2.png","https:\/\/plugins.matomo.org\/FlagCounter\/images\/6.0.0\/counter3.png","https:\/\/plugins.matomo.org\/FlagCounter\/images\/6.0.0\/counter4.png","https:\/\/plugins.matomo.org\/FlagCounter\/images\/6.0.0\/settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"91","numContributors":"12","lastCommitDate":"2026-10-08 13:58:55"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1","release":"2015-01-05 23:22:04","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":369,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/0.1"},{"name":"0.2","release":"2015-02-08 12:22:04","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":533,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/0.2"},{"name":"0.3","release":"2015-04-06 11:44:03","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":212,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/0.3"},{"name":"0.3.1","release":"2015-04-15 20:06:03","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":503,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/0.3.1"},{"name":"0.3.2","release":"2015-06-01 07:10:04","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":734,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/0.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/0.3.2"},{"name":"0.4.0","release":"2015-08-15 18:54:04","requires":{"piwik":">=2.4.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4157,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/0.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/0.4.0"},{"name":"3.0.0","release":"2016-09-17 16:20:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2641,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/3.0.0"},{"name":"3.0.1","release":"2017-04-18 10:42:18","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1010,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/3.0.1"},{"name":"3.0.3","release":"2017-06-08 08:08:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9148,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/3.0.3"},{"name":"4.0.0","release":"2020-08-31 12:06:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14976,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/4.0.0"},{"name":"5.0.0","release":"2023-08-21 16:54:03","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14040,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/5.0.0"},{"name":"6.0.0","release":"2026-08-31 07:52:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":77,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-FlagCounter\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugin allows you to include a small image or iframe in your website displaying the flags and total hits of the countries your website visitors came from<\/p>\n\n<p>Please keep in mind that everyone will be able to see that kind of statistic as this plugin does not consider the access rights.<\/p>\n\n<h3>Requirements<\/h3>\n\n<p><a href=\"https:\/\/github.com\/matomo-org\/matomo\">Matomo<\/a> 2.0.4 or higher is required.\nGD library including ttf support.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Configurable with following parameters:\n\n<ul>\n<li>idSite: Website to display<\/li>\n<li>period: period to display<\/li>\n<li>date: date to display<\/li>\n<li>cols: count of columns to display (default 2)<\/li>\n<li>rows: count of rows to display (default 5)<\/li>\n<li>showflag: show flags (default 1)<\/li>\n<li>showcountryode: show country codes (default 0)<\/li>\n<li>font: font family to use<\/li>\n<li>fontsize: font size to use (between 2 and 30; default 12)<\/li>\n<li>fontcolor: font color to use (rgb value; default 0,0,0)<\/li>\n<\/ul><\/li>\n<li>Generates a transparent PNG image showing the flag icons and their total hits<\/li>\n<li>Generates simple HTML to be included as iframe<\/li>\n<\/ul>\n\n","faq":"<p><strong>The image is not displayed. What can I do?<\/strong><\/p>\n\n<p>Maybe you have some kind of access restriction for your Matomo like http auth. The Url needs to be public accessible, or at least accessible to those, who should be able to see the counter.<\/p>\n\n<p><strong>How can I display the counter for all data in the past<\/strong><\/p>\n\n<p>To do that, set period to <code>range<\/code> and date to something like <code>1992-01-01,today<\/code>.<\/p>\n\n<p>The full URL for the image would then look like:<\/p>\n\n<pre><code>http:\/\/matomo.url\/index.php?module=FlagCounter&amp;action=image&amp;idSite=1&amp;period=range&amp;date=1992-01-01,today&amp;cols=2&amp;rows=6\n<\/code><\/pre>\n\n<p>This URL can then be simply used in an img tag on your site. e.g.<\/p>\n\n<pre><code>&lt;img src=\"http:\/\/matomo.url\/index.php?module=FlagCounter&amp;action=image&amp;idSite=1&amp;period=range&amp;date=1992-01-01,today&amp;cols=2&amp;rows=6\" \/&gt;\n<\/code><\/pre>\n\n<p><strong>Can I use a custom font?<\/strong><\/p>\n\n<p>Currently all ttf fonts located in the <code>fonts<\/code> directory within this plugin are available for usage. If you place a new font there, you should be able to use it.<\/p>","documentation":"","changelog":"<ul>\n<li>Version 0.1 - Alpha Release<\/li>\n<li>Version 0.2\n\n<ul>\n<li>improved image generation (automatic spacing between items)<\/li>\n<li>possibility to show country codes besides or instead of the flags<\/li>\n<\/ul><\/li>\n<li>Version 0.3\n\n<ul>\n<li>added ability to choose a font family, size &amp; color<\/li>\n<\/ul><\/li>\n<li>Version 3.0.0\n\n<ul>\n<li>Compatibility for Piwik 3<\/li>\n<\/ul><\/li>\n<li>Version 3.0.3\n\n<ul>\n<li>fixed caching bug with multiple sites<\/li>\n<\/ul><\/li>\n<li>Version 4.0.0\n\n<ul>\n<li>Compatibility with Matomo 4<\/li>\n<\/ul><\/li>\n<li>Version 5.0.0\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/FlagCounter\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/FlagCounter\/changelog"},"consumer":{"license":null}},{"name":"ForceOIDCLogin","displayName":"Force OIDCLogin","owner":"ihersua","description":"Force exclusive OIDC login by redirecting standard login attempts.","homepage":"https:\/\/github.com\/ihersua\/ForceOIDCLogin","createdDateTime":"2025-05-09 17:12:02","donate":{},"support":[{"name":"Email","key":"email","value":"tech@ihersua.es","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/ihersua\/ForceOIDCLogin\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/ihersua\/ForceOIDCLogin","type":"url"}],"isTheme":false,"keywords":["login","authentication","sso","OIDC"],"basePrice":0,"authors":[{"name":"Idafe Hern\u00e1ndez Su\u00e1rez","email":"tech@ihersua.es","homepage":"https:\/\/ihersua.es"}],"repositoryUrl":"https:\/\/github.com\/ihersua\/ForceOIDCLogin","lastUpdated":"2026-09-13 17:48:03","latestVersion":"6.0.0","numDownloads":9463,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-09-13 17:49:37"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2025-05-09 17:12:02","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3056,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ForceOIDCLogin\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ihersua\/ForceOIDCLogin\/commits\/v1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceOIDCLogin\/download\/0.1.0"},{"name":"0.1.2","release":"2026-01-09 12:48:03","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6354,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ForceOIDCLogin\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ihersua\/ForceOIDCLogin\/commits\/v.0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceOIDCLogin\/download\/0.1.2"},{"name":"6.0.0","release":"2026-09-13 17:48:03","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":53,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ForceOIDCLogin\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ihersua\/ForceOIDCLogin\/commits\/v6.0.0","readmeHtml":{"description":"\n\n<p><strong>ForceOIDCLogin<\/strong> is a Matomo plugin that enforces exclusive authentication through OpenID Connect (OIDC), disabling the standard username and password login. This plugin is ideal for organizations implementing centralized identity management and Single Sign-On (SSO) solutions.<\/p>\n\n<p>This plugin integrates with <a href=\"https:\/\/plugins.matomo.org\/RebelOIDC\">RebelOIDC<\/a>.<\/p>\n\n<p>Make sure <code>Disable direct login url<\/code> is unchecked.<\/p>\n\n","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/ForceOIDCLogin\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ForceOIDCLogin\/changelog"},"consumer":{"license":null}},{"name":"ForceSSL","displayName":"Force SSL","owner":"matomo-org","description":"Automatically redirect all http requests to https. For security reasons it is recommended to always use Matomo Analytics over https (SSL).","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2017-01-06 03:40:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/innocraft\/plugin-ForceSSL","type":"url"}],"isTheme":false,"keywords":["security","https","ssl","analytics","certificate","secure","privacy"],"basePrice":0,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL","lastUpdated":"2026-08-31 05:56:02","latestVersion":"6.0.0","numDownloads":460960,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/ForceSSL.png","previews":[],"activity":{"numCommits":"24","numContributors":"5","lastCommitDate":"2026-10-21 06:42:16"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"security","categories":["security"],"promotions":{},"versions":[{"name":"3.0.0","release":"2017-01-06 03:40:03","requires":{"piwik":">=3.0.0-b1,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1426,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceSSL\/download\/3.0.0"},{"name":"3.0.1","release":"2017-02-14 19:04:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11630,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceSSL\/download\/3.0.1"},{"name":"3.0.2","release":"2018-09-21 02:04:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13543,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/commits\/0.0.124","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceSSL\/download\/3.0.2"},{"name":"4.0.0","release":"2020-07-30 04:18:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":510,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceSSL\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:30:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":166388,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceSSL\/download\/4.0.1"},{"name":"5.0.0","release":"2023-05-08 01:12:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":156614,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceSSL\/download\/5.0.0"},{"name":"5.0.1","release":"2024-04-22 06:06:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":110714,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ForceSSL\/download\/5.0.1"},{"name":"6.0.0","release":"2026-08-31 05:56:02","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":135,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-ForceSSL\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>When you activate this plugin, it will automatically redirect all \"http:\/\/\" requests to \"https:\/\/\" in the Matomo UI and API.\nIt also makes sure that the generated tracking code will use HTTPS. This is especially useful if your tracking code is\n embedded into your website automatically, for example via the WP-Matomo (WP-Piwik) Wordpress plugin.<\/p>\n\n<p>For security and privacy reasons you should always use Matomo over HTTPS (SSL).<\/p>\n\n<p>Note: If SSL or HTTPS is not correctly configured on your server, activating this plugin may break your Matomo. In such \na case you can disable this plugin again by removing the line <code>Plugins[] = ForceSSL<\/code> from the <code>config\/config.ini.php<\/code> file. \nIn the same file there may be also a line <code>force_ssl = 1<\/code>. If you find such an entry and your server is not configured properly,\n we recommend to remove this line from the config file.<\/p>\n\n<p>Any questions, feature wishes or problems? <a href=\"https:\/\/www.innocraft.com\">Get in touch with us<\/a>, we are happy to help.<\/p>\n\n<h3>About InnoCraft<\/h3>\n\n<p>We at <a href=\"https:\/\/www.innocraft.com\">InnoCraft<\/a> are the creators of Matomo and know it better than anyone else. \nThis means all plugins are perfectly integrated into Matomo and come with outstanding features and quality to grow \nyour business. We help our clients get started, configure, monitor and make the most of their Matomo analytics service. \nWe also offer unique analytics products and services that help grow your business and meet the needs of medium and large \nbusinesses alike.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.0\n- Compatibility with Matomo 6<\/p>\n\n<p>5.0.1\n- Added plugin category for Marketplace<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.0.0\n - Compatibility with Matomo 4<\/p>\n\n<p>3.0.1\n - Force SSL in tracking code<\/p>\n\n<p>3.0.0 \n - Initial version<\/p>"},"download":"\/api\/2.0\/plugins\/ForceSSL\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ForceSSL\/changelog"},"consumer":{"license":null}},{"name":"FormAnalytics","displayName":"Form Analytics","owner":"matomo-org","description":"Increase conversions on your online forms and lose less visitors by learning everything about your users behavior and their pain points on your forms.","homepage":"https:\/\/plugins.matomo.org\/FormAnalytics","createdDateTime":"2017-03-09 22:11:54","donate":{},"support":[],"isTheme":false,"keywords":["optimization","analytics","improve","cro","form","web","online"],"basePrice":165,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-12 06:37:48","latestVersion":"6.0.5","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/1_Overview.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/2_Real_Time.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/3_Form_Overview.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/4_Form_By_Page_URL.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/5_Drop_Off_Fields.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/6_Entry_Fields.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/7_Field_Timings.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/8_Field_Size.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/9_Most_Used_Fields.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/10_Most_Corrected_Fields.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/11_Unneeded_Fields.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/12_Row_Evolution.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/13_Row_Evolution_Page.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/14_Map_Form_Field.png","https:\/\/plugins.matomo.org\/FormAnalytics\/images\/6.0.5\/15_Visitor_Log.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/FormAnalytics.png","previews":[{"type":"demo","provider":"link","url":"https:\/\/demo.matomo.cloud\/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#?idSite=1&period=day&date=yesterday&category=FormAnalytics_Forms&subcategory=General_Overview"},{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/kjaO-EXk7wU","id":"kjaO-EXk7wU"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/FormAnalytics","variations":[{"product_variation_id":130482,"price":"149","prettyPrice":"149EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130482&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130482","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/formanalytics\/?attribute_type=1+to+4+users&add-to-cart=3196&variation_id=130482&aelia_cs_currency=EUR"},{"product_variation_id":130482,"price":"179","prettyPrice":"USD179","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130482&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130482","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/formanalytics\/?attribute_type=1+to+4+users&add-to-cart=3196&variation_id=130482&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130483,"price":"1189","prettyPrice":"1189EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130483&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130483","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/formanalytics\/?attribute_type=Up+to+20+users&add-to-cart=3196&variation_id=130483&aelia_cs_currency=EUR"},{"product_variation_id":130483,"price":"1429","prettyPrice":"USD1429","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130483&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130483","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/formanalytics\/?attribute_type=Up+to+20+users&add-to-cart=3196&variation_id=130483&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130484,"price":"2359","prettyPrice":"2359EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130484&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130484","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/formanalytics\/?attribute_type=Up+to+50+users&add-to-cart=3196&variation_id=130484&aelia_cs_currency=EUR"},{"product_variation_id":130484,"price":"2829","prettyPrice":"USD2829","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130484&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3196&variation_id=130484","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/formanalytics\/?attribute_type=Up+to+50+users&add-to-cart=3196&variation_id=130484&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/formanalytics\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"4.67","ratingCount":3,"reviewCount":3}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{},"versions":[{"name":"6.0.5","release":"2026-10-12 06:37:48","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/FormAnalytics\/6.0.5\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Get to know every detail of your forms with in-depth analytics. Make reliable decisions based on user interactions, and adjust your forms for higher conversions.<\/p>\n\n<p>Your website's forms are often the gateway to conversions. They're essential for capturing leads, understanding visitor intent, and securing online transactions. But how do you know if they're performing at their peak?<\/p>\n\n<p>Matomo's Form Analytics plugin dives deeper than typical analytics, revealing not just how many people visit your forms but also where they hesitate, what causes drop-offs, and which fields boost or hinder your conversions.<\/p>\n\n<p><em>\u201cWe made specific adjustments based on Form Analytics, resulting in 3 times the leads in just a couple of days.\u201d<\/em><\/p>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:25%;font-weight:bold;\">\nJess Dunbar\n<br \/>\nMarketing Lead at Concrete CMS  \n<\/div>\n<\/div>\n\n<h3>How Form Analytics Works<\/h3>\n\n<h4>Get an Overview of Your Forms' Performance<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Explore how visitors interact with your forms \u2014 from those who begin and then abandon to those who return to complete their inputs.<\/p>\n<p>Identify any barriers they might face and address them swiftly to lift your conversions.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/FormAnalytics\/image1.png\" style=\"margin-left:24px;\" alt=\"Get an Overview of Your Forms' Performance\" \/>\n<\/div>\n<\/div>\n\n<h4>Comprehensive Form Analytics at Your Fingertips<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>See every form metric you can think of in one simple dashboard. Identify trends and visitor behaviours, such as the time to complete a form.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/FormAnalytics\/image2.gif\" style=\"margin-left:24px;\" alt=\"Comprehensive Form Analytics at Your Fingertips\" \/>\n<\/div>\n<\/div>\n\n<h4>Dive Deep into Your Form Field's Performance<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Gain crystal-clear insights into the journey of users through each form field. Discover where they begin and where hesitations occur. Track metrics like the average time spent on each field. <\/p>\n<p>Pave the way for smoother visitor interactions and elevated conversion rates.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/FormAnalytics\/image3.gif\" style=\"margin-left:24px;\" alt=\"Dive Deep into Your Form Field's Performance\" \/>\n<\/div>\n<\/div>\n\n<h4>Discover Who's Behind Every Form Submission<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Gain a deeper understanding of those who interact with your forms. Dive into details like user location, browser usage, and pages visited.<\/p>\n<p>Evolve your messaging and design to resonate better and boost conversions with this unparalleled level of visitor insights. <\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/FormAnalytics\/image4.gif\" style=\"margin-left:24px;\" alt=\"Discover Who's Behind Every Form Submission\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Form Analytics Today<\/h3>\n\n<p>Unlock the hidden stories within your forms. With the Form Analytics plugin, you'll see every nuance of user behaviour, guiding you to make informed, impactful changes. Go beyond data and build a solid foundation for your site's long-term success.<\/p>\n\n<p>Start your 30-day free trial today and let your forms lead the way.<\/p>\n\n<h3>Reporting features<\/h3>\n\n<ul>\n<li>Have a look at the <a href=\"https:\/\/matomo.org\/faq\/form-analytics\/faq_23738\/\">Form Analytics Reports FAQ<\/a> and <a href=\"https:\/\/matomo.org\/faq\/form-analytics\/faq_23737\/\">Metrics FAQ<\/a> to see a list of some reports and metrics it includes (adds over 50 new metrics and over 15 new reports!)<\/li>\n<li>Adds several Real-time reports and widgets so you can instantly see how changes affect your forms<\/li>\n<li>When a form is embedded on several of your pages, automatically generates a report for each of your page so you can compare how the behaviour is different on each page<\/li>\n<li>We understand that static numbers are hard to read. That's why we added heaps of evolution and sparklines reports so you can see how your forms evolve over time<\/li>\n<\/ul>\n\n<h3>Integrates with Matomo Analytics platform<\/h3>\n\n<ul>\n<li>Lists all form interactions in the visitor log and the visitor profile. See exactly how each user interacts with your forms.<\/li>\n<li>View the evolution of any metric or row with the <a href=\"https:\/\/matomo.org\/docs\/row-evolution\/\">Row Evolution<\/a> feature<\/li>\n<li>Adds new form <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">Segments<\/a> to your Matomo so you can drill down deeper your Matomo reports<\/li>\n<li>View your Form Analytics reports on the go with the <a href=\"https:\/\/matomo.org\/mobile\/\">Matomo Mobile App<\/a><\/li>\n<li>Create <a href=\"https:\/\/plugins.matomo.org\/CustomAlerts\">custom alerts<\/a> and be notified when specific forms become popular, or when your overall form usage changes.<\/li>\n<li>Track unlimited number of forms and form fields. <a href=\"https:\/\/matomo.org\/docs\/data-limits\/\">No data limit<\/a>.<\/li>\n<li>Supports <a href=\"https:\/\/plugins.matomo.org\/CustomReports\">Custom Reports<\/a>.<\/li>\n<\/ul>\n\n<h3>Segmenting features<\/h3>\n\n<p>Segments really multiply the value you get with Form Analytics as you can drill down your visitors even deeper and gain\nnew insights that weren't possible before.\n* Adds many new segments like \"Viewed a form\", \"Started a form\", \"Submitted a form\", \"Converted a form\" or \"Spent X time on a form\".\n* Lets you apply over 100 <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">Matomo segments<\/a> to your form reports\n* Apply any new form segment to your existing Matomo reports<\/p>\n\n<h3>Manage Forms<\/h3>\n\n<ul>\n<li>Matomo automatically creates new forms for you when it discovers a new form on your website or app<\/li>\n<li>Users with admin access can create and manage unlimited forms<\/li>\n<li>Easy to use with lots of inline help<\/li>\n<li>Define custom form and field names to get readable reports<\/li>\n<li>Optionally, lets you configure to track several of your forms into one form in Matomo<\/li>\n<li>Optionally, lets you restrict the tracking of a form to only some pages<\/li>\n<li>Lets you configure when a form is converted without having to code<\/li>\n<\/ul>\n\n<h3>Privacy features<\/h3>\n\n<ul>\n<li>Supports Matomo's <a href=\"https:\/\/matomo.org\/docs\/privacy\/\">privacy<\/a> and GDPR features like the right to erase data or the right to export data. GDPR stands for General Data Protection Regulation and is for example also known as RGPD in French, DS-GVO in German<\/li>\n<li>The plugin does not store personal data, for example it does not store the content that users actually enter into form fields<\/li>\n<\/ul>\n\n<h3>Export and API features<\/h3>\n\n<ul>\n<li>Get automatic <a href=\"https:\/\/matomo.org\/docs\/email-reports\/\">email and sms reports<\/a>, or send them to your colleagues or customers<\/li>\n<li><a href=\"https:\/\/matomo.org\/docs\/embed-piwik-report\/\">Embed<\/a> the form real-time widgets directly in your app, dashboard, or even TV screen!<\/li>\n<li>HTTP API to manage your forms<\/li>\n<li>HTTP API to fetch and export all <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#FormAnalytics\">Form Analytics reports<\/a><\/li>\n<li>Get access to all the raw data via MySQL for 100% data ownership<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/form-analytics\/\">Form Analytics User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/form-analytics\/\">Form Analytics FAQ<\/a> cover how to get the most out of this plugin. The <a href=\"https:\/\/developer.matomo.org\/guides\/form-analytics\">Form Analytics developer guides<\/a> help you setting up the tracking of your online forms.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.5 - 2026-10-19\n- Fixed the status filter and search field on the Manage Forms page sitting out of line; they are now spaced evenly and their bottom edges line up<\/p>\n\n<p>6.0.4 - 2026-10-12\n- Improved how form lookups are cached within a request<\/p>\n\n<p>6.0.3 - 2026-10-05\n- Fixed a blank entry being added to the Activity Log when a form event carried no valid site or form id<\/p>\n\n<p>6.0.2 - 2026-09-14\n- Fixed form conversions linked to a goal missing from the aggregated Goals reports<\/p>\n\n<p>6.0.1 - 2026-09-14\n- Fixed the loading indicator showing as a white box in dark mode<\/p>\n\n<p>6.0.0 - 2026-08-11\n- Compatibility with Matomo 6<\/p>\n\n<p>5.4.0 - 2026-08-10\n- Added Form Name and Form ID dimensions for use in Custom Reports<\/p>\n\n<p>5.3.1 - 2026-07-27\n- Added code to link to individual form reports for realtime and summary table<\/p>\n\n<p>5.3.0 - 2026-06-22\n- Added code to show summary table in form overview section<\/p>\n\n<p>5.2.2 - 2026-06-08\n- Added code to handle gravity forms custom JavaScript submit events<\/p>\n\n<p>5.2.1 - 2026-05-11\n- Added spacing between view icon and form name\n- Updated form creation inline helptexts<\/p>\n\n<p>5.2.0 - 2026-04-27\n- Added code to disable auto-form creation via separate system setting\n- Updated API documentation\n- Standardized textarea styling in creation and edit screens<\/p>\n\n<p>5.1.4 - 2026-04-02\n- Added code to sort by form views by default<\/p>\n\n<p>5.1.3 - 2026-02-02\n- Updated API documentation<\/p>\n\n<p>5.1.2 - 2025-08-18\n- Updated condition to handle duplicate entry exception<\/p>\n\n<p>5.1.1 - 2025-05-13\n- Fixed database update issue in 5.1.0<\/p>\n\n<p>5.1.0 - 2025-05-12\n- Added an option to trigger goals on form conversion<\/p>\n\n<p>5.0.16 - 2025-04-01\n- Started showing form name and segment condition in the visit log popup title<\/p>\n\n<p>5.0.15 - 2025-03-17\n- Increased minimum Matomo core version to 5.0.0-rc1<\/p>\n\n<p>5.0.14 - 2024-12-16\n- Fixes warning due to form parameters not being an array<\/p>\n\n<p>5.0.13 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.0.12 - 2024-10-21\n- Added limit to lastMinutes query to prevent DDOS<\/p>\n\n<p>5.0.11 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.10\n- Added cover image for marketplace<\/p>\n\n<p>5.0.9\n- Added code to display correct form conversion criteria in form summary view<\/p>\n\n<p>5.0.8\n- Added 1 retry on deadlock during insert\/update of LogForm<\/p>\n\n<p>5.0.7\n- Fixes possible XSS when displaying direct JS code<\/p>\n\n<p>5.0.6\n- Added fix for v4.3.0 update script<\/p>\n\n<p>5.0.5\n- Added try\/catch to ignore duplicate updates<\/p>\n\n<p>5.0.4\n- Updated README.md<\/p>\n\n<p>5.0.3\n- Fixed regression where form field reports aren't showing all columns<\/p>\n\n<p>5.0.2\n- Fixed count error due to fields being int instead of array<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5\n- Remove all references to AngularJS, including Vue adapters.<\/p>\n\n<p>4.4.3\n- Fixed case-sensitive search in manage list<\/p>\n\n<p>4.4.2\n- Changes to prevent deletion of referenced action records<\/p>\n\n<p>4.4.1\n- Fix incompatibility with Matomo 4.14.0<\/p>\n\n<p>4.4.0\n- Added code to track form submission as conversion<\/p>\n\n<p>4.3.0\n- Added option to treat form submission as form conversion<\/p>\n\n<p>4.2.4\n- Fixed conversions count not displaying correct count in visitor log screen<\/p>\n\n<p>4.2.3\n- Improved performance of live query\n- Updated logic for setting formConversions after query call<\/p>\n\n<p>4.2.2\n- Started setting default values as 0 for all visitIds to ensure no double queries, #L3-332\n- Check if array key is defined<\/p>\n\n<p>4.2.1\n- Added option to create new form name with previously deleted forms\n- Added code to limit no of form submission requests.\n- Added code to limit no of form fields in a request.<\/p>\n\n<p>4.2.0\n- Started limiting no of form tracking requests allowed in a single view<\/p>\n\n<p>4.1.0\n- Migrate AngularJS code to Vue.\n- Updated code to respect max execution time during Archiving<\/p>\n\n<p>4.0.10\n- Fix to make visitor details query faster and memory efficient<\/p>\n\n<p>4.0.9\n- Fix to make visitor details query faster<\/p>\n\n<p>4.0.8\n- Fix row evolution doesn't work for form page url reports.<\/p>\n\n<p>4.0.7\n- Make sure form can be edited when there are many renamed fields.<\/p>\n\n<p>4.0.6\n- Ensure we only show interactions for forms that were not deleted in visitor log &amp; profile<\/p>\n\n<p>4.0.5\n- Improve archiving for roll up reporting<\/p>\n\n<p>4.0.4\n- Performance improvements for Visits Log<\/p>\n\n<p>4.0.3\n- Improve compatibility with tag manager<\/p>\n\n<p>4.0.2\n- Compatibility with PHP 8<\/p>\n\n<p>4.0.1\n- Compatibility with Matomo 4<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4<\/p>\n\n<p>3.1.28\n- Performance improvements by forcing mysql to use a specifc index on few queries<\/p>\n\n<p>3.1.27\n- Archiving improvements<\/p>\n\n<p>3.1.26\n- More efficient tracking<\/p>\n\n<p>3.1.25\n- Fix changing the graph in row evolution fails with an error<\/p>\n\n<p>3.1.24\n- Let users configure auto form creation up to 150 forms<\/p>\n\n<p>3.1.23\n- Remove form log entries for deleted forms monthly<\/p>\n\n<p>3.1.22\n- Improvements for Matomo 3.12 to support faster segment archiving<\/p>\n\n<p>3.1.21\n- Show search box for entities\n- Support usage of a DB reader when configured<\/p>\n\n<p>3.1.20\n- Fix SQL error in segment if a table prefix is specified<\/p>\n\n<p>3.1.19\n- Prevent memory issues in archiver by limiting the number of rows to 500<\/p>\n\n<p>3.1.18\n- Internal tracker performance improvements<\/p>\n\n<p>3.1.17\n- Improve isBlank detection for radio and check box fields.\n- Add new language\n- Remove live reports from scheduled reports<\/p>\n\n<p>3.1.16\n- Improve update script that adds primary key.<\/p>\n\n<p>3.1.15\n- Add primary key to funnel log table for better replication<\/p>\n\n<p>3.1.14\n- Limit form fields to 2500 fields per form\n- title-text of JavaScript Tracking option help box shows HTML\n- Fix row evolution for form field reports was broken\n- Don't show archived or deleted forms in the live reports<\/p>\n\n<p>3.1.13\n- Queue tracking requests when possible for better performance\n- Improve compatibility with Matomo 3.9 (visitor log)\n- Limit some field values to ensure they will be recorded<\/p>\n\n<p>3.1.12\n- Improve compatibility with Queued Tracking<\/p>\n\n<p>3.1.11\n- Improve compatibility with Tag Manager<\/p>\n\n<p>3.1.9\n- Support more translations\n- Use new brand colors\n- Do not fail track request if time to submit is too large<\/p>\n\n<p>3.1.8\n- Improve drop off field calculation if form was converted but not submitted<\/p>\n\n<p>3.1.7\n- Prevent a browser from becoming unresponsive when a form has too many fields\n- Make sure form fields are encoded correctly when processing a tracking request<\/p>\n\n<p>3.1.6\n- Support new \"Write\" role<\/p>\n\n<p>3.1.5\n- Ignore tracking requests that don't match any form to avoid for example visits with no actions around midnight in edge cases<\/p>\n\n<p>3.1.4\n- Increase size of database table column \"fields\" to mediumtext<\/p>\n\n<p>3.1.3\n- Validate any entered regular expression when configuring a form<\/p>\n\n<p>3.1.2\n- Added logic to support for more Matomo GDPR features.<\/p>\n\n<p>3.1.1\n- Added logic to support Matomo GDPR features.\n- Link form name to reports in visitor log &amp; profile<\/p>\n\n<p>3.1.0\n- Improve how form and form field interactions are shown in the visitor log\n- Improved API response for form interactions in the Live API methods\n- Support <code>matomo<\/code> keyword in attributes and properties when customizing the tracking<\/p>\n\n<p>3.0.15\n- Prevent possible fatal error when opening manage screen for all websites\n- Keep a visitors session (visit) alive every couple of minutes\n- Better error message when renaming a form but the name of the form is already in use<\/p>\n\n<p>3.0.14\n- Renamed Piwik to Matomo<\/p>\n\n<p>3.0.13\n- Fix possible bug in visitor profile where a wrong value may be assigned.<\/p>\n\n<p>3.0.12\n- Fix possible bug in visitor log when there are no visitors<\/p>\n\n<p>3.0.11\n- Improve memory usage and performance of performance of visitor log and visitor profile integration<\/p>\n\n<p>3.0.10\n- Improve performance of visitor log and visitor profile\n- Format sparkline metrics\n- Fix a bug when viewing visitor log as user with view access only<\/p>\n\n<p>3.0.9\n- Show form interactions in visitor log and visitor profile<\/p>\n\n<p>3.0.8\n- Fix max 100 forms per page where loaded when managing forms for a site\n- Added support for Custom Reports plugin\n- Send several form views along a page view instead of only one to reduce server load<\/p>\n\n<p>3.0.7\n- Fix a form conversion may under circumstances not be tracked if a form is interacted with without any break or when it only includes a submit button.<\/p>\n\n<p>3.0.6\n- Make sure to count a new form start after a form submission\n- Prevent some edge case racing conditions when a form submit and conversion is tracked directly after another<\/p>\n\n<p>3.0.5\n- Make sure form rules work fine when using HTML entities<\/p>\n\n<p>3.0.4\n- Add support for TinyMCE\n- Add support for select2<\/p>\n\n<p>3.0.3\n- Enrich system summary widget with the number of forms\n- Fix all columns view in Live widget did not show label<\/p>\n\n<p>3.0.2\n- Fix a tracking bug on IE9 and older<\/p>\n\n<p>3.0.1\n- Show Manage Forms in reporting menu<\/p>\n\n<p>3.0.0 \n- Initial version<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/FormAnalytics\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"FreeMobileMessaging","displayName":"Free Mobile Messaging","owner":"apapillon","description":"Mobile Messaging Plugin: Free Mobile support.","homepage":"https:\/\/github.com\/apapillon\/piwik-freemobilesmsprovider-plugin","createdDateTime":"2015-11-29 23:10:04","donate":{},"support":[],"isTheme":false,"keywords":["Report","FreeMobile","SMS"],"basePrice":0,"authors":[{"name":"Anthony Papillon","email":"contact@perhonen.fr","homepage":"http:\/\/perhonen.fr"}],"repositoryUrl":"https:\/\/github.com\/apapillon\/piwik-freemobilesmsprovider-plugin","lastUpdated":"2017-05-20 04:32:03","latestVersion":"1.0.1","numDownloads":10918,"screenshots":["https:\/\/plugins.matomo.org\/FreeMobileMessaging\/images\/1.0.1\/Set_Parameters.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"1","numContributors":"1","lastCommitDate":"2017-05-20 04:31:06"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2015-11-29 23:10:04","requires":{"piwik":">=2.15.1-b2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4265,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/apapillon\/piwik-freemobilesmsprovider-plugin\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/FreeMobileMessaging\/download\/1.0.0"},{"name":"1.0.1","release":"2017-05-20 04:32:03","requires":{"piwik":">=3.0.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6653,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/FreeMobileMessaging\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/apapillon\/piwik-freemobilesmsprovider-plugin\/commits\/1.0.1","readmeHtml":{"description":"\n\n<p>This is a plugin for the Open Source Web Analytics platform <a href=\"http:\/\/piwik.org\">Piwik<\/a>. It \nadd Free Mobile SMS provider support to MobileMessaging plugin.<\/p>\n\n","faq":"","documentation":"","changelog":"<p><strong>1.0.1<\/strong>\n* Adapt to new Piwik API interface (&gt;= 3.02)<\/p>\n\n<p><strong>1.0.0<\/strong>\n* Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/FreeMobileMessaging\/download\/1.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/FreeMobileMessaging\/changelog"},"consumer":{"license":null}},{"name":"Funnels","displayName":"Funnels","owner":"matomo-org","description":"Identify and understand where your visitors drop off to increase your conversions, sales and revenue with your existing traffic.","homepage":"https:\/\/plugins.matomo.org\/Funnels","createdDateTime":"2016-12-02 05:26:56","donate":{},"support":[],"isTheme":false,"keywords":["piwik","Marketing","tracking","optimization","conversion","funnel","goal","cro","matomo"],"basePrice":193,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-19 04:54:37","latestVersion":"5.5.3","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/Funnels\/images\/5.5.3\/1_Funnel_Evolution.png","https:\/\/plugins.matomo.org\/Funnels\/images\/5.5.3\/2_Funnel_Steps.png","https:\/\/plugins.matomo.org\/Funnels\/images\/5.5.3\/3_Funnel_Step_Referrers.png","https:\/\/plugins.matomo.org\/Funnels\/images\/5.5.3\/4_Funnel_Step_Evolution.png","https:\/\/plugins.matomo.org\/Funnels\/images\/5.5.3\/5_Funnel_Step_Visitor_Log.png","https:\/\/plugins.matomo.org\/Funnels\/images\/5.5.3\/6_All_Funnels_Overview.png","https:\/\/plugins.matomo.org\/Funnels\/images\/5.5.3\/7_Manage_Steps.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/Funnels.png","previews":[{"type":"demo","provider":"link","url":"https:\/\/demo.matomo.cloud\/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#?idSite=1&period=day&date=yesterday&category=Funnels_Funnels&subcategory=General_Overview"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/Funnels","variations":[{"product_variation_id":130470,"price":"199","prettyPrice":"199EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130470&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130470","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/funnels\/?attribute_type=1+to+4+users&add-to-cart=2584&variation_id=130470&aelia_cs_currency=EUR"},{"product_variation_id":130470,"price":"239","prettyPrice":"USD239","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130470&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130470","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/funnels\/?attribute_type=1+to+4+users&add-to-cart=2584&variation_id=130470&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130471,"price":"1549","prettyPrice":"1549EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130471&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130471","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/funnels\/?attribute_type=Up+to+20+users&add-to-cart=2584&variation_id=130471&aelia_cs_currency=EUR"},{"product_variation_id":130471,"price":"1859","prettyPrice":"USD1859","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130471&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130471","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/funnels\/?attribute_type=Up+to+20+users&add-to-cart=2584&variation_id=130471&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130472,"price":"3069","prettyPrice":"3069EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130472&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130472","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/funnels\/?attribute_type=Up+to+50+users&add-to-cart=2584&variation_id=130472&aelia_cs_currency=EUR"},{"product_variation_id":130472,"price":"3689","prettyPrice":"USD3689","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130472&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2584&variation_id=130472","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/funnels\/?attribute_type=Up+to+50+users&add-to-cart=2584&variation_id=130472&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/funnels\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"4.67","ratingCount":3,"reviewCount":3}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{"bestselling":2},"versions":[{"name":"5.5.3","release":"2026-10-19 04:54:37","requires":{"matomo":">=5.0.0-rc1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/Funnels\/5.5.3\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>See how your audience flows through your marketing funnels. Find where your visitors drop off, fill in the gaps, and watch your conversions soar.<\/p>\n\n<p>Getting a coherent view of your funnels can feel like assembling a jigsaw puzzle with missing pieces. One website change disrupts your users' behaviour, and you're left guessing what went wrong\u2014especially when you can't pinpoint how your audience segments interact with your funnel.<\/p>\n\n<p>With the Funnels plugin, you can spot exactly where your visitors enter and exit a funnel and how many proceed to each of the next steps. Break down any conversion goal and boost your conversions, one step at a time.<\/p>\n\n<h3>How Funnels Works<\/h3>\n\n<h4>Learn Where Your Traffic Drops Off<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Visualise the steps your users take to complete a goal, like a purchase or a form signup. See how they perform at each stage.<\/p>\n<p>Optimise your website or app at each point of friction to boost your conversion rates.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/Funnels\/image1.png\" style=\"margin-left:24px;\" alt=\"Learn Where Your Traffic Drops Off\" \/>\n<\/div>\n<\/div>\n\n<h4>Create Funnels for Anything<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Any conversion goal can be turned into a funnel\u2014a form, user signup, checkout flow; you name it. If it can be tracked, it can be a funnel.<\/p>\n<p>With the Funnels plugin, you can set up a funnel using URLs, search queries, page titles, or events. Validate them and start tracking your funnel conversions without any hiccups.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/Funnels\/image2.png\" style=\"margin-left:24px;\" alt=\"Create Funnels for Anything\" \/>\n<\/div>\n<\/div>\n\n<h4>Discover Every Detail of Your Visitors<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Get an in-depth look at each visitor that goes through your funnels with Matomo's other features like Visitor Log.<\/p>\n<p>Examine where they visit from, what browser they use, and more, and study every action they take after entering the funnel or a specific step of your funnel.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/Funnels\/image3.png\" style=\"margin-left:24px;\" alt=\"Discover Every Detail of Your Visitors\" \/>\n<\/div>\n<\/div>\n\n<h4>Get an Overview of Your Funnels Performance<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>See how your funnels perform every time you open the Funnels page. Glance over the most important funnel and goal metrics and stay on top of any issue.<\/p>\n<p>View the visitor log with all the visitors that have entered this funnel and a table explaining how your funnel is configured and performing.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/Funnels\/image4.png\" style=\"margin-left:24px;\" alt=\"Get an Overview of Your Funnels Performance\" \/>\n<\/div>\n<\/div>\n\n<h4>Monitor Your Funnels Progress<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>See how your funnels perform over time with trend analysis. Keep yourself informed on key funnel metrics like the \u201cFunnel conversion rate\u201d, \u201cNumber of funnel conversions\u201d, and \u201cNumber of funnel entries.\u201d<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/Funnels\/image5.png\" style=\"margin-left:24px;\" alt=\"Monitor Your Funnels Progress\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Funnels Today<\/h3>\n\n<p>Create an unlimited number of goal funnels without data limits. Optimise your funnels for each segment to provide a smooth experience that boosts your conversions with Matomo's Funnels plugin.<\/p>\n\n<p>Start your 30-day free trial today and elevate your funnel marketing game.<\/p>\n\n<h3>Manage Features<\/h3>\n\n<p>A funnel is only as good as its configuration and getting the steps right is crucial for any funnel analysis. We focused\non helping you along the way of defining your funnels and made it easy to configure and validate funnels.\n* Create an unlimited number of goal funnels\n* Define unlimited funnel steps based on URL, URL path, search query, page title, event category, event name, and event action\n* Many different options to match your pages\n* Intuitive funnel configuration with several tools to validate your funnel configuration\n* Integrates nicely into Matomo Goals management<\/p>\n\n<h3>Reporting features<\/h3>\n\n<ul>\n<li>Get an overview and evolution of all of your funnels in just one page<\/li>\n<li>View a funnel evolution to see how a funnel performs over time<\/li>\n<li>View a funnel step row evolution to see how an individual funnel step performs over time<\/li>\n<li>See where your visitors entered the funnel and where they exited your funnel<\/li>\n<li>See from which pages your visitors entered the funnel or where they went after leaving the funnel<\/li>\n<li>Get referrer details for visitors that have entered a step on their first page view<\/li>\n<li>Check how your funnels are doing on the go with the Matomo Mobile app for iOS and Android<\/li>\n<li>Add a funnels overview widget to your Matomo Dashboard to always keep an eye on it<\/li>\n<li>Get an overview of how your funnel is doing directly in your existing goal reports<\/li>\n<li>Get funnels data for your historical goal data that you already tracked<\/li>\n<\/ul>\n\n<h3>Segmenting features<\/h3>\n\n<ul>\n<li>Apply funnel segments to Matomo reports<\/li>\n<li>Apply Matomo segments to funnel reports<\/li>\n<li>See a log of each visitor who participated in a funnel or in an individual funnel step<\/li>\n<\/ul>\n\n<h3>Privacy features<\/h3>\n\n<ul>\n<li>Supports Matomo's <a href=\"https:\/\/matomo.org\/docs\/privacy\/\">privacy<\/a> and GDPR features like the right to erase data or the right to export data. GDPR stands for General Data Protection Regulation and is for example also known as RGPD in French, DS-GVO in German<\/li>\n<li>The plugin does not track any additional data and therefore doesn't record any personal data.<\/li>\n<\/ul>\n\n<h3>Export &amp; API features<\/h3>\n\n<ul>\n<li>Get automatic Funnel <a href=\"https:\/\/matomo.org\/docs\/email-reports\/\">email and sms reports<\/a>, or send them to your colleagues or customers.<\/li>\n<li>All reports are available via the <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#Funnels\">Funnels HTTP Reporting API<\/a>.<\/li>\n<li>Configure your Funnels via the UI or the <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#Funnels\">Funnels HTTP Reporting API<\/a>.<\/li>\n<li><a href=\"https:\/\/matomo.org\/docs\/embed-piwik-report\/\">Embed<\/a> the funnels overview directly in your app, dashboard, or even TV screen!.<\/li>\n<li>Get email and SMS alerts when something significant changes with the <a href=\"https:\/\/plugins.matomo.org\/CustomAlerts\">Custom Alerts<\/a> plugin.<\/li>\n<\/ul>\n\n<h3>Other features:<\/h3>\n\n<ul>\n<li>Does not slow down tracking time<\/li>\n<li>100% data ownership<\/li>\n<li>No data limit<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/funnels\/\">Funnels User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/funnels\/\">Funnels FAQ<\/a> cover \nhow to configure a funnel and how to get the most out of this plugin.<\/p>\n\n<p>For any other question feel free to <a href=\"#support\">contact us<\/a>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>5.5.3 - 2026-10-19\n- Improved how goal lookups are cached within a request<\/p>\n\n<p>5.5.2 - 2026-10-05\n- Fixed the funnel name segment matching goals that belong to other websites<\/p>\n\n<p>5.5.1 - 2026-07-27\n- Added code to link to individual funnel reports in summary table<\/p>\n\n<p>5.5.0 - 2026-06-22\n- Added a Funnels Summary table to the Funnels Overview report, aggregating key metrics (steps, entries, conversions and conversion rate) across all funnels\n- Added a Funnels Summary dashboard widget<\/p>\n\n<p>5.4.0 - 2026-05-11\n- Fixed issue where goal steps would show Page URL not defined as entries and exits\n- Fixed issue where row evolution table wouldn't load correctly\n- Added funnel descriptions<\/p>\n\n<p>5.3.13 - 2026-04-27\n- Added activity log for goal and non goal funnel add, edit and delete action\n- Updated API documentation<\/p>\n\n<p>5.3.12 - 2026-01-05\n- Removed youtube video from marketplace\n- Added code to hide help button when step has goal comparison<\/p>\n\n<p>5.3.11 - 2025-07-21\n- Fixed non-goal funnel not working with segment<\/p>\n\n<p>5.3.10 - 2025-07-07\n- Added ability to add Funnel details and reports as a dashboard widget<\/p>\n\n<p>5.3.9 - 2025-05-26\n- Added an option to export Funnel details table<\/p>\n\n<p>5.3.8 - 2024-12-03\n- Fixed issue where report table failed to display all funnel steps when exceeding 10 steps<\/p>\n\n<p>5.3.7 - 2024-11-21\n- Fixed issue where the Exits subtable didn't always load for view-only users\n- Fixed issue where the step evolution wouldn't load if the step name contained an ampersand<\/p>\n\n<p>5.3.6 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.3.5 - 2024-10-08\n- Added code to use index forcefully to improve performance\n- Improved API access check<\/p>\n\n<p>5.3.4 - 2024-08-26\n- Restrict Tooltip component's CSS to apply only within Funnels plugin\n- Pricing update<\/p>\n\n<p>5.3.3\n- Fixed issue where yesterday didn't archive when a funnel was updated\n- Fixed issue with report metadata preventing Matomo mobile app from loading specific reports<\/p>\n\n<p>5.3.2\n- Fixed issue where new funnels archived incorrectly for recent days<\/p>\n\n<p>5.3.1\n- Fixed checkmark alignment for goal funnels<\/p>\n\n<p>5.3.0\n- Funnels overview table redesigned\n- Fixed rounding error in funnel report\n- Added code to always make lasts step as require for a non goal funnel<\/p>\n\n<p>5.2.2\n- Performance improvement by forcing an index to make the VisitAction query faster<\/p>\n\n<p>5.2.1\n- Minor improvements and bug fixes\n- Updated translations<\/p>\n\n<p>5.2.0\n- Redesigned funnels visualisation\n- Added new data table below visualisation\n- Various UI improvements\n- Misc. bug fixes<\/p>\n\n<p>5.1.2\n- Corrected Ecommerce funnels to behave like goal funnels\n- Moved goal equals to the top step pattern option\n- Fixed bug where updating existing step to goal equals pattern sometimes failed\n- Updated some report metadata to account for non-goal funnel changes<\/p>\n\n<p>5.1.1\n- Fixed issue where goal name is displayed as encoded\n- Added cover image for marketplace\n- Added code to auto scroll to funnel section, when editing a goal funnel from manage funnel section<\/p>\n\n<p>5.1.0\n- Funnel add\/edit redesign\n- Allow creating funnels not tied to a goal<\/p>\n\n<p>5.0.4\n- Updated README.md<\/p>\n\n<p>5.0.3\n- Fixes recent regression in invalidation\/archiving<\/p>\n\n<p>5.0.2\n- New release with skip archiving for rollup site patch<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.1.6\n- Fixed incorrect semantic type for abandoned rate<\/p>\n\n<p>4.1.5\n- Fix incompatibility with Matomo 4.14.0<\/p>\n\n<p>4.1.4\n- Added semantics type for metrics<\/p>\n\n<p>4.1.3\n- Fixed a couple regressions. One was in the UI and the other was preventing some sites from archiving<\/p>\n\n<p>4.1.2\n- Improved the accuracy of archived funnel data<\/p>\n\n<p>4.1.1\n- Forcing the funnel overview to be full width.<\/p>\n\n<p>4.1.0\n- Migrating angularjs to Vue.<\/p>\n\n<p>4.0.11\n- Removed duplicate contains filter from getAvailablePatternMatches<\/p>\n\n<p>4.0.10\n- Started re-archiving only when steps are updated on edit<\/p>\n\n<p>4.0.9\n- Prevent error site does not exist when no site given<\/p>\n\n<p>4.0.8\n- Fixed export not working with flatten<\/p>\n\n<p>4.0.7\n- Minor performance improvement<\/p>\n\n<p>4.0.6\n- Improve archiving with roll up reporting<\/p>\n\n<p>4.0.4\n- Add category help texts\n- Prevent extra pointless archiving and bug where archives are not generated when editing a funnel multiple times before a core:archive kicks off.<\/p>\n\n<p>4.0.3\n- Compatibility with PHP 8<\/p>\n\n<p>4.0.2\n- Rearchive data when needed<\/p>\n\n<p>4.0.1\n- Compatibility with Matomo 4.x<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4.x<\/p>\n\n<p>3.1.22\n- Fix possible error in an API when a certain period\/date combination is used<\/p>\n\n<p>3.1.21\n- Improve lock creation when archiving<\/p>\n\n<p>3.1.20\n- Fix exits were not always calculated correctly<\/p>\n\n<p>3.1.19\n- Rearchive some previously archived data for better accuracy<\/p>\n\n<p>3.1.18\n- Fix possible notice in row evolution<\/p>\n\n<p>3.1.17\n- Improve compatibility with Matomo 3.12\n- Add new language<\/p>\n\n<p>3.1.16\n- Reuse transaction level from core when possible<\/p>\n\n<p>3.1.15\n- Make query that populates funnel data non-locking by setting different transaction level<\/p>\n\n<p>3.1.14\n- Support usage of a reader DB when configured<\/p>\n\n<p>3.1.13\n- Archiving improvements\n- Translation updates<\/p>\n\n<p>3.1.12\n- Improve adding primary key if there are some duplicate keys<\/p>\n\n<p>3.1.11\n- Add primary key to funnel log table for better replication<\/p>\n\n<p>3.1.10\n- Performance improvements when generating reports<\/p>\n\n<p>3.1.9\n- Support more translations\n- Use new brand colors<\/p>\n\n<p>3.1.8\n- Added social media support\n- Internal changes<\/p>\n\n<p>3.1.7\n- Fix possible error in sales funnel<\/p>\n\n<p>3.1.6\n- Support new \"Write\" role<\/p>\n\n<p>3.1.5\n- When a user reloads a page that is part of funnel, do not show it as an exit page\n- Improve archiver to let more archivers run in parallel<\/p>\n\n<p>3.1.4\n- Validate any entered regular expression when configuring a funnel<\/p>\n\n<p>3.1.3\n- Changed the default type for a DB column to unsigned<\/p>\n\n<p>3.1.2\n- Renamed Piwik to Matomo<\/p>\n\n<p>3.1.1\n- Faster archiving<\/p>\n\n<p>3.1.0\n- Support matching of page titles, event categories, event names, and event actions<\/p>\n\n<p>3.0.4\n- Make sure validating URL funnel works correctly with HTML entities<\/p>\n\n<p>3.0.3\n- Add possibility to define sales funnel<\/p>\n\n<p>3.0.2\n- Make sure HTML entities can be used in patterns<\/p>\n\n<p>3.0.1\n- Performance improvement in Archiver<\/p>\n\n<p>3.0.0<\/p>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/Funnels\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"GeneratedInsights","displayName":"Generated Insights","owner":"Chardonneaur","description":"Automatically surfaces significant traffic changes as insight cards on your Matomo dashboard. Compares the current period to the previous one and high.","homepage":"https:\/\/github.com\/Chardonneaur\/GeneratedInsights","createdDateTime":"2026-03-05 08:12:06","donate":{},"support":[{"name":"Email","key":"email","value":"contact@ronan-chardonneau.fr","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/GeneratedInsights\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Chardonneaur\/GeneratedInsights","type":"url"}],"isTheme":false,"keywords":["dashboard","analytics","KPI","insights","anomaly detection","trends"],"basePrice":0,"authors":[{"name":"Ronan Chardonneau","email":"contact@ronan-chardonneau.fr","homepage":"https:\/\/ronan-chardonneau.fr"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/GeneratedInsights","lastUpdated":"2026-03-05 08:12:06","latestVersion":"0.1.1","numDownloads":4995,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/insights.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-03-05 08:11:36"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"0.1.1","release":"2026-03-05 08:12:06","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4995,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GeneratedInsights\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/GeneratedInsights\/commits\/0.1.1","readmeHtml":{"description":"\n\n<p>GeneratedInsights adds a dashboard widget that behaves like Google Analytics' \"Insights\" feature \u2014 without sending any data to external services. Each time the widget loads, it compares the current period to the previous equivalent period, detects meaningful movements in your key metrics, and displays the most significant ones as concise insight cards.<\/p>\n\n<p>Everything is computed server-side using your existing Matomo data. No AI, no external API calls, no configuration.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Automatic period comparison<\/strong> \u2014 current period vs. the previous equivalent period (this week vs. last week, this month vs. last month, etc.)<\/li>\n<li><strong>4 core KPI cards<\/strong> \u2014 Visits, Users, Actions, and Bounce Rate, each with configurable significance thresholds<\/li>\n<li><strong>Top page trend<\/strong> \u2014 highlights significant movement in your most visited page<\/li>\n<li><strong>Referral source trend<\/strong> \u2014 highlights significant movement in your top referral domain<\/li>\n<li><strong>Smart scoring<\/strong> \u2014 insights are ranked by magnitude \u00d7 volume; only the top 6 are shown<\/li>\n<li><strong>Signed delta<\/strong> \u2014 each card shows a <code>+X%<\/code> or <code>-X%<\/code> badge with green\/red colouring<\/li>\n<li><strong>Graceful degradation<\/strong> \u2014 if data is unavailable or an error occurs, the widget shows a clean empty state instead of crashing<\/li>\n<\/ul>\n\n<h3>How significance is determined<\/h3>\n\n\n\n\n  Metric\n  Min. relative change\n  Min. absolute change\n\n\n\n\n  Visits\n  12%\n  20 visits\n\n\n  Users\n  12%\n  15 users\n\n\n  Actions\n  15%\n  30 actions\n\n\n  Bounce rate\n  12%\n  3 percentage points\n\n\n  Top page \/ referrer\n  20%\n  10 visits\n\n\n\n\n<p>A card is only shown when <strong>both<\/strong> thresholds are exceeded, avoiding noise from low-traffic periods.<\/p>\n\n","faq":"<p><strong>Does this send data to any external service?<\/strong>\nNo. All computation happens server-side using your existing Matomo data. Nothing leaves your server.<\/p>\n\n<p><strong>Why are there no insights for my site?<\/strong>\nEither no metric crossed both the relative and absolute significance thresholds, or the previous period has no data to compare against (e.g. the very first period after installation). Low-traffic sites will see fewer insights by design \u2014 this prevents false positives.<\/p>\n\n<p><strong>Can I change the significance thresholds?<\/strong>\nNot through the UI in this version. The thresholds are defined in <code>InsightsEngine.php<\/code> and can be adjusted manually if needed.<\/p>\n\n<p><strong>Does it work with segments?<\/strong>\nYes. The widget passes the active segment to Matomo's API, so insights are computed within the segmented audience.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>0.1.0 \u2014 2026-03-04<\/h2>\n\n<p>Initial release.<\/p>\n\n<ul>\n<li>Dashboard widget surfacing significant period-over-period changes as insight cards<\/li>\n<li>4 core KPI insights: Visits, Users, Actions, Bounce Rate<\/li>\n<li>Top page trend insight (Actions.getPageUrls)<\/li>\n<li>Referral source trend insight (Referrers.getWebsites)<\/li>\n<li>Dual-threshold significance filter (relative % + absolute minimum) to suppress noise<\/li>\n<li>Score-based ranking \u2014 top 6 insights shown, ordered by magnitude \u00d7 volume<\/li>\n<li>Segment-aware: respects the active segment from the Matomo interface<\/li>\n<li>Graceful error handling: widget shows empty state on failure, never crashes the dashboard<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/GeneratedInsights\/download\/0.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GeneratedInsights\/changelog"},"consumer":{"license":null}},{"name":"GeoIP2","displayName":"Geo IP 2","owner":"diabl0","description":"MaxMind GeoIP2 Location Provider.","homepage":null,"createdDateTime":"2016-09-27 11:30:03","donate":{"paypal":"diabl0@gazeta.ie","bitcoin":null},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/diabl0\/piwik-geoip2\/wiki","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/diabl0\/piwik-geoip2\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/diabl0\/piwik-geoip2","type":"url"}],"isTheme":false,"keywords":["GeoIP","geoip2","maxmind","location","location provider"],"basePrice":0,"authors":[{"name":"Krzysztof Szatanik","email":"chris.szatanik@gmail.com","homepage":null}],"repositoryUrl":"https:\/\/github.com\/diabl0\/piwik-geoip2","lastUpdated":"2017-08-24 06:34:05","latestVersion":"0.1.5","numDownloads":16440,"screenshots":["https:\/\/plugins.matomo.org\/GeoIP2\/images\/0.1.5\/screen_01.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"2","numContributors":"1","lastCommitDate":"2018-06-10 13:52:39"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2016-09-27 11:30:05","requires":{"piwik":">=3.0.0-b1,<=3.4.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":39,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/diabl0\/piwik-geoip2\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GeoIP2\/download\/0.1.1"},{"name":"0.1.2","release":"2016-09-28 10:48:05","requires":{"piwik":">=3.0.0-b1,<=3.4.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5596,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/diabl0\/piwik-geoip2\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GeoIP2\/download\/0.1.2"},{"name":"0.1.4","release":"2017-08-23 14:54:04","requires":{"piwik":">=3.0.0,<=3.4.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":105,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/diabl0\/piwik-geoip2\/commits\/v0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GeoIP2\/download\/0.1.4"},{"name":"0.1.5","release":"2017-08-24 06:34:05","requires":{"piwik":">=3.0.0,<=3.4.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10700,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/diabl0\/piwik-geoip2\/commits\/v0.1.5","readmeHtml":{"description":"\n\n<p>This plugin adds support for <a href=\"https:\/\/www.maxmind.com\/en\/geoip2-services-and-databases\">MaxMind GeoIP2<\/a> database.<\/p>\n\n<p>Currently supported databases:<\/p>\n\n<ul>\n<li>GeoIP2-City.mmdb<\/li>\n<li>GeoLite2-City.mmdb<\/li>\n<li>GeoIP2-Country.mmdb<\/li>\n<li>GeoLite2-Country.mmdb<\/li>\n<\/ul>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><blockquote>\n  <p>will this geoip2-plugin will work flawlessly within piwik (which has already geoip1 integrated)?<\/p>\n<\/blockquote>\n\n<p>It was working as core (mentioned erlier PR https:\/\/github.com\/piwik\/piwik\/pull\/10431 ) and it's currently working without problems on my company instance using current 3.x-dev branch<\/p>\n\n<blockquote>\n  <p>will there be any conflicts between both?<\/p>\n<\/blockquote>\n\n<p>None observed, it shows as another Location Provider<\/p>\n\n<blockquote>\n  <p>how do I know which data piwik uses really?<\/p>\n<\/blockquote>\n\n<p>Check your settings - currently used location provider is marked<\/p>\n\n<p><img src=\"https:\/\/cloud.githubusercontent.com\/assets\/2463020\/18906481\/ffef2c50-8567-11e6-8340-01068950f5df.png\" alt=\"ffef2c50-8567-11e6-8340-01068950f5df.png\" \/>\n(on screen there are unknown values because site was accessed from intranet IP address)<\/p>\n\n<p>You can also reattribute older data using console command:<\/p>\n\n<p><code>.\/console usercountry:attribute<\/code><\/p>\n\n<blockquote>\n  <p>do geoip2 plugin benefit from piwiks autofetch\/-update for geoip1 databases?<\/p>\n<\/blockquote>\n\n<p>At this time - no, but it is planned as soon as i get access to Maxmind account so i can test it.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h1>1.3<\/h1>\n\n<ul>\n<li>code cleanup<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/GeoIP2\/download\/0.1.5"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GeoIP2\/changelog"},"consumer":{"license":null}},{"name":"GithubMarketplace","displayName":"Github Marketplace","owner":"Chardonneaur","description":"Install and manage Matomo plugins directly from GitHub ZIP releases, without needing access to the Matomo Marketplace. Useful for self-hosted instance.","homepage":"https:\/\/github.com\/Chardonneaur\/GithubMarketplace","createdDateTime":"2026-03-05 08:12:02","donate":{},"support":[{"name":"Email","key":"email","value":"contact@ronan-chardonneau.fr","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/GithubMarketplace\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Chardonneaur\/GithubMarketplace","type":"url"}],"isTheme":false,"keywords":["administration","github","plugins","install","self-hosted"],"basePrice":0,"authors":[{"name":"Ronan Chardonneau","email":"contact@ronan-chardonneau.fr","homepage":"https:\/\/ronan-chardonneau.fr"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/GithubMarketplace","lastUpdated":"2026-03-05 08:12:02","latestVersion":"1.0.1","numDownloads":4907,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/integration.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-03-05 08:11:27"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"1.0.1","release":"2026-03-05 08:12:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4907,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/GithubMarketplace\/commits\/1.0.1","readmeHtml":{"description":"\n\n<p>GithubMarketplace adds a simple installation interface to your Matomo administration panel. Paste the URL of any GitHub release ZIP file, click Install, and Matomo will download and install the plugin automatically \u2014 using the same installer that the official Marketplace uses internally.<\/p>\n\n<p>This is particularly useful for:\n- Self-hosted Matomo instances that cannot reach the Marketplace\n- Installing community plugins hosted on GitHub that are not yet listed on the Marketplace\n- Installing private or in-house plugins from a GitHub repository<\/p>\n\n<p>All installed plugins are tracked in a dedicated table so you can see which plugins were installed this way, at what version, and from which URL.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>One-click install<\/strong> from any GitHub release ZIP URL<\/li>\n<li><strong>Version tracking<\/strong> \u2014 see the installed version and installation date for each plugin<\/li>\n<li><strong>Install or update<\/strong> \u2014 installing an already-tracked plugin updates its version record<\/li>\n<li><strong>Accessible at<\/strong> Administration \u2192 Platform \u2192 GitHub Plugins<\/li>\n<li><strong>Super-administrator only<\/strong> \u2014 not accessible to regular users or view-only users<\/li>\n<\/ul>\n\n<h3>Security notice<\/h3>\n\n<p>This plugin downloads a ZIP file from a URL you provide and installs it as a Matomo plugin. <strong>Only install plugins from sources you trust.<\/strong> A malicious ZIP could contain arbitrary PHP code that executes on your server. This plugin does not perform code review or sandboxing \u2014 that responsibility lies with you as the administrator.<\/p>\n\n<p>Only HTTPS URLs should be used. The plugin accepts any URL that resolves to a valid ZIP file, so exercise the same caution you would when installing any third-party software.<\/p>\n\n","faq":"<p><strong>Does this replace the official Matomo Marketplace?<\/strong>\nNo. It complements it. You can still install plugins from the official Marketplace normally. This plugin adds a separate installation path for plugins hosted on GitHub.<\/p>\n\n<p><strong>What does \"Remove from tracking\" do?<\/strong>\nIt removes the plugin's entry from GithubMarketplace's tracking table. It does <strong>not<\/strong> uninstall the plugin from Matomo. To fully uninstall a plugin, use <strong>Administration \u2192 Plugins<\/strong>.<\/p>\n\n<p><strong>Can non-admin users access this?<\/strong>\nNo. The entire plugin interface requires super-administrator access. Regular users and view-only users cannot see or use it.<\/p>\n\n<p><strong>Does it work with private GitHub repositories?<\/strong>\nNo. The download is performed without authentication, so the ZIP URL must be publicly accessible.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>1.0.0 \u2014 2026-03-04<\/h2>\n\n<p>Initial release.<\/p>\n\n<ul>\n<li>Install Matomo plugins from any GitHub release ZIP URL via the admin panel<\/li>\n<li>Version and installation date tracking per plugin in a dedicated database table<\/li>\n<li>Install-or-update logic: re-installing an existing plugin updates its version record<\/li>\n<li>Remove-from-tracking action (does not uninstall the plugin files)<\/li>\n<li>Super-administrator access enforced on all actions<\/li>\n<li>CSRF protection via Matomo nonce on all mutating actions<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/GithubMarketplace\/download\/1.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GithubMarketplace\/changelog"},"consumer":{"license":null}},{"name":"GoalConversionExport","displayName":"Goal Conversion Export","owner":"btourman","description":"Provide an exporter for Google Ads and Facebook Ads.","homepage":null,"createdDateTime":"2023-11-23 06:54:06","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/btourman\/goal-conversion-export\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/btourman\/goal-conversion-export","type":"url"}],"isTheme":false,"keywords":["import","export","tracking","google","Facebook","goal","meta","ads","conversions"],"basePrice":0,"authors":[{"name":"Benjamin Tourman","email":"tourman.benjamin@gmail.com","homepage":null}],"repositoryUrl":"https:\/\/github.com\/btourman\/goal-conversion-export","lastUpdated":"2023-11-23 06:54:06","latestVersion":"0.1.0","numDownloads":711,"screenshots":["https:\/\/plugins.matomo.org\/GoalConversionExport\/images\/0.1.0\/Configuration.png","https:\/\/plugins.matomo.org\/GoalConversionExport\/images\/0.1.0\/Conversions_to_export.png","https:\/\/plugins.matomo.org\/GoalConversionExport\/images\/0.1.0\/Export_list.png","https:\/\/plugins.matomo.org\/GoalConversionExport\/images\/0.1.0\/Location.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"1","numContributors":"1","lastCommitDate":"2023-11-23 06:53:29"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2023-11-23 06:54:06","requires":{"matomo":">=4.12.3-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":711,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/btourman\/goal-conversion-export\/commits\/0.1.0","readmeHtml":{"description":"\n\n<h3>Overview<\/h3>\n\n<p>The Matomo Goal Conversion Export Plugin is a powerful tool designed to enhance your digital marketing efforts. This\nplugin enables you to export attributed goal conversions from your Matomo analytics data, making it easy to integrate\nthis valuable information into ad networks such as Google Ads and Meta Ads.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><p><strong>Export Goal Conversions<\/strong>: This plugin allows you to seamlessly export goal conversions from Matomo, ensuring you\nhave access to accurate and attributed data for your marketing campaigns.<\/p><\/li>\n<li><p><strong>Attribution Tracking<\/strong>: Gain insights into the source and medium of each goal conversion, helping you understand\nwhich channels and campaigns are driving the most conversions.<\/p><\/li>\n<li><p><strong>Flexible Export Formats<\/strong>: The plugin supports a range of export formats, making it compatible with popular ad\nnetworks\nand analytics platforms. Choose the format that best suits your needs.<\/p><\/li>\n<li><p><strong>Customizable Export Periods<\/strong>: Export data for specific time frames, allowing you to focus on relevant data for your\nad network campaigns.<\/p><\/li>\n<li><p><strong>Easy Integration<\/strong>: Integrate the exported data effortlessly with Google Ads, Meta Ads, or any other advertising\nplatform that supports the chosen export format.<\/p><\/li>\n<\/ul>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How can I contribute to this plugin ?<\/strong><\/p>\n\n<p>You can help me develop this plugin by with Pull Requests and Issues on Github project.\nAny way you consider legitimate to contribute is welcome.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Install the plugin from GitHub<\/h3>\n\n<p>Download the last release from <a href=\"https:\/\/github.com\/btourman\/goal-conversion-export\/tags\">Github Release<\/a><\/p>\n\n<p>Install it on your server from FTP in the <code>\/plugins<\/code> folder.<\/p>\n\n<p>Upon activation, this plugin will automatically update the structure of your database and add new tables to works<\/p>\n\n<h3>Configure your exports<\/h3>\n\n<p>In your Matomo's instance, go to \"Settings\" -&gt; \"Websites\" -&gt; \"Goal Conversion Export\".\nAnd create new conversion export<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/GoalConversionExport\/download\/0.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GoalConversionExport\/changelog"},"consumer":{"license":null}},{"name":"GoogleAnalyticsImporter","displayName":"Google Analytics Importer","owner":"matomo-org","description":"Import reports from a Google Analytics account into Matomo.","homepage":"https:\/\/matomo.org","createdDateTime":"2019-08-22 06:50:05","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter","type":"url"}],"isTheme":false,"keywords":["import","google","analytics"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter","lastUpdated":"2026-10-19 04:55:23","latestVersion":"6.0.5","numDownloads":141704,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/GoogleAnalyticsImporter.png","previews":[],"activity":{"numCommits":"1274","numContributors":"52","lastCommitDate":"2026-10-21 04:19:44"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"1.0.0","release":"2019-08-22 06:53:45","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":24,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.0.0"},{"name":"1.0.1","release":"2019-08-22 07:31:39","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":203,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.0.1"},{"name":"1.0.2","release":"2019-09-13 09:43:26","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":515,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.0.2"},{"name":"1.0.3","release":"2019-11-03 20:47:22","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":226,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.0.3"},{"name":"1.0.4","release":"2019-11-11 02:12:14","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":76,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.0.4"},{"name":"1.0.5","release":"2019-11-12 10:21:19","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":394,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.0.5"},{"name":"1.0.6","release":"2019-11-23 10:41:18","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":324,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.0.6"},{"name":"1.1.0","release":"2019-12-06 00:55:49","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":152,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.1.0"},{"name":"1.1.1","release":"2019-12-10 04:22:06","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":88,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.1.1"},{"name":"1.1.2","release":"2019-12-11 17:03:50","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":183,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.1.2"},{"name":"1.2.0","release":"2019-12-19 00:59:24","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.2.0"},{"name":"1.2.1","release":"2019-12-19 08:07:27","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":37,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.2.1"},{"name":"1.2.2","release":"2019-12-19 22:27:31","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2323,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.2.2"},{"name":"1.3.0","release":"2020-01-28 03:20:01","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":109,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.3.0"},{"name":"1.3.1","release":"2020-01-29 21:55:13","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":231,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.3.1"},{"name":"1.3.2","release":"2020-02-08 03:43:36","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":742,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.3.2"},{"name":"1.3.3","release":"2020-03-17 18:18:17","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1322,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.3.3"},{"name":"1.4.0","release":"2020-06-04 14:16:35","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":581,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.4.0"},{"name":"1.4.1","release":"2020-07-02 19:43:01","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":587,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.4.1"},{"name":"1.5.0","release":"2020-08-03 12:41:12","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":160,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.5.0"},{"name":"1.5.1","release":"2020-08-05 12:13:14","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":113,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.5.1"},{"name":"4.0.0","release":"2020-08-06 14:09:14","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":57,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.0.0"},{"name":"1.5.2","release":"2020-08-06 14:15:13","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":373,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.5.2"},{"name":"1.5.3","release":"2020-08-14 09:22:08","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":429,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.5.3"},{"name":"4.0.1","release":"2020-08-31 03:22:07","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":240,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.0.1"},{"name":"1.5.4","release":"2020-09-01 08:24:08","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":960,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.5.4"},{"name":"1.5.5","release":"2020-10-06 02:50:08","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":295,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.5.5"},{"name":"1.5.6","release":"2020-10-16 02:20:11","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1145,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.5.6"},{"name":"4.0.2","release":"2020-11-02 20:00:09","requires":{"matomo":">=4.0.0-rc1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":55,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.0.2"},{"name":"4.0.3","release":"2020-11-15 19:28:08","requires":{"matomo":">=4.0.0-rc1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":748,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.0.3"},{"name":"4.0.4","release":"2020-12-15 04:38:08","requires":{"matomo":">=4.0.0-rc1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":944,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.0.4"},{"name":"4.1.0","release":"2021-02-01 04:04:05","requires":{"matomo":">=4.0.0-rc1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":514,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.0"},{"name":"4.1.1","release":"2021-02-18 23:38:05","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":969,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.1"},{"name":"4.1.2","release":"2021-03-18 00:36:05","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":606,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.2"},{"name":"4.1.3","release":"2021-04-10 03:20:05","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":564,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.3"},{"name":"4.1.4","release":"2021-05-05 02:44:05","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":520,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.4"},{"name":"4.1.5","release":"2021-05-11 03:06:05","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":529,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.5"},{"name":"4.1.6","release":"2021-05-19 22:18:05","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1484,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.6"},{"name":"4.1.7","release":"2021-08-02 22:36:05","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1845,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.7"},{"name":"4.1.8","release":"2021-11-09 07:48:04","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1050,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.8"},{"name":"4.1.9","release":"2021-12-06 04:36:04","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":816,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.9"},{"name":"1.5.7","release":"2021-12-22 01:54:07","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1610,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/1.5.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/1.5.7"},{"name":"4.1.10","release":"2021-12-22 01:54:16","requires":{"matomo":">=4.1.2-rc2,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4148,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.1.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.1.10"},{"name":"4.2.0","release":"2022-04-26 02:48:05","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4136,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.2.0"},{"name":"4.3.0","release":"2022-09-12 05:44:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":434,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.3.0"},{"name":"4.3.1","release":"2022-09-15 06:06:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":454,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.3.1"},{"name":"4.3.2","release":"2022-09-19 03:18:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":841,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.3.2"},{"name":"4.3.3","release":"2022-09-26 04:32:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":893,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.3.3"},{"name":"4.3.4","release":"2022-10-04 02:38:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2147,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.3.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.3.4"},{"name":"4.3.5","release":"2022-10-25 02:38:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2111,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.3.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.3.5"},{"name":"4.3.6","release":"2022-11-21 06:08:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":809,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.3.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.3.6"},{"name":"4.4.0","release":"2022-11-28 07:18:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":662,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.0"},{"name":"4.4.1","release":"2022-12-05 06:54:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":331,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.1"},{"name":"4.4.2","release":"2022-12-06 22:38:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2797,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.2"},{"name":"4.4.3","release":"2022-12-13 01:34:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":743,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.3"},{"name":"4.4.4","release":"2022-12-19 08:12:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":801,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.4"},{"name":"4.4.5","release":"2023-01-02 07:06:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1070,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.5"},{"name":"4.4.6","release":"2023-01-17 09:40:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1667,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.6"},{"name":"4.4.7","release":"2023-02-01 10:42:08","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":757,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.7"},{"name":"4.4.8","release":"2023-02-07 10:10:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1351,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.4.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.4.8"},{"name":"4.5.0","release":"2023-02-27 08:12:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1143,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.5.0"},{"name":"4.5.1","release":"2023-03-14 06:22:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1558,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.5.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.5.1"},{"name":"4.5.2","release":"2023-03-27 05:46:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":927,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.5.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.5.2"},{"name":"4.6.0","release":"2023-04-03 22:30:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":820,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.0"},{"name":"4.6.1","release":"2023-04-13 00:18:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1512,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.1"},{"name":"4.6.2","release":"2023-04-25 05:56:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1179,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.2"},{"name":"4.6.3","release":"2023-05-08 04:40:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":777,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.3"},{"name":"4.6.4","release":"2023-05-15 04:24:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1677,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.4"},{"name":"5.0.0","release":"2023-05-16 22:34:06","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":54,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.0"},{"name":"4.6.5","release":"2023-06-05 03:50:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1113,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.5"},{"name":"4.6.6","release":"2023-06-19 09:42:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1318,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.6"},{"name":"4.6.7","release":"2023-07-03 09:00:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":564,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.7"},{"name":"4.6.8","release":"2023-07-06 08:32:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1728,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.8"},{"name":"4.6.9","release":"2023-07-17 07:12:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1141,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.9"},{"name":"4.6.10","release":"2023-07-31 04:46:06","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1597,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.10"},{"name":"4.6.11","release":"2023-08-13 23:02:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5871,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.11"},{"name":"5.0.1","release":"2023-08-14 00:50:07","requires":{"matomo":">=5.0.0-b5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.1"},{"name":"5.0.2","release":"2023-09-20 02:54:07","requires":{"matomo":">=5.0.0-rc3,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.0-b3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.2"},{"name":"5.0.3","release":"2023-10-01 22:54:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.3"},{"name":"5.0.4","release":"2023-10-16 01:30:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":65,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.4"},{"name":"5.0.5","release":"2023-11-06 06:26:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":54,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.5"},{"name":"5.0.6","release":"2023-11-14 21:44:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":46,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.6"},{"name":"5.0.7","release":"2023-12-04 08:16:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1963,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.7"},{"name":"5.0.8","release":"2024-01-15 05:32:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3368,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.8"},{"name":"5.0.9","release":"2024-01-29 04:08:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1510,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.9"},{"name":"5.0.10","release":"2024-02-13 01:28:08","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":911,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.10"},{"name":"5.0.11","release":"2024-02-26 07:16:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1079,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.11"},{"name":"5.0.12","release":"2024-03-11 03:32:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1202,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.12"},{"name":"5.0.13","release":"2024-03-25 03:20:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1562,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.13","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.13"},{"name":"5.0.14","release":"2024-04-22 06:16:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1657,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.14","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.14"},{"name":"5.0.15","release":"2024-05-21 07:02:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2942,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.15","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.15"},{"name":"5.0.16","release":"2024-06-27 06:50:29","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.16","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.16"},{"name":"5.0.17","release":"2024-06-27 06:50:58","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1127,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.17","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.17"},{"name":"5.0.18","release":"2024-07-11 15:16:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":644,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.18","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.18"},{"name":"4.6.12","release":"2024-07-12 15:58:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1590,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/4.6.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/4.6.12"},{"name":"5.0.19","release":"2024-07-22 06:04:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1124,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.19","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.19"},{"name":"5.0.20","release":"2024-08-12 05:16:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1603,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.20","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.20"},{"name":"5.0.21","release":"2024-09-02 06:06:08","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5217,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.21","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.21"},{"name":"5.0.22","release":"2024-12-16 04:58:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2408,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.0.22","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.0.22"},{"name":"5.1.0","release":"2025-01-20 07:46:11","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1543,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.0"},{"name":"5.1.1","release":"2025-02-03 08:42:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3263,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.1"},{"name":"5.1.2","release":"2025-03-17 01:18:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3697,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.2"},{"name":"5.1.3","release":"2025-05-28 02:34:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1072,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.3"},{"name":"5.1.4","release":"2025-06-09 02:52:08","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3589,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.4"},{"name":"5.1.5","release":"2025-09-29 05:34:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8288,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.5"},{"name":"5.1.6","release":"2026-03-30 03:54:08","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2881,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.6"},{"name":"5.1.7","release":"2026-05-11 04:44:14","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1114,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.7"},{"name":"5.1.8","release":"2026-05-25 06:06:09","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2317,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.8"},{"name":"5.1.9","release":"2026-06-22 05:12:08","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2397,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.1.9"},{"name":"5.2.0","release":"2026-07-20 09:54:09","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1721,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.2.0"},{"name":"5.2.1","release":"2026-08-03 06:00:10","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":838,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.2.1"},{"name":"5.2.2","release":"2026-08-17 05:18:09","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":943,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.2.2"},{"name":"6.0.0","release":"2026-08-24 06:00:28","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/6.0.0"},{"name":"5.2.3","release":"2026-08-24 07:54:08","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2117,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.2.3"},{"name":"6.0.1","release":"2026-08-24 10:14:08","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":107,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/6.0.1"},{"name":"5.2.4","release":"2026-09-14 05:48:07","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2196,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/5.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/5.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/5.2.4"},{"name":"6.0.2","release":"2026-09-14 06:32:14","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":66,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/6.0.2"},{"name":"6.0.3","release":"2026-09-28 09:54:09","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/6.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/6.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/6.0.3"},{"name":"6.0.4","release":"2026-10-05 03:54:09","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":56,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/6.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/6.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/6.0.4"},{"name":"6.0.5","release":"2026-10-19 04:55:23","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":24,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/6.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-GoogleAnalyticsImporter\/commits\/6.0.5","readmeHtml":{"description":"\n\n<p>Import your Google Analytics properties into Matomo. See <a href=\"https:\/\/matomo.org\/docs\/google-analytics-importer\/\">the documentation<\/a> for more info.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h1>6.0.5 - 2026-10-19<\/h1>\n\n<ul>\n<li>Updated guzzle to 7.15.5, phpseclib to 3.0.57 and the Google API client to v2.20.1<\/li>\n<\/ul>\n\n<h1>6.0.4 - 2026-10-05<\/h1>\n\n<ul>\n<li>Support rotating the encryption key of the stored Google OAuth client configuration and access token with the <code>core:rotate-encryption-keys<\/code> console command (available from the Matomo release that introduces it)<\/li>\n<\/ul>\n\n<h1>6.0.3 - 2026-09-28<\/h1>\n\n<ul>\n<li>Fixed an invalid or empty OAuth client configuration being accepted instead of showing an error<\/li>\n<\/ul>\n\n<h1>6.0.2 - 2026-09-14<\/h1>\n\n<ul>\n<li>Fixed imports stalling once they reached the oldest available date, without importing recent data<\/li>\n<\/ul>\n\n<h1>6.0.1 - 2026-08-24<\/h1>\n\n<ul>\n<li>Updated the Chinese (Traditional) translation<\/li>\n<\/ul>\n\n<h1>6.0.0 - 2026-08-24<\/h1>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<li>Updated dependencies to address security advisories<\/li>\n<\/ul>\n\n<h1>5.2.1 - 2026-08-03<\/h1>\n\n<ul>\n<li>Added PHPStan static analysis (CI check and pre-push hook)<\/li>\n<li>Fixed an error that could hide the real failure reason when starting a GA4 import fails<\/li>\n<\/ul>\n\n<h1>5.2.0 - 2026-07-20<\/h1>\n\n<ul>\n<li>Added code to encrypt sensitive information in the database<\/li>\n<\/ul>\n\n<h1>5.1.9 - 2026-06-22<\/h1>\n\n<ul>\n<li>Upgrade packages: guzzle to 7.10.1, psr7 to 2.10.4 &amp; promises to ^2.3,<\/li>\n<li>Enforce View access on the <code>pendingImports<\/code> controller action<\/li>\n<\/ul>\n\n<h1>5.1.8 - 2026-05-25<\/h1>\n\n<ul>\n<li>Upgraded phpseclib package to 3.0.52<\/li>\n<\/ul>\n\n<h1>5.1.7 - 2026-05-11<\/h1>\n\n<ul>\n<li>Upgraded phpseclib package to 3.0.51<\/li>\n<\/ul>\n\n<h1>5.1.6 - 2026-03-30<\/h1>\n\n<ul>\n<li>Upgraded phpseclib package to 3.0.50<\/li>\n<li>Upgraded google\/protobuf package to 4.33.6<\/li>\n<\/ul>\n\n<h1>5.1.5 - 2025-09-29<\/h1>\n\n<ul>\n<li>Upgraded grpc package to 1.74.0<\/li>\n<\/ul>\n\n<h1>5.1.4 - 2025-06-09<\/h1>\n\n<ul>\n<li>Fixed minor bug in UI<\/li>\n<\/ul>\n\n<h1>5.1.3 - 2025-05-28<\/h1>\n\n<ul>\n<li>Added fallback URI for valid redirect URI check to solve issues with some Matomo for WordPress install<\/li>\n<\/ul>\n\n<h1>5.1.2 - 2025-03-17<\/h1>\n\n<ul>\n<li>Started importing region data as the region dimension is now available in the API request<\/li>\n<\/ul>\n\n<h1>5.1.1 - 2025-02-03<\/h1>\n\n<ul>\n<li>Handled an edge case to delete the import if website is deleted<\/li>\n<\/ul>\n\n<h1>5.1.0 - 2025-01-20<\/h1>\n\n<ul>\n<li>Added code to make GA4 imports work with a proxy<\/li>\n<li>Added missing license file<\/li>\n<li>Improved UI error messages<\/li>\n<\/ul>\n\n<h1>5.0.22 - 2024-12-16<\/h1>\n\n<ul>\n<li>Removed GA3 sunset note and added no hits note for Cloud<\/li>\n<\/ul>\n\n<h1>5.0.21 - 2024-09-02<\/h1>\n\n<ul>\n<li>Fixed import not running continuously for future dates<\/li>\n<\/ul>\n\n<h1>5.0.20<\/h1>\n\n<ul>\n<li>Added new events to be tracked by ActivityLog<\/li>\n<\/ul>\n\n<h1>5.0.19<\/h1>\n\n<ul>\n<li>Removed option to schedule GA3 imports<\/li>\n<\/ul>\n\n<h1>5.0.18<\/h1>\n\n<ul>\n<li>Disabled re-import date range feature for GA3 imports<\/li>\n<\/ul>\n\n<h1>5.0.17<\/h1>\n\n<ul>\n<li>Updated translations<\/li>\n<\/ul>\n\n<h1>5.0.16<\/h1>\n\n<ul>\n<li>Changed db backoff time due to rate limit per site instead of setting it globally<\/li>\n<\/ul>\n\n<h1>5.0.15<\/h1>\n\n<ul>\n<li>Updated grpc\/grpc dependency<\/li>\n<\/ul>\n\n<h1>5.0.14<\/h1>\n\n<ul>\n<li>Added code to use proxy config for Google client configuration if available<\/li>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h1>5.0.13<\/h1>\n\n<ul>\n<li>Upgraded phpseclib to 3.0.36<\/li>\n<\/ul>\n\n<h1>5.0.12<\/h1>\n\n<ul>\n<li>Fixes streamIds key not defined warning<\/li>\n<\/ul>\n\n<h1>5.0.11<\/h1>\n\n<ul>\n<li>Fixed direct usage of Monolog dependencies<\/li>\n<\/ul>\n\n<h1>5.0.10<\/h1>\n\n<ul>\n<li>Fixed bcmath polyfill not working due to missing scoper changes<\/li>\n<\/ul>\n\n<h1>5.0.9<\/h1>\n\n<ul>\n<li>Added code to fix redirect error exception when executing via misc cron<\/li>\n<li>Updating dependencies for PHP 8.3 support<\/li>\n<\/ul>\n\n<h1>5.0.8<\/h1>\n\n<ul>\n<li>Added code to hide GA Import tab for no-data screen<\/li>\n<\/ul>\n\n<h1>5.0.7<\/h1>\n\n<ul>\n<li>Upgraded phpseclib to 3.0.34<\/li>\n<\/ul>\n\n<h1>5.0.6<\/h1>\n\n<ul>\n<li>Scope vendored libraries to improve compatibility with other plugins<\/li>\n<li>Compatibility with PHP 8.3<\/li>\n<\/ul>\n\n<h1>5.0.5<\/h1>\n\n<ul>\n<li>Added code to remember GA Import baner dismiss action<\/li>\n<\/ul>\n\n<h1>5.0.4<\/h1>\n\n<ul>\n<li>Updated dependency (Guzzle)<\/li>\n<li>Updated translations<\/li>\n<\/ul>\n\n<h1>5.0.3<\/h1>\n\n<ul>\n<li>Compatibility with Matomo 5 rc5<\/li>\n<\/ul>\n\n<h1>5.0.2<\/h1>\n\n<ul>\n<li>Compatibility with Matomo 5 rc3<\/li>\n<\/ul>\n\n<h1>5.0.1<\/h1>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<h1>5.0.0<\/h1>\n\n<ul>\n<li>Remove all use of AngularJS from the plugin.<\/li>\n<\/ul>\n\n<h1>4.6.11<\/h1>\n\n<ul>\n<li>Ignore custom dimensions assigned the Item scope<\/li>\n<\/ul>\n\n<h1>4.6.10<\/h1>\n\n<ul>\n<li>Google Connect button styling changes for Matomo cloud<\/li>\n<\/ul>\n\n<h1>4.6.9<\/h1>\n\n<ul>\n<li>Updated dependencies (Guzzle)<\/li>\n<li>Added GA import tab in no data screen<\/li>\n<\/ul>\n\n<h1>4.6.8<\/h1>\n\n<ul>\n<li>Added OAuth complete warning when configuring\/authorizing GA OAuth.<\/li>\n<\/ul>\n\n<h1>4.6.7<\/h1>\n\n<ul>\n<li>Added additional check for redirect URL<\/li>\n<\/ul>\n\n<h1>4.6.6<\/h1>\n\n<ul>\n<li>Started using ga:adwordsCampaignID dimension instead of ga:campaignCode to import data<\/li>\n<\/ul>\n\n<h1>4.6.5<\/h1>\n\n<ul>\n<li>Fixed SiteContentDetector usage for lower Matomo versions<\/li>\n<li>Added mapping for YaBrowser<\/li>\n<li>Added mappings for search engine<\/li>\n<\/ul>\n\n<h1>4.6.4<\/h1>\n\n<ul>\n<li>Changes to support Matomo Oauth disable on cloud<\/li>\n<\/ul>\n\n<h1>4.6.3<\/h1>\n\n<ul>\n<li>Fixed warnings for PHP 8.1<\/li>\n<\/ul>\n\n<h1>4.6.2<\/h1>\n\n<ul>\n<li>Improved check to ensure future and present dates are not processed today.<\/li>\n<\/ul>\n\n<h1>4.6.1<\/h1>\n\n<ul>\n<li>Added the ability to show a security error<\/li>\n<li>Improved nonce check after authorization<\/li>\n<\/ul>\n\n<h1>4.6.0<\/h1>\n\n<ul>\n<li>Updated dependencies to improve PHP 8.2 compatability<\/li>\n<li>Redesigned UI to simplify connecting to Google Analytics<\/li>\n<li>Updated language translations<\/li>\n<\/ul>\n\n<h1>4.5.2<\/h1>\n\n<ul>\n<li>Improved check to determine nohup support exist or not<\/li>\n<\/ul>\n\n<h1>4.5.1<\/h1>\n\n<ul>\n<li>Improved check to determine nohup support exist<\/li>\n<\/ul>\n\n<h1>4.5.0<\/h1>\n\n<ul>\n<li>Added some brand mappings.<\/li>\n<li>Fixed status setting after rate limit and started pulling empty rows for GA4.<\/li>\n<li>Added code to display import notification if site has GA detected.<\/li>\n<li>Fixed duplication of Custom Dimensions.<\/li>\n<li>Fixes deprecation warnings for PHP 8.1<\/li>\n<\/ul>\n\n<h1>4.4.8<\/h1>\n\n<ul>\n<li>GA4 - Removed itemRevenue and itemsPurchased metrics due to incompatibility<\/li>\n<\/ul>\n\n<h1>4.4.7<\/h1>\n\n<ul>\n<li>Fixed mobile app import not working due to recent change in site creation.<\/li>\n<\/ul>\n\n<h1>4.4.6<\/h1>\n\n<ul>\n<li>Fix to log the allowed API requests correctly for cloud.<\/li>\n<li>Updating error message when a use cancels auth to be more helpful.<\/li>\n<li>Try\/catch block for extraCustomDimensions added to ensure import continues even after slot limit is reached.<\/li>\n<li>Started calling addSite API through processRequest method to ensure events are triggered.<\/li>\n<\/ul>\n\n<h1>4.4.5<\/h1>\n\n<ul>\n<li>Added success notification screen after selecting GA properties<\/li>\n<\/ul>\n\n<h1>4.4.4<\/h1>\n\n<ul>\n<li>Added new method to get count of imports scheduled.<\/li>\n<li>Started using polyfill for bcmath to work instead of asking users to install one.<\/li>\n<\/ul>\n\n<h1>4.4.3<\/h1>\n\n<ul>\n<li>Started catching cannot process exception to not throw uncaught exception.<\/li>\n<\/ul>\n\n<h1>4.4.2<\/h1>\n\n<ul>\n<li>Fixed regression due to string value being passed for date<\/li>\n<\/ul>\n\n<h1>4.4.1<\/h1>\n\n<ul>\n<li>Handled exception being thrown on screen due to log level<\/li>\n<li>Notification message updated to show last import date<\/li>\n<li>Stop import process for specified time when quota is exceeded instead of retrying<\/li>\n<\/ul>\n\n<h1>4.4.0<\/h1>\n\n<ul>\n<li>Added rate limiting for Analytics Importer for Matomo cloud customers<\/li>\n<li>Added code to skip retry for certain exceptions<\/li>\n<\/ul>\n\n<h1>4.3.6<\/h1>\n\n<ul>\n<li>Added escaping for shell args<\/li>\n<\/ul>\n\n<h1>4.3.5<\/h1>\n\n<ul>\n<li>Fixes for System testcases to work due to recent changes<\/li>\n<li>Adding more date format hints to form fields, #286<\/li>\n<\/ul>\n\n<h1>4.3.4<\/h1>\n\n<ul>\n<li>Fixed code to resume import to import before last_day_imported<\/li>\n<\/ul>\n\n<h1>4.3.3<\/h1>\n\n<ul>\n<li>Added empty label check for UserCountry Importer GA4<\/li>\n<\/ul>\n\n<h1>4.3.2<\/h1>\n\n<ul>\n<li>Fixed redirect uri bug when passing domain in console command<\/li>\n<li>Fixed recent dates not importing all dates.<\/li>\n<\/ul>\n\n<h1>4.3.1<\/h1>\n\n<ul>\n<li>Added missing translation key<\/li>\n<\/ul>\n\n<h1>4.3.0<\/h1>\n\n<ul>\n<li>Added support to import GA4 data into Matomo<\/li>\n<li>Added code to import recent dates first<\/li>\n<li>Upgraded guzzleHTTP version to 4.5.0<\/li>\n<\/ul>\n\n<h1>4.2.0<\/h1>\n\n<p>Migrate AngularJS code to Vue.<\/p>\n\n<h1>4.1.11<\/h1>\n\n<p>Mention about the new idSite creation in the notification.<\/p>\n\n<h1>4.1.10<\/h1>\n\n<p>Use correct instanceId in a multi account set up.<\/p>\n\n<h1>4.1.9<\/h1>\n\n<p>Changes:\n* Upgraded google-apiclient library to v2.11 to make it compatible with PHP8.1.<\/p>\n\n<h1>4.1.8<\/h1>\n\n<p>Changes:\n* Added changes to make it compatible with php8.<\/p>\n\n<h1>4.1.7<\/h1>\n\n<p>Changes:\n* Report all types of error messages to end user for easier issue diagnosis.<\/p>\n\n<h1>4.1.6<\/h1>\n\n<p>Changes:\n* Compatibility with Matomo 4.3.0.<\/p>\n\n<h1>4.1.5<\/h1>\n\n<p>Changes:\n* Do not use log data purge check when invalidating week periods after a day is imported.<\/p>\n\n<h1>4.1.4<\/h1>\n\n<p>Changes:\n* Catch cancelled import exceptions and do not propagate in import reports command\n* trim property\/view\/account ID when starting an import to avoid errors on typos<\/p>\n\n<h1>4.1.3<\/h1>\n\n<p>Bug fixes:\n* Order import statuses by site ID as integer value instead of as text value.<\/p>\n\n<p>Other changes:\n* Bump phpseclib\/phpseclib from 2.0.29 to 2.0.31<\/p>\n\n<h1>4.1.2<\/h1>\n\n<p>Bug Fixes:\n* Fix check for whether we should avoid tagmanager container creation.<\/p>\n\n<p>Changes:\n* Add some more logging for exceptions caught in the controller.<\/p>\n\n<h1>4.1.1<\/h1>\n\n<p>Bug Fixes:\n* Check referrer URL comes from google when checking oauth nonce.\n* Disable tagmanager container creation while creating new site to import into.\n* Only show admin menu item for superusers.<\/p>\n\n<h1>4.1.0<\/h1>\n\n<p>New Features:\n* Allow logging to a single file via DI config setting 'GoogleAnalyticsImporter.logToSingleFile'.<\/p>\n\n<p>Changes:\n* Remove extraneous google services from vendor via composer.<\/p>\n\n<h1>4.0.4<\/h1>\n\n<p>Changes:\n* Do not use nohup on windows and allow users to disable nohup via DI config.<\/p>\n\n<h1>4.0.0<\/h1>\n\n<p>Compatibility with Matomo 4<\/p>\n\n<h1>1.5.6<\/h1>\n\n<p>Bug Fixes:\n* Fix issue showing broken URLs when importing page URLs with hash values in them. Affected users will have to re-import affected days.<\/p>\n\n<h1>1.5.5<\/h1>\n\n<p>Changes:\n* Report error without failing command when client is misconfigured in import-reports.\n* Fail w\/o thrown exception if lock is already acquired.<\/p>\n\n<p>Bug Fixes:\n* Fix issue where days could not be re-archived for imported sites due to lack of timestamp information present in dates.<\/p>\n\n<h1>1.5.4<\/h1>\n\n<p>Changes:\n* Abort on all errors and report when it is due to a insufficient privileges exception.\n* Ignore unknown metric exceptions.\n* Better debug exception messages when errors occur during controller actions.<\/p>\n\n<p>Bug Fixes:\n* Handle GA API active custom dimension value of empty string properly.\n* Handle invalid max end date configuration.\n* Check for custom dimension slots before importing &amp; allow ignoring extra custom dimensions<\/p>\n\n<h1>1.5.3<\/h1>\n\n<p>Changes:\n* Fix referrers table subtable in imported reports so link is correct (only affects newly imported reports).\n* Show last GA error if there was one when cannot reach GA API fails repeatedly.\n* Use exponential backoff for when GA API backend fails.\n* Fix forum link in error message.<\/p>\n\n<h1>1.5.2<\/h1>\n\n<p>Changes:\n* Fixing typo in previous rate limit change.<\/p>\n\n<h1>1.5.1<\/h1>\n\n<p>Changes:\n* Do not throw if the rate limit is reached just log a message.\n* Added safety measure in case of broken internal import status.\n* Default value missing for $maxEndDateDesc (fixes warning).\n* Add link to the user guide to GA API config forms.<\/p>\n\n<h1>1.5.0<\/h1>\n\n<p>Changes:\n* Allow lock ttl to be configured and use reexpire lock which waits to expire.\n* Allow forced max end date to be specified through config.\n* Set a fixed end date for Matomo for WordPress.<\/p>\n\n<p>Bug Fixes:\n* Undo forced input sanitization for client config.\n* Fix reimport not respecting last_day_imported.\n* Reduce amount of memory used.<\/p>\n\n<h1>1.4.1<\/h1>\n\n<p>Changes:\n* Fix bug in referrers import triggered by not set values in referral path in GA. Imports experiencing the \"label column not found\" error are failing due to this bug. Re-importing with version 1.4.1 will avoid the issue.<\/p>\n\n<h1>1.4.0<\/h1>\n\n<p>Changes:\n* Update google API client for PHP 7.4 support.<\/p>\n\n<h1>1.3.3<\/h1>\n\n<p>Changes:\n* Use quotaUser to support multi-instance setups.<\/p>\n\n<h1>1.3.2<\/h1>\n\n<p>Bug fixes:\n* Fix bug in ongoing import that could result in incomplete metrics being imported. Bug is more visible since changes in 1.3.0.<\/p>\n\n<h1>1.3.1<\/h1>\n\n<p>Changes:\n* Allow re-importing ranges to work when a job is finished or has no more to import.\n* Merge Time Started\/Time Finished columns to provide more space in the UI.<\/p>\n\n<p>Bug fix:\n* Do not show resume button if status is 'started'.<\/p>\n\n<h1>1.3.0<\/h1>\n\n<p>Features:\n* Improved support for shared hosting users with hosts that may kill long running processes. The import job is not attempted every hour\n  if a system kills a job, it will restart promptly.\n* Detect killed jobs and report to the user so they are not left in suspense.\n* Allow re-importing ranges in the past.\n* Add a protection for users of Matomo 3.13.2 that will disallow re-archiving of imported days (this can wipe the data that was imported).<\/p>\n\n<h1>1.2.2<\/h1>\n\n<p>Bug fixes:\n* Fixing typo.\n* Small style tweak.<\/p>\n\n<h1>1.2.1<\/h1>\n\n<p>Bug fixes:\n* Handle old statuses without new property.<\/p>\n\n<h1>1.2.0<\/h1>\n\n<p>Features:\n* Resume button to make it clearer that on an errored import the import doesn't have to be cancelled and restarted.\n* Add feature to change import end date dynamically so users don't have to restart if they enter the wrong end date (or don't enter one).\n* Support new VisitFrequency metrics in core if available.<\/p>\n\n<p>Bug fixes:\n* Tweaks to messages for clarity.\n* Goals record importer was not applying new\/returning segments.\n* GA does not trim page titles, so ignore on error and hope users report issues.<\/p>\n\n<h1>1.1.2<\/h1>\n\n<p>Bug fixes:\n* Fix variable not defined error.\n* Make sure version is compatible w\/ older versions of Matomo.<\/p>\n\n<h1>1.1.1<\/h1>\n\n<p>Bug fixes:\n* Compatibility with Matomo for wordpress.\n* Do not fail if an unmappable goal is found (in case user creates their own goal or edits a goal).<\/p>\n\n<h1>1.1.0<\/h1>\n\n<p>Features:\n* Add new diagnostics to check for required functions and executables.\n* Add troubleshooting option to enable debug logging so users can provide useful info in a bug report.\n* Allow importing GA dimensions not natively supported in Matomo by creating new custom dimensions.\n* Support importing mobile app properties (including screen views metrics as pageviews and screen reports as page title reports).<\/p>\n\n<p>Bug fixes:\n* Remove extra params when redirecting from processAuthCode action.\n* Change include paths to better support wordpress installs.\n* Do not try to import ecommerce items report if property does not support ecommerce.\n* Ordering in GA API requests was not applied.\n* Entry\/exit page titles should not import unique visitors since we can't get that information reliably.\n* URLs that end in the action default name cause a conflict w\/ directory paths. This is not an issue anymore.\n* Better process strange referrer URLs from GA.\n* Allow specifying timezone manually in case GA timezone is not a valid PHP timezone.<\/p>\n\n<h1>1.0.6<\/h1>\n\n<ul>\n<li>Better and configurable mysql ping for shared hosting.<\/li>\n<li>If invalid or missing config is found delete existing client configuration.<\/li>\n<\/ul>\n\n<h1>1.0.5<\/h1>\n\n<ul>\n<li>Display query count even on rate limit in command output.<\/li>\n<li>Issue pointless mysql query to keep connection alive on systems that have a small wait_timeout.<\/li>\n<\/ul>\n\n<h1>1.0.4<\/h1>\n\n<ul>\n<li>Add --skip-archiving option to allow avoiding launching of archiving command when importing.<\/li>\n<li>Default empty keyword value when importing campaign keyword report.<\/li>\n<li>Use CliPhp to determine php binary and default to just php if not found.<\/li>\n<\/ul>\n\n<h1>1.0.3<\/h1>\n\n<ul>\n<li>Allow account ID to be specified explicitly since it can differ from the number in the UA-... property ID.<\/li>\n<li>Print debug message when account ID is deduced from property ID in CLI command.<\/li>\n<li>Use exponentially increasing wait time between rate limited requests when querying GA API.<\/li>\n<\/ul>\n\n<h1>1.0.2<\/h1>\n\n<ul>\n<li>Add import date to error message when import fails.<\/li>\n<li>Fix bug in Actions record importer where it did not handle summary rows correctly.<\/li>\n<li>Fix untranslated text.<\/li>\n<\/ul>\n\n<h1>1.0.1<\/h1>\n\n<ul>\n<li>Fix typo in actions record importer.<\/li>\n<\/ul>\n\n<h1>1.0.0-b1<\/h1>\n\n<ul>\n<li>Initial release (beta).<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/GoogleAnalyticsImporter\/download\/6.0.5"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GoogleAnalyticsImporter\/changelog"},"consumer":{"license":null}},{"name":"GoogleAuthenticator","displayName":"Google Authenticator","owner":"sgiehl","description":"Adds Google Authenticator Two Factor Auth to Matomo.","homepage":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator","createdDateTime":"2015-07-21 20:46:05","donate":{"paypal":"stefangiehl@web.de","flattr":"https:\/\/flattr.com\/thing\/4453253\/sgiehlpiwik-plugin-GoogleAuthenticator-on-GitHub","bitcoin":null},"support":[],"isTheme":false,"keywords":["login","authentication","2FA","google","authenticator"],"basePrice":0,"authors":[{"name":"Stefan Giehl","email":"stefan@matomo.org","homepage":"https:\/\/github.com\/sgiehl"}],"repositoryUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator","lastUpdated":"2018-12-04 09:16:05","latestVersion":"3.2.2","numDownloads":17369,"screenshots":["https:\/\/plugins.matomo.org\/GoogleAuthenticator\/images\/3.2.2\/login.jpg","https:\/\/plugins.matomo.org\/GoogleAuthenticator\/images\/3.2.2\/setup.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"83","numContributors":"3","lastCommitDate":"2018-12-04 09:14:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.0.1","release":"2015-07-21 20:46:05","requires":{"piwik":">=2.14.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":61,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/0.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/0.0.1"},{"name":"0.0.2","release":"2015-07-26 10:56:04","requires":{"piwik":">=2.14.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":31,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/0.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/0.0.2"},{"name":"0.0.3","release":"2015-07-27 20:44:03","requires":{"piwik":">=2.14.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":24,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/0.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/0.0.3"},{"name":"0.0.4","release":"2015-07-28 13:18:03","requires":{"piwik":">=2.14.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":177,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/0.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/0.0.4"},{"name":"0.1.0","release":"2015-08-15 15:26:03","requires":{"piwik":">=2.14.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4110,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/0.1.0"},{"name":"3.0.0","release":"2016-12-26 01:40:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":47,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/3.0.0"},{"name":"3.0.1","release":"2016-12-27 00:02:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1577,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/3.0.1"},{"name":"3.0.2","release":"2017-06-15 13:52:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1674,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/3.0.2"},{"name":"3.1.0","release":"2018-01-02 12:18:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":842,"license":{"name":"BSD & GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/3.1.0"},{"name":"3.1.1","release":"2018-02-10 20:42:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2236,"license":{"name":"BSD AND GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/3.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/3.1.1"},{"name":"3.2.0","release":"2018-08-12 18:58:04","requires":{"piwik":">=3.6.0-b4,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":432,"license":{"name":"BSD AND GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/3.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/3.2.0"},{"name":"3.2.1","release":"2018-08-30 17:00:07","requires":{"piwik":">=3.6.0-b4,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5301,"license":{"name":"BSD AND GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/3.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/3.2.1"},{"name":"3.2.2","release":"2018-12-04 09:16:05","requires":{"piwik":">=3.6.0-b4,<3.8.0-b3","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":857,"license":{"name":"BSD AND GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-GoogleAuthenticator\/commits\/3.2.2","readmeHtml":{"description":"\n\n<p>Adds a userbased possibility to use Google Authenticator 2FA as additional login security.\nEach use can enable\/disable this feature in his account settings.<\/p>\n\n<p>This Plugin is based on the original Matomo (Piwik) Login plugin and needs this one to be installed but not active.<\/p>\n\n<p>ATTENTION: Activating Google Authenticator for an account, also requires an auth code for direct API requests with the users token auth. Use <code>&amp;auth_code={authcode}<\/code> to do that.<\/p>\n\n<p>Applications accessing your Matomo data using the API might thus no longer work. This also affects all versions of Matomo Mobile. To avoid this create a read only user account in Matomo to use it in those applications.<\/p>\n\n<h3>Requirements<\/h3>\n\n<p><a href=\"https:\/\/github.com\/piwik\/piwik\">Piwik<\/a> 3.6.0 or higher is required.<\/p>\n\n<p>Google Authenticator App for <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.apps.authenticator2\">Android<\/a>, <a href=\"https:\/\/itunes.apple.com\/de\/app\/google-authenticator\/id388497605?mt=8\">iOS<\/a> or <a href=\"https:\/\/m.google.com\/authenticator\">Blackberry<\/a> needs to be <a href=\"https:\/\/support.google.com\/accounts\/answer\/1066447?hl=de\">installed<\/a> on your mobile device<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Userbased activation of Google Authenticator 2FA<\/li>\n<\/ul>\n\n","faq":"","documentation":"","changelog":"<ul>\n<li>3.2.0 compatibility to Matomo 3.6.0<\/li>\n<li>3.0.0 compatibility to Piwik 3.0<\/li>\n<li>0.1.0 Added possibility to define title and description for Google Authenticator app<\/li>\n<li>0.0.4 fixes password reset link<\/li>\n<li>0.0.3 small improvements<\/li>\n<li>0.0.2 Added first translations<\/li>\n<li>0.0.1 Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/GoogleAuthenticator\/download\/3.2.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GoogleAuthenticator\/changelog"},"consumer":{"license":null}},{"name":"GrabGravatar","displayName":"Grab Gravatar","owner":"alnoorp","description":"Adds a profile photo from Gravatar based on the email address stored in the User Id field.","homepage":"http:\/\/piwik.org","createdDateTime":"2015-03-18 04:20:04","donate":{"paypal":"alnoorp@gmail.com","bitcoin":null},"support":[],"isTheme":false,"keywords":["Visitor","Avatar","GrabGravatar","photo","profile"],"basePrice":0,"authors":[{"name":"Alnoor Pirani","email":"alnoorp@gmail.com","homepage":"http:\/\/alnoorpirani.com\/"}],"repositoryUrl":"https:\/\/github.com\/alnoorp\/GrabGravatar","lastUpdated":"2015-07-24 14:26:11","latestVersion":"0.2.0","numDownloads":7182,"screenshots":["https:\/\/plugins.matomo.org\/GrabGravatar\/images\/0.2.0\/Gravatar_replaces_default_avatar_when_email_known.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"15","numContributors":"1","lastCommitDate":"2015-03-22 04:22:05"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-03-18 04:20:04","requires":{"piwik":">=2.11.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/alnoorp\/GrabGravatar\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GrabGravatar\/download\/0.1.0"},{"name":"0.1.1","release":"2015-07-24 14:26:04","requires":{"piwik":">=2.11.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/alnoorp\/GrabGravatar\/commits\/0.1.21","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GrabGravatar\/download\/0.1.1"},{"name":"0.1.11","release":"2015-07-24 14:26:07","requires":{"piwik":">=2.11.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/alnoorp\/GrabGravatar\/commits\/0.1.22","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GrabGravatar\/download\/0.1.11"},{"name":"0.2.0","release":"2015-07-24 14:26:11","requires":{"piwik":">=2.11.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7168,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/alnoorp\/GrabGravatar\/commits\/0.2.1","readmeHtml":{"description":"\n\n<p>A Matomo (Piwik) plugin that adds a profile photo from Gravatar based on the email address stored in the User Id field.<\/p>\n\n","faq":"<p><strong>What information do I need to make this plugin work?<\/strong>\nMake sure you are capturing the email address for your visitors in the User Id field.<\/p>\n\n<p><strong>Why do some of my visitors just display the Gravatar logo instead of a photo?<\/strong>\nEither there is no email address associated with the visitor or they do not have a Gravatar set up at gravatar.com<\/p>","documentation":"","changelog":"<ul>\n<li>0.1.11 Fixed screenshot filename<\/li>\n<li>0.1.1 Add screenshots<\/li>\n<li>0.1.0 First beta<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/GrabGravatar\/download\/0.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GrabGravatar\/changelog"},"consumer":{"license":null}},{"name":"GravatarPictures","displayName":"Gravatar Pictures","owner":"scysys","description":"Obtains Gravatar Profile Pictures.","homepage":"https:\/\/github.com\/scysys\/MatomoGravatarPictures","createdDateTime":"2022-02-09 11:44:02","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/scysys\/MatomoGravatarPictures\/tree\/master\/docs","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/scysys\/MatomoGravatarPictures\/issues","type":"url"}],"isTheme":false,"keywords":["profile","gravatar","profile pictures","profile images"],"basePrice":0,"authors":[{"name":"scysys","email":"scysys@outlook.com","homepage":null}],"repositoryUrl":"https:\/\/github.com\/scysys\/MatomoGravatarPictures","lastUpdated":"2022-02-09 11:44:02","latestVersion":"1.0.0","numDownloads":680,"screenshots":["https:\/\/plugins.matomo.org\/GravatarPictures\/images\/1.0.0\/GravatarPictures.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"4","numContributors":"1","lastCommitDate":"2022-02-09 11:43:30"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2022-02-09 11:44:02","requires":{"piwik":">=3.13.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":680,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GravatarPictures\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/scysys\/MatomoGravatarPictures\/commits\/v3.x","readmeHtml":{"description":"\n\n<p>This Matomo Plugin looks for Gravatar Images for your Visitors.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How does it work?<\/strong><\/p>\n\n<p>This Plugin is only working if you have setuped the UserID Feature. The UserID also must based on the E-Mail-Address.<\/p>\n\n<p><img src=\"https:\/\/github.com\/scysys\/MatomoGravatarPictures\/blob\/master\/screenshots\/GravatarPictures.png\" alt=\"GravatarPictures.png\" \/><\/p>\n\n<p><strong>What happened if the user is not using Gravatar?<\/strong><\/p>\n\n<p>The default Matomo Image will be displayed.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Version 1.0.0\n- Initial Release<\/p>"},"download":"\/api\/2.0\/plugins\/GravatarPictures\/download\/1.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GravatarPictures\/changelog"},"consumer":{"license":null}},{"name":"GroupPermissions","displayName":"Group Permissions","owner":"MichaelRoosz","description":"Manage user permissions with groups.","homepage":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions","createdDateTime":"2018-08-22 13:40:06","donate":{"paypal":"michael.roosz@web.de","bitcoin":null},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions","type":"url"}],"isTheme":false,"keywords":["group","user","GroupPermissions","permission"],"basePrice":0,"authors":[{"name":"Michael Roosz","email":"michael.roosz@web.de","homepage":null}],"repositoryUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions","lastUpdated":"2025-09-19 15:36:03","latestVersion":"5.2.1","numDownloads":176361,"screenshots":["https:\/\/plugins.matomo.org\/GroupPermissions\/images\/5.2.1\/Manage_Access.png","https:\/\/plugins.matomo.org\/GroupPermissions\/images\/5.2.1\/Manage_Groups.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"187","numContributors":"27","lastCommitDate":"2026-09-16 19:54:40"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"3.0.2","release":"2018-08-22 13:40:06","requires":{"piwik":">=3.1.0-rc1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":434,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/3.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/3.0.2"},{"name":"3.6.0","release":"2018-09-07 07:24:03","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/3.6.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/3.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/3.6.0"},{"name":"3.6.1","release":"2018-09-07 08:30:04","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2441,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/3.6.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/3.6.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/3.6.1"},{"name":"3.9.1","release":"2019-05-03 17:14:06","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4286,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/3.9.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/3.9.1a","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/3.9.1"},{"name":"4.0.2","release":"2022-04-12 04:58:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":82,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/4.0.2"},{"name":"4.0.3","release":"2022-04-20 21:38:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/4.0.3"},{"name":"4.0.4","release":"2022-04-20 21:48:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/4.0.4"},{"name":"4.0.5","release":"2022-04-20 22:10:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":150232,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/4.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/4.0.5"},{"name":"5.0.0","release":"2024-01-08 10:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6112,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/5.0.0"},{"name":"5.1.0","release":"2025-01-15 06:30:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/5.1.0"},{"name":"5.1.1","release":"2025-01-15 07:28:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2727,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/5.1.1"},{"name":"5.2.1","release":"2025-09-19 15:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10028,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/GroupPermissions\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-GroupPermissions\/commits\/5.2.1","readmeHtml":{"description":"\n\n<p>Manage user permissions using groups in Matomo. This plugin adds a dedicated admin screen to manage groups, assign users to groups, and set site access for each group.<\/p>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Navigation<\/h3>\n\n<ul>\n<li>Go to Administration \u2192 System \u2192 Group Permissions.<\/li>\n<li>The page shows two tabs: \"Manage Access\" and \"Manage Groups\".<\/li>\n<\/ul>\n\n<h3>Manage Access tab<\/h3>\n\n<ul>\n<li>Select the target website(s). You can apply changes to a specific site ID or to all sites you administer.<\/li>\n<li>For each group, choose one of the available roles for the selected site(s): <code>view<\/code>, <code>write<\/code>, or <code>admin<\/code>.<\/li>\n<\/ul>\n\n<h3>Manage Groups tab<\/h3>\n\n<ul>\n<li>Create, rename, and delete groups.<\/li>\n<li>Add or remove users to\/from a group. A user can be in multiple groups.<\/li>\n<li>Duplicates are prevented; attempts to add an existing member will show an error.<\/li>\n<\/ul>\n\n<h2>Permissions required<\/h2>\n\n<ul>\n<li>Managing group membership (create\/rename\/delete groups, add\/remove users) requires Super User access.<\/li>\n<li>Changing site access for groups requires Admin access on the selected site(s).<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>5.2.1<\/h2>\n\n<ul>\n<li>Fix plugin version in plugin.json<\/li>\n<\/ul>\n\n<h2>5.2.0<\/h2>\n\n<ul>\n<li>Fix only first 100 groups beging shown, now showing all<\/li>\n<li>Fix only first 100 group members beging shown, now showing all<\/li>\n<li>Clear new group name input after adding a new group<\/li>\n<li>Clear new group member name inpit after adding a new group member<\/li>\n<li>Select default group if none selected<\/li>\n<\/ul>\n\n<h2>5.1.1<\/h2>\n\n<ul>\n<li>Update readme file<\/li>\n<\/ul>\n\n<h2>5 1.0<\/h2>\n\n<ul>\n<li>Fix Web UI for Matomo 5<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<h2>4.0.5<\/h2>\n\n<ul>\n<li>Fix js crash<\/li>\n<\/ul>\n\n<h2>4.0.4<\/h2>\n\n<ul>\n<li>Show all users in \"add-to-group\" user selection in \"Manage groups\"<\/li>\n<\/ul>\n\n<h2>4.0.3<\/h2>\n\n<ul>\n<li>Fix site selection in \"Manage access\"<\/li>\n<li>Add dropdown for \"add-to-group\" user selection in \"Manage groups\"<\/li>\n<li>Fix \"Apply to all websites\" text<\/li>\n<li>Do not allow multiple groups with the same name<\/li>\n<li>Check if a user is already in a group<\/li>\n<\/ul>\n\n<h2>4.0.2<\/h2>\n\n<ul>\n<li>Fix config page getting endlessly reloaded on Matomo 4.5.0<\/li>\n<\/ul>\n\n<h2>4.0.1<\/h2>\n\n<ul>\n<li>Compatibility with Matomo 4<\/li>\n<li>Fix SQL Exception when updating permissions<\/li>\n<\/ul>\n\n<h2>3.9.1<\/h2>\n\n<ul>\n<li>Fixed \"noaccess\" check for newer Matomo versions<\/li>\n<\/ul>\n\n<h2>3.6.1<\/h2>\n\n<ul>\n<li>Fixed Issue #1 reported by EmTeedee<\/li>\n<\/ul>\n\n<h2>3.6.0<\/h2>\n\n<ul>\n<li>Added support for 'write' access<\/li>\n<li>Compatibility with Matomo 3.6.0<\/li>\n<\/ul>\n\n<h2>3.0.2<\/h2>\n\n<ul>\n<li>First stable release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/GroupPermissions\/download\/5.2.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/GroupPermissions\/changelog"},"consumer":{"license":null}},{"name":"HashUserId","displayName":"Hash User Id","owner":"iMarkus","description":"Anonymize UserId using salt and sha1 hash.","homepage":"https:\/\/github.com\/iMarkus\/Piwik-HashUserId","createdDateTime":"2017-10-24 11:34:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/iMarkus\/Piwik-HashUserId\/issues","type":"url"}],"isTheme":false,"keywords":["Anonymize","Hash","UserId"],"basePrice":0,"authors":[{"name":"iMarkus","email":"iMarkus@users.noreply.github.com","homepage":"https:\/\/github.com\/iMarkus"},{"name":"hagor","email":"hagor@users.noreply.github.com","homepage":"https:\/\/github.com\/hagor"}],"repositoryUrl":"https:\/\/github.com\/iMarkus\/Piwik-HashUserId","lastUpdated":"2017-10-25 10:50:05","latestVersion":"0.4.0","numDownloads":6754,"screenshots":["https:\/\/plugins.matomo.org\/HashUserId\/images\/0.4.0\/HashUserId.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"14","numContributors":"1","lastCommitDate":"2017-10-25 10:48:11"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2017-10-24 11:34:03","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HashUserId\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-HashUserId\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HashUserId\/download\/0.1.0"},{"name":"0.2.0","release":"2017-10-25 10:26:04","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HashUserId\/0.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-HashUserId\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HashUserId\/download\/0.2.0"},{"name":"0.3.0","release":"2017-10-25 10:36:02","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HashUserId\/0.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-HashUserId\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HashUserId\/download\/0.3.0"},{"name":"0.4.0","release":"2017-10-25 10:50:05","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6723,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HashUserId\/0.4.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-HashUserId\/commits\/0.4.0","readmeHtml":{"description":"\n\n<p>This plugin is using a salt from configuration file and sha1 hash function to anonymize the UserId.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>FAQ<\/p>\n\n<p>Are there any settings?<\/p>\n\n<p>No. Once the plugin is activated, it starts to do its job.<\/p>\n\n<p>Is it going to break my existing tracking codes?<\/p>\n\n<p>No. Matomo (Piwik) will continue to work as normal with the hashed user id in the tracking requests.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>0.4.0<\/strong>\n* Added API<\/p>\n\n<p><strong>0.3.0<\/strong>\n* Added screenshot<\/p>\n\n<p><strong>0.2.0<\/strong>\n* Added empty check on uid<\/p>\n\n<p><strong>0.1.0<\/strong>\n* Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/HashUserId\/download\/0.4.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/HashUserId\/changelog"},"consumer":{"license":null}},{"name":"HeatmapSessionRecording","displayName":"Heatmap & Session Recording","owner":"matomo-org","description":"Visualise behaviour with Heatmaps and replay recorded visitor sessions to identify friction, validate design decisions, and improve conversion paths.","homepage":"https:\/\/www.heatmap-analytics.com","createdDateTime":"2017-05-17 06:34:21","donate":{},"support":[],"isTheme":false,"keywords":["Visitor","heatmap","video","click","visit","session recording","session","recording","move","scroll","hover","user"],"basePrice":220,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-12 06:45:25","latestVersion":"6.0.5","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/0_Click_Heatmap.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/1_Move_Heatmap.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/2_Scroll_Heatmap.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/3_Above_Fold.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/4_Session_Recordings.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/5_Replay_Recorded_Session.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/6_Replay_Move_And_Click_Path.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/7_Visitor_Log.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/8_Manage.png","https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/images\/6.0.5\/9_Matomo_For_WordPress_Support.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/HeatmapSessionRecording.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/WyDygNx0t4w","id":"WyDygNx0t4w"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/HeatmapSessionRecording","variations":[{"product_variation_id":130488,"price":"219","prettyPrice":"219EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130488&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130488","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/heatmapsessionrecording\/?attribute_type=1+to+4+users&add-to-cart=3881&variation_id=130488&aelia_cs_currency=EUR"},{"product_variation_id":130488,"price":"269","prettyPrice":"USD269","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130488&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130488","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/heatmapsessionrecording\/?attribute_type=1+to+4+users&add-to-cart=3881&variation_id=130488&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130489,"price":"1739","prettyPrice":"1739EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130489&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130489","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/heatmapsessionrecording\/?attribute_type=Up+to+20+users&add-to-cart=3881&variation_id=130489&aelia_cs_currency=EUR"},{"product_variation_id":130489,"price":"2089","prettyPrice":"USD2089","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130489&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130489","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/heatmapsessionrecording\/?attribute_type=Up+to+20+users&add-to-cart=3881&variation_id=130489&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130490,"price":"3459","prettyPrice":"3459EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130490&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130490","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/heatmapsessionrecording\/?attribute_type=Up+to+50+users&add-to-cart=3881&variation_id=130490&aelia_cs_currency=EUR"},{"product_variation_id":130490,"price":"4149","prettyPrice":"USD4149","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130490&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3881&variation_id=130490","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/heatmapsessionrecording\/?attribute_type=Up+to+50+users&add-to-cart=3881&variation_id=130490&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/heatmapsessionrecording\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"5.00","ratingCount":3,"reviewCount":3}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{"bestselling":0},"versions":[{"name":"6.0.5","release":"2026-10-12 06:45:25","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/6.0.5\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Discover how visitors interact with your website, from the elements they engage with to the journeys they abandon.<\/p>\n\n<p>Traditional analytics can tell you what happened. <a href=\"https:\/\/matomo.org\/guide\/reports\/heatmaps\/\">Heatmaps<\/a> and <a href=\"https:\/\/matomo.org\/guide\/reports\/session-recordings\/\">Session Recordings<\/a> reveal how visitors navigate your website, where they hesitate, what attracts attention, and where they encounter obstacles.<\/p>\n\n<p>Replace assumptions with direct observation of visitor behaviour on desktop and mobile devices.<\/p>\n\n<h3>How Heatmaps &amp; Session Recordings work<\/h3>\n\n<h4>Uncover visitor behaviour with Heatmaps<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Identify the areas of your pages that attract attention and the elements that are ignored. A heatmap shows where visitors <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/faq_24275\/\">click<\/a>, <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/how-does-heatmap-and-session-recording-track-moves-on-a-touch-screen-device\/\">move<\/a> their cursor, and how far they scroll. Use these insights to evaluate content placement, navigation, forms, and calls to action across different devices and screen sizes.<\/p>\n<p>Create heatmaps in minutes and start evaluating page performance without building complex reports.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/HeatmapSessionRecording\/image1.gif\" style=\"margin-left:24px;\" alt=\"Uncover visitor behaviour with Heatmaps\" \/>\n<\/div>\n<\/div>\n\n<h4>Support UX and design decisions with evidence<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Website changes often involve competing opinions and assumptions. Heatmaps provide a visual record of <a href=\"https:\/\/matomo.org\/guide\/reports\/visitors\/\">visitor<\/a> behaviour, helping teams evaluate content based on how people actually interact with the page.<\/p>\n<p>Compare the impact of design updates over time, identify overlooked content, and assess whether important elements receive the attention they were designed to attract.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/HeatmapSessionRecording\/image2.jpg\" style=\"margin-left:24px;\" alt=\"Support UX and design decisions with evidence\" \/>\n<\/div>\n<\/div>\n\n<h4>Replay real visitor journeys<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Watch <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/data-masking-in-heatmaps-and-session-recordings\/\">anonymised session recordings<\/a> to see exactly how visitors move through your website. Follow mouse movements, clicks, scrolling behaviour, and navigation patterns to understand where visitors abandon tasks or encounter usability issues. Small usability issues can have a significant impact on the user experience. Let Session Recordings detect barriers that affect form completion, checkout flows, content engagement, and conversion paths.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/HeatmapSessionRecording\/image3.gif\" style=\"margin-left:24px;\" alt=\"Replay real visitor journeys\" \/>\n<\/div>\n<\/div>\n\n<h4>Connect behaviour with analytics data<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Combine your heatmap or session recording with Matomo analytics data to understand the <a href=\"https:\/\/matomo.org\/faq\/introduction-to-page-analytics-reports\/\">pages<\/a> a visitor explored, the events they triggered, the campaigns they arrived from, and whether they completed a <a href=\"https:\/\/matomo.org\/faq\/reports\/analyse-goal-reports-and-conversion-rates\/\">goal or conversion<\/a>. Additional context brings together quantitative and <a href=\"https:\/\/matomo.org\/guide\/reports\/behaviour\/\">behavioural data<\/a> for converting and non-converting visitors to uncover what affects engagement and conversion rates.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/HeatmapSessionRecording\/image4.jpg\" style=\"margin-left:24px;\" alt=\"Connect behaviour with analytics data\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Heatmaps &amp; Session Recordings Today<\/h3>\n\n<p>Stop losing conversions you can't explain. Heatmaps and session recordings show you exactly what users do on your site. Record actual sessions. See where people click, pause, and drop off and understand why visitors leave without converting.<\/p>\n\n<p>Free for 30 days. No credit card required.<\/p>\n\n<h3>Heatmap visualisation features<\/h3>\n\n<ul>\n<li>View click, mouse move (hover) and scroll heatmaps.<\/li>\n<li>View the heatmaps for desktop, <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/faq_24232\/\">tablet and mobile devices<\/a>.<\/li>\n<li>See how much of the content is visible on average when users open the website (above the fold).<\/li>\n<li>See how far down your visitors scroll.<\/li>\n<li>Delete an already taken <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/faq_32488\/\">heatmap screenshot<\/a>.<\/li>\n<li>Choose between different heatmap widths.<\/li>\n<li>Apply <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">segments<\/a> to drill down your visitors and gain insights into specific target groups.<\/li>\n<\/ul>\n\n<h3>Recording features<\/h3>\n\n<ul>\n<li>Visitor summary shows used browser, operating system, location, viewport resolution, time spent on the page, and more.<\/li>\n<li>Video controls like play, pause, replay and seek.<\/li>\n<li>Video timeline shows you when a certain event like a click, mouse move, or scroll will happen.<\/li>\n<li>Replays all clicks, mouse movements, scrolls, window resizes, form interactions, and page changes (e.g when a popup appears).<\/li>\n<li>Replay all recorded page views of a visitor within a session one after another.<\/li>\n<li>Delete individual <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/faq_24226\/\">recordings<\/a>.<\/li>\n<li>Enable autoplay to replay all page views within a visit automatically.<\/li>\n<li>Change the replay speed.<\/li>\n<li>Skip long pauses in a recording automatically.<\/li>\n<li>Use shortcuts when replaying a recorded session.<\/li>\n<li>View the <a href=\"https:\/\/matomo.org\/docs\/user-profile\/\">Visitor Profile<\/a> to get all information about a visitor.<\/li>\n<li>Replay a recorded session directly from the <a href=\"https:\/\/matomo.org\/docs\/real-time\/#visitor-log\">Visitor Log<\/a>.<\/li>\n<li>Apply <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">segments<\/a> to find the recordings you are interested in.<\/li>\n<\/ul>\n\n<h3>Manage Heatmap<\/h3>\n\n<ul>\n<li>Create <a href=\"https:\/\/matomo.org\/faq\/reports\/create-and-manage-heatmaps\/\">unlimited heatmaps<\/a>.<\/li>\n<li>Select how many page views you want to record.<\/li>\n<li>Define on which page a heatmap should be recorded by applying patterns like \"starts with\", \"contains\", \"regular expressions\" to URL, URL path and URL parameter.<\/li>\n<li>Choose a sample rate.<\/li>\n<li><a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/faq_24266\/\">Hide certain elements<\/a> in the heatmap (for example a pop-up).<\/li>\n<li>Define on which URL a screenshot should be taken.<\/li>\n<li>Set custom mobile and tablet breakpoints.<\/li>\n<\/ul>\n\n<h3>Manage Session Recordings<\/h3>\n\n<ul>\n<li>Record unlimited sessions.<\/li>\n<li>Select how many page views you want to record.<\/li>\n<li>Restrict on <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/faq_24263\/\">which pages<\/a> a visitor should be recorded by using patterns like \"starts with\" based on URL, URL path and URL parameter.<\/li>\n<li>Choose a sample rate.<\/li>\n<li>Only record activities when a visitor spends at least a specific time on a page.<\/li>\n<li>Only record activities when a user has clicked and scrolled at least once.<\/li>\n<li>Define if keystrokes on text form fields should be captured or not.<\/li>\n<li>It only takes a few seconds to create a new session recording.<\/li>\n<\/ul>\n\n<h3>Privacy features<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/data-masking-in-heatmaps-and-session-recordings\/\">Anonymising \/ Masking<\/a> of personal or sensitive information that a user enters into a form field (keystrokes) to not record personal data.<\/li>\n<li>Possibility to record <a href=\"https:\/\/matomo.org\/faq\/form-analytics\/faq_23737\/\">form fields<\/a> in plain text except for form fields that may contain personal information.<\/li>\n<li>Supports Matomo's <a href=\"https:\/\/matomo.org\/faq\/general\/eprivacy-directive-national-implementations-and-website-analytics\/\">privacy<\/a> and <a href=\"https:\/\/matomo.org\/faq\/new-to-piwik\/is-matomo-analytics-gdpr-compliant\/\">GDPR features<\/a> like the right to erase data or the right to export data. GDPR stands for General Data Protection Regulation and is for example also known as RGPD in French, DS-GVO in German.<\/li>\n<li>The session recording feature can be <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/how-do-i-disable-only-the-heatmaps-feature\/\">disabled<\/a> while keeping the heatmap feature enabled and vice versa.<\/li>\n<\/ul>\n\n<h3>Export and API features<\/h3>\n\n<ul>\n<li>HTTP API to manage your heatmaps and session recordings.<\/li>\n<li>HTTP API to fetch and export all <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#HeatmapSessionRecording\">Heatmap &amp; Session Recording reports<\/a>.<\/li>\n<li>Get access to all the raw data via MySQL for 100% data ownership.<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/heatmaps\/\">Heatmap User Guide<\/a>, <a href=\"https:\/\/matomo.org\/docs\/session-recording\/\">Session Recording User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/heatmap-session-recording\/\">Heatmap &amp; Session Recording User FAQ<\/a> cover how to get the most out of this plugin. The <a href=\"https:\/\/developer.matomo.org\/guides\/heatmap-session-recording\">Heatmap &amp; Session Recording developer guides<\/a> help you customizing the tracking of your heatmaps and session recordings.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.5 - 2026-10-12\n- Borders now use the default <code>@theme-color-border<\/code> colour, as <code>@theme-color-border-alternative<\/code> is deprecated in Matomo 6\n- Fixed the status filter and search field on the Manage Heatmaps and Manage Session Recordings pages overlapping or sitting out of line; they are now spaced evenly and their bottom edges line up<\/p>\n\n<p>6.0.4 - 2026-09-28\n- Relative report dates such as \"today\" or \"last 7 days\" are now resolved in the website's timezone, so heatmap and session recording reports no longer show a neighbouring day's data for websites whose timezone differs from the server's<\/p>\n\n<p>6.0.3 - 2026-09-21\n- Proxied images are now fetched over a validated connection, which requires the curl PHP extension\n- Fixed a tooltip staying on screen over the edit form after clicking edit on a session recording<\/p>\n\n<p>6.0.2 - 2026-09-14\n- The error shown when a privacy compliance policy has disabled heatmaps or session recordings now says so, instead of pointing at a general setting the policy overrides\n- Fixed the loading indicator showing as a white box in dark mode\n- The heatmaps and session recordings pages in the reporting menu now explain that policy in place of the list, instead of failing with an error and still offering a create button\n- A privacy compliance policy enforced for a single website is now applied everywhere that website's heatmaps and session recordings are checked<\/p>\n\n<p>6.0.1 - 2026-09-07\n- Fixed the Events count in the session recordings list, which counted the events of only one recorded pageview instead of the whole session\n- Fixed the Pageviews count and the list of pageviews in a session, which could count the same recorded page more than once<\/p>\n\n<p>6.0.0 - 2026-08-24\n- Compatibility with Matomo 6<\/p>\n\n<p>5.7.2 - 2026-08-24\n- Updated the compliance policy setting copy for disabling heatmaps and session recordings<\/p>\n\n<p>5.7.1 - 2026-08-17\n- Added code to append correct session_name during embedding<\/p>\n\n<p>5.7.0 - 2026-08-10\n- Redesigned the session recording replay page<\/p>\n\n<p>5.6.0 - 2026-08-03\n- Added option to export heatmaps to png\n- Added a heatmap settings menu with a new delete and retake snapshot workflow\n- Added empty state screens for heatmaps without a snapshot\n- Deleting a snapshot is now possible for heatmaps that have finished recording\n- The <code>HeatmapSessionRecording.deleteHeatmapScreenshot<\/code> API now accepts a <code>captureManually<\/code> parameter<\/p>\n\n<p>5.5.4 - 2026-07-27\n- Updated 2FA logic\n- Added unsubscribe button to email when heatmap or session recording has finished<\/p>\n\n<p>5.5.3 - 2026-07-20\n- Updated Marketplace description\n- Updated the finished heatmap and session recording email links in order to show the correct notification if the heatmap or session recording was deleted<\/p>\n\n<p>5.5.2 - 2026-07-13\n- Updated heatmap colors to be more accessible\n- Removed horizontal line on target page component<\/p>\n\n<p>5.5.1 - 2026-07-06\n- Added two modes to target component, simple &amp; advanced\n- Redesigned view heatmap report page<\/p>\n\n<p>5.5.0 - 2026-06-29\n- Added email to notify create user when heatmap or session recording has finished<\/p>\n\n<p>5.4.1 - 2026-06-22\n- Added code to harden the client-side check before displaying DOM values\n- Added code to make advanced settings an accordion<\/p>\n\n<p>5.4.0 - 2026-05-25\n- Added descriptions to heatmap and session recording creation forms\n- Updated heatmap and session recording creation inline helptexts<\/p>\n\n<p>5.3.5 - 2026-04-14\n- Added code to ignore paused state when deleting logs<\/p>\n\n<p>5.3.4 - 2026-04-13\n- Added code to block more xss tags<\/p>\n\n<p>5.3.3 - 2025-12-08\n- Updated preview screenshot and video url<\/p>\n\n<p>5.3.2 - 2025-11-10\n- Fixes constant not loading errors during configs.php request<\/p>\n\n<p>5.3.1 - 2025-10-27\n- Update some CNIL policy setting text to be more readable<\/p>\n\n<p>5.3.0 - 2025-10-13\n- Added support for core CNIL policy control of setting values\n- Added triggering of event when reports are copied<\/p>\n\n<p>5.2.7 - 2025-09-29\n- Adjusted action icons to ensure that delete is last<\/p>\n\n<p>5.2.6 - 2025-08-04\n- Added ability to copy configured heatmaps when Matomo 5.4.0-b4 or later is installed<\/p>\n\n<p>5.2.5 - 2025-07-07\n- Textual changes<\/p>\n\n<p>5.2.4 - 2025-06-09\n- Started showing the troubleshooting link even when no heatmap sample has been recorded\n- Do not crash when displaying a heatmap for a page with invalid HTML<\/p>\n\n<p>5.2.3 - 2025-01-20\n- Added an activity for pause and resume action\n- Added a troubleshooting FAQ link for heatmaps<\/p>\n\n<p>5.2.2 - 2024-12-16\n- Fixes PHP deprecation warnings<\/p>\n\n<p>5.2.1 - 2024-12-02\n- Added activities to track deleting recorded sessions and page views<\/p>\n\n<p>5.2.0 - 2024-11-04\n- Implemented a tooltip which displays click count and rate<\/p>\n\n<p>5.1.8 - 2024-10-17\n- Fixes excluded_elements not working for escaped values for a heatmap<\/p>\n\n<p>5.1.7 - 2024-10-11\n- Fixes classes with word script being removed due to xss filtering<\/p>\n\n<p>5.1.6 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.1.5\n- Added cover image for marketplace<\/p>\n\n<p>5.1.4\n- Fixes captureInitialDom not working for single heatmap<\/p>\n\n<p>5.1.3\n- Added code to disable matomo.js file writable check code for Matomo Cloud<\/p>\n\n<p>5.1.2\n- Added code to alert if matomo.js is not writable<\/p>\n\n<p>5.1.1 \n- Fixed applying segment returns error for SessionRecording<\/p>\n\n<p>5.1.0\n- Added an option to capture Heatmap DOM on demand<\/p>\n\n<p>5.0.10\n- Added total actions column in Session Recording listing page<\/p>\n\n<p>5.0.9\n- Added code to keep playing on resize event\n- Added code to update Translation keys via event<\/p>\n\n<p>5.0.8\n- Changes for README.md\n- Fixed an error that occurs when viewing posts that have heatmaps associated in WordPress.<\/p>\n\n<p>5.0.7\n- Fixed issue where form fields that were supposed to be unmasked weren't\n- Added code to pause\/resume heatmap for Matomo Cloud<\/p>\n\n<p>5.0.6\n- Fixed input[type=\"button\"] background being ignored\n- Added code to display AdBlocker banner when detected<\/p>\n\n<p>5.0.5\n- Fixed regression where good configs were disabled<\/p>\n\n<p>5.0.4\n- Fixed location provider not loading for cloud customers<\/p>\n\n<p>5.0.3\n- Fixed error when location provider is null<\/p>\n\n<p>5.0.2\n- Added option to fire heatmap\/session recording only for certain geographies<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.5.10\n- Started skipping deletion of heatmap and session recordings for proxysite<\/p>\n\n<p>4.5.9\n- Started hiding period selector when viewing heatmaps<\/p>\n\n<p>4.5.8\n- Fixed scroll data not displaying correctly due to sort missing<\/p>\n\n<p>4.5.7\n- Fixed deprecation warnings for PHP 8.1<\/p>\n\n<p>4.5.6\n- Changed time_on_page column to BIGINT for new installation for log_hsr and log_hsr_event table<\/p>\n\n<p>4.5.5\n- Fixed session recording not masking image with <code>data-matomo-mask<\/code> attribute set on parent node<\/p>\n\n<p>4.5.4\n- Fixed unmasking issue for text-node elements\n- Fixed recording to not end on tabs switch<\/p>\n\n<p>4.5.3\n- Added support to pass media attribute if present for external stylesheets<\/p>\n\n<p>4.5.2\n- Made regex to work consistently, #PG-373\n- Added examples of possible xss from portswigger.net<\/p>\n\n<p>4.5.1\n- Fixed mutation id bug to load css from DB<\/p>\n\n<p>4.5.0\n- Starting migrating AngularJS to Vue.\n- Migrated view code to VueJs\n- Updated code to respect max execution time during Archiving<\/p>\n\n<p>4.4.3\n- Added code to remove attributes with possible XSS values<\/p>\n\n<p>4.4.2\n- Added support for lazy loaded images<\/p>\n\n<p>4.4.1\n- Fixed masking issue for dynamically added DOM elements<\/p>\n\n<p>4.4.0\n- Added option to disable heatmap independently\n- Stopped showing visitor profile icon in session recording when visitor profile is disabled<\/p>\n\n<p>4.3.1\n- Fixed recorded session link not working for segmented logs in visit action<\/p>\n\n<p>4.3.0\n- Started storing CSS content in DB\n- Fixed range error when range is disabled<\/p>\n\n<p>4.2.1\n- Fixed double encoded segments<\/p>\n\n<p>4.2.0\n- Fixed heatmap not triggering when tracker configured directly.\n- Added masking for images with height and width\n- Added masking for [input type=\"image\"]\n- Fixed non-masking bug for child elements with data-matomo-unmask<\/p>\n\n<p>4.1.2\n- Fix to record inputs with data-matomo-unmask<\/p>\n\n<p>4.1.1\n- Removed masking for input type button, submit and reset<\/p>\n\n<p>4.1.0\n- Added option to disable session recording independently<\/p>\n\n<p>4.0.14\n- Support Matomo's new content security policy header<\/p>\n\n<p>4.0.13\n- Fix sharing a session might not work anymore with latest Matomo version<\/p>\n\n<p>4.0.12\n- Ensure configs.php is loaded correctly with multiple trackers\n- Translation updates<\/p>\n\n<p>4.0.11\n- Improve handling of attribute changes\n- Add translations for Czech, Dutch &amp; Portuguese<\/p>\n\n<p>4.0.10\n- Further improvements for loading for iframes<\/p>\n\n<p>4.0.9\n- Improve loading for iframes<\/p>\n\n<p>4.0.8\n- Improve tracking react pages<\/p>\n\n<p>4.0.7\n- Add category help texts\n- Increase possible sample limit\n- jQuery 3 compatibility for WP<\/p>\n\n<p>4.0.6\n- Performance improvements<\/p>\n\n<p>4.0.4\n- Compatibility with Matomo 4.X<\/p>\n\n<p>4.0.3\n- Compatibility with Matomo 4.X<\/p>\n\n<p>4.0.2\n- Compatibility with Matomo 4.X<\/p>\n\n<p>4.0.1\n- Handle base URLs better<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4.X<\/p>\n\n<p>3.2.39\n- Better handling for base URL<\/p>\n\n<p>3.2.38\n- Improve SPA tracking<\/p>\n\n<p>3.2.37\n- Improve sorting of server time<\/p>\n\n<p>3.2.36\n- Fix number of recorded pages may be wrong when a segment is applied<\/p>\n\n<p>3.2.35 \n- Improve widgetize feature when embedded as iframe<\/p>\n\n<p>3.2.34\n- Further improvements for WordPress<\/p>\n\n<p>3.2.33\n- Improve compatibilty with WordPress<\/p>\n\n<p>3.2.32\n- Improve checking for number of previously recorded sessions<\/p>\n\n<p>3.2.31\n- Matomo for WordPress support<\/p>\n\n<p>3.2.30\n- Send less tracking requests by queueing more requests together<\/p>\n\n<p>3.2.29\n- Use DB reader in Aggregator for better compatibility with Matomo 3.12<\/p>\n\n<p>3.2.28\n- Improvements for Matomo 3.12 to support faster segment archiving\n- Better support for single page applications<\/p>\n\n<p>3.2.27\n - Show search box for entities\n - Support usage of a reader DB when configured<\/p>\n\n<p>3.2.26\n - Tracker improvements<\/p>\n\n<p>3.2.25\n - Tracker improvements<\/p>\n\n<p>3.2.24\n - Generate correct session recording link when a visitor matches multiple recordings in the visitor log<\/p>\n\n<p>3.2.23\n - Internal tracker performance improvements<\/p>\n\n<p>3.2.22\n - Add more translations\n - Tracker improvements\n - Internal changes<\/p>\n\n<p>3.2.21\n - title-text of JavaScript Tracking option help box shows HTML\n - Add primary key to log_event table for new installs (existing users should receive the update with Matomo 4)<\/p>\n\n<p>3.2.20\n - Fix tracker may under circumstances not enable tracking after disabling it manually<\/p>\n\n<p>3.2.19\n - Add possibility to delete an already taken heatmap screenshot so it can be re-taken<\/p>\n\n<p>3.2.18\n - Performance improvements for high traffic websites<\/p>\n\n<p>3.2.17\n - Add possibility to define alternative CSS file through <code>data-matomo-href<\/code>\n - Added new API method <code>HeatmapSessionRecording.deleteHeatmapScreenshot<\/code> to delete an already taken heatmap screenshot\n - Add possibility to delete an already taken heatmap screenshot so it can be re-taken<\/p>\n\n<p>3.2.16\n - Add useDateUrl=0 to default Heatmap export URL so it can be used easier<\/p>\n\n<p>3.2.15\n - Support a URL parameter &amp;useDateUrl=1 in exported heatmaps to fetch heatmaps only for a specific date range<\/p>\n\n<p>3.2.14\n - Improve compatibility with tag manager\n - Fix possible notice when matching url array parameters \n - Add command to remove a stored heatmap<\/p>\n\n<p>3.2.13\n - Fix some coordinate cannot be calculated for SVG elements\n - Added more languages\n - Use new brand colors\n - If time on page is too high, abort the tracking request<\/p>\n\n<p>3.2.12\n - Update tracker file<\/p>\n\n<p>3.2.11\n - Add possibility to mask images<\/p>\n\n<p>3.2.10\n - Make sure to replay scrolling in element correctly<\/p>\n\n<p>3.2.9\n - Change min height of heatmaps to 400 pixels.<\/p>\n\n<p>3.2.8\n - When widgetizing the session player it bursts out of the iframe\n - Log more debug information in tracker\n - Use API calls instead of model<\/p>\n\n<p>3.2.7\n - Support new \"Write\" role<\/p>\n\n<p>3.2.6\n - Improve compatibility with styled-components and similar projects\n - Add possibility to not record mouse and touch movements.<\/p>\n\n<p>3.2.5\n - Compatibility with SiteUrlTrackingID plugin\n - Ensure selectors are generated correctly<\/p>\n\n<p>3.2.4\n - Allow users to pass sample limit of zero for unlimited recordings\n - Show which page view within a session is currently being replayed<\/p>\n\n<p>3.2.3\n - In configs.php return a 403 if Matomo is not installed yet<\/p>\n\n<p>3.2.2\n - Validate an entered regular expression when configuring a heatmap or session recording\n - Improve heatmap rendering of sharepoint sites<\/p>\n\n<p>3.2.1\n - Improve the rendering of heatmaps and session recordings<\/p>\n\n<p>3.2.0\n - Optimize tracker cache file\n - Prevent recording injected CSS resources that only work on a visitors' computer such as Kaspersky Antivirus CSS.\n - For better GDPR compliance disable capture keystroke in sessions by default.\n - Added logic to support Matomo GDPR features\n - Only specifically whitelisted form fields can now be recorded in plain text\n - Some form fields that could potentially include personal information such as an address will be always masked and anonymized\n - Trim any whitespace when configuring target pages<\/p>\n\n<p>3.1.9\n - Support new attribute <code>data-matomo-mask<\/code> which works similar to <code>data-piwik-mask<\/code> but additionally allows to mask content of elements.<\/p>\n\n<p>3.1.8\n - Support new CSS rendering classes matomoHsr, matomoHeatmap and matomoSessionRecording\n - For input text fields prefer a set value on the element directly\n - Differentiate between scrolling of the window and scrolling within an element (part of the window)\n - Replay in the recorded session when a user is scrolling within an element<\/p>\n\n<p>3.1.7\n - Make sure validating URL works correctly with HTML entities\n - Prevent possible fatal error when opening manage screen for all websites<\/p>\n\n<p>3.1.6\n - Renamed Piwik to Matomo<\/p>\n\n<p>3.1.5\n - Fix requested stylesheet URLs were requested lowercase when using a relative base href in the recorded page\n - Show more accurate time on page and record pageviews for a longer period in case a user is not active right away.<\/p>\n\n<p>3.1.4\n - Prevent target rules in heatmap or session recording to visually disappear under circumstances when not using the cancel or back button.\n - Respect URL prefix (eg www.) when replaying a session recording, may fix some displaying issues if website does not work without www.\n - Improved look of widgetized session recording<\/p>\n\n<p>3.1.3\n - Make Heatmap &amp; Session Recording compatible with canvas and webgl libraries like threejs and earcut\n - Better detected of the embedded heatmap height \n - Fix scroll heatmap did not paint the last scroll section correctly\n - It is now possible to configure the sample limits in the config via <code>[HeatmapSessionRecording] session_recording_sample_limits = 50,100,...<\/code><\/p>\n\n<p>3.1.2\n - Added URL to view heatmap and to replay a session recording to the API response\n - Fix widgetized URL for heatmaps and sessions redirected to another page when authenticated via token_auth<\/p>\n\n<p>3.1.1\n - Better error code when a site does not exist\n - Fix configs.php may fail if plugins directory is a symlink\n - Available sessions are now also displayed in the visitor profile<\/p>\n\n<p>3.1.0\n - Added autoplay feature for page views within a visit\n - Added possibility to change replay speed\n - Added possibility to skip long pauses in a session recording automatically\n - Better base URL detection in case a relative base URL is used<\/p>\n\n<p>3.0.15\n - Fix only max 100 heatmaps or session recordings were shown when managing them for a specific site.\n - Mask closing body in embedded page so it won't be replaced by some server logic<\/p>\n\n<p>3.0.14\n - Make sure to find all matches for a root folder when \"equals simple\" is used<\/p>\n\n<p>3.0.13\n - Fix a custom set based URL was ignored.<\/p>\n\n<p>3.0.12\n - Fix session recording stops when a user changes a file form field because form value is not allowed to be changed.<\/p>\n\n<p>3.0.11\n - Improve the performance of a DB query of a daily task when cleaning up blob entries.<\/p>\n\n<p>3.0.10\n - Improve the performance of a DB query of a daily task\n - Respect the new config setting <code>enable_internet_features<\/code> in the system check<\/p>\n\n<p>3.0.9\n - Make sure page rules work fine when using HTML entities<\/p>\n\n<p>3.0.8\n - Fix possible notice when tracking\n - Avoid some logs in chrome when viewing a heatmaps or session recordings\n - Always prefer same protocol when replaying sessions as currently used<\/p>\n\n<p>3.0.7\n - When using an \"equals exactly\" comparison, ignore a trailing slash when there is no path set\n - Let users customize if the tracking code should be included only when active records are configured<\/p>\n\n<p>3.0.6\n - Fix link to replay session in visitor log may not work under circumstances<\/p>\n\n<p>3.0.5\n - More detailed \"no data message\" when nothing has been recorded yet\n - Fix select fields were not recorded<\/p>\n\n<p>3.0.4\n - Only add tracker code when heatmap or sessions are actually active in any site\n - Added index on site_hsr table\n - Add custom stylesheets for custom styling<\/p>\n\n<p>3.0.3\n - Add system check for configs.php\n - On install, if .htaccess was not created, create the file manually<\/p>\n\n<p>3.0.2\n - Enrich system summary widget\n - Show an arrow instead of a dash between entry and exit url\n - Added some German translations<\/p>\n\n<p>3.0.1\n - Updated translations<\/p>\n\n<p>3.0.0\n - Heatmap &amp; Session Recording for Piwik 3<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/HeatmapSessionRecording\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"HiddenReports","displayName":"Hidden Reports","owner":"openmost","description":"Hide reports from the menu, per website or for all websites, while keeping their data and API access.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/hidden-reports","createdDateTime":"2026-09-16 10:14:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/HiddenReports\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/HiddenReports","type":"url"}],"isTheme":false,"keywords":["admin","reports","hide","menu","custom-reports","custom-dimensions"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/HiddenReports","lastUpdated":"2026-10-21 21:20:12","latestVersion":"5.0.2","numDownloads":267,"screenshots":["https:\/\/plugins.matomo.org\/HiddenReports\/images\/5.0.2\/Hide_a_report_per_website_with_one_switch.png","https:\/\/plugins.matomo.org\/HiddenReports\/images\/5.0.2\/Hide_a_whole_category_per_website.png","https:\/\/plugins.matomo.org\/HiddenReports\/images\/5.0.2\/Super_users_hide_reports_for_all_websites.png"],"coverImage":"https:\/\/plugins.matomo.org\/HiddenReports\/images\/5.0.2\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-21 21:18:46"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"5.0.0","release":"2026-09-16 10:14:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":144,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HiddenReports\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HiddenReports\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HiddenReports\/download\/5.0.0"},{"name":"6.0.0","release":"2026-09-16 10:14:07","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":45,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HiddenReports\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HiddenReports\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HiddenReports\/download\/6.0.0"},{"name":"6.0.1","release":"2026-10-14 14:30:12","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HiddenReports\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HiddenReports\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HiddenReports\/download\/6.0.1"},{"name":"5.0.1","release":"2026-10-14 15:28:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":50,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HiddenReports\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HiddenReports\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HiddenReports\/download\/5.0.1"},{"name":"5.0.2","release":"2026-10-21 21:20:12","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/HiddenReports\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HiddenReports\/commits\/5.0.2","readmeHtml":{"description":"\n\n<p>Hide reports from the Matomo reporting menu, for one website or for all websites at once, without losing any data.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Two management pages<\/strong>:\n\n<ul>\n<li>Administration &gt; Websites &gt; Hidden reports: website admins hide reports for the selected website.<\/li>\n<li>Administration &gt; System &gt; Hidden reports: super users hide reports for all websites at once.<\/li>\n<\/ul><\/li>\n<li><strong>Everything the reporting menu shows can be hidden<\/strong>: core and plugin reports, Custom Reports, Custom Dimensions, and widgets that are not reports, such as Transitions or the real-time map.<\/li>\n<li><strong>Fast to manage<\/strong>: collapsible categories and subcategories, a search field, a switch per report, and a switch to hide or show a whole category. Changes are saved immediately.<\/li>\n<li><strong>No data loss<\/strong>: a hidden report is only removed from the reporting menu. It is still archived and stays available through the HTTP API, exports, scheduled reports and dashboard widgets. Show it again at any time, its full history is there.<\/li>\n<li><strong>Clear precedence<\/strong>: a report hidden for all websites by a super user is locked on the website pages. A subcategory whose reports are all hidden disappears from the menu.<\/li>\n<li><strong>HTTP API<\/strong>: <code>HiddenReports.getReports<\/code>, <code>HiddenReports.getGlobalReports<\/code>, <code>HiddenReports.getHiddenReports<\/code>, <code>HiddenReports.setReportHidden<\/code>, <code>HiddenReports.setReportsHidden<\/code>, <code>HiddenReports.setReportHiddenGlobally<\/code>, <code>HiddenReports.setReportsHiddenGlobally<\/code>.<\/li>\n<li>Translated into 12 languages.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or later, up to Matomo 6 excluded (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>)<\/li>\n<li>On Matomo 6, install Hidden Reports 6.x instead.<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install Hidden Reports from the Marketplace (Administration &gt; Platform &gt; Marketplace) and activate it.<\/li>\n<li>Go to Administration &gt; Websites &gt; Hidden reports (admin access on the website) or Administration &gt; System &gt; Hidden reports (super user).<\/li>\n<li>Switch reports to \"Hidden\".<\/li>\n<\/ol>\n\n<p>Hidden reports are hidden for every user of the website, super users included. Only the Hidden reports pages keep listing them.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<p>The list of hidden reports is stored in the Matomo option table. It is cleaned when a website is deleted and when the plugin is uninstalled. The plugin sends no data to third parties.<\/p>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. To go further than a cleaner menu, we build <a href=\"https:\/\/openmost.com\/matomo\/services\/dashboard-build?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=hiddenreports\">custom Matomo dashboards and KPI reports<\/a> tailored to each audience, with KPIs defined with you and maintained over time.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How do I install this plugin?<\/strong><\/p>\n\n<p>Install it from the Matomo Marketplace like any other plugin:<\/p>\n\n<ul>\n<li>Go to Administration &gt; Platform &gt; Marketplace<\/li>\n<li>Search for \"<strong>Hidden Reports<\/strong>\", install and activate the plugin.<\/li>\n<li>Go to <strong>Administration &gt; Websites &gt; Hidden reports<\/strong> or <strong>Administration &gt; System &gt; Hidden reports<\/strong>.<\/li>\n<\/ul>\n\n<p><strong>Who can hide reports?<\/strong><\/p>\n\n<p>Users with an admin access on a website hide reports for this website. Super users can also hide reports for all websites at once.<\/p>\n\n<p><strong>Who no longer sees a hidden report?<\/strong><\/p>\n\n<p>Everybody, super users included. Only the Hidden reports pages keep listing it.<\/p>\n\n<p><strong>Is the data of a hidden report deleted?<\/strong><\/p>\n\n<p>No. The report is still archived, and remains available through the HTTP API, exports, scheduled reports and dashboard widgets. Show it again at any time to get it back in the menu with its full history.<\/p>\n\n<p><strong>Why can't I show a report on the website page?<\/strong><\/p>\n\n<p>It was hidden for all websites by a super user. Only a super user can show it again, from <strong>Administration &gt; System &gt; Hidden reports<\/strong>.<\/p>\n\n<p><strong>Why are goals, custom dimensions and custom reports missing from the System page?<\/strong><\/p>\n\n<p>These reports belong to a single website. Hide them from the <strong>Hidden reports<\/strong> page of the website.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Hide a report for one website<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>Administration &gt; Websites &gt; Hidden reports<\/strong>.<\/li>\n<li>Select the website at the top of the page.<\/li>\n<li>Open a category, or use the search field.<\/li>\n<li>Switch the report to <strong>Hidden<\/strong>. The change is saved immediately.<\/li>\n<\/ol>\n\n<p>Use the switch in the header of a category to hide or show all its reports at once.<\/p>\n\n<p>The report disappears from the reporting menu of this website. A subcategory whose reports are all hidden disappears from the menu too.<\/p>\n\n<p><strong>Hide a report for all websites<\/strong><\/p>\n\n<ol>\n<li>As a super user, go to <strong>Administration &gt; System &gt; Hidden reports<\/strong>.<\/li>\n<li>Switch the report to <strong>Hidden<\/strong>.<\/li>\n<\/ol>\n\n<p>The list is built from the website selected at the top of the page. Reports bound to a single website (goals, custom dimensions, custom reports) are only available on the website page.<\/p>\n\n<p><strong>Show a report again<\/strong><\/p>\n\n<p>Switch the report back to <strong>Visible<\/strong>. As the report was never removed from archiving, its full history is available right away.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.0.2<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v5.0.1<\/h3>\n\n<ul>\n<li>Translated into 12 languages<\/li>\n<li>New Marketplace cover and screenshots<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<li>Requires Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.0.0<\/h3>\n\n<ul>\n<li>Hide reports from the reporting menu of a website (website admins)<\/li>\n<li>Hide reports from the reporting menu of all websites (super users)<\/li>\n<li>Every item of the reporting menu can be hidden: core and plugin reports, Custom Reports, Custom Dimensions and widgets such as Transitions or the real-time map<\/li>\n<li>Collapsible categories with a switch to hide or show a whole category at once<\/li>\n<li>Hidden reports stay archived and available through the API, exports, scheduled reports and dashboards<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/HiddenReports\/download\/5.0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/HiddenReports\/changelog"},"consumer":{"license":null}},{"name":"HidePasswordReset","displayName":"Hide Password Reset","owner":"jbrule","description":"Hides the Lost your password? option on login form and allows to replace with a different message.","homepage":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset","createdDateTime":"2018-05-02 16:32:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset\/issues","type":"url"}],"isTheme":false,"keywords":["login","password reset"],"basePrice":0,"authors":[{"name":"Josh Brule","email":null,"homepage":null}],"repositoryUrl":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset","lastUpdated":"2025-09-24 00:30:03","latestVersion":"5.4.0","numDownloads":28060,"screenshots":["https:\/\/plugins.matomo.org\/HidePasswordReset\/images\/5.4.0\/0_Default_Login_Form.png","https:\/\/plugins.matomo.org\/HidePasswordReset\/images\/5.4.0\/1_Login_Form_Message.png","https:\/\/plugins.matomo.org\/HidePasswordReset\/images\/5.4.0\/2_Specify_Login_Message.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"2","numContributors":"1","lastCommitDate":"2025-09-24 00:28:10"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2018-05-02 16:32:03","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HidePasswordReset\/download\/1.0.0"},{"name":"1.2.0","release":"2018-05-02 16:42:03","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HidePasswordReset\/download\/1.2.0"},{"name":"1.3.1","release":"2018-05-02 19:42:04","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6641,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset\/commits\/1.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HidePasswordReset\/download\/1.3.1"},{"name":"1.3.3","release":"2018-09-20 15:20:04","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5027,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset\/commits\/1.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HidePasswordReset\/download\/1.3.3"},{"name":"4.3.3","release":"2020-09-14 21:40:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3376,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset\/commits\/4.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HidePasswordReset\/download\/4.3.3"},{"name":"5.0.0","release":"2024-03-16 20:34:03","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2857,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HidePasswordReset\/download\/5.0.0"},{"name":"5.4.0","release":"2025-09-24 00:30:03","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10145,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-HidePasswordReset\/commits\/5.4.0","readmeHtml":{"description":"\n\n<p>Hides the \"Lost your password?\" option on login form. \nThis plugin was created to prevent user confusion when using a central identity management platform such as LDAP or SAML.<\/p>\n\n<p>new in Version 5.0:\nif the replacement login message contains \"https:\/\/\", the URL is automatically converted to a link<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Why not also hide password reset in admin?<\/strong><\/p>\n\n<p>The login form template provides an <a href=\"https:\/\/developer.matomo.org\/guides\/events\">event<\/a> that allows injection of html code which makes it a simple process to hide the element.\nThe userSettings template does not provide a clean way to remove the option.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The easiest way to install is to find the plugin in the <a href=\"https:\/\/plugins.matomo.org\/\">Matomo Marketplace<\/a>.\nJust Activate on the plugin page after install and the \"Lost your password?\" message will be removed.\nA replacement login message may be supplied on the General Settings screen (see screenshots).<\/p>\n\n<p>new in Version 5.0:\nif the replacement login message contains \"https:\/\/\", the URL is automatically converted to a link<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>1.0.0 Initial Release<\/li>\n<li>1.1.0 Marketplace Tag<\/li>\n<li>1.2.0 Fixed screenshot filenames<\/li>\n<li>1.3.0 Fixed error upon login<\/li>\n<li>1.3.3 Reorganized docs and implemented new marketplace webhook<\/li>\n<li>4.3.3 Matomo 4 compatibility (just modified plugin.json)<\/li>\n<li>5.4.0 Added Translation filter to remove Login_LostYourPassword that is presented in Matomo version &gt;=5.4.0<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/HidePasswordReset\/download\/5.4.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/HidePasswordReset\/changelog"},"consumer":{"license":null}},{"name":"HooksViewer","displayName":"Hooks Viewer","owner":"openmost","description":"Lists every event hook Matomo fires, with its arguments. For plugin development, never in production.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/hooks-viewer","createdDateTime":"2024-11-17 14:02:02","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/HooksViewer\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/HooksViewer","type":"url"}],"isTheme":false,"keywords":["viewer","hooks","event","events","dev"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/HooksViewer","lastUpdated":"2026-10-21 21:12:04","latestVersion":"6.2.1","numDownloads":7672,"screenshots":["https:\/\/plugins.matomo.org\/HooksViewer\/images\/6.2.1\/Hook_catalog_with_registerEvents_snippet.png","https:\/\/plugins.matomo.org\/HooksViewer\/images\/6.2.1\/Hooks_catalog_with_search_and_filters.png","https:\/\/plugins.matomo.org\/HooksViewer\/images\/6.2.1\/Inline_panel_with_hook_arguments.png"],"coverImage":"https:\/\/plugins.matomo.org\/HooksViewer\/images\/6.2.1\/_cover.png","previews":[],"activity":{"numCommits":"10","numContributors":"1","lastCommitDate":"2026-10-21 21:10:05"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["development"],"promotions":{},"versions":[{"name":"0.1.0","release":"2024-11-17 14:02:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/0.1.0"},{"name":"0.1.1","release":"2024-11-17 14:06:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/0.1.1"},{"name":"0.1.3","release":"2024-11-17 14:14:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/0.1.3"},{"name":"0.1.4","release":"2024-11-17 15:04:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/0.1.4"},{"name":"0.1.6","release":"2024-11-17 15:14:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/0.1.6"},{"name":"0.9.9","release":"2024-11-17 15:18:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/0.9.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/0.9.9"},{"name":"1.0.0","release":"2024-11-18 15:46:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4280,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/1.0.0"},{"name":"2.0.0","release":"2026-05-06 10:40:04","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/2.0.0"},{"name":"2.0.1","release":"2026-05-06 10:44:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3243,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/2.0.1"},{"name":"6.0.0","release":"2026-09-15 18:58:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/6.0.0"},{"name":"6.1.0","release":"2026-09-15 19:24:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":53,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/6.1.0"},{"name":"5.0.0","release":"2026-10-14 15:28:11","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/5.0.0"},{"name":"6.2.0","release":"2026-10-19 08:50:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/6.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/6.2.0"},{"name":"5.1.0","release":"2026-10-19 08:50:25","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/5.1.0"},{"name":"6.2.1","release":"2026-10-21 21:12:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/HooksViewer\/commits\/6.2.1","readmeHtml":{"description":"\n\n<p>See every event hook Matomo dispatches, in which order and with which arguments, to find the right hook when you build a Matomo plugin.<\/p>\n\n<blockquote>\n  <p><strong>Never install this plugin on a production instance.<\/strong> It is a development tool: it shows internal hook arguments (configuration values, visitor data, request parameters) and writes a log file on every request. HooksViewer stays idle unless Matomo runs in development mode.<\/p>\n<\/blockquote>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Every event, discovered automatically<\/strong>: the plugin scans <code>core\/<\/code> and <code>plugins\/<\/code> for <code>Piwik::postEvent()<\/code> call sites and subscribes to every hook it finds, including the hooks of third-party plugins. The list is cached in <code>tmp\/cache\/hooksviewer-catalog.php<\/code> and rebuilt when the source tree changes.<\/li>\n<li><strong>Inline panel<\/strong>, for super users: every HTML response gets a collapsible <em>HooksViewer<\/em> panel with the hooks fired while it was built, in order. Full pages show it at the top, each widget and AJAX HTML fragment shows its own. Open a hook to read a pretty-printed, multi-line dump of its arguments.<\/li>\n<li><strong>Search in the panel<\/strong>: filter the hooks by name, or tick <em>Search in arguments<\/em> to find the hook that receives a given report or setting.<\/li>\n<li><strong>Hook catalog<\/strong> (Administration &gt; Diagnostic &gt; Hooks Viewer): every known hook with its description and parameters from the source docblock, the file and line where it is posted, the plugins listening to it, a ready-to-paste <code>registerEvents()<\/code> snippet and a link to the developer reference. Search it, filter it by category, show only the hooks with listeners, or rescan the source code on demand. Hooks whose name is built at runtime are listed as dynamic.<\/li>\n<li><strong>Log file<\/strong> at <code>tmp\/logs\/hooksviewer.log<\/code>: every hook of every request, including API calls, tracker hits and console commands, with a timestamp, a request id and the arguments. Rotated above 10 MB.<\/li>\n<li><strong>Safe for Matomo responses<\/strong>: the panel is written once the response is complete, and only into HTML responses. API calls, JSON controller actions, exports, images, redirects and tracker hits stay byte-exact, and pages keep their doctype.<\/li>\n<li><strong>Theme-aware<\/strong>: the panel and the argument dumps follow the light or dark Matomo theme.<\/li>\n<li><strong>12 languages<\/strong>: English, Arabic, Chinese (Simplified), Chinese (Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese and Spanish.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 6 (<code>&gt;=6.0.0-b1,&lt;7.0.0-b1<\/code>)<\/li>\n<li>PHP 8.1 or higher<\/li>\n<\/ul>\n\n<p>For Matomo 5, use HooksViewer 5.x.<\/p>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install the plugin from the Matomo Marketplace (<strong>Administration &gt; Marketplace<\/strong>), on a development instance only, and activate it.<\/li>\n<li>Enable the Matomo development mode with <code>.\/console development:enable<\/code> (or <code>enabled = 1<\/code> in the <code>[Development]<\/code> section of <code>config\/config.ini.php<\/code>). Without it, the plugin captures nothing and warns super users on every page.<\/li>\n<li>Browse the page or trigger the workflow you care about, then expand the <em>HooksViewer<\/em> panel and search it, or run <code>tail -f tmp\/logs\/hooksviewer.log<\/code>.<\/li>\n<li>Click <em>Open in the hook catalog<\/em> on a hook, or go to <strong>Administration &gt; Diagnostic &gt; Hooks Viewer<\/strong>, to read its documentation and see who listens to it.<\/li>\n<li><strong>Deactivate the plugin when you are done.<\/strong><\/li>\n<\/ol>\n\n<p>Sensitive values (tokens, passwords, secrets, cookies, sessions, API keys, visitor identifiers and IPs) are masked in the panel and in the log file. To show them, add this to <code>config\/config.ini.php<\/code>:<\/p>\n\n<pre><code>[HooksViewer]\nshow_sensitive_values = 1\n<\/code><\/pre>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>The panel and the hook catalog are only visible to super users, but the log file records the hooks of every request, including those of other users, with their arguments.<\/li>\n<li>Nothing is captured or logged unless Matomo runs in development mode. Outside development mode, and when the plugin is deactivated or uninstalled, the log files are deleted.<\/li>\n<li>Sensitive values are masked by default, see above.<\/li>\n<li>Nothing is sent outside your server.<\/li>\n<li>The log file and the catalog cache stay in Matomo's <code>tmp\/<\/code> directory.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. If you would rather hand over the build, we develop <a href=\"https:\/\/openmost.com\/matomo\/services\/plugin-development?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=hooksviewer\">custom Matomo plugins<\/a> from a written spec, tested on the Matomo versions you run, published on the Marketplace or delivered privately.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>How do I install the plugin?<\/h3>\n\n<p>It is published on the official Matomo Marketplace, like any other\nplugin:<\/p>\n\n<ul>\n<li>Open the administration panel as a super user.<\/li>\n<li>Go to <em>Marketplace<\/em>.<\/li>\n<li>Search for <strong>HooksViewer<\/strong>, install it, then activate it.<\/li>\n<\/ul>\n\n<h3>Which Matomo versions are supported?<\/h3>\n\n<p>HooksViewer 6.x runs on Matomo 6 (PHP 8.1+, MySQL 8.0+ or MariaDB\n10.6+). For Matomo 5.10.0 or higher, use HooksViewer 5.x.<\/p>\n\n<h3>Why \"never install in production\"?<\/h3>\n\n<p>The plugin shows internal hook arguments (database configuration,\nvisitor IPs, request parameters, etc.) and writes a log file on every\nrequest. Both are useful while debugging and unacceptable in\nproduction.<\/p>\n\n<h3>The plugin is activated but shows nothing.<\/h3>\n\n<p>HooksViewer only works when Matomo runs in development mode. Enable it\nwith <code>.\/console development:enable<\/code>, or set <code>enabled = 1<\/code> in the\n<code>[Development]<\/code> section of <code>config\/config.ini.php<\/code>. Until then, no hook\nis captured or logged, and super users see a warning on every page. On\na production instance, uninstall the plugin instead.<\/p>\n\n<h3>Why are some values shown as <code>*** (masked)<\/code>?<\/h3>\n\n<p>Tokens, passwords, secrets, cookies, sessions, API keys, visitor\nidentifiers and IPs are masked in the panel and in the log file, also\nwhen they appear as URL parameters. To see them on your development\ninstance, add <code>show_sensitive_values = 1<\/code> to a <code>[HooksViewer]<\/code> section\nof <code>config\/config.ini.php<\/code>.<\/p>\n\n<h3>Where do I see the hooks?<\/h3>\n\n<p>Two places, at the same time:<\/p>\n\n<ol>\n<li><strong>In the HooksViewer panel<\/strong>, at the top of each page and inside each\nwidget. Expand it to list the hooks, expand a hook to read its\narguments.<\/li>\n<li><strong>In the log file<\/strong> at <code>tmp\/logs\/hooksviewer.log<\/code>. This catches\nevery hook from every request, including JSON API calls, tracker\nhits and console commands, where the plugin never adds any markup.\nTail it with <code>tail -f tmp\/logs\/hooksviewer.log<\/code>.<\/li>\n<\/ol>\n\n<h3>Who can see the panel?<\/h3>\n\n<p>Only super users, and only super users can open the hook catalog.\nEveryone else browses Matomo normally, but the hooks of their requests\nare still written to the log file.<\/p>\n\n<h3>How do I find the right hook for my plugin?<\/h3>\n\n<ol>\n<li>Browse the page where you want to act, expand the <em>HooksViewer<\/em>\npanel and search it. Tick <em>Search in arguments<\/em> to find the hook\nthat receives the data you want to change.<\/li>\n<li>Click <em>Open in the hook catalog<\/em> to read the hook description and\nparameters, see which plugins already listen to it, and copy the\n<code>registerEvents()<\/code> snippet.<\/li>\n<\/ol>\n\n<h3>Where is the hook catalog?<\/h3>\n\n<p><em>Administration &gt; Diagnostic &gt; Hooks Viewer<\/em>. It lists every hook found\nin the source code with its description, parameters, call sites and\nlisteners, plus the hooks only known through their listeners.<\/p>\n\n<h3>Why is the panel at the top of the page and not where the hook fired?<\/h3>\n\n<p>Printing markup at the exact moment a hook fires broke Matomo: it ended\nup inside HTML attributes, graph data and JSON responses, and before\nthe page doctype. The panel is now written once the response is\ncomplete. The hooks are still listed in the exact order they fired, and\neach widget gets its own panel.<\/p>\n\n<h3>I activated the plugin but the panel looks unstyled.<\/h3>\n\n<p>Matomo caches the merged stylesheet bundle on disk. The plugin clears\nthat cache on activation. If you somehow get out of sync, deactivate\nthe plugin and reactivate it: the next request rebuilds the bundle.<\/p>\n\n<h3>How does the plugin keep up with new Matomo events?<\/h3>\n\n<p>The list of subscribed hooks is <strong>not hand-maintained<\/strong>. The plugin\nscans <code>core\/<\/code> and <code>plugins\/<\/code> for <code>Piwik::postEvent('\u2026')<\/code> calls and\ncaches the discovered list under <code>tmp\/cache\/<\/code>. The cache is rebuilt\nwhenever the source tree changes, so new events appear automatically.<\/p>\n\n<h3>Does the plugin break Matomo's API or tracker?<\/h3>\n\n<p>No. The panel is <strong>only<\/strong> added to HTML responses. API responses, JSON\ncontroller actions, CSV exports, XML, images, redirects and tracker hits\nare left untouched. Use the log file to observe hooks fired during\nthose requests.<\/p>\n\n<h3>Some hooks I expected to see are missing.<\/h3>\n\n<p>A few things to check:<\/p>\n\n<ul>\n<li>Is the event a wildcard (e.g. <code>Controller.$module.$action<\/code>)? Those\nare skipped because they have no fixed name to subscribe to.<\/li>\n<li>Did the event fire at all on this request? Check\n<code>tmp\/logs\/hooksviewer.log<\/code>: if it's not there either, the code\npath was not reached.<\/li>\n<li>Was the hook fired during a JSON or API request? No panel is added to\nthose, check the log file.<\/li>\n<li>Does the panel say \"more in tmp\/logs\/hooksviewer.log\"? A single\nresponse keeps at most 5,000 hooks in its panel, the rest is in the\nlog.<\/li>\n<\/ul>\n\n<h3>Will the log file fill my disk?<\/h3>\n\n<p>No. It is rotated to <code>hooksviewer.log.1<\/code> once it grows above 10 MB, so\nat most about 20 MB are kept.<\/p>\n\n<h3>How can I contribute?<\/h3>\n\n<p>Open an issue or a pull request on\n<a href=\"https:\/\/github.com\/openmost\/HooksViewer\">https:\/\/github.com\/openmost\/HooksViewer<\/a>.<\/p>\n\n<h3>How long will it be maintained?<\/h3>\n\n<p>As long as I keep using Matomo across projects, which is the\nforeseeable future. I'm the first user of this plugin: if it breaks\non a Matomo upgrade I'll see it before you do.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>HooksViewer is a development tool that subscribes to every Matomo event\nand surfaces them while you are browsing the Matomo UI or exercising the\nAPI.<\/p>\n\n<h3>Inline panel<\/h3>\n\n<p>Every HTML response (full pages, widgets, AJAX HTML fragments) gets a\ncollapsible <em>HooksViewer<\/em> panel, visible to super users only. Its\nsummary shows how many hooks fired and the request id. Expand it to\nlist the hooks in the order they fired, then expand a hook to see a\nclean, indented dump of its arguments.<\/p>\n\n<ul>\n<li>Full pages show the panel at the very top of the page.<\/li>\n<li>Each dashboard widget shows its own panel, so hooks like\n<code>ViewDataTable.filterViewDataTable<\/code>, <code>Visualization.beforeRender<\/code> or\n<code>Metrics.isLowerValueBetter<\/code> are visible for the widget that\ntriggered them.<\/li>\n<li>Type in the search field to filter the hooks by name. Every word must\nmatch. Tick <em>Search in arguments<\/em> to also search the argument dumps,\ne.g. to find which hook receives a given report or setting.<\/li>\n<li><em>Open in the hook catalog<\/em> jumps to the documentation of the hook.<\/li>\n<\/ul>\n\n<p>The panel is a Vue component. On the rare responses where Matomo does\nnot compile Vue components (error pages, some AJAX HTML), it falls back\nto the plain list of hook names.<\/p>\n\n<h3>Hook catalog<\/h3>\n\n<p><em>Administration &gt; Diagnostic &gt; Hooks Viewer<\/em> (super users only) lists\nevery known hook:<\/p>\n\n<ul>\n<li><strong>Description and parameters<\/strong>, taken from the docblock written right\nabove the <code>postEvent()<\/code> call, which is how Matomo documents its\nevents.<\/li>\n<li><strong>Posted in<\/strong>: the file and line of each call site.<\/li>\n<li><strong>Listeners<\/strong>: the activated plugins subscribing to the hook in\n<code>registerEvents()<\/code>, and observers declared in <code>observers.global<\/code>.<\/li>\n<li>A <strong><code>registerEvents()<\/code> snippet<\/strong> to listen to the hook from your own\nplugin, and a link to the developer reference.<\/li>\n<\/ul>\n\n<p>Search by hook name, description, listener or file, filter by category\n(the part before the first dot, e.g. <code>Request<\/code>), or show only the hooks\nthat have listeners. Hooks marked <strong>dynamic<\/strong> are listened to but their\nname is built at runtime (like <code>Controller.CoreHome.index<\/code>), so they\nare not found in the source code.<\/p>\n\n<p><em>Rescan the source code<\/em> rebuilds the catalog immediately.<\/p>\n\n<h3>Log file<\/h3>\n\n<p><code>tmp\/logs\/hooksviewer.log<\/code> receives one line per fired\nevent from <strong>every<\/strong> request, including JSON API calls, tracker hits,\nconsole commands, and requests made by users who cannot see the panel.\nEach line carries a timestamp, a short request id (the same one as in\nthe panel summary), an event index, the hook name, and a compact view of\nthe arguments.<\/p>\n\n<pre><code>tail -f tmp\/logs\/hooksviewer.log\n<\/code><\/pre>\n\n<p>The log is rotated to <code>hooksviewer.log.1<\/code> once it grows above 10 MB.<\/p>\n\n<h3>Where the hook list comes from<\/h3>\n\n<p>The plugin does not ship a hand-maintained list. On the first request\nafter activation it scans <code>core\/<\/code> and <code>plugins\/<\/code> for every\n<code>Piwik::postEvent('\u2026')<\/code> call site, resolves same-file constant\nreferences, and persists the result to\n<code>tmp\/cache\/hooksviewer-catalog.php<\/code>. The cache is invalidated whenever\nthe source tree changes, so new events introduced by a Matomo upgrade\nor by a third-party plugin appear automatically.<\/p>\n\n<p>Wildcard event names (those containing PHP variables or <code>sprintf<\/code>\nplaceholders, e.g. <code>Controller.$module.$action<\/code>) are skipped because\nthey cannot be subscribed to as a single static name.<\/p>\n\n<h3>Response safety<\/h3>\n\n<p>Nothing is printed while a hook fires. Matomo renders templates and\nwidgets into nested output buffers, so markup printed at that moment\nwould end up inside HTML attributes, graph data or JSON bodies.<\/p>\n\n<p>Instead, hooks are collected during the request and the panel is\nwritten once the response is complete:<\/p>\n\n<ul>\n<li>only when the final <code>Content-Type<\/code> is HTML;<\/li>\n<li>right after <code>&lt;body&gt;<\/code> for full pages, so the doctype stays first;<\/li>\n<li>at the top of HTML fragments.<\/li>\n<\/ul>\n\n<p>These responses are never modified:<\/p>\n\n<ul>\n<li><code>module=API<\/code> (JSON \/ XML \/ CSV \/ TSV \/ RSS)<\/li>\n<li>controller actions returning JSON (<code>#[JsonResponse]<\/code>, e.g.\n<code>Dashboard.getAllDashboards<\/code>)<\/li>\n<li><code>matomo.php<\/code> and <code>piwik.php<\/code> (tracker hits and image responses)<\/li>\n<li>exports, images, redirects and plain text responses<\/li>\n<li>console commands<\/li>\n<\/ul>\n\n<p>Use the log file to observe their hooks.<\/p>\n\n<h3>Useful references<\/h3>\n\n<ul>\n<li>Event guide: <a href=\"https:\/\/developer.matomo.org\/guides\/events\">https:\/\/developer.matomo.org\/guides\/events<\/a><\/li>\n<li>Core event reference: <a href=\"https:\/\/developer.matomo.org\/api-reference\/events\">https:\/\/developer.matomo.org\/api-reference\/events<\/a><\/li>\n<\/ul>\n\n<h3>Development mode and masked values<\/h3>\n\n<p>HooksViewer only runs when Matomo is in development mode (<code>.\/console\ndevelopment:enable<\/code>, or <code>enabled = 1<\/code> in the <code>[Development]<\/code> section of\n<code>config\/config.ini.php<\/code>). Outside development mode it captures and logs\nnothing, deletes its log files, and super users see a warning on every\npage asking to enable development mode or to uninstall the plugin.<\/p>\n\n<p>Tokens, passwords, secrets, cookies, sessions, API keys, visitor\nidentifiers and IPs are masked in the panel and in the log file,\nincluding inside URLs. To see them on a development instance:<\/p>\n\n<pre><code>[HooksViewer]\nshow_sensitive_values = 1\n<\/code><\/pre>\n\n<h3>Reminder<\/h3>\n\n<p>This plugin exposes internal arguments (including configuration values\nand visitor data) and writes a log file on every request while\ndevelopment mode is on. <strong>Never install it on a production instance.<\/strong><\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v6.2.1<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v6.2.0<\/h3>\n\n<ul>\n<li>Security: HooksViewer only captures and logs hooks when Matomo runs in development mode (<code>[Development] enabled = 1<\/code>, or <code>.\/console development:enable<\/code>). Otherwise no hook is captured, no panel is shown, nothing is logged, existing log files are deleted, and super users see a warning on every page asking to enable development mode or to uninstall the plugin.<\/li>\n<li>Security: sensitive values are masked in the panel and in the log file (tokens, passwords, secrets, cookies, sessions, API keys, visitor identifiers and IPs, and the same parameters inside URLs). Set <code>show_sensitive_values = 1<\/code> in the <code>[HooksViewer]<\/code> section of <code>config\/config.ini.php<\/code> to show them.<\/li>\n<li>The log files are deleted when the plugin is deactivated or uninstalled.<\/li>\n<li>Removed the Openmost banners and widget.<\/li>\n<\/ul>\n\n<h3>v6.1.1<\/h3>\n\n<ul>\n<li>The argument dumps follow the light or dark Matomo theme instead of a forced dark background.<\/li>\n<li>10 more languages: Arabic, Chinese (Simplified), Chinese (Traditional), Dutch, German, Italian, Japanese, Polish, Portuguese and Spanish (12 in total).<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v6.1.0<\/h3>\n\n<p><strong>Search in the panel<\/strong><\/p>\n\n<ul>\n<li>The HooksViewer panel is now a Vue component with a search field:\nfilter the hooks by name, or inside their arguments.<\/li>\n<li>Each hook links to its entry in the new hook catalog.<\/li>\n<li>The list is only rendered once the panel is opened, so pages with\nmany widgets stay fast.<\/li>\n<\/ul>\n\n<p><strong>Hook catalog<\/strong><\/p>\n\n<ul>\n<li>New <em>Administration &gt; Diagnostic &gt; Hooks Viewer<\/em> page, for super\nusers: every known hook with its description and parameters (from the\nsource docblock), the file and line where it is posted, the plugins\nlistening to it, a <code>registerEvents()<\/code> snippet and a link to the\ndeveloper reference.<\/li>\n<li>Search, filter by category, show only hooks with listeners, rescan\nthe source code on demand.<\/li>\n<li>Hooks that are listened to but built at runtime (like\n<code>Controller.CoreHome.index<\/code>) are listed as dynamic.<\/li>\n<\/ul>\n\n<p><strong>Other<\/strong><\/p>\n\n<ul>\n<li>English and French translations.<\/li>\n<\/ul>\n\n<h3>v6.0.0<\/h3>\n\n<p>Matomo 6 compatibility, and a rebuilt inline output that no longer\nbreaks Matomo's pages and responses.<\/p>\n\n<p><strong>Compatibility<\/strong><\/p>\n\n<ul>\n<li>Requires Matomo <code>&gt;=6.0.0-b1,&lt;7.0.0-b1<\/code> and PHP 8.1+ (MySQL 8.0+ or\nMariaDB 10.6+, as required by Matomo 6).<\/li>\n<li>No more deprecated <code>E_USER_ERROR<\/code> on PHP 8.4+.<\/li>\n<li>~270 events discovered out of the box on Matomo 6.<\/li>\n<\/ul>\n\n<p><strong>Inline panel<\/strong><\/p>\n\n<ul>\n<li>Hooks are collected during the request and written once the response\nis complete, in one collapsible <em>HooksViewer<\/em> panel: right after\n<code>&lt;body&gt;<\/code> on full pages, at the top of widgets and AJAX HTML fragments.<\/li>\n<li>The panel summary shows the number of hooks and the request id used\nin the log file.<\/li>\n<li>The panel is only visible to super users. The log file still records\nthe hooks of every request.<\/li>\n<li>Panel styles follow the Matomo theme (light and dark).<\/li>\n<\/ul>\n\n<p><strong>Fixes<\/strong><\/p>\n\n<ul>\n<li>Pages are no longer rendered in quirks mode (markup was printed\nbefore the doctype).<\/li>\n<li>JSON controller actions (<code>#[JsonResponse]<\/code>, e.g.\n<code>Dashboard.getAllDashboards<\/code>) and graph data (jqPlot <code>data-data<\/code>) are\nno longer corrupted by hook markup.<\/li>\n<li>No more \"Session must be started before any output\" errors: headers,\ncookies and redirects are sent normally.<\/li>\n<li>Multi-byte strings are truncated without breaking characters, enums\nare shown as <code>Class::CASE<\/code>.<\/li>\n<\/ul>\n\n<p><strong>Log file<\/strong><\/p>\n\n<ul>\n<li><code>tmp\/logs\/hooksviewer.log<\/code> is rotated to <code>hooksviewer.log.1<\/code> above\n10 MB.<\/li>\n<li>The log and the hook catalog cache honour a customised Matomo\n<code>path.tmp<\/code>.<\/li>\n<\/ul>\n\n<p><strong>Other<\/strong><\/p>\n\n<ul>\n<li>Homepage and support addresses moved to openmost.com.<\/li>\n<\/ul>\n\n<h3>v2.0.1<\/h3>\n\n<p>update: README.md<\/p>\n\n<h3>v2.0.0<\/h3>\n\n<p>Major rewrite. The plugin now covers (almost) every event Matomo dispatches\nand renders them inline at their dispatch point.<\/p>\n\n<p><strong>Hook discovery<\/strong><\/p>\n\n<ul>\n<li>New <code>HookCatalog<\/code> scans <code>core\/<\/code> and <code>plugins\/<\/code> for every\n<code>Piwik::postEvent('\u2026')<\/code> call site. Same-file <code>self::FOO_EVENT<\/code>\nconstants are resolved automatically.<\/li>\n<li>Result is cached in <code>tmp\/cache\/hooksviewer-catalog.php<\/code> and rebuilt\nwhenever the source tree changes (mtime-based signature, 5 min TTL).<\/li>\n<li>~258 events discovered out of the box on a clean Matomo 5 install,\nvs. ~210 in the previous hand-maintained list.<\/li>\n<\/ul>\n\n<p><strong>Rendering<\/strong><\/p>\n\n<ul>\n<li>Events are rendered <strong>at the moment they fire<\/strong>, inline in the DOM,\nas <code>&lt;details&gt;&lt;summary&gt;HookName&lt;\/summary&gt;&lt;pre&gt;&lt;code&gt;args\u2026&lt;\/code&gt;&lt;\/pre&gt;&lt;\/details&gt;<\/code>.<\/li>\n<li>Args are pretty-printed across multiple indented lines (depth-limited,\ntruncated at 30 entries per level \/ 240 chars per string), so deep\narrays and objects stay readable.<\/li>\n<li>Args panel is locked to a dark background with white text so it\nremains legible regardless of the active Matomo theme.<\/li>\n<\/ul>\n\n<p><strong>Safety<\/strong><\/p>\n\n<ul>\n<li>Inline emission is suppressed for JSON, XML, CSV, image, and tracker\nresponses: Matomo's API and <code>matomo.php<\/code> payloads stay byte-exact.<\/li>\n<li>Widget AJAX requests (<code>format=html<\/code>) keep their inline output, so\nhooks like <code>ViewDataTable.filterViewDataTable<\/code>,\n<code>Visualization.beforeRender<\/code>, <code>Metrics.isLowerValueBetter<\/code>, and\n<code>Widget.filterWidgets<\/code> are visible inside each widget as it loads.<\/li>\n<li>Every fired hook (HTML or not) is also appended to\n<code>tmp\/logs\/hooksviewer.log<\/code> with timestamp, request id, and args.\nWatch with <code>tail -f<\/code>.<\/li>\n<li>Activation\/deactivation now flushes Matomo's merged-asset bundle so\nthe plugin's stylesheet is picked up immediately.<\/li>\n<\/ul>\n\n<p><strong>Internals<\/strong><\/p>\n\n<ul>\n<li>One generic <code>__call()<\/code> dispatcher replaces 200+ hand-rolled stub\nmethods. The whole plugin is ~340 lines of PHP.<\/li>\n<li>Compatible with Matomo 5.x.<\/li>\n<\/ul>\n\n<h3>v1.0.0<\/h3>\n\n<p>Initial plugin commit.<\/p>"},"download":"\/api\/2.0\/plugins\/HooksViewer\/download\/6.2.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/HooksViewer\/changelog"},"consumer":{"license":null}},{"name":"IceCastStatistics","displayName":"Ice Cast Statistics","owner":"hoamer","description":"Live Plugin to show various informations about your IceCast Server.","homepage":null,"createdDateTime":"2016-09-30 12:40:02","donate":{},"support":[{"name":"Email","key":"email","value":"kontakt@sebastian-neugebauer.de","type":"email"}],"isTheme":false,"keywords":["IceCast Statistics","Icecast","radio","stream","streaming"],"basePrice":0,"authors":[{"name":"Sebastian Neugebauer","email":"kontakt@sebastian-neugebauer.de","homepage":null}],"repositoryUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics","lastUpdated":"2020-09-29 06:48:08","latestVersion":"1.0.17","numDownloads":9820,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"39","numContributors":"1","lastCommitDate":"2020-10-01 05:00:31"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2016-09-30 12:40:02","requires":{"piwik":">=2.16.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/0.1.0"},{"name":"0.1.1","release":"2016-09-30 13:02:03","requires":{"piwik":">=2.16.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/0.1.1"},{"name":"0.1.3","release":"2016-10-01 12:54:03","requires":{"piwik":">=2.16.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1064,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/0.1.3"},{"name":"1.0.3","release":"2017-01-23 09:52:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":208,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.3"},{"name":"1.0.5","release":"2017-02-06 11:56:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":100,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.5"},{"name":"1.0.6","release":"2017-02-10 08:30:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":18,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.6"},{"name":"1.0.7","release":"2017-02-10 11:58:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":296,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.7"},{"name":"1.0.8","release":"2017-03-08 11:56:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":781,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.8"},{"name":"1.0.10","release":"2017-07-21 10:54:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":409,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.10"},{"name":"1.0.11","release":"2017-09-12 10:26:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5301,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.11"},{"name":"1.0.16","release":"2020-09-29 06:48:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.146","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.16"},{"name":"1.0.17","release":"2020-09-29 06:48:08","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1623,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/hoamer\/IceCast-Statistics\/commits\/1.0.17","readmeHtml":{"description":"\n\n<p>This is a plugin for the Open Source Web Analytics platform Matomo (Piwik). If enabled, it will add an widgets that you can add to your dashboard.\nThe widget will show various information about your IceCast Server-Mountpoint. You can choose which information are displayed in the widget by activating them in your \"Personal Settings\" -&gt; \"Plugin Settings\".<\/p>\n\n<p>The initial idea was to display the current played title and acutally connected listeners. This was made for an friend www.technoac.de<\/p>\n\n<p>Please fill the user credentials and hostname of the IceCast server in the \"Administrator Settings\" -&gt; \"Plugin Settings\".\nYou can activate and set an refresh interval in your \"Personal Settings\" -&gt; \"Plugin Settings\".<\/p>\n\n<p>Before this plugin will display informations about your mountpoint, you have toactivate them.<\/p>\n\n<p>You can display the following informations by activating them as described:<\/p>\n\n<pre><code>- Combined audio informations\n- Bitrate\n- Number of channels\n- Maximum number of todays listeners\n- Currently amount of listeners\n- Listener URL\n- Maximum number of allowed listeners to your mountpoint\n- Show the value if your server is set to \"public\"\n- Display the currently sample rate\n- Display the chosen server description\n- Display the chosen server name\n- Display the codec information\n- Display the chosen server URL\n- Display the amount of slow listeners\n- Display the source IP\n- Display the start time of the server\n- Display the start time of the server in ISO8601 format\n- Display the currently played title\n- Display the amount of total sent Megabytes\n- Display the amount of total read Megabytes\n- Display the user agent of the shoutcast server\n<\/code><\/pre>\n\n<p>If you have further questions to the values, please visit the original IceCast documentation: http:\/\/icecast.org\/docs\/<\/p>\n\n","faq":"","documentation":"","changelog":"<ol>\n<li><p>Due to piwik changes the directory structure and files have changed. Please read the commits to see the changes<\/p><\/li>\n<li><p>Changed the Style of dislayed informations. It is now much more responsible and nicer integrated.<\/p><\/li>\n<\/ol>"},"download":"\/api\/2.0\/plugins\/IceCastStatistics\/download\/1.0.17"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IceCastStatistics\/changelog"},"consumer":{"license":null}},{"name":"IE11ReleaseChannel","displayName":"Release Channel for IE 11","owner":"matomo-org","description":"Adds a new release channel that is still compatible with Internet Explorer 11.","homepage":"https:\/\/matomo.org","createdDateTime":"2021-09-16 20:46:03","donate":{},"support":[],"isTheme":false,"keywords":["matomo","release","ie11","explorer","ie","internet explorer"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-IE11ReleaseChannel","lastUpdated":"2021-09-19 23:36:03","latestVersion":"4.0.1","numDownloads":4737,"screenshots":["https:\/\/plugins.matomo.org\/IE11ReleaseChannel\/images\/4.0.1\/Release_Channel.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"4","numContributors":"1","lastCommitDate":"2021-09-19 23:35:58"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"4.0.0","release":"2021-09-16 20:46:03","requires":{"piwik":">=3.0.0-b1,<5.0.0-b1","matomo":">=3.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-IE11ReleaseChannel\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IE11ReleaseChannel\/download\/4.0.0"},{"name":"4.0.1","release":"2021-09-19 23:36:03","requires":{"piwik":">=3.0.0-b1,<5.0.0-b1","matomo":">=3.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4729,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-IE11ReleaseChannel\/commits\/4.0.1","readmeHtml":{"description":"\n\n<p>Adds a new release channel which lets you receive Matomo core updates that are still compatible with Internet Explorer 11.<\/p>\n\n<p>Install this plugin if you are using Internet Explorer 11 and still want to receive important security updates for Matomo.<\/p>\n\n<p>Once you have installed and activated this plugin, follow these steps to configure this new release channel:<\/p>\n\n<ul>\n<li>Log in as a Matomo Super User<\/li>\n<li>Go to Matomo Admin -&gt; General Settings<\/li>\n<li>Scroll down to the section \"Update settings\"<\/li>\n<li>Select \"Internet Explorer 11 Compatible\" for the setting \"Release Channel\"<\/li>\n<li>Click \"Save\"<\/li>\n<\/ul>","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/IE11ReleaseChannel\/download\/4.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IE11ReleaseChannel\/changelog"},"consumer":{"license":null}},{"name":"ImportAnnotationWidget","displayName":"Import Annotation Widget","owner":"Chardonneaur","description":"A simple widget to import multiple annotations at once by using the Matomo UI.","homepage":"https:\/\/github.com\/Chardonneaur\/ImportAnnotationWidget\/","createdDateTime":"2023-09-14 15:00:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/ImportAnnotationWidget\/issues","type":"url"}],"isTheme":false,"keywords":["annotations"],"basePrice":0,"authors":[{"name":"Ronan Chardonneau and Ronan Hello","email":null,"homepage":"https:\/\/github.com\/Chardonneaur\/ImportAnnotationWidget\/"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/ImportAnnotationWidget","lastUpdated":"2023-09-15 13:32:02","latestVersion":"0.1.2","numDownloads":10694,"screenshots":["https:\/\/plugins.matomo.org\/ImportAnnotationWidget\/images\/0.1.2\/importannotationscreenshot.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"29","numContributors":"1","lastCommitDate":"2023-09-15 13:30:20"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2023-09-14 15:00:03","requires":{"matomo":">=4.15.1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8165,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ImportAnnotationWidget\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/ImportAnnotationWidget\/commits\/v1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ImportAnnotationWidget\/download\/0.1.0"},{"name":"0.1.2","release":"2023-09-15 13:32:02","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2529,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ImportAnnotationWidget\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/ImportAnnotationWidget\/commits\/0.1.2","readmeHtml":{"description":"\n\n<p>This plugin has been created in order to offer a User Interface within Matomo to import annotations.\nBy default, it is possible to import annotations within Matomo but only through the API. The issue is that end users don't know it.\nSo the idea was to create an easy viewable plugin that anyone can use to import annotations.\nIt has been created as a widget in order to quickly show that annotations have been imported within a graph.\nIn order to use this feature, Matomo end users will have to create a token, indicate the siteID they want to import the annotations for and then write the annotations in this format:\nYYYY-MM-DD,my annotation to import\nYYYY-MM-DD,my second annotation to import\nYYYY-MM-DD,my third annotation to import\netc etc.\nPossibilities offered by this plugin are endless, if you look at the source code, you can easily create your own version of this plugin for any other methods of the Matomo API to offer a User Interface.\nHave fun,<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What is this plugin do?<\/strong><\/p>\n\n<p>It provides you a user interface in order to import annotations.<\/p>\n\n<p><strong>Why is it available on the dashboard panel and not in the admin?<\/strong><\/p>\n\n<p>Good question. It is a choice we made. It would have been cleaner within the admin but on the other way around, it would have been difficult to view the result straight away on a graph.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The import annotation plugin is straightforward, it is providing you a User Interface on the dashboard in order to give any users the possibility to import annotations.\nIn order to import annotations, end users will need to create a token through the admin --&gt; Personnal --&gt; Security, and indicate the siteID they wish to import the data for.\nOnce they push the import button, the annotations get imported straight away.\nImportant thing to know, there is a limit in the number of caracters you can include within your annotations which is determine by the lenght of your request.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>14\/09\/2023 - First version released on the Matomo's marketplace.<\/p>"},"download":"\/api\/2.0\/plugins\/ImportAnnotationWidget\/download\/0.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ImportAnnotationWidget\/changelog"},"consumer":{"license":null}},{"name":"IndexationViewer","displayName":"Indexation Viewer","owner":"ligeo-dev","description":"Show indexation statuses in Matomo administration.","homepage":"https:\/\/developpement.ligeo.fr\/","createdDateTime":"2023-11-13 15:46:02","donate":{},"support":[{"name":"Email","key":"email","value":"contact@empreintedigitale.coop","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/ligeo-dev\/matomo-plugin-IndexationViewer\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/ligeo-dev\/matomo-plugin-IndexationViewer","type":"url"}],"isTheme":false,"keywords":["viewer","diagnostic","Archive","indexation"],"basePrice":0,"authors":[{"name":"K\u00e1ra Sibille","email":"kara.sibille@empreintedigitale.coop","homepage":"https:\/\/git.vtech.fr\/k.sibille"},{"name":"Valentin Baraise","email":"valentin.baraise@empreintedigitale.coop","homepage":"https:\/\/git.vtech.fr\/valentin"}],"repositoryUrl":"https:\/\/github.com\/ligeo-dev\/matomo-plugin-IndexationViewer","lastUpdated":"2023-11-14 20:56:03","latestVersion":"0.1.1","numDownloads":290569,"screenshots":["https:\/\/plugins.matomo.org\/IndexationViewer\/images\/0.1.1\/IndexationViewer.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"4","numContributors":"1","lastCommitDate":"2023-11-14 20:55:57"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2023-11-13 15:46:03","requires":{"matomo":">=4.14.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":716,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IndexationViewer\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ligeo-dev\/matomo-plugin-IndexationViewer\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IndexationViewer\/download\/0.1.0"},{"name":"0.1.1","release":"2023-11-14 20:56:03","requires":{"matomo":">=4.14.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":289853,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IndexationViewer\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ligeo-dev\/matomo-plugin-IndexationViewer\/commits\/0.1.1","readmeHtml":{"description":"\n\n<p>IndexationViewer is a plugin that allows you to visualize archive statuses \u2014 i.e. rows with a <code>name<\/code> value of <code>done*<\/code>, \nwhere the suffix can contain a specific plugin name and\/or segment hash.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What does this plugin do?<\/strong><\/p>\n\n<p>It provides a user interface to check if your indexation has been run successfully directly from Matomo.<\/p>\n\n<p><strong>Where can I find the data?<\/strong><\/p>\n\n<p>As it relies on \"maintenance task\" we thought that they should be available in the \"Diagnostic\" view.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>API Reference<\/h3>\n\n<ul>\n<li><strong>IndexationViewer.getIndexationStatuses<\/strong>\n\n<ul>\n<li>Parameters: (idSite = '', period = 'day', date = 'today', 'segment' = '', status = '', page = 1, limitPerPage = 15)<\/li>\n<li>Response is an array of objects containing:<\/li>\n<li><code>id_archive<\/code> \u2014 (int) Database ID of the archive row ;<\/li>\n<li><code>name<\/code> \u2014 (string) Value of <code>done*<\/code>, where the suffix can contain a specific plugin name and\/or segment hash ;<\/li>\n<li><code>id_site<\/code> \u2014 (int) ID of the website ;<\/li>\n<li><code>period<\/code> \u2014 (string) Period of the archive. Can be any of: day, week, month, year or range ;<\/li>\n<li><code>period_begin_date<\/code> \u2014 (string) Date of the beginning of the period (format: <code>YYYY-MM-DD<\/code>) ;<\/li>\n<li><code>period_end_date<\/code> \u2014 (string) Date of the end of the period (format: <code>YYYY-MM-DD<\/code>) ;<\/li>\n<li><code>ts_archived<\/code> \u2014 (string) Timestamp of the archive process (format: <code>Y-m-d H:i:s<\/code>) ;<\/li>\n<li><code>value<\/code> \u2014 (string) Translation of the archive row status (<code>OK<\/code>, <code>Error<\/code> or <code>Invalidated<\/code>).<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h3>Useful links<\/h3>\n\n<ul>\n<li>https:\/\/developer.matomo.org\/guides\/archiving<\/li>\n<li>https:\/\/developer.matomo.org\/guides\/archive-data<\/li>\n<li>https:\/\/developer.matomo.org\/guides\/segments<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>All notable changes to this project will be documented in this file.<\/p>\n\n<p>The format is based on <a href=\"https:\/\/keepachangelog.com\/en\/1.0.0\/\">Keep a Changelog<\/a>,\nand this project adheres to <a href=\"https:\/\/semver.org\/spec\/v2.0.0.html\">Semantic Versioning<\/a>.<\/p>\n\n<h2><a href=\"https:\/\/github.com\/ligeo-dev\/matomo-plugin-IndexationViewer\/compare\/0.1.1...main\">unreleased<\/a><\/h2>\n\n<h2><a href=\"https:\/\/github.com\/ligeo-dev\/matomo-plugin-IndexationViewer\/releases\/tag\/0.1.1\">0.1.1<\/a> - 2023-11-14<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Replace links in CHANGELOG that where pointing to the old repository ;<\/li>\n<\/ul>\n\n<h2><a href=\"https:\/\/github.com\/ligeo-dev\/matomo-plugin-IndexationViewer\/releases\/tag\/0.1.0\">0.1.0<\/a> - 2023-11-13<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>First plugin release ;<\/li>\n<li>Add a new administration page to list indexation statuses. Indexation\nstatuses can be filtered by site, date and period, segment, and status ;<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/IndexationViewer\/download\/0.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IndexationViewer\/changelog"},"consumer":{"license":null}},{"name":"InstanceSetting","displayName":"Instance Setting","owner":"l3yx","description":"If you use this Matomo instance over multiple hostnames, this plugin can easily set the instance_id for this instance.","homepage":null,"createdDateTime":"2022-10-30 04:36:03","donate":{},"support":[{"name":"Email","key":"email","value":"yuyangjial@gmail.com","type":"email"}],"isTheme":false,"keywords":["instance_id"],"basePrice":0,"authors":[{"name":"Null","email":"yuyangjial@gmail.com","homepage":null}],"repositoryUrl":"https:\/\/github.com\/l3yx\/MatomoPLugin-InstanceSetting","lastUpdated":"2022-10-30 04:36:03","latestVersion":"0.1.0","numDownloads":3763,"screenshots":["https:\/\/plugins.matomo.org\/InstanceSetting\/images\/0.1.0\/index.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"1","numContributors":"1","lastCommitDate":"2022-10-30 04:35:16"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2022-10-30 04:36:03","requires":{"matomo":">=4.12.3-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3763,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/InstanceSetting\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/l3yx\/MatomoPLugin-InstanceSetting\/commits\/0.1.0","readmeHtml":{"description":"\n\n<p>If you use this Matomo instance over multiple hostnames, this plugin can easily set the instance_id for this instance.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/InstanceSetting\/download\/0.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/InstanceSetting\/changelog"},"consumer":{"license":null}},{"name":"IntranetGeoIP","displayName":"Intranet Geo IP","owner":"ThaDafinser","description":"Matomo (Piwik) plugin to locate all locale data of a user based on the IP address\/subnetwork (country, region, city, latitude, longitude, provider, ...).","homepage":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP","createdDateTime":"2014-06-12 08:04:04","donate":{},"support":[],"isTheme":false,"keywords":["ipv4","ipv6","Subnet","Intranet","GeoIP","ThaDafinser"],"basePrice":0,"authors":[{"name":"Martin Keckeis","email":null,"homepage":"https:\/\/github.com\/thadafinser"}],"repositoryUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP","lastUpdated":"2017-03-20 06:40:04","latestVersion":"3.0.1","numDownloads":94900717,"screenshots":["https:\/\/plugins.matomo.org\/IntranetGeoIP\/images\/3.0.1\/data.jpg","https:\/\/plugins.matomo.org\/IntranetGeoIP\/images\/3.0.1\/realtime.jpg","https:\/\/plugins.matomo.org\/IntranetGeoIP\/images\/3.0.1\/visitorMap.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"81","numContributors":"4","lastCommitDate":"2024-01-29 10:16:58"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0","release":"2014-06-12 08:04:04","requires":{"piwik":">=2.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0"},{"name":"1.0.1","release":"2014-06-12 08:16:10","requires":{"piwik":">=2.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0.1"},{"name":"1.0.2","release":"2014-06-12 08:20:10","requires":{"piwik":">=2.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":245,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0.2"},{"name":"1.0.4","release":"2014-06-12 08:44:03","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0.4"},{"name":"1.0.5","release":"2014-06-12 09:06:03","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0.5"},{"name":"1.0.6","release":"2014-06-12 11:08:04","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0.6"},{"name":"1.0.7","release":"2014-06-12 11:12:04","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":28,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0.7"},{"name":"1.0.8","release":"2014-06-13 09:22:03","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":212,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0.8"},{"name":"1.0.9","release":"2014-07-02 12:44:04","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":205,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.0.9"},{"name":"1.1.0","release":"2014-07-15 15:34:05","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":70,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.1.0"},{"name":"1.2.0","release":"2014-07-17 11:34:04","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":175,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/1.2.0"},{"name":"2.0.0","release":"2014-07-28 07:04:08","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":427,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/2.0.0"},{"name":"2.0.1","release":"2014-08-29 08:12:04","requires":{"piwik":">=2.3.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1888,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/2.0.1"},{"name":"2.1.0","release":"2015-01-28 09:40:04","requires":{"piwik":">=2.9.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":512,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/2.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/2.1.0"},{"name":"2.1.3","release":"2015-02-25 07:50:04","requires":{"piwik":">=2.9.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2176,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/2.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/2.1.3"},{"name":"2.2.0","release":"2015-07-13 10:54:03","requires":{"piwik":">=2.9.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5663,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/2.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/2.2.0"},{"name":"2.3.1","release":"2016-09-01 06:30:03","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":35,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/v2.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/2.3.1"},{"name":"2.3.2","release":"2016-09-01 14:12:03","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3144,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/2.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/2.3.2"},{"name":"3.0.0","release":"2017-03-08 12:34:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":262,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/IntranetGeoIP\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/v3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/3.0.0"},{"name":"3.0.1","release":"2017-03-20 06:40:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":94885636,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/IntranetGeoIP\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-IntranetGeoIP\/commits\/v3.0.1","readmeHtml":{"description":"\n\n<p>Matomo (Piwik) plugin to locate all locale data of a user based on the IP address\/subnetwork (country, region, city, latitude, longitude, provider, ...)<\/p>\n\n<p><strong><em>Please use it only for INTRANET tracking<\/em><\/strong> everything else just dont make sense :-)<\/p>\n\n","faq":"<p><strong>What does this plugin do?<\/strong><\/p>\n\n<p>It adds visitor information based on the matched IP address from your configuration. Not more and not less.\nThe database schema and UI stays untouched, so all Matomo (Piwik) statistics can be used like you would use a internet GeoIP database.<\/p>\n\n<p><strong>How to configure\/install this plugin \/ the networks?<\/strong><\/p>\n\n<p>After installation and activation of the plugin, open the file <code>piwik\/config\/IntranetGeoIP.data.php<\/code><\/p>\n\n<p>You can their add your location information and their subnetworks.<\/p>\n\n<p>See the file <code>piwik\/config\/IntranetGeoIP.data.php<\/code> or see the readme on github https:\/\/github.com\/ThaDafinser\/IntranetGeoIp<\/p>\n\n<p><strong>What statistics are available?<\/strong><\/p>\n\n<p>If you create a full configuration data file, you'll see\n* Visitor -&gt; Realtime visitor map\n* Visitor -&gt; Location and provider\n* and many more...(in generall all statistics are available like using a internet GeoIP database)<\/p>\n\n<p><strong>Why there stands provider \"unknown\" in my visitor log?<\/strong><\/p>\n\n<p>If your installation is stock, all visitors will get this \"flag\" to show you, what IPs are not matched.\nYou can adjust or remove this, by changing the \"noMatch\" block in your <code>IntranetGeoIP.data.php<\/code> file.\nIf you remove the complete block, none matched visitors will be skipped by this plugin.\nBut you can also fill all possible visitorInfos like you are used for matched IP addresses.<\/p>\n\n<p><strong>Can i use this plugin with a internet GeoIP database side by side?<\/strong><\/p>\n\n<p>Yes you can.\nJust remove or comment out the <code>noMatch<\/code> block in your configuration file.<\/p>\n\n<p><strong>Note about the configuration?<\/strong><\/p>\n\n<p>Inside the array key <code>visitorInfo<\/code> you can freely add\/remove all available columns from the <code>log_visit<\/code> table you want.\nThe keys below are just a suggestion, since they are the only one which make sense currently IMO.\nAll available fields, see here: http:\/\/developer.piwik.org\/guides\/persistence-and-the-mysql-backend#visits<\/p>\n\n<p>Inside they key <code>networks<\/code> add all subnetworks which apply to this location.<\/p>\n\n<pre><code>return [\n    \/*\n     * If the IP was not matched, apply these data to visitorInfo\n     * You can also apply here all possible visitorInformation data if you want\n     *\/\n    'noMatch' =&gt; [\n        'visitorInfo' =&gt; [\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ Provider requires the \"Provider\" Plugin to be active. (Disabled by default in Version 2.15 and above)\n            \/\/'location_provider' =&gt; 'unknown'\n        ]\n    ],\n\n    [\n        'visitorInfo' =&gt; [\n            \/\/ISO-3166 alpha-2 code http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1\n            'location_country' =&gt; 'at',\n\n            \/\/the region code (i take them from piwik\/libs\/MaxMindGeoIp\/geoipregionvars.php\n            'location_region' =&gt; '08',\n\n            \/\/should be freetext\n            'location_city' =&gt; 'Muntlix',\n\n            \/\/get this from a picker, e.g. http:\/\/www.tytai.com\/gmap\/\n            'location_latitude' =&gt; '47.282024',\n            'location_longitude' =&gt; '9.662304',\n\n            \/\/enter your company name or do it based on your domain hierarchy\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/ Provider requires the \"Provider\" Plugin to be active. (Disabled by default in Version 2.15 and above)\n            \/\/'location_provider' =&gt; 'myCompany'\n        ],\n        'networks' =&gt; [\n            \/\/enter here all subnetworks for this location\n            \/\/use a subnetwork calculator, e.g. http:\/\/jodies.de\/ipcalc\n            '10.59.0.0\/19',\n            '170.56.251.200\/29'\n        ]\n    ],\n\n    \/\/add more blocks live above\n];\n<\/code><\/pre>","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/IntranetGeoIP\/download\/3.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IntranetGeoIP\/changelog"},"consumer":{"license":null}},{"name":"InvalidateReports","displayName":"Invalidate Reports","owner":"matomo-org","description":"This plugin allows Super Users to invalidate historical reports in the UI in Administration > System > Invalidate reports.","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2017-11-17 12:34:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports","type":"url"}],"isTheme":false,"keywords":["reports","invalidate"],"basePrice":0,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports","lastUpdated":"2026-08-24 06:28:22","latestVersion":"6.0.0","numDownloads":427578,"screenshots":["https:\/\/plugins.matomo.org\/InvalidateReports\/images\/6.0.0\/screenshot.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/InvalidateReports.png","previews":[],"activity":{"numCommits":"188","numContributors":"37","lastCommitDate":"2026-10-21 04:22:07"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["database"],"promotions":{},"versions":[{"name":"0.1.0","release":"2017-11-17 12:34:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":748,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/0.1.0"},{"name":"0.1.1","release":"2017-11-20 10:22:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":40058,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/0.1.1"},{"name":"0.1.2","release":"2018-12-04 20:38:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":20866,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/0.1.2"},{"name":"4.0.0","release":"2020-08-27 04:38:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":454,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:32:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15133,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/4.0.1"},{"name":"4.1.0","release":"2022-04-26 03:10:02","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1425,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/4.1.0"},{"name":"4.1.1","release":"2022-08-01 07:44:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":217149,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/4.1.1"},{"name":"5.0.0","release":"2023-05-08 01:40:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2174,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/5.0.0"},{"name":"5.0.1","release":"2024-02-12 05:48:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2220,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/InvalidateReports\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/5.0.1"},{"name":"5.0.2","release":"2024-04-22 06:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":127210,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/InvalidateReports\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/5.0.2"},{"name":"6.0.0","release":"2026-08-24 06:28:22","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":141,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/InvalidateReports\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-InvalidateReports\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugins allows you to <a href=\"https:\/\/matomo.org\/faq\/how-to\/faq_155\/\">invalidate historical reports<\/a>.<\/p>\n\n<p>You can invalidate all historical reports for a specific or for all websites and for a specific or all segments. When you invalidate historical reports, they will be re-processed from the raw logs the next time archiving will run. This is useful when you want to force Matomo to re-process historical data for all reports, for example when:<\/p>\n\n<ul>\n<li>you created a new <a href=\"https:\/\/matomo.org\/docs\/custom-reports\/\">Custom Report<\/a> and want the <a href=\"https:\/\/matomo.org\/docs\/custom-reports\/\">Custom Reports<\/a> to be processed for all historical data<\/li>\n<li>you created a new <a href=\"https:\/\/matomo.org\/docs\/funnels\/\">Funnel<\/a> and want your <a href=\"https:\/\/matomo.org\/docs\/funnels\/\">Funnel<\/a> reports to be processed for all historical data<\/li>\n<li>you have modified the raw visitor information (for example by <a href=\"https:\/\/matomo.org\/log-analytics\/\">importing new visitor logs<\/a> in the past) and want these changes to raw logs reflected in all your reports.<\/li>\n<\/ul>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li><p>6.0.0: Compatibility with Matomo 6<\/p><\/li>\n<li><p>5.0.2: Added plugin category for marketplace<\/p><\/li>\n<li><p>5.0.1: Added license<\/p><\/li>\n<li><p>5.0.0: Compatibility with Matomo 5<\/p><\/li>\n<li><p>4.1.1: Translation updates.<\/p><\/li>\n<li><p>4.1.0: migrate AngularJS code to Vue.<\/p><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/InvalidateReports\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/InvalidateReports\/changelog"},"consumer":{"license":null}},{"name":"Ip2Hostname","displayName":"IP 2 Hostname","owner":"ThaDafinser","description":"Matomo (Piwik) plugin to get the hostname from the visitor IP.","homepage":"https:\/\/github.com\/ThaDafinser\/Piwik-Ip2Hostname","createdDateTime":"2015-01-28 11:44:03","donate":{},"support":[],"isTheme":false,"keywords":["ip2hostname","plugin"],"basePrice":0,"authors":[{"name":"Martin Keckeis","email":null,"homepage":"https:\/\/github.com\/thadafinser"}],"repositoryUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-Ip2Hostname","lastUpdated":"2017-03-08 12:00:11","latestVersion":"3.0.0","numDownloads":16034,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"22","numContributors":"2","lastCommitDate":"2017-03-08 11:59:55"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2015-01-28 11:44:03","requires":{"piwik":">=2.10.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-Ip2Hostname\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Ip2Hostname\/download\/1.0.0"},{"name":"1.0.1","release":"2015-01-28 12:18:02","requires":{"piwik":">=2.10.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1943,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-Ip2Hostname\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Ip2Hostname\/download\/1.0.1"},{"name":"1.0.3","release":"2015-08-24 13:28:03","requires":{"piwik":">=2.10.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":743,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-Ip2Hostname\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Ip2Hostname\/download\/1.0.3"},{"name":"v2.0.0","release":"2015-10-15 08:00:03","requires":{"piwik":"2.15.0","php":"5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2656,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-Ip2Hostname\/commits\/v2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Ip2Hostname\/download\/v2.0.0"},{"name":"2.1.1","release":"2016-09-23 07:10:02","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2101,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/Ip2Hostname\/2.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-Ip2Hostname\/commits\/v2.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Ip2Hostname\/download\/2.1.1"},{"name":"3.0.0","release":"2017-03-08 12:00:11","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8579,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/Ip2Hostname\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-Ip2Hostname\/commits\/v3.0.0","readmeHtml":{"description":"\n\n<p>This plugin (try) to get the hostname of the visitor and write it into the <code>log_visitor<\/code> table.<\/p>\n\n<p>There are currently <strong><em>no reports or any views available<\/em><\/strong>, to see a result. <strong><em>You need to directly query the table!<\/em><\/strong>\nI currently dont have the time and need of such a view, and therefor maybe you'll never see one...if nobody else create oen :-)<\/p>\n\n<p>NOTE:\n<strong><em>I use it currently only in an intranet enviroment<\/em><\/strong> to detect computers which have old enviroment, because the IP might change i log the hostname.<\/p>\n\n<p>I never tried it and probably wont use it for internet...<\/p>","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/Ip2Hostname\/download\/3.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Ip2Hostname\/changelog"},"consumer":{"license":null}},{"name":"IP2Location","displayName":"IP 2 Location","owner":"ip2location","description":"Use the IP2Location geolocation service to lookup your visitors' locations. You can configure the settings under System \u2192 IP2Location.","homepage":"https:\/\/www.ip2location.com\/developers\/piwik","createdDateTime":"2014-04-23 09:24:04","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/ip2location\/ip2location-piwik\/wiki","type":"url"},{"name":"Email","key":"email","value":"support@ip2location.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/ip2location\/ip2location-piwik\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/ip2location\/ip2location-piwik","type":"url"}],"isTheme":false,"keywords":["IP2Location","geolocation","visitor location","ip to location"],"basePrice":0,"authors":[{"name":"IP2Location","email":"support@ip2location.com","homepage":"https:\/\/www.ip2location.com"}],"repositoryUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik","lastUpdated":"2026-05-15 02:40:04","latestVersion":"5.5.2","numDownloads":125761,"screenshots":["https:\/\/plugins.matomo.org\/IP2Location\/images\/5.5.2\/01_Settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"229","numContributors":"23","lastCommitDate":"2026-10-07 23:10:19"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"2.0.0","release":"2014-04-23 09:24:05","requires":{"piwik":"2.0.1","php":"5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1699,"license":{"name":"GPL 3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.0.0"},{"name":"2.0.2","release":"2014-07-15 07:50:03","requires":{"piwik":">=2.0.1","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3787,"license":{"name":"GPL 3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.0.2"},{"name":"2.1.1","release":"2015-03-10 01:36:03","requires":{"piwik":">=2.0.1","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":412,"license":{"name":"GPL 3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.1.1"},{"name":"2.1.3","release":"2015-03-24 01:54:03","requires":{"piwik":">=2.12.0","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":208,"license":{"name":"GPL 3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.1.3"},{"name":"2.1.4","release":"2015-03-30 00:48:04","requires":{"piwik":">=2.12.0","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":229,"license":{"name":"GPL 3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.1.4"},{"name":"2.1.5","release":"2015-04-07 08:08:03","requires":{"piwik":">=2.12.0","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5180,"license":{"name":"GPL 3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.1.5"},{"name":"2.1.8","release":"2015-12-16 01:22:03","requires":{"piwik":">=2.12.0","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4344,"license":{"name":"GPL 3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.1.8"},{"name":"2.2.0","release":"2016-04-19 03:08:03","requires":{"piwik":">=2.12.0","php":"5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4044,"license":{"name":"GPL 3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.2.0"},{"name":"2.2.1","release":"2016-10-06 01:52:03","requires":{"piwik":">=2.12.0","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":441,"license":{"name":"GPL 3.0","url":"https:\/\/plugins.matomo.org\/IP2Location\/2.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.2.1"},{"name":"2.3.0","release":"2016-10-10 01:54:02","requires":{"piwik":">=2.12.0","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3648,"license":{"name":"GPL 3.0","url":"https:\/\/plugins.matomo.org\/IP2Location\/2.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/8.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.3.0"},{"name":"2.3.1","release":"2016-12-21 04:54:04","requires":{"piwik":">=3.0.0-b1","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL 3.0","url":"https:\/\/plugins.matomo.org\/IP2Location\/2.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.3.1"},{"name":"2.3.2","release":"2016-12-21 05:40:03","requires":{"piwik":">=2.12.0,>=3.0.0-b1,<4.0.0-b1","php":">=5.3.20"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":404,"license":{"name":"GPL 3.0","url":"https:\/\/plugins.matomo.org\/IP2Location\/2.3.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/2.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/2.3.2"},{"name":"3.0.0","release":"2016-12-23 01:40:03","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4696,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.0.0"},{"name":"3.1.0","release":"2017-06-15 08:16:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1247,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.0"},{"name":"3.1.2","release":"2017-07-12 01:38:03","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":824,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.2"},{"name":"3.1.3","release":"2017-07-26 02:24:03","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":735,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.3"},{"name":"3.1.4","release":"2017-08-07 03:10:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3236,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.4"},{"name":"3.1.5","release":"2017-11-01 06:00:05","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1001,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.5"},{"name":"3.1.6","release":"2017-11-14 23:14:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3431,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.6"},{"name":"3.1.8","release":"2018-02-04 23:24:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8852,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.8"},{"name":"3.1.10","release":"2019-05-27 04:56:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":209,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.10"},{"name":"3.1.11","release":"2019-05-28 07:38:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":351,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.11"},{"name":"3.1.12","release":"2019-05-29 22:46:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":59,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.12"},{"name":"3.1.13","release":"2019-05-30 06:10:06","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":30,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.13","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.13"},{"name":"3.1.14","release":"2019-05-30 07:18:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3264,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.14","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.14"},{"name":"3.1.16","release":"2019-10-03 00:16:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3352,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.16","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.16"},{"name":"3.1.18","release":"2020-01-16 23:26:05","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1699,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.18","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.18"},{"name":"3.1.19","release":"2020-02-03 23:06:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":970,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.19","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.19"},{"name":"3.1.20","release":"2020-02-11 04:44:03","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.20","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.20"},{"name":"3.1.21","release":"2020-02-11 05:00:04","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.21","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.21"},{"name":"3.1.22","release":"2020-02-11 05:22:03","requires":{"piwik":">=3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6269,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/3.1.22","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/3.1.22"},{"name":"4.0.1","release":"2020-10-13 05:02:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1958,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.0.1"},{"name":"4.0.2","release":"2020-12-29 23:14:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5056,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.0.2"},{"name":"4.0.4","release":"2021-11-05 06:38:03","requires":{"piwik":">=3.0.0-b1,<=4.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2737,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.0.4"},{"name":"4.0.5","release":"2021-12-01 00:34:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":112,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.0.5"},{"name":"4.0.6","release":"2021-12-01 06:20:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":578,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.0.6"},{"name":"4.0.7","release":"2021-12-01 23:34:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":463,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.0.7"},{"name":"4.0.8","release":"2021-12-02 22:58:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3595,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.0.8"},{"name":"4.0.9","release":"2022-03-22 05:36:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5218,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.0.9"},{"name":"4.1.0","release":"2022-11-16 01:06:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1038,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.1.0"},{"name":"4.1.1","release":"2022-11-29 22:46:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":353,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.1.1"},{"name":"4.1.2","release":"2022-11-30 22:34:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7810,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/4.1.2"},{"name":"5.1.0","release":"2023-11-29 07:24:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2478,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.1.0"},{"name":"5.2.0","release":"2024-02-05 05:44:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1627,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.2.0"},{"name":"5.2.1","release":"2024-02-25 22:46:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1557,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.2.1"},{"name":"5.2.2","release":"2024-03-18 23:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.2.2"},{"name":"5.2.3","release":"2024-03-19 01:16:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":309,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.2.3"},{"name":"5.2.4","release":"2024-03-19 22:36:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":914,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.2.4"},{"name":"5.2.6","release":"2024-04-02 23:10:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3543,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.2.6"},{"name":"5.3.1","release":"2024-10-09 22:48:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7754,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.3.1"},{"name":"5.4.0","release":"2025-11-27 04:40:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":902,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.4.0"},{"name":"5.5.0","release":"2025-12-01 05:40:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":441,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.5.0"},{"name":"5.5.1","release":"2025-12-03 01:22:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6848,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.5.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.5.1"},{"name":"5.5.2","release":"2026-05-15 02:40:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5803,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2location-piwik\/commits\/5.5.2","readmeHtml":{"description":"\n\n<p>This IP2Location plugin enables more accurate location lookup in your Matomo visitor log.<\/p>\n\n<p>You need a IP2Location BIN database to make this plugin works. Database is available for free at<\/p>\n\n<p>https:\/\/lite.ip2location.com or https:\/\/www.ip2location.com for a commercial database.<\/p>\n\n","faq":"<p><strong>How to I configure the plugin?<\/strong><\/p>\n\n<p>Login as administrator, then go to System \u2192 IP2Location.<\/p>\n\n<p><strong>Where to download IP2Location database?<\/strong><\/p>\n\n<p>You can download IP2Location database for free at https:\/\/lite.ip2location.com or commercial version from https:\/\/www.ip2location.com<\/p>\n\n<p><strong>Can I use IP2Location.io Geolocation API service?<\/strong><\/p>\n\n<p>Yes, please create an account from https:\/\/www.ip2location.io\/ and insert your API key in the settings page.<\/p>\n\n<h1>IPv4 BIN vs IPv6 BIN<\/h1>\n\n<p>Use the IPv4 BIN file if you just need to query IPv4 addresses.<\/p>\n\n<p>Use the IPv6 BIN file if you need to query BOTH IPv4 and IPv6 addresses.<\/p>","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/IP2Location\/download\/5.5.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IP2Location\/changelog"},"consumer":{"license":null}},{"name":"IP2Proxy","displayName":"IP2Proxy","owner":"ip2location","description":"Get the proxy details of visitors to your website.","homepage":"https:\/\/github.com\/ip2location\/ip2proxy-matomo","createdDateTime":"2020-12-08 02:12:03","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/wiki","type":"url"},{"name":"Email","key":"email","value":"support@ip2location.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/ip2location\/ip2proxy-matomo","type":"url"}],"isTheme":false,"keywords":["Report","geolocation","ip","proxy"],"basePrice":0,"authors":[{"name":"IP2Location","email":"support@ip2location.com","homepage":"http:\/\/www.ip2location.com"}],"repositoryUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo","lastUpdated":"2024-10-15 06:36:03","latestVersion":"5.1.2","numDownloads":19959,"screenshots":["https:\/\/plugins.matomo.org\/IP2Proxy\/images\/5.1.2\/screenshot-01.png","https:\/\/plugins.matomo.org\/IP2Proxy\/images\/5.1.2\/screenshot-02.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"231","numContributors":"30","lastCommitDate":"2026-10-07 22:24:43"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2020-12-08 02:12:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":145,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/0.1.0"},{"name":"0.1.1","release":"2020-12-28 03:24:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3492,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/0.1.1"},{"name":"0.1.2","release":"2022-11-16 00:38:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":498,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/0.1.2"},{"name":"0.1.3","release":"2022-12-30 05:20:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":810,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/0.1.3"},{"name":"0.1.4","release":"2023-03-19 23:44:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":540,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/0.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/0.1.4"},{"name":"0.1.5","release":"2023-04-26 04:56:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1122,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/0.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/0.1.5"},{"name":"0.1.6","release":"2023-10-20 21:18:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":452,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/0.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/0.1.6"},{"name":"0.2.0","release":"2023-11-29 07:20:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1589,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/0.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/0.2.0"},{"name":"5.1.0","release":"2023-11-30 02:52:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1339,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/5.1.0"},{"name":"5.1.2","release":"2024-10-15 06:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9972,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/IP2Proxy\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ip2location\/ip2proxy-matomo\/commits\/5.1.2","readmeHtml":{"description":"\n\n<p>This Matomo plugin generates proxy report based on the visitor's IP address. The details including proxy type, country, region, city, ISP, domain, usage type, ASN, and security threat.<\/p>\n\n<p>You need a IP2Proxy BIN database to make this plugin works. Database is available for free at<\/p>\n\n<p><a href=\"https:\/\/lite.ip2location.com\/ip2proxy-lite\">https:\/\/lite.ip2location.com<\/a> or <a href=\"https:\/\/www.ip2location.com\/database\/ip2proxy\">https:\/\/www.ip2location.com<\/a> for a commercial database.<\/p>\n\n","faq":"<p><strong>How to I configure the plugin?<\/strong><\/p>\n\n<p>Login as administrator, then go to System &gt; General Settings &gt; IP2Proxy.<\/p>\n\n<p><strong>Where to download IP2Proxy database?<\/strong><\/p>\n\n<p>You can download IP2Location database for free at <a href=\"https:\/\/lite.ip2location.com\/ip2proxy-lite\">https:\/\/lite.ip2location.com<\/a> or commercial version from <a href=\"https:\/\/www.ip2location.com\/databases\/ip2proxy\">https:\/\/www.ip2location.com<\/a><\/p>\n\n<p><strong>Where to sign up ip2location.io Geolocation API Service?<\/strong><\/p>\n\n<p>Sign for a free account at https:\/\/www.ip2location.io\/<\/p>\n\n<h1>IPv4 BIN vs IPv6 BIN<\/h1>\n\n<p>Use the IPv4 BIN file if you just need to query IPv4 addresses.<\/p>\n\n<p>Use the IPv6 BIN file if you need to query <strong>BOTH<\/strong> IPv4 and IPv6 addresses.<\/p>","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/IP2Proxy\/download\/5.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IP2Proxy\/changelog"},"consumer":{"license":null}},{"name":"iPadDetector","displayName":"iPad Detector","owner":"Starker3","description":"Simple plugin that allows Matomo to detect iPad devices as iPads instead of macOS Desktop devices.","homepage":null,"createdDateTime":"2023-10-20 00:40:02","donate":{},"support":[],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Starker3","email":null,"homepage":"https:\/\/github.com\/Starker3\/MatomoiPadDetector"}],"repositoryUrl":"https:\/\/github.com\/Starker3\/MatomoiPadDetector","lastUpdated":"2023-10-20 00:50:02","latestVersion":"5.0.0","numDownloads":14483,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"2","numContributors":"1","lastCommitDate":"2023-10-20 00:48:16"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"4.0.0","release":"2023-10-20 00:40:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2829,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/iPadDetector\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Starker3\/MatomoiPadDetector\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/iPadDetector\/download\/4.0.0"},{"name":"5.0.0","release":"2023-10-20 00:50:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11654,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/iPadDetector\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Starker3\/MatomoiPadDetector\/commits\/5.0.0","readmeHtml":{"description":"\n\n<p>This is a simple plugin that forces the tracking of iPad devices by overwriting the User Agent sent with each tracking request when the an iPad device is detected.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Does this plugin require configuration?<\/strong><\/p>\n\n<p>No, simply install and activate the plugin and you'll be able to track iPad devices.<\/p>\n\n<p><strong>Does this plugin work with Tag Manager?<\/strong><\/p>\n\n<p>Yes, as long as you bundle matomo.js in your Matomo Configuration variable and enable \"Register as default tracker\".<\/p>\n\n<p><strong>Why do I need this plugin? Why doesn't this functionality exist already?<\/strong><\/p>\n\n<p>Matomo detects what device\/user agent is sending requests to your Matomo server by using the user agent sent with the request to the web server.\niPads pretend to be Desktop devices to websites by sending a macOS desktop User Agent to prevent receiving mobile versions of websites which are not optimised for iPad screen sizes. This plugin detects iPads using User Agent detection for a Macbook device with a touchscreen and then overwrites the User Agent with that of a iPad User agent so that Matomo can track it correctly. Since no Macbook exists with a touchscreen this method should be safe to use for this purpose.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>4.0.0 Initial release for Matomo 4<\/p>\n\n<p>5.0.0 Initial release for Matomo 5<\/p>"},"download":"\/api\/2.0\/plugins\/iPadDetector\/download\/5.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/iPadDetector\/changelog"},"consumer":{"license":null}},{"name":"IPReports","displayName":"IPReports","owner":"sgiehl","description":"Adds new IP reports to Matomo.","homepage":"http:\/\/github.com\/sgiehl\/piwik-plugin-IPReports","createdDateTime":"2017-11-18 22:46:03","donate":{"paypal":"stefangiehl@web.de","flattr":"https:\/\/flattr.com\/thing\/3787742\/sgiehlpiwik-plugin-IPReports-on-GitHub","bitcoin":null},"support":[{"name":"Email","key":"email","value":"stefan@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports","type":"url"}],"isTheme":false,"keywords":["Report","ip","ips"],"basePrice":0,"authors":[{"name":"Stefan Giehl","email":"stefan@matomo.org","homepage":"http:\/\/github.com\/sgiehl"}],"repositoryUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports","lastUpdated":"2026-08-31 07:04:04","latestVersion":"6.0.0","numDownloads":50627,"screenshots":["https:\/\/plugins.matomo.org\/IPReports\/images\/6.0.0\/report.png","https:\/\/plugins.matomo.org\/IPReports\/images\/6.0.0\/report2.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"150","numContributors":"19","lastCommitDate":"2026-10-08 13:59:27"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2017-11-18 22:46:03","requires":{"piwik":">=3.0.0,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2888,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/0.1.0"},{"name":"0.2.0","release":"2018-06-07 10:00:04","requires":{"piwik":">=3.0.0,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8248,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/0.2.0"},{"name":"4.0.0","release":"2020-07-10 14:56:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":443,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/4.0.0"},{"name":"4.1.0","release":"2020-08-26 07:34:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1863,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/4.1.0"},{"name":"4.1.1","release":"2021-09-24 08:44:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1033,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/4.1.1"},{"name":"4.1.2","release":"2021-12-02 13:44:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2753,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/4.1.2"},{"name":"4.2.0","release":"2022-10-04 09:56:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13185,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/4.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/4.2.0"},{"name":"5.0.0","release":"2023-08-21 14:34:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":20135,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/5.0.0"},{"name":"6.0.0","release":"2026-08-31 07:04:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":79,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-IPReports\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugin adds additional reports \"Top IP-Addresses\" and \"IPv4 \/ IPv6 usage\" to Matomo.<\/p>\n\n<h3>Requirements<\/h3>\n\n<p><a href=\"https:\/\/github.com\/matomo-org\/matomo\">Matomo<\/a> 5.0.0-b1 or higher is required.<\/p>\n\n","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/IPReports\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IPReports\/changelog"},"consumer":{"license":null}},{"name":"IPtoCompany","displayName":"IPtoCompany","owner":"Romain","description":"Get the name of the companies that visit your website.","homepage":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company","createdDateTime":"2020-01-02 09:12:03","donate":{"paypal":"romain.biard@gmail.com","bitcoin":null},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"romain.biard@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company","type":"url"}],"isTheme":false,"keywords":["Report","ip","company","companies"],"basePrice":0,"authors":[{"name":"Romain Biard","email":"romain.biard@gmail.com","homepage":"https:\/\/www.linkedin.com\/in\/rbiard\/"}],"repositoryUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company","lastUpdated":"2022-11-02 21:26:03","latestVersion":"1.2.2","numDownloads":25731,"screenshots":["https:\/\/plugins.matomo.org\/IPtoCompany\/images\/1.2.2\/full-view-of-the-report.png","https:\/\/plugins.matomo.org\/IPtoCompany\/images\/1.2.2\/list-of-ips-and-their-associated-company.png","https:\/\/plugins.matomo.org\/IPtoCompany\/images\/1.2.2\/user-setting-subscribe-to-email-report.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"166","numContributors":"15","lastCommitDate":"2024-07-11 18:40:53"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2020-01-02 09:12:03","requires":{"piwik":">=3.13.1-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.1.0"},{"name":"0.1.2","release":"2020-01-02 09:30:04","requires":{"piwik":">=3.13.1-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.1.2"},{"name":"0.1.3","release":"2020-01-02 10:40:04","requires":{"piwik":">=3.9.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.1.3"},{"name":"0.1.5","release":"2020-01-02 10:56:03","requires":{"piwik":">=3.9.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":233,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.1.5"},{"name":"0.1.6","release":"2020-01-02 11:10:08","requires":{"piwik":">=3.11.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":80,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.1.6"},{"name":"0.1.7","release":"2020-01-06 09:26:04","requires":{"piwik":">=3.11.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.1.7"},{"name":"0.2.0","release":"2020-01-06 14:52:04","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.2.0"},{"name":"0.2.2","release":"2020-01-06 15:10:04","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.2.2"},{"name":"0.2.3","release":"2020-01-06 16:00:04","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.2.3"},{"name":"0.2.4","release":"2020-01-07 08:44:04","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":297,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.2.4"},{"name":"0.2.6","release":"2020-01-23 13:30:09","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":605,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.2.6"},{"name":"0.2.8","release":"2020-02-25 10:30:05","requires":{"piwik":">=3.10.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":313,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.2.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.2.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.2.8"},{"name":"0.3.0","release":"2020-03-03 13:42:05","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":68,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.3.0"},{"name":"0.3.1","release":"2020-03-04 09:32:04","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/date-used-for-email-report","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.3.1"},{"name":"0.3.2","release":"2020-03-04 09:36:04","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":134,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.3.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.3.2"},{"name":"0.3.3","release":"2020-03-06 08:26:03","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.3.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/dont-send-email-report-if-no-user-checked","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.3.3"},{"name":"0.3.5","release":"2020-03-06 08:34:03","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":227,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.3.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.3.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.3.5"},{"name":"0.4.0","release":"2020-03-12 10:26:04","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1101,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.4.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.4.0"},{"name":"0.4.1","release":"2020-05-20 11:22:04","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.4.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.4.1"},{"name":"0.4.2","release":"2020-05-20 11:32:03","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":533,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.4.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.4.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.4.2"},{"name":"0.4.3","release":"2020-06-08 10:10:04","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":766,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.4.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.4.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.4.3"},{"name":"0.4.4","release":"2020-08-03 07:12:04","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":60,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.4.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.4.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.4.4"},{"name":"0.4.5","release":"2020-08-04 06:48:04","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1152,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.4.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.4.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.4.5"},{"name":"1.0.0","release":"2020-10-13 16:54:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/1.0.0"},{"name":"0.4.6","release":"2020-10-14 09:44:03","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":683,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.4.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.4.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.4.6"},{"name":"1.0.1","release":"2020-10-14 09:44:07","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1127,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/1.0.1"},{"name":"1.0.2","release":"2021-01-18 10:22:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4121,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/1.0.2"},{"name":"0.4.7","release":"2021-01-18 10:30:05","requires":{"piwik":">=3.13.3-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3068,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/0.4.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/0.4.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/0.4.7"},{"name":"1.0.3","release":"2022-03-10 08:48:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1456,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/1.0.3"},{"name":"1.1.0","release":"2022-05-17 10:38:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/1.1.0"},{"name":"1.2.0","release":"2022-05-17 11:52:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3060,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/1.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/1.2.0"},{"name":"1.2.2","release":"2022-11-02 21:26:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6561,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/IPtoCompany\/1.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/commits\/1.2.2","readmeHtml":{"description":"\n\n<p>This plugin is meant to be installed on Matomo. It provides you with the name of the company which holds the IP that visited your website.<\/p>\n\n<p>You can also use <a href=\"https:\/\/ipinfo.io\/\">IPInfo.io<\/a> to get a more reliable result if you have an account. You will just have to set your access token in the General Parameters of Matomo.<\/p>\n\n<p>This plugin has first been developed for the needs of the company I've been working for, <a href=\"https:\/\/www.wipsim.fr\/?pk_campaign=MatomoPlugin-Link&amp;pk_source=matomoplugin&amp;pk_medium=matomo\">Wipsim<\/a><\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How to install this plugin?<\/strong><\/p>\n\n<p>Install it via Matomo Marketplace.<\/p>\n\n<p><strong>How reliable is this data?<\/strong><\/p>\n\n<p>The collected company names are based on the PHP function <code>gethostbyaddr<\/code>. This function returns the name of the company provided by the proxy used by the user.<\/p>\n\n<p>Most of the big companies have their own proxy set up with a real name configured. But SMBs may not and in this case, you could see the name of their ISP appear.<\/p>\n\n<p>Therefore, this information is not 100% reliable but this is still an interesting information to check from time to time.<\/p>\n\n<p>If you have an access token set up for <a href=\"https:\/\/ipinfo.io\/\">IPInfo.io<\/a>, this plugin will use this data in the first place, before falling back to <code>gethostbyaddr<\/code>;<\/p>\n\n<p><strong>Where do I find the report once the plugin is activated?<\/strong><\/p>\n\n<p>Once you've activated your plugin, you'll see in the <code>Visitors<\/code> tab of each website a new <code>Companies<\/code> subcategory. This is were your new report lies.<\/p>\n\n<p>You can also add this report as a widget to your dashboards.<\/p>\n\n<p><strong>Which Matomo versions are compatible with this plugin?<\/strong><\/p>\n\n<p>Your Matomo version should be between 3.11.0 and below 4.0.0.<\/p>\n\n<p><strong>Can I receive this report by email?<\/strong><\/p>\n\n<p>Yes! As of version 0.3.0, you can receive this report by email. You just have to go to Settings &gt; Personal Settings and check the checkbox located in the IPtoCompany section which asks you if you want to subscribe to this report.<\/p>\n\n<p>This report will then be sent to you once a day, for each site that you have access to, with the list of companies that visited your website the day before.<\/p>\n\n<p><img src=\"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/blob\/master\/screenshots\/user-setting-subscribe-to-email-report.png\" alt=\"user-setting-subscribe-to-email-report.png\" \/><\/p>\n\n<p><strong>Can I define the lifetime of the cache?<\/strong><\/p>\n\n<p>As of version 0.4.0, yes, you can. In the general settings section, you can set the number of weeks during which the results should be kept in cache. By default, we keep them 2 weeks, and the minimum is 1 week.<\/p>\n\n<p><strong>How many records are returned?<\/strong><\/p>\n\n<p>By default, to guarantee the performance of the report, a maximum of 200 records are returned. You can increase this value by appending the following parameter to the URL: &amp;filterLimit=300.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Please consider reading our <a href=\"faq.md\">FAQ<\/a> first.<\/p>\n\n<p>If you want to <strong>submit a bug<\/strong>, please <a href=\"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/issues\/new\">create a new issue<\/a>.<\/p>\n\n<p>If you want to <strong>submit a new feature<\/strong>, please <a href=\"https:\/\/github.com\/Romain\/Matomo-IP-to-Company\/pulls\">create a PR<\/a>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>1.2.2<\/h3>\n\n<p><em>[2022-11-02]<\/em><\/p>\n\n<ul>\n<li>Fixing an issue in plugin.json<\/li>\n<\/ul>\n\n<h3>1.2.1<\/h3>\n\n<p><em>[2022-11-02]<\/em><\/p>\n\n<ul>\n<li>Added a donate section to the description of the plugin<\/li>\n<\/ul>\n\n<h3>1.2.0<\/h3>\n\n<p><em>[2022-05-17]<\/em><\/p>\n\n<ul>\n<li>PR #17 fixing issue #11: Translations using Weblate. Thanks to @comradekingu, @lourdas, @filhocf, @kayazeren, @sgiehl, @css31, @Findus23, raf, Ministry of Electronic Governance - Bulgaria, Taufik Adi Wicaksono and HO Gin Wang<\/li>\n<\/ul>\n\n<h3>1.1.0<\/h3>\n\n<p><em>[2022-05-17]<\/em><\/p>\n\n<ul>\n<li>PR #16 fixing issue #12: Improve performances of the schedule function by adding a $_GET parameter.<\/li>\n<\/ul>\n\n<h3>1.0.3<\/h3>\n\n<p><em>[2022-03-10]<\/em><\/p>\n\n<ul>\n<li>Required parameter $staticContainer should not follow optional parameters $settings (thanks @solracsf)<\/li>\n<\/ul>\n\n<h3>1.0.2<\/h3>\n\n<p><em>[2021-01-18]<\/em><\/p>\n\n<ul>\n<li>Catch some exceptions to avoid bugs if IPInfo encounters an error<\/li>\n<\/ul>\n\n<h3>1.0.1<\/h3>\n\n<p><em>[2020-10-14]<\/em><\/p>\n\n<ul>\n<li>Activated the pagination<\/li>\n<\/ul>\n\n<h3>1.0.0<\/h3>\n\n<p><em>[2020-10-13]<\/em><\/p>\n\n<ul>\n<li>Adapted the plugin for Matomo 4.0.0<\/li>\n<\/ul>\n\n<h2>Previous Changelogs<\/h2>\n\n<p><a href=\"CHANGELOG-v0.md\">v0.x<\/a><\/p>"},"download":"\/api\/2.0\/plugins\/IPtoCompany\/download\/1.2.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IPtoCompany\/changelog"},"consumer":{"license":null}},{"name":"IPv6Usage","displayName":"IPv6 Usage","owner":"halfdan","description":"Matomo (Piwik) Plugin to track whether visitors are using IPv4 or IPv6.","homepage":"http:\/\/github.com\/halfdan\/IPv6Usage","createdDateTime":"2013-10-04 16:17:04","donate":{"flattr":"https:\/\/flattr.com\/profile\/halfdan","bitcoin":null},"support":[],"isTheme":false,"keywords":["ipv4","ipv6"],"basePrice":0,"authors":[{"name":"Fabian Becker","email":"halfdan@xnorfz.de","homepage":"http:\/\/geekproject.eu"}],"repositoryUrl":"https:\/\/github.com\/halfdan\/IPv6Usage","lastUpdated":"2016-05-05 13:20:03","latestVersion":"0.8.1","numDownloads":18002,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"38","numContributors":"4","lastCommitDate":"2019-08-07 10:43:01"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.6.0","release":"2014-01-26 20:46:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":621,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/IPv6Usage\/commits\/0.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPv6Usage\/download\/0.6.0"},{"name":"0.6.1","release":"2014-03-13 21:42:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":626,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/IPv6Usage\/commits\/0.6.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPv6Usage\/download\/0.6.1"},{"name":"0.6.2","release":"2014-04-18 23:54:03","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3965,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/IPv6Usage\/commits\/0.6.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPv6Usage\/download\/0.6.2"},{"name":"0.7.0","release":"2015-03-12 13:00:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/IPv6Usage\/commits\/0.7.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPv6Usage\/download\/0.7.0"},{"name":"0.7.1","release":"2015-03-12 13:56:03","requires":{"piwik":">=2.12.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4094,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/IPv6Usage\/commits\/0.7.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPv6Usage\/download\/0.7.1"},{"name":"0.8.0","release":"2016-02-16 09:48:02","requires":{"piwik":">=2.12.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1406,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/IPv6Usage\/commits\/0.8.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/IPv6Usage\/download\/0.8.0"},{"name":"0.8.1","release":"2016-05-05 13:20:03","requires":{"piwik":">=2.12.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7284,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/halfdan\/IPv6Usage\/commits\/0.8.1","readmeHtml":{"description":"\n\n<p>This is a plugin for Matomo (Piwik) that generates reports about the IPv6 reach of your websites. It is written as a tracker plugin and directly hooks into the Matomo tracking call.<\/p>\n\n","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/IPv6Usage\/download\/0.8.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/IPv6Usage\/changelog"},"consumer":{"license":null}},{"name":"JsTrackerCustom","displayName":"Js Tracker Custom","owner":"matomo-org","description":"This plugin allows you to add custom JavaScript to Matomos tracking code.","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2018-07-18 13:54:04","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom","type":"url"}],"isTheme":false,"keywords":["tracker"],"basePrice":0,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom","lastUpdated":"2026-09-28 07:18:03","latestVersion":"5.0.4","numDownloads":49715,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/JsTrackerCustom.png","previews":[],"activity":{"numCommits":"136","numContributors":"35","lastCommitDate":"2026-10-21 04:34:59"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["development"],"promotions":{},"versions":[{"name":"0.1.0","release":"2018-07-18 13:54:04","requires":{"piwik":">=3.0.0,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/0.1.0"},{"name":"0.1.1","release":"2018-07-18 14:00:05","requires":{"piwik":">=3.0.0,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6257,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/0.1.1"},{"name":"4.0.0","release":"2020-07-29 12:20:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":256,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:34:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2956,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/4.0.1"},{"name":"4.0.2","release":"2022-08-01 07:32:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12627,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/4.0.2"},{"name":"5.0.0","release":"2023-05-08 02:04:07","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4459,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/5.0.0"},{"name":"5.0.1","release":"2024-04-22 06:40:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6508,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/5.0.1"},{"name":"5.0.2","release":"2025-01-20 07:48:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14657,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/JsTrackerCustom\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/5.0.2"},{"name":"5.0.3","release":"2026-08-17 05:18:41","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1161,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/JsTrackerCustom\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/5.0.3"},{"name":"6.0.0","release":"2026-08-24 06:00:33","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":80,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/JsTrackerCustom\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/6.0.0"},{"name":"6.0.1","release":"2026-09-28 07:14:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":43,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/JsTrackerCustom\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/6.0.1"},{"name":"5.0.4","release":"2026-09-28 07:18:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":699,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/JsTrackerCustom\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerCustom\/commits\/5.0.4","readmeHtml":{"description":"\n\n<p>This plugin allows you to extend the piwik.js with custom js code.<\/p>\n\n<p>Once you have activated the plugin, you can customise the tracking code in Administration &gt; Diagnostics &gt;  Custom Tracker JS.<\/p>\n\n<p>To be able to add custom JavaScript, the file <code>plugins\/JsTrackerCustom\/tracker.js<\/code> needs to be writable.<\/p>\n\n<p>NOTE: We recommend to use the <a href=\"https:\/\/plugins.matomo.org\/TagManager\">Matomo Tag Manager plugin<\/a> instead.<\/p>\n\n<p>Any questions, feature wishes or problems? <a href=\"https:\/\/www.innocraft.com\">Get in touch with us<\/a>, we are happy to help.<\/p>\n\n<h3>About InnoCraft<\/h3>\n\n<p>We at <a href=\"https:\/\/www.innocraft.com\">InnoCraft<\/a> are the creators of Piwik and know it better than anyone else. \nThis means all plugins are perfectly integrated into Piwik and come with outstanding features and quality to grow \nyour business. We help our clients get started, configure, monitor and make the most of their Piwik analytics service. \nWe also offer unique analytics products and services that help grow your business and meet the needs of medium and large \nbusinesses alike.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>5.0.4 - 2026-09-28<\/strong>\n* Added a note that the custom JavaScript is added to the global JavaScript tracker file and applies to all sites<\/p>\n\n<p><strong>5.0.3 - 2026-08-17<\/strong>\n* Added code to harden the js save action<\/p>\n\n<p><strong>5.0.2<\/strong>\n* Added missing license file<\/p>\n\n<p><strong>5.0.1<\/strong>\n* Added plugin category for Marketplace<\/p>\n\n<p><strong>5.0.0<\/strong>\n* Compatibility with Matomo 5<\/p>\n\n<p><strong>4.0.2<\/strong>\n* Added code to auto create empty tracker.js if folder is writable<\/p>"},"download":"\/api\/2.0\/plugins\/JsTrackerCustom\/download\/5.0.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/JsTrackerCustom\/changelog"},"consumer":{"license":null}},{"name":"JsTrackerForceAsync","displayName":"Js Tracker Force Async","owner":"matomo-org","description":"Forces the JavaScript Tracker to always load asynchronous when embedding the Tracking Code via HTTP API automatically in your website.","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2017-01-23 05:00:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/innocraft\/plugin-JsTrackerForceAsync\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/innocraft\/plugin-JsTrackerForceAsync","type":"url"}],"isTheme":false,"keywords":["tracker","javascript","async","a\/b testing","experiment"],"basePrice":0,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerForceAsync","lastUpdated":"2026-08-31 05:56:07","latestVersion":"6.0.0","numDownloads":32060,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/JsTrackerForceAsync.png","previews":[],"activity":{"numCommits":"16","numContributors":"5","lastCommitDate":"2026-10-21 06:42:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["development"],"promotions":{},"versions":[{"name":"3.0.0","release":"2017-01-23 05:00:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8301,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerForceAsync\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerForceAsync\/download\/3.0.0"},{"name":"4.0.0","release":"2020-07-30 04:16:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5616,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerForceAsync\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerForceAsync\/download\/4.0.0"},{"name":"5.0.0","release":"2023-05-08 02:04:10","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":922,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerForceAsync\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerForceAsync\/download\/5.0.0"},{"name":"5.0.1","release":"2024-04-22 06:44:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17113,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerForceAsync\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/JsTrackerForceAsync\/download\/5.0.1"},{"name":"6.0.0","release":"2026-08-31 05:56:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":108,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/innocraft\/plugin-JsTrackerForceAsync\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugin is especially useful in combination with our <a href=\"https:\/\/plugins.matomo.org\/AbTesting\">A\/B Testing<\/a> feature\nif you embed the tracking code directly in your website using the <code>SitesManager.getJavascriptTag<\/code> <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api\">HTTP API<\/a> method.<\/p>\n\n<p>When you use A\/B Testing and have at least one active experiment for your website, the JavaScript code will load \nsynchronously to prevent the content to flickr. If you still want to load the Matomo JavaScript Tracking code async,\nyou can install this plugin and it will make sure to always generate the async code.<\/p>\n\n<h3>About InnoCraft<\/h3>\n\n<p>We at <a href=\"https:\/\/www.innocraft.com\">InnoCraft<\/a> are the creators of Matomo and know it better than anyone else. This means all plugins are perfectly integrated into Matomo and come with outstanding features and quality to grow your business. We help our clients get started, configure, monitor and make the most of their Matomo analytics service. We also offer unique analytics products and services that help grow your business and meet the needs of small, medium and large businesses alike.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>6.0.0 Compatibility with Matomo 6<\/li>\n<li>5.0.1 Added plugin category for marketplace<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/JsTrackerForceAsync\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/JsTrackerForceAsync\/changelog"},"consumer":{"license":null}},{"name":"KafkaPush","displayName":"Kafka Push","owner":"bruery","description":"Pushes Raw Data to Kafka using RdKafka Libray for further processing.","homepage":null,"createdDateTime":"2016-11-03 05:16:03","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/bruery\/piwik-plugin-kafkapush\/wiki","type":"url"},{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/bruery\/piwik-plugin-kafkapush\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/disqus.com\/home\/channel\/thebruery\/discussion\/channel-thebruery\/bug_reporting\/","type":"url"},{"name":"Email","key":"email","value":"viktore.zara@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/disqus.com\/home\/channel\/thebruery\/discussion\/channel-thebruery\/bug_reporting\/","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/bruery\/piwik-plugin-kafkapush","type":"url"}],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"The Bruery","email":"viktore.zara@gmail.com","homepage":"https:\/\/github.com\/bruery"}],"repositoryUrl":"https:\/\/github.com\/bruery\/piwik-plugin-kafkapush","lastUpdated":"2016-11-03 05:16:03","latestVersion":"0.1.0","numDownloads":5470,"screenshots":["https:\/\/plugins.matomo.org\/KafkaPush\/images\/0.1.0\/kafkapush-screenshot-001.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"5","numContributors":"1","lastCommitDate":"2016-11-03 05:20:29"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2016-11-03 05:16:03","requires":{"piwik":">=2.16.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5470,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/KafkaPush\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/bruery\/piwik-plugin-kafkapush\/commits\/0.1.0","readmeHtml":{"description":"","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Check out the documentation on the bundles <a href=\"https:\/\/github.com\/bruery\/piwik-plugin-kafkapush\/wiki\">wiki page<\/a>.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Check out the documentation on the bundles <a href=\"https:\/\/github.com\/bruery\/piwik-plugin-kafkapush\/wiki\">wiki page<\/a>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>v1.0 - Initial version<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/KafkaPush\/download\/0.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/KafkaPush\/changelog"},"consumer":{"license":null}},{"name":"kDebug","displayName":"kDebug","owner":"XaviTorello","description":"Activate or deactivate DEBUG tracking mode with a simple click.","homepage":"http:\/\/xaviertorello.cat","createdDateTime":"2014-09-09 13:42:03","donate":{},"support":[],"isTheme":false,"keywords":["debug","tracker"],"basePrice":0,"authors":[{"name":"Xavier Torell\u00f3","email":"info@xaviertorello.cat","homepage":"http:\/\/xaviertorello.cat"}],"repositoryUrl":"https:\/\/github.com\/XaviTorello\/kDebug-piwik","lastUpdated":"2014-09-19 13:08:03","latestVersion":"0.1.2","numDownloads":8992,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"7","numContributors":"1","lastCommitDate":"2016-01-11 08:58:56"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-09-09 13:42:03","requires":{"piwik":">=2.4.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/XaviTorello\/kDebug-piwik\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/kDebug\/download\/0.1.0"},{"name":"0.1.1","release":"2014-09-09 14:06:03","requires":{"piwik":">=2.4.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":143,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/XaviTorello\/kDebug-piwik\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/kDebug\/download\/0.1.1"},{"name":"0.1.2","release":"2014-09-19 13:08:03","requires":{"piwik":">=2.4.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8840,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/XaviTorello\/kDebug-piwik\/commits\/0.1.4","readmeHtml":{"description":"\n\n<p>Activate or deactivate DEBUG tracking mode with a simple click.<\/p>\n\n<p><img src=\"http:\/\/xaviertorello.cat\/img\/projects\/kDebugEN.png\" alt=\"kDebugEN.png\" \/><\/p>\n\n<p>kDebug is a simple plugin for Matomo (Piwik) to enable \/ disable DEBUG mode for tracking requests with a simple click.<\/p>\n\n<p>By default, it's needed to modify manually the Matomos config.ini file.<\/p>\n\n<p>With this plugin just navigate to \"Settings &gt; Debug\", and click on the toggle button to change the status of DEBUG mode.<\/p>\n\n<p><a href=\"http:\/\/xaviertorello.cat\/#portfolio\">More information<\/a><\/p>\n\n","faq":"<p><strong>What exactly is included in this plugin?<\/strong><\/p>\n\n<ul>\n<li>A simple and quick method to enable\/disable DEBUG mode for tracking requests<\/li>\n<\/ul>","documentation":"","changelog":"<p>0.1.0 First version. Toggle button to activate\/deactivate DEBUG mode<\/p>"},"download":"\/api\/2.0\/plugins\/kDebug\/download\/0.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/kDebug\/changelog"},"consumer":{"license":null}},{"name":"KPIWidgets","displayName":"KPIWidgets","owner":"openmost","description":"Single-number KPI widgets for your dashboards, each with its evolution against the previous period.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/kpiwidgets","createdDateTime":"2020-04-21 19:32:04","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/KPIWidgets\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/KPIWidgets","type":"url"}],"isTheme":false,"keywords":["users","pages","visitors","KPI","Visits","Sessions","KpiWidgets"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/KPIWidgets","lastUpdated":"2026-10-21 21:20:23","latestVersion":"5.4.0","numDownloads":40843,"screenshots":["https:\/\/plugins.matomo.org\/KPIWidgets\/images\/5.4.0\/KPI_dashboard_with_evolution_against_previous_period.png","https:\/\/plugins.matomo.org\/KPIWidgets\/images\/5.4.0\/KPI_menu_acquisition_with_AI_assistants.png","https:\/\/plugins.matomo.org\/KPIWidgets\/images\/5.4.0\/Pick_KPI_widgets_with_live_preview.png"],"coverImage":"https:\/\/plugins.matomo.org\/KPIWidgets\/images\/5.4.0\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/M4skkqif2lY","id":"M4skkqif2lY"}],"activity":{"numCommits":"28","numContributors":"2","lastCommitDate":"2026-10-21 21:19:20"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"0.1.1","release":"2020-04-21 19:32:04","requires":{"piwik":">=3.13.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/0.1.1"},{"name":"0.1.2","release":"2020-04-21 19:58:04","requires":{"piwik":">=3.13.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/0.1.2"},{"name":"1.0.0","release":"2020-04-21 20:08:03","requires":{"piwik":">=3.13.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.0.0"},{"name":"1.0.1","release":"2020-04-21 20:38:04","requires":{"piwik":">=3.13.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.0.1"},{"name":"1.0.2","release":"2020-04-21 20:48:04","requires":{"piwik":">=3.13.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.0.2"},{"name":"1.0.3","release":"2020-04-21 21:04:05","requires":{"piwik":">=3.13.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":24,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.0.3"},{"name":"1.0.4","release":"2020-04-23 10:40:06","requires":{"piwik":">=3.13.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":870,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.0.4"},{"name":"1.1.0","release":"2020-09-01 14:10:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":213,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.1.0"},{"name":"1.1.1","release":"2020-11-21 12:40:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3746,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/1.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.1.1"},{"name":"1.0.5","release":"2020-11-21 12:42:03","requires":{"piwik":">=3.13.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2680,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/1.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.0.5"},{"name":"1.1.3","release":"2022-11-03 14:52:07","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1179,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/1.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.1.3"},{"name":"1.1.4","release":"2023-03-30 09:44:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/1.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.1.4"},{"name":"1.1.5","release":"2023-03-30 09:50:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/1.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.1.5"},{"name":"1.1.6","release":"2023-03-30 10:08:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4617,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/1.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/1.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/1.1.6"},{"name":"5.0.0","release":"2023-05-05 13:06:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3837,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/5.0.0"},{"name":"5.0.2","release":"2024-01-26 14:40:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1361,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/5.0.2"},{"name":"4.1.9","release":"2024-01-26 14:40:09","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":841,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/4.1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/4.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/4.1.9"},{"name":"5.0.3","release":"2024-03-05 18:04:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3045,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/5.0.3"},{"name":"4.1.10","release":"2024-03-05 18:04:08","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4864,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/4.1.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/4.1.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/4.1.10"},{"name":"5.0.4","release":"2024-06-27 12:32:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5455,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/5.0.4"},{"name":"5.1.0","release":"2025-11-21 16:28:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3244,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/5.1.0"},{"name":"5.2.0","release":"2026-05-06 20:46:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4264,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/5.2.0"},{"name":"6.0.0","release":"2026-09-15 17:20:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":53,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/6.0.0"},{"name":"6.1.0","release":"2026-10-14 14:32:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/6.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/6.1.0"},{"name":"5.3.0","release":"2026-10-14 15:28:19","requires":{"matomo":">=5.13.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":210,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/5.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/5.3.0"},{"name":"5.4.0","release":"2026-10-21 21:20:23","requires":{"matomo":">=5.13.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":283,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/KPIWidgets\/5.4.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/KPIWidgets\/commits\/5.4.0","readmeHtml":{"description":"\n\n<p>Single-number KPI widgets for your Matomo dashboards, each with its evolution against the previous period.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>One widget per KPI<\/strong>: the value of the selected period, formatted like Matomo (numbers, percentages, durations, money), with an evolution badge comparing it with the previous period. For metrics where lower is better, such as the bounce rate, a decrease is shown as positive.<\/li>\n<li><strong>Follows the dashboard context<\/strong>: site, period, date and the selected segment.<\/li>\n<li><strong>Available widgets<\/strong>, grouped under the KPI category of the widget picker:\n\n<ul>\n<li><strong>Traffic<\/strong>: Visits, Unique visitors, Users, Page views, Unique page views, Returning users, Returning visitors, Unique returning visitors, New visits, Actions, AI agent visits and Human visits (both need the AIAgents plugin).<\/li>\n<li><strong>Acquisition<\/strong>: Visits from search engines, AI assistants, direct entry, websites, social networks and campaigns, each with a matching \"Share of visits\" widget. The AI assistants widgets appear when your Matomo version tracks AI assistants as a referrer type.<\/li>\n<li><strong>Behavior<\/strong>: Bounce rate, Actions per visit, Average time on site, Max actions in one visit, Downloads, Unique downloads, Outlinks, Unique outlinks, Internal searches, Search keywords and Average page load time (needs the PagePerformance plugin).<\/li>\n<li><strong>Goals<\/strong>: Conversions, Conversion rate, Revenue and Visits with conversions for all goals, plus Conversions, Conversion rate and Revenue widgets for each goal of the site.<\/li>\n<li><strong>Ecommerce<\/strong> (sites with ecommerce enabled): Orders, Ecommerce revenue, Average order value, Ecommerce conversion rate, Products sold, Visits with an order, Abandoned carts, Abandoned cart revenue and Products left in carts. With the Ecommerce Enhanced plugin: Purchasers, First-time purchasers, Average revenue per user (ARPU) and Average revenue per paying user (ARPPU). With Ecommerce Enhanced Premium: Refunded revenue and Net revenue. Abandoned carts, their revenue, products left in carts and refunded revenue are metrics where lower is better.<\/li>\n<\/ul><\/li>\n<li><strong>Hidden when unavailable<\/strong>: widgets whose source plugin or metric is missing on your Matomo are not listed, and Ecommerce widgets are only listed for sites with ecommerce enabled. A widget kept on a dashboard after its source plugin was deactivated shows a dash instead of a value.<\/li>\n<li><strong>Fast dashboards<\/strong>: all widgets of a dashboard share the same API calls, and values are cached through the Matomo cache (5 minutes for running periods, 1 hour for closed ones). Access is checked on every request, cached values included.<\/li>\n<li>Light and dark themes, translated into 12 languages.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.13.0 or later, below 6.0.0<\/li>\n<li>Optional: AIAgents for the AI agent and human visits widgets, PagePerformance for the page load time widget, Goals for the goal widgets, Ecommerce for the Ecommerce widgets, <a href=\"https:\/\/openmost.com\/matomo\/extensions\/ecommerce-enhanced?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=extensions&amp;utm_content=kpiwidgets\">Ecommerce Enhanced<\/a> for the purchasers and ARPU widgets and Ecommerce Enhanced Premium for the refund widgets<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install KPI Widgets from the Marketplace (Administration &gt; Platform &gt; Marketplace) and activate it.<\/li>\n<li>Open a dashboard, open the \"Dashboard\" menu and pick widgets from the KPI category (Traffic, Acquisition, Behavior, Goals, Ecommerce).<\/li>\n<\/ol>\n\n<p>There are no settings. The plugin is available to every user who can view the site.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<p>Widgets read the reports already archived in your Matomo. The plugin sends no data to third parties.<\/p>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We also build <a href=\"https:\/\/openmost.com\/matomo\/services\/dashboard-build?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=kpiwidgets\">custom Matomo dashboards and KPI reports<\/a> for executives, marketing teams and clients, with KPIs defined with you and maintained over time.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How do I add a KPI widget to a dashboard?<\/strong><\/p>\n\n<p>Open a dashboard, open the \"Dashboard\" menu, choose the KPI category, then a subcategory (Traffic, Acquisition, Behavior, Goals or Ecommerce) and click the widget.<\/p>\n\n<p><strong>Why can't I find a widget, such as AI agent visits or page load time?<\/strong><\/p>\n\n<p>Widgets are hidden when their source is missing: AI agent and human visits need the AIAgents plugin, average page load time needs the PagePerformance plugin, the AI assistants widgets need a Matomo version that tracks AI assistants as a referrer type, and the Ecommerce widgets are only listed for sites with ecommerce enabled. Purchasers, first-time purchasers, ARPU and ARPPU need the Ecommerce Enhanced plugin, refunded revenue and net revenue need Ecommerce Enhanced Premium.<\/p>\n\n<p><strong>How is the evolution calculated?<\/strong><\/p>\n\n<p>The value of the selected period is compared with the previous period of the same length. For metrics where lower is better, such as the bounce rate, a decrease is shown as positive.<\/p>\n\n<p><strong>Do the widgets follow segments?<\/strong><\/p>\n\n<p>Yes, the segment selected on the dashboard applies to every KPI widget.<\/p>\n\n<p><strong>Why does a value take a few minutes to update?<\/strong><\/p>\n\n<p>Values are cached for 5 minutes on periods still running and for 1 hour on closed periods, so dashboards with many widgets stay fast.<\/p>\n\n<p><strong>Is the plugin available to all users?<\/strong><\/p>\n\n<p>Yes. Any user who can view a site can add KPI widgets for it.<\/p>\n\n<p><strong>Which versions of Matomo are supported?<\/strong><\/p>\n\n<p>Version 5.3 and later need Matomo 5.13.0 or later. Use the 6.x versions for Matomo 6.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>KPI Widgets adds single-number widgets to the Matomo dashboard. Each widget shows the value of the selected period and an evolution badge against the previous period. Widgets follow the site, period, date and segment of the dashboard.<\/p>\n\n<p>Add them from the \"Dashboard\" menu, in the KPI category. Widgets are grouped under four subcategories.<\/p>\n\n<h3>Traffic<\/h3>\n\n<ul>\n<li>Visits, unique visitors, users<\/li>\n<li>New visits<\/li>\n<li>Returning visitors, unique returning visitors, returning users<\/li>\n<li>Actions, page views, unique page views<\/li>\n<li>AI agent visits and human visits (requires the AIAgents plugin)<\/li>\n<\/ul>\n\n<h3>Acquisition<\/h3>\n\n<ul>\n<li>Visits from search engines, AI assistants, direct entry, websites, social networks and campaigns<\/li>\n<li>Share of visits for each of these channels<\/li>\n<li>The AI assistants widgets appear when your Matomo version tracks AI assistants as a referrer type<\/li>\n<\/ul>\n\n<h3>Behavior<\/h3>\n\n<ul>\n<li>Bounce rate, actions per visit, max actions in one visit<\/li>\n<li>Average time on site<\/li>\n<li>Average page load time (requires the PagePerformance plugin)<\/li>\n<li>Downloads, unique downloads, outlinks, unique outlinks<\/li>\n<li>Internal searches, search keywords<\/li>\n<\/ul>\n\n<h3>Goals<\/h3>\n\n<ul>\n<li>Conversions, conversion rate and revenue, for all goals and for each goal of the site<\/li>\n<li>Visits with conversions<\/li>\n<\/ul>\n\n<p>Widgets whose source plugin or metric is not available are not listed. Values come from the Matomo API (<code>API.get<\/code> and <code>Goals.get<\/code>), shared by every widget of the dashboard and cached for 5 minutes on running periods, 1 hour on closed periods.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.4.0<\/h3>\n\n<ul>\n<li>New Ecommerce subcategory, listed in the KPI menu after Goals on sites with ecommerce enabled: Orders, Ecommerce revenue, Average order value, Ecommerce conversion rate, Products sold, Visits with an order, Abandoned carts, Abandoned cart revenue and Products left in carts<\/li>\n<li>With the Ecommerce Enhanced plugin: Purchasers, First-time purchasers, ARPU and ARPPU widgets, plus Refunded revenue and Net revenue with Ecommerce Enhanced Premium<\/li>\n<li>Abandoned carts, abandoned cart revenue, products left in carts and refunded revenue count a decrease as positive<\/li>\n<li>A widget whose source plugin was deactivated shows a dash instead of a value, cached values of that plugin are no longer served<\/li>\n<\/ul>\n\n<h3>v5.3.0<\/h3>\n\n<ul>\n<li>New Acquisition subcategory: visits and share of visits from search engines, AI assistants, direct entry, websites, social networks and campaigns<\/li>\n<li>New widgets: New visits, Actions, Visits with conversions, AI agent visits and Human visits (AIAgents plugin)<\/li>\n<li>Average generation time widget now shows the average page load time (PagePerformance), existing dashboards keep working<\/li>\n<li>Widgets are hidden when their source plugin or metric is not available on the Matomo install<\/li>\n<li>Fix Conversions and Max actions widgets showing the wrong label<\/li>\n<li>KPI values are cached across dashboard widgets through the Matomo cache (5 min for running periods, 1 h for closed ones)<\/li>\n<li>Widgets now follow the segment selected on the dashboard<\/li>\n<li>Widgets redesigned with the core Matomo metric value and evolution badge components<\/li>\n<li>Translated into 12 languages<\/li>\n<li>Plugin homepage moved to openmost.com<\/li>\n<li>Requires Matomo 5.13.0 or later (<code>&gt;=5.13.0,&lt;6.0.0-b1<\/code>)<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.2.0<\/h3>\n\n<ul>\n<li>Add dark mode styles for evolution indicator (positive \/ negative \/ neutral pills)<\/li>\n<li>Update support email and author homepage to openmost.com<\/li>\n<li>Refresh marketplace screenshots<\/li>\n<li>Relax Matomo minimum version requirement (<code>&gt;=5.0.0<\/code>)<\/li>\n<\/ul>\n\n<h3>v5.1.0<\/h3>\n\n<ul>\n<li>Add goal-specific widgets (Conversions, Conversion Rate, Revenue per goal)<\/li>\n<li>Add evolution indicator with period comparison (colored pill: green\/red\/grey)<\/li>\n<li>Add subcategories for better widget organization (Traffic, Engagement, Goals)<\/li>\n<li>New MetricsService with in-memory API cache (-90% API calls)<\/li>\n<li>Single API call shared across all widgets<\/li>\n<li>Optional evolution calculation (can be disabled globally or per widget)<\/li>\n<li>Major refactoring with abstract Base class<\/li>\n<li>Remove code duplication between Controller and Widgets<\/li>\n<li>Add strict types declarations<\/li>\n<li>Use PHP 8 match expressions<\/li>\n<li>Centralized metrics logic in Services\/MetricsService.php<\/li>\n<li>New widget design with evolution pill below value<\/li>\n<li>Pastel background colors for evolution indicator<\/li>\n<li>Dark mode support<\/li>\n<\/ul>\n\n<h3>v5.0.4<\/h3>\n\n<ul>\n<li>update: marketplace category and cover<\/li>\n<\/ul>\n\n<h3>v5.0.3<\/h3>\n\n<ul>\n<li>update: Documentation<\/li>\n<\/ul>\n\n<h3>v5.0.2<\/h3>\n\n<ul>\n<li>update: Format numbers metrics<\/li>\n<\/ul>\n\n<h3>v5.0.1<\/h3>\n\n<ul>\n<li>update: plugin.json<\/li>\n<\/ul>\n\n<h3>v5.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 5.x<\/li>\n<li>Starting using semver for versioning<\/li>\n<\/ul>\n\n<h3>v1.1.6<\/h3>\n\n<ul>\n<li>update: Format time string to real time<\/li>\n<\/ul>\n\n<h3>v1.1.5<\/h3>\n\n<ul>\n<li>update: Remove non-used dependecies<\/li>\n<\/ul>\n\n<h3>v1.1.4<\/h3>\n\n<ul>\n<li>Fix : stdClass::$avg_time_generation error<\/li>\n<\/ul>\n\n<h3>v1.1.3<\/h3>\n\n<ul>\n<li>Add '-' when no data to display<\/li>\n<li>Set min height to widget body<\/li>\n<\/ul>\n\n<h3>v1.1.2<\/h3>\n\n<ul>\n<li>fix: Widget height<\/li>\n<\/ul>\n\n<h3>v1.1.1<\/h3>\n\n<ul>\n<li>update: Add common structure to widget<\/li>\n<\/ul>\n\n<h3>v1.1.0<\/h3>\n\n<ul>\n<li>Support for Matomo 4.x<\/li>\n<li>Fix 1 translation<\/li>\n<\/ul>\n\n<h3>v1.0.4<\/h3>\n\n<ul>\n<li>update plugin.json informations<\/li>\n<\/ul>\n\n<h3>v1.0.3<\/h3>\n\n<ul>\n<li>fix: remove old files<\/li>\n<\/ul>\n\n<h3>v1.0.2<\/h3>\n\n<ul>\n<li>update: CSS class name<\/li>\n<\/ul>\n\n<h3>v1.0.1<\/h3>\n\n<ul>\n<li>Fixing issue from root folder name<\/li>\n<\/ul>\n\n<h3>v1.0.0<\/h3>\n\n<ul>\n<li>Create many widgets<\/li>\n<li>Add translation to french (fr)<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/KPIWidgets\/download\/5.4.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/KPIWidgets\/changelog"},"consumer":{"license":null}},{"name":"LanguageToogle","displayName":"Language Toogle","owner":"Findus23","description":"Quickly change the language of Matomo.","homepage":"https:\/\/lw1.at","createdDateTime":"2018-05-06 10:14:03","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.piwik.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle","type":"url"}],"isTheme":false,"keywords":["language"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle","lastUpdated":"2023-08-29 19:52:02","latestVersion":"0.4.0","numDownloads":42141,"screenshots":["https:\/\/plugins.matomo.org\/LanguageToogle\/images\/0.4.0\/Settings.png","https:\/\/plugins.matomo.org\/LanguageToogle\/images\/0.4.0\/top_menu.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"38","numContributors":"10","lastCommitDate":"2024-08-17 11:09:43"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2018-05-06 10:14:04","requires":{"piwik":">=3.4.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.1.0"},{"name":"0.1.3","release":"2018-05-06 10:56:04","requires":{"piwik":">=3.4.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.1.3"},{"name":"0.1.4","release":"2018-05-06 11:12:03","requires":{"piwik":">=3.4.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":56,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.1.4"},{"name":"0.2.0","release":"2018-05-07 10:10:04","requires":{"piwik":">=3.5.0-rc,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12420,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.2.0"},{"name":"0.3.0","release":"2020-08-21 09:50:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":190,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.3.0"},{"name":"0.3.1","release":"2020-10-10 16:50:04","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":990,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.3.1"},{"name":"0.3.2","release":"2021-09-04 19:42:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":484,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.3.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.3.2"},{"name":"0.3.3","release":"2021-11-19 18:44:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":739,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.3.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.3.3"},{"name":"0.3.4","release":"2022-02-20 22:14:04","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.3.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.3.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.3.4"},{"name":"0.3.5","release":"2022-02-20 22:16:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3831,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.3.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.3.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.3.5"},{"name":"0.3.6","release":"2023-08-29 19:50:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8469,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.3.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.3.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.3.6"},{"name":"0.4.0","release":"2023-08-29 19:52:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14946,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LanguageToogle\/0.4.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-LanguageToogle\/commits\/0.4.0","readmeHtml":{"description":"\n\n<p>This plugin allows every user to select a list of languages that then can be quickly switched to via the top menu.<\/p>\n\n<p>Ideal if you want to show the UI to or quickly create screenhost for other people.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.4.0<\/h3>\n\n<p>Matomo 5 compatibility<\/p>\n\n<h3>0.3.6<\/h3>\n\n<p>hide setting from non-superusers<\/p>\n\n<h3>0.3.5<\/h3>\n\n<p>fix typo in 0.3.4<\/p>\n\n<h3>0.3.4<\/h3>\n\n<p>add workaround for bug in Matomo 4.7.0 and 4.7.1<\/p>\n\n<h3>0.3.3<\/h3>\n\n<p>add Italian, Japanese, Portuguese, Portuguese (Brazil) and Ukrainian translations<\/p>\n\n<h3>0.3.2<\/h3>\n\n<p>Add Bulgarian, French, German, Greek, Turkish translations (thanks to the contributors in the Matomo weblate project)<\/p>\n\n<h3>0.3.1 (Matomo 4+ only)<\/h3>\n\n<ul>\n<li>use local names for languages<\/li>\n<li>move menu entry right of \"Tag Manager\"<\/li>\n<\/ul>\n\n<h3>0.3.0<\/h3>\n\n<ul>\n<li>Matomo 4 compatibility<\/li>\n<\/ul>\n\n<h3>0.2.0<\/h3>\n\n<ul>\n<li>replace multiselect with new multituple (needs Matomo 3.5.0)<\/li>\n<\/ul>\n\n<h3>0.1.4<\/h3>\n\n<ul>\n<li>performance improvements<\/li>\n<\/ul>\n\n<h3>0.1.3<\/h3>\n\n<ul>\n<li>update version in plugin.json<\/li>\n<\/ul>\n\n<p>0.1.2<\/p>\n\n<ul>\n<li>remove placeholder docs<\/li>\n<\/ul>\n\n<p>0.1.1<\/p>\n\n<ul>\n<li>Submit to marketplace<\/li>\n<\/ul>\n\n<p>0.1.0<\/p>\n\n<ul>\n<li>Initial Release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/LanguageToogle\/download\/0.4.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LanguageToogle\/changelog"},"consumer":{"license":null}},{"name":"LdapConnection","displayName":"Ldap Connection","owner":"ThaDafinser","description":"Plugin to make a LDAP connection, which can be used by various LDAP plugins.","homepage":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapConnection","createdDateTime":"2014-08-06 07:50:04","donate":{},"support":[],"isTheme":false,"keywords":["ldap","ThaDafinser","connection","ActiveDirectory","AD"],"basePrice":0,"authors":[{"name":"Martin Keckeis","email":null,"homepage":"https:\/\/github.com\/thadafinser"}],"repositoryUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapConnection","lastUpdated":"2017-03-08 12:00:08","latestVersion":"3.0.0","numDownloads":12864,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"14","numContributors":"1","lastCommitDate":"2021-01-22 06:49:35"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-08-06 07:50:08","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":224,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapConnection\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapConnection\/download\/0.1.0"},{"name":"0.2.0","release":"2014-08-25 09:08:09","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapConnection\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapConnection\/download\/0.2.0"},{"name":"0.3.0","release":"2014-08-26 06:00:09","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1133,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapConnection\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapConnection\/download\/0.3.0"},{"name":"0.3.1","release":"2015-01-29 07:20:09","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3636,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapConnection\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapConnection\/download\/0.3.1"},{"name":"0.4.1","release":"2016-09-23 06:46:06","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1709,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/LdapConnection\/0.4.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapConnection\/commits\/v0.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapConnection\/download\/0.4.1"},{"name":"3.0.0","release":"2017-03-08 12:00:08","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6135,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/LdapConnection\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapConnection\/commits\/v3.0.0","readmeHtml":{"description":"\n\n<p>Configurable piwik plugin to create an LDAP connection, which can be reused by other plugins.\nIs uses the ZF2 Ldap component: http:\/\/framework.zend.com\/manual\/2.3\/en\/index.html#zend-ldap<\/p>\n\n<p>Currently used by https:\/\/github.com\/ThaDafinser\/LdapVisitorInfo<\/p>\n\n","faq":"<p><strong>Why is PIWIK 2.5 required?<\/strong><\/p>\n\n<p>Because the configuration (to be explicit accountFilterFormat) is destroyed in the previous version\nSee the ticket here: https:\/\/github.com\/piwik\/piwik\/issues\/5890<\/p>\n\n<p><strong>What does this plugin do?<\/strong><\/p>\n\n<p>It creates based on your configuration a connection to LDAP. Not more and not less :-)<\/p>\n\n<p><strong>How can i use this LDAP connection in another plugin?<\/strong><\/p>\n\n<p>This is an example to retrieve the connection.\nFor documentation please see http:\/\/framework.zend.com\/manual\/2.3\/en\/index.html#zend-ldap<\/p>\n\n<pre><code>namespace Matomo (Piwik)\\Plugins\\YourPlugin;\n\nuse Matomo\\Plugin;\nuse Matomo\\Plugins\\LdapConnection\\API as APILdapConnection;\nuse Zend\\Ldap\\Ldap;\n\nclass YourPlugin extends Plugin\n{\n    private function doSomething()\n    {\n        \/* @var $ldap \\Zend\\Ldap\\Ldap *\/\n        $ldap = APILdapConnection::getInstance()-&gt;getConnection();\n        $ldap-&gt;connect();\n\n        $filter = sprintf('(&amp;(objectclass=user)(samAccountName=%s))', $visitorUsername);\n        $collection = $ldap-&gt;search($filter, null, Ldap::SEARCH_SCOPE_SUB, ['displayname']);\n\n        if ($collection-&gt;count() &gt;= 1) {\n            $result = $collection-&gt;getFirst();\n            \/\/do something with the result...\n        }\n    }\n}\n<\/code><\/pre>","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/LdapConnection\/download\/3.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LdapConnection\/changelog"},"consumer":{"license":null}},{"name":"LdapConnectionPlesk","displayName":"Ldap Connection Plesk","owner":"plesk","description":"Plugin to make a LDAP connection, which can be used by various LDAP plugins.","homepage":"https:\/\/github.com\/plesk\/Piwik-LdapConnection","createdDateTime":"2021-01-22 07:30:04","donate":{},"support":[],"isTheme":false,"keywords":["ldap","ThaDafinser","connection","ActiveDirectory","AD","Plesk"],"basePrice":0,"authors":[{"name":"Plesk","email":null,"homepage":"https:\/\/www.plesk.com"},{"name":"Martin Keckeis","email":null,"homepage":"https:\/\/github.com\/thadafinser"}],"repositoryUrl":"https:\/\/github.com\/plesk\/Piwik-LdapConnection","lastUpdated":"2021-01-25 04:50:04","latestVersion":"4.0.3","numDownloads":3455,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"25","numContributors":"2","lastCommitDate":"2021-01-25 04:55:33"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"4.0.0","release":"2021-01-22 07:30:04","requires":{"piwik":">=3.0.0-b1,<5.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/LdapConnectionPlesk\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/Piwik-LdapConnection\/commits\/v4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapConnectionPlesk\/download\/4.0.0"},{"name":"4.0.1","release":"2021-01-22 10:36:07","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/LdapConnectionPlesk\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/Piwik-LdapConnection\/commits\/v4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapConnectionPlesk\/download\/4.0.1"},{"name":"4.0.2","release":"2021-01-22 13:16:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":35,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/LdapConnectionPlesk\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/Piwik-LdapConnection\/commits\/v4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapConnectionPlesk\/download\/4.0.2"},{"name":"4.0.3","release":"2021-01-25 04:50:04","requires":{"matomo":">=3.0.0-b1,<5.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3397,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/LdapConnectionPlesk\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/Piwik-LdapConnection\/commits\/v4.0.3","readmeHtml":{"description":"\n\n<p>Configurable Matomo plugin to create an LDAP connection, which can be reused by other plugins.\nIt uses the ZF2 Ldap component: http:\/\/framework.zend.com\/manual\/2.3\/en\/index.html#zend-ldap<\/p>\n\n<p>Currently used by https:\/\/github.com\/plesk\/Piwik-LdapVisitorInfo<\/p>\n\n","faq":"<p><strong>What does this plugin do?<\/strong><\/p>\n\n<p>It creates based on your configuration a connection to LDAP. Not more and not less :-)<\/p>\n\n<p><strong>How can i use this LDAP connection in another plugin?<\/strong><\/p>\n\n<p>This is an example to retrieve the connection.\nFor documentation please see http:\/\/framework.zend.com\/manual\/2.3\/en\/index.html#zend-ldap<\/p>\n\n<pre><code>namespace Matomo (Piwik)\\Plugins\\YourPlugin;\n\nuse Matomo\\Plugin;\nuse Matomo\\Plugins\\LdapConnectionPlesk\\API as APILdapConnectionPlesk;\nuse Zend\\Ldap\\Ldap;\n\nclass YourPlugin extends Plugin\n{\n    private function doSomething()\n    {\n        \/* @var $ldap \\Zend\\Ldap\\Ldap *\/\n        $ldap = APILdapConnectionPlesk::getInstance()-&gt;getConnection();\n        $ldap-&gt;connect();\n\n        $filter = sprintf('(&amp;(objectclass=user)(samAccountName=%s))', $visitorUsername);\n        $collection = $ldap-&gt;search($filter, null, Ldap::SEARCH_SCOPE_SUB, ['displayname']);\n\n        if ($collection-&gt;count() &gt;= 1) {\n            $result = $collection-&gt;getFirst();\n            \/\/do something with the result...\n        }\n    }\n}\n<\/code><\/pre>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>4.0.3<\/h2>\n\n<ul>\n<li>BUGFIX Unable to autoload plugin classes in Matomo 3<\/li>\n<\/ul>\n\n<h2>4.0.2<\/h2>\n\n<ul>\n<li>BUGFIX Unable to autoload plugin classes<\/li>\n<\/ul>\n\n<h2>4.0.0<\/h2>\n\n<ul>\n<li>MINOR Matomo 4 support<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/LdapConnectionPlesk\/download\/4.0.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LdapConnectionPlesk\/changelog"},"consumer":{"license":null}},{"name":"LdapVisitorInfo","displayName":"Ldap Visitor Info","owner":"ThaDafinser","description":"Matomo (Piwik) plugin to get visitor details (thumbnail, description) from LDAP.","homepage":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo","createdDateTime":"2014-08-06 07:50:42","donate":{},"support":[],"isTheme":false,"keywords":["ldap","Intranet","ThaDafinser","Visitor","thumbnail"],"basePrice":0,"authors":[{"name":"Martin Keckeis","email":null,"homepage":"https:\/\/github.com\/thadafinser"}],"repositoryUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo","lastUpdated":"2017-03-14 09:50:03","latestVersion":"3.0.1","numDownloads":13399,"screenshots":["https:\/\/plugins.matomo.org\/LdapVisitorInfo\/images\/3.0.1\/visitorInfo.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"21","numContributors":"1","lastCommitDate":"2021-01-22 10:08:44"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-08-06 07:50:42","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":186,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfo\/download\/0.1.0"},{"name":"0.2.0","release":"2014-08-25 09:06:04","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":88,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfo\/download\/0.2.0"},{"name":"0.3.0","release":"2014-09-01 06:28:05","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1101,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfo\/download\/0.3.0"},{"name":"0.3.1","release":"2015-01-29 07:20:14","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":246,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfo\/download\/0.3.1"},{"name":"1.0.0","release":"2015-02-23 09:30:03","requires":{"piwik":">=2.5.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3707,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfo\/download\/1.0.0"},{"name":"1.1.1","release":"2016-09-23 06:44:03","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1618,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/LdapVisitorInfo\/1.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo\/commits\/v1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfo\/download\/1.1.1"},{"name":"3.0.0","release":"2017-03-08 12:00:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":60,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/LdapVisitorInfo\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo\/commits\/v3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfo\/download\/3.0.0"},{"name":"3.0.1","release":"2017-03-14 09:50:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6393,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/LdapVisitorInfo\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-LdapVisitorInfo\/commits\/v3.0.1","readmeHtml":{"description":"\n\n<p>Configurable piwik plugin to view a visitor thumbnail and description live from LDAP.<\/p>\n\n<p><strong><em>This plugin requires https:\/\/github.com\/ThaDafinser\/LdapConnection to work!<\/em><\/strong><\/p>\n\n","faq":"<p><strong>Why is PIWIK 2.5 required?<\/strong><\/p>\n\n<p>Because the configuration (to be explicit accountFilterFormat) is destroyed in the previous version\nSee the ticket here: https:\/\/github.com\/piwik\/piwik\/issues\/5890<\/p>\n\n<p><strong>What does this plugin do?<\/strong><\/p>\n\n<p>It displays live a thumbnail and a description in the visitor detail page from LDAP<\/p>\n\n<p><strong>How to tell Matomo (Piwik) which user is currently using your website?<\/strong><\/p>\n\n<p>You need so track a custom user (username, mail, ...) visitor variable, so this plugin know which user shall be fetched from LDAP.\nPlease see the official documentation: http:\/\/piwik.org\/docs\/custom-variables\/ or http:\/\/developer.piwik.org\/api-reference\/tracking-javascript#custom-variables<\/p>\n\n<p>Example:\n<code>_paq.push([\"setCustomVariable\", 1, \"username\", \"&lt;?php echo $usenamer; ?&gt;\", \"visit\"]);<\/code><\/p>\n\n<p><strong>NEW: Use the userId from Matomo itself<\/strong><\/p>\n\n<p>Now you can use the piwik UserId: http:\/\/piwik.org\/docs\/user-id\/\nJust change the plugin settings to use the piwik UserId instead of a custom variable!<\/p>","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfo\/download\/3.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LdapVisitorInfo\/changelog"},"consumer":{"license":null}},{"name":"LdapVisitorInfoPlesk","displayName":"Ldap Visitor Info Plesk","owner":"plesk","description":"Matomo (Piwik) plugin to get visitor details (thumbnail, description) from LDAP.","homepage":"https:\/\/github.com\/plesk\/Piwik-LdapVisitorInfo","createdDateTime":"2021-01-22 10:32:03","donate":{},"support":[],"isTheme":false,"keywords":["ldap","Intranet","ThaDafinser","Visitor","thumbnail","Plesk"],"basePrice":0,"authors":[{"name":"Plesk","email":null,"homepage":"https:\/\/www.plesk.com"},{"name":"Martin Keckeis","email":null,"homepage":"https:\/\/github.com\/thadafinser"}],"repositoryUrl":"https:\/\/github.com\/plesk\/Piwik-LdapVisitorInfo","lastUpdated":"2021-01-22 13:20:03","latestVersion":"4.0.1","numDownloads":3019,"screenshots":["https:\/\/plugins.matomo.org\/LdapVisitorInfoPlesk\/images\/4.0.1\/visitorInfo.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"24","numContributors":"2","lastCommitDate":"2021-01-22 13:19:57"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"4.0.0","release":"2021-01-22 10:32:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/LdapVisitorInfoPlesk\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/Piwik-LdapVisitorInfo\/commits\/v4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LdapVisitorInfoPlesk\/download\/4.0.0"},{"name":"4.0.1","release":"2021-01-22 13:20:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0,<8.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3012,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/LdapVisitorInfoPlesk\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/Piwik-LdapVisitorInfo\/commits\/v4.0.1","readmeHtml":{"description":"\n\n<p>Configurable Matomo plugin to view a visitor thumbnail and description live from LDAP.<\/p>\n\n<p><strong><em>This plugin requires https:\/\/github.com\/plesk\/Piwik-LdapConnection to work!<\/em><\/strong><\/p>\n\n","faq":"<h3>What does this plugin do?<\/h3>\n\n<p>It displays live a thumbnail and a description in the visitor detail page from LDAP<\/p>\n\n<h3>How to tell Matomo which user is currently using your website?<\/h3>\n\n<p>You need to track user ID, so this plugin know which user shall be fetched from LDAP.<\/p>\n\n<p><strong>Option 1. Use Matomo user ID API (recommended)<\/strong><\/p>\n\n<p>Please see the official documentation: \n- https:\/\/matomo.org\/docs\/user-id\/\n- https:\/\/developer.matomo.org\/guides\/tracking-javascript-guide#user-id<\/p>\n\n<p>Change the plugin settings to use the Matomo UserId.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>_paq.push(['setUserId', 'USER_ID_HERE']);\n_paq.push(['trackPageView']);\n<\/code><\/pre>\n\n<p><strong>Option 2. Track a custom user visitor variable (obsoleted)<\/strong><\/p>\n\n<p>Please see the official documentation: \n- https:\/\/matomo.org\/docs\/custom-variables\/\n- https:\/\/developer.matomo.org\/api-reference\/tracking-javascript<\/p>\n\n<p>Change the plugin settings to use custom variable.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>_paq.push([\"setCustomVariable\", 1, \"username\", \"&lt;?php echo $username; ?&gt;\", \"visit\"]);`\n<\/code><\/pre>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>4.0.1<\/h2>\n\n<ul>\n<li>BUGFIX Unable to autoload plugin classes<\/li>\n<\/ul>\n\n<h2>4.0.0<\/h2>\n\n<ul>\n<li>FEATURE Matomo 4 support<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/LdapVisitorInfoPlesk\/download\/4.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LdapVisitorInfoPlesk\/changelog"},"consumer":{"license":null}},{"name":"LiveTab","displayName":"Live Tab","owner":"tsteur","description":"Keep an eye on the number of live visitors in the browser tab. It displays the number of visitors in the last 30 minutes in the browser tab.","homepage":"https:\/\/matomo.org","createdDateTime":"2013-09-30 01:03:12","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/wiki","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin","type":"url"}],"isTheme":false,"keywords":["live","tab"],"basePrice":0,"authors":[{"name":"Thomas Steur","email":null,"homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin","lastUpdated":"2023-10-01 20:10:03","latestVersion":"5.0.0","numDownloads":65104,"screenshots":["https:\/\/plugins.matomo.org\/LiveTab\/images\/5.0.0\/Browser_Tab.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"59","numContributors":"3","lastCommitDate":"2023-10-01 20:08:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0","release":"2013-09-30 01:03:12","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0"},{"name":"1.0.1","release":"2013-09-30 01:03:20","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/v1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.1"},{"name":"1.0.2","release":"2013-09-30 01:03:28","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/v1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.2"},{"name":"1.0.3","release":"2013-09-30 01:04:26","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/v1.0.3b","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.3"},{"name":"1.0.4","release":"2013-10-23 03:50:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.4"},{"name":"1.0.5","release":"2013-10-25 02:24:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":47,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/v1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.5"},{"name":"1.0.6","release":"2013-11-27 20:30:07","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.6"},{"name":"1.0.7","release":"2013-11-27 22:16:05","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1018,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/1.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.7"},{"name":"1.0.8","release":"2014-01-09 00:38:04","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12238,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/1.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.8"},{"name":"1.0.9","release":"2016-09-07 21:20:03","requires":{"piwik":">=2.0.0,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1919,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/LiveTab\/1.0.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/1.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/1.0.9"},{"name":"3.0.0","release":"2016-09-07 21:40:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5829,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/LiveTab\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/3.0.0"},{"name":"3.0.1","release":"2018-01-11 01:16:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10050,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/LiveTab\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/3.0.1"},{"name":"4.0.0","release":"2020-09-01 20:46:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":605,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/LiveTab\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/4.0.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/4.0.0"},{"name":"4.0.1","release":"2020-12-06 17:24:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15878,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/LiveTab\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/4.0.1"},{"name":"5.0.0","release":"2023-10-01 20:10:03","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17449,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/LiveTab\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/tsteur\/matomo-livetab-plugin\/commits\/5.0.0","readmeHtml":{"description":"\n\n<p>This is a plugin for the Open Source Web Analytics platform <a href=\"https:\/\/matomo.org\">Matomo<\/a>. It allows you to keep an eye on the number of live visitors in the browser tab. It displays the number of visits, actions, unique visitors or converted goals in the last X minutes in the browser tab. The number will be updated every minute.<\/p>\n\n<p>For better and faster readability the value will be shortened when greater than 1000. For instance to 3.12K or 3.43M.<\/p>\n\n<p><img src=\"https:\/\/raw.github.com\/tsteur\/matomo-livetab-plugin\/master\/screenshots\/Browser_Tab.png\" alt=\"Browser_Tab.png\" \/><\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Is it possible to configure the displayed metric?<\/strong><\/p>\n\n<p>Yes, you can choose between Visits, Actions, Converted Visits and Visitors.<\/p>\n\n<p><strong>Is it possible to configure the displayed metric per user?<\/strong><\/p>\n\n<p>Yes, this is also possible. Each user can configure the plugin differently.<\/p>\n\n<p><strong>Is it possible to configure the website that should be used?<\/strong><\/p>\n\n<p>No, this is currently not possible. It will always display the metric of the current selected website.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>5.0.0<\/strong>\n* Compatible with Matomo 5<\/p>\n\n<p><strong>4.0.1<\/strong>\n* Compatible with Piwik 4.0<\/p>\n\n<p><strong>4.0.0<\/strong>\n* Compatible with Piwik 4.0<\/p>\n\n<p><strong>3.0.1<\/strong>\n* Rename Piwik to Matomo<\/p>\n\n<p><strong>3.0.0<\/strong>\n* Compatible with Piwik 3.0<\/p>\n\n<p><strong>1.0.2<\/strong>\n* Compatible with Piwik 2.0<\/p>\n\n<p><strong>1.0.0<\/strong>\n* Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/LiveTab\/download\/5.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LiveTab\/changelog"},"consumer":{"license":null}},{"name":"LoginFailLog","displayName":"Login Fail Log","owner":"patrickbr","description":"Logs failed login attempts together with user IP. Useful for protecting Matomo (Piwik) against brute force attacks via fail2ban or similar tools.","homepage":"https:\/\/patrickbrosi.de\/en\/projects\/piwikloginfaillog\/","createdDateTime":"2017-07-23 01:04:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/patrickbr\/piwik-LoginFailLog\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/patrickbr\/piwik-LoginFailLog","type":"url"}],"isTheme":false,"keywords":["login","authentication","log","fail2ban"],"basePrice":0,"authors":[{"name":"Patrick Brosi","email":"info@patrickbrosi.de","homepage":"http:\/\/patrickbrosi.de"}],"repositoryUrl":"https:\/\/github.com\/patrickbr\/piwik-LoginFailLog","lastUpdated":"2017-07-23 01:48:04","latestVersion":"0.1.1","numDownloads":7645,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"7","numContributors":"2","lastCommitDate":"2024-02-09 08:13:50"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2017-07-23 01:04:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/patrickbr\/piwik-LoginFailLog\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginFailLog\/download\/0.1.0"},{"name":"0.1.1","release":"2017-07-23 01:48:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7636,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/patrickbr\/piwik-LoginFailLog\/commits\/0.1.1","readmeHtml":{"description":"\n\n<p>This simple plugin enables logging of failed authentication attempts in Matomo (Piwik), nothing more, nothing less. Failed login attempts are logged like this:<\/p>\n\n<pre><code>WARNING LoginFailLog[2017-07-22 23:35:20] [b215d] Failed login from 172.217.22.227 'patrick'.\nWARNING LoginFailLog[2017-07-22 23:35:20] [b215d] Failed login from 172.217.22.227 with username 'patrick'.\n<\/code><\/pre>\n\n<p>This is useful if you want to secure your Matomo instance with fail2ban or similar tools that work on log files. For example, the following filter can be used with fail2ban to detect and count login fails:<\/p>\n\n<pre><code># Fail2Ban configuration file for Matomo with LoginFailLog plugin\n\n[Definition]\nfailregex = .* Failed login from &lt;HOST&gt; with username .*\n<\/code><\/pre>\n\n","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/LoginFailLog\/download\/0.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LoginFailLog\/changelog"},"consumer":{"license":null}},{"name":"LoginHttpAuth","displayName":"Login Http Auth","owner":"matomo-org","description":"Sign in Matomo using HTTP Auth protocol instead of the standard Login mechanism.","homepage":"https:\/\/plugins.matomo.org\/LoginHttpAuth","createdDateTime":"2014-02-10 02:48:04","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth","type":"url"}],"isTheme":false,"keywords":["login","authentication","httpAuth"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth","lastUpdated":"2018-06-18 11:16:03","latestVersion":"3.0.1","numDownloads":18692,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"46","numContributors":"8","lastCommitDate":"2020-08-06 14:37:06"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0","release":"2014-02-10 02:48:04","requires":{"piwik":">=2.0.4-b12"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/commits\/1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginHttpAuth\/download\/1.0"},{"name":"1.0.1","release":"2014-02-10 03:04:03","requires":{"piwik":">=2.0.4-b12"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2609,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginHttpAuth\/download\/1.0.1"},{"name":"1.0.2","release":"2015-02-16 01:44:10","requires":{"piwik":">=2.11.0-b5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1827,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginHttpAuth\/download\/1.0.2"},{"name":"1.0.3","release":"2015-10-29 20:24:03","requires":{"piwik":">=2.11.0-b5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1619,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginHttpAuth\/download\/1.0.3"},{"name":"1.0.4","release":"2016-05-27 11:00:04","requires":{"piwik":">=2.11.0-b5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":912,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginHttpAuth\/download\/1.0.4"},{"name":"3.0.0","release":"2016-09-13 22:16:02","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1031,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginHttpAuth\/download\/3.0.0"},{"name":"1.0.5","release":"2016-10-06 02:04:05","requires":{"piwik":">=2.11.0-b5,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4063,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginHttpAuth\/download\/1.0.5"},{"name":"3.0.1","release":"2018-06-18 11:16:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6618,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginHttpAuth\/commits\/3.0.1","readmeHtml":{"description":"\n\n<p>This plugin extends the standard Matomo authentication to use Basic HTTP Authentication.\nIt lets you login to Matomo using the HTTP Auth mechanism.<\/p>\n\n<p>How do I setup HTTP Auth using Matomo?<\/p>\n\n<ul>\n<li>Login your Matomo as Super User. Click Settings, then click Marketplace.<\/li>\n<li>Install the LoginHttpAuth plugin, then click Activate.<\/li>\n<li>Click Settings, then click Users.\n\n<ul>\n<li>Check that there is a user in Matomo for each person that should have access to Matomo.<\/li>\n<\/ul><\/li>\n<li><p>Enable HTTP Auth on the Matomo on your web server.<\/p>\n\n<p>For example, if you are using Apache webserver:<\/p>\n\n<ul>\n<li>generate a .htpasswd file with your encrypted logins and passwords<\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/matomo-org\/plugin-LoginHttpAuth\/master\/TemplateHtaccess\/.htaccess\">copy this example .htaccess file<\/a> in the root directory of Matomo, and set the path to your .htpasswd file<\/li>\n<\/ul><\/li>\n<li>When you go to Matomo, you will see the Authentication window.\nCongratulations! You are now using HTTP Auth to protect Matomo.<\/li>\n<\/ul>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>3.0.0\n\n<ul>\n<li>Compatibility with Piwik 3.0<\/li>\n<li>Fix logout feature<\/li>\n<\/ul><\/li>\n<li>1.0.4 - Support for LemonLDAP::ng and <code>HTTP_AUTH_USER<\/code><\/li>\n<li>1.0.3 - Fixing regression w\/ Piwik 2.15 when authenticating by token auth or by username\/password (w\/o an HTTP server).<\/li>\n<li>1.0 - First public release <a href=\"http:\/\/piwik.org\/blog\/2013\/12\/piwik-2-0-release-announced-biggest-best-release-yet\/\">compatible with Piwik 2<\/a><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/LoginHttpAuth\/download\/3.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LoginHttpAuth\/changelog"},"consumer":{"license":null}},{"name":"LoginLdap","displayName":"Login Ldap","owner":"matomo-org","description":"LDAP authentication and synchronization for Matomo.","homepage":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap","createdDateTime":"2013-12-26 19:24:04","donate":{},"support":[],"isTheme":false,"keywords":["ldap","login","authentication","active","directory","kerberos","sso"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/github.com\/matomo-org"},{"name":"Aivo Koger","email":"aivo.koger@gmail.com","homepage":"https:\/\/github.com\/tehnotronic"},{"name":"Stefan Kreuter","email":"info@gigatec.de","homepage":"http:\/\/www.gigatec.de"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap","lastUpdated":"2026-10-12 06:52:16","latestVersion":"6.0.3","numDownloads":361104,"screenshots":["https:\/\/plugins.matomo.org\/LoginLdap\/images\/6.0.3\/LoginLdap_Admin_admin_page.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/LoginLdap.png","previews":[],"activity":{"numCommits":"650","numContributors":"55","lastCommitDate":"2026-10-22 21:00:56"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"security","categories":["security"],"promotions":{},"versions":[{"name":"2.0.0","release":"2013-12-26 19:24:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":28,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.0.0"},{"name":"2.0.2","release":"2013-12-27 12:42:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":47,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.0.2"},{"name":"2.0.3","release":"2013-12-29 01:00:06","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":33,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.0.3"},{"name":"2.0.4","release":"2013-12-31 01:02:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.0.4"},{"name":"2.0.5","release":"2013-12-31 10:54:06","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":169,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.0.5"},{"name":"2.0.6","release":"2014-01-09 16:56:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":69,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.0.6"},{"name":"2.0.7","release":"2014-01-13 21:08:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":185,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.0.7"},{"name":"2.0.8","release":"2014-01-24 15:24:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1107,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.0.8"},{"name":"2.2.1","release":"2014-05-05 02:42:08","requires":{"piwik":">=2.2.1-rc1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.2.1"},{"name":"2.2.2","release":"2014-05-05 05:38:05","requires":{"piwik":">=2.2.1-rc1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":39,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.2.2"},{"name":"2.2.3","release":"2014-05-05 10:12:05","requires":{"piwik":">=2.2.1-rc1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":152,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.2.3"},{"name":"2.2.4","release":"2014-05-08 14:54:05","requires":{"piwik":">=2.2.1-rc1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":360,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.2.4"},{"name":"2.2.5","release":"2014-05-26 08:40:08","requires":{"piwik":">=2.2.1-rc1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.2.5"},{"name":"2.2.6","release":"2014-05-26 08:54:04","requires":{"piwik":">=2.2.1-rc1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":148,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.2.6"},{"name":"2.2.7","release":"2014-05-29 15:08:04","requires":{"piwik":">=2.2.1-rc1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1634,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/2.2.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/2.2.7"},{"name":"3.0.0-b1","release":"2014-10-13 21:10:05","requires":{"piwik":">=2.8.0-b2","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":99,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.0.0-b1"},{"name":"3.0.0","release":"2014-10-15 01:52:04","requires":{"piwik":">=2.8.0-b2","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":945,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.0.0"},{"name":"3.1.0","release":"2014-11-29 00:16:05","requires":{"piwik":">=2.8.0-b2","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":543,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.1.0"},{"name":"3.1.1","release":"2015-01-04 23:00:06","requires":{"piwik":">=2.10.0-rc3","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":554,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.1.1"},{"name":"3.1.2","release":"2015-02-03 20:34:05","requires":{"piwik":">=2.10.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":233,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.1.2"},{"name":"3.1.3","release":"2015-02-16 01:44:04","requires":{"piwik":">=2.11.0-b5","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":283,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.1.3"},{"name":"3.1.4","release":"2015-02-24 17:30:04","requires":{"piwik":">=2.11.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2654,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.1.4"},{"name":"3.1.5","release":"2015-08-24 22:52:04","requires":{"piwik":">=2.14.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1312,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.1.5"},{"name":"3.2.0","release":"2015-10-21 22:16:04","requires":{"piwik":">=2.15.0-b15","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":406,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.2.0"},{"name":"3.2.1","release":"2015-11-03 20:00:05","requires":{"piwik":">=2.15.0-b15","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2462,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.2.1"},{"name":"3.2.2","release":"2016-03-02 10:20:04","requires":{"piwik":">=2.15.0-b15","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":721,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.2.2"},{"name":"3.3.0","release":"2016-03-09 15:26:04","requires":{"piwik":">=2.16.0","php":">=5.4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2408,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.3.0"},{"name":"3.3.1","release":"2016-08-02 04:38:04","requires":{"piwik":">=2.16.0","php":">=5.4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4486,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/3.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/3.3.1"},{"name":"4.0.0","release":"2016-12-18 21:44:04","requires":{"piwik":">=3.0.0-rc1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3260,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.0"},{"name":"4.0.1","release":"2017-07-10 09:08:04","requires":{"piwik":">=3.0.0-rc1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":731,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.1"},{"name":"4.0.2","release":"2017-08-01 04:56:04","requires":{"piwik":">=3.0.0-rc1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4929,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.2"},{"name":"4.0.3","release":"2017-11-01 22:02:04","requires":{"piwik":">=3.0.0-rc1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12084,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.3"},{"name":"4.0.4","release":"2018-04-18 04:06:04","requires":{"piwik":">=3.0.0-rc1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4575,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.4"},{"name":"4.0.5","release":"2018-06-18 10:28:05","requires":{"piwik":">=3.0.0-rc1,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":13299,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.5"},{"name":"4.0.6","release":"2018-12-21 20:58:04","requires":{"piwik":">=3.8.0-b5,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9757,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.6"},{"name":"4.0.7","release":"2019-04-18 22:38:05","requires":{"piwik":">=3.8.0-b5,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16162,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.7"},{"name":"4.0.8","release":"2020-01-07 02:10:06","requires":{"piwik":">=3.8.0-b5,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":35281,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.8"},{"name":"4.2.0","release":"2020-08-31 03:00:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3399,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.2.0"},{"name":"4.2.1","release":"2020-11-02 20:16:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":353,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.2.1"},{"name":"4.2.2","release":"2020-11-09 02:18:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2792,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.2.2"},{"name":"4.0.9","release":"2020-11-15 19:28:14","requires":{"piwik":">=3.8.0-b5,<4.0.0-b1","php":">=5.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7517,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.0.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.0.9"},{"name":"4.3.0","release":"2021-01-22 02:20:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":61738,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.3.0"},{"name":"4.3.1","release":"2021-11-22 05:42:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4806,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.3.1"},{"name":"4.4.0","release":"2022-01-31 08:06:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3314,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.4.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.4.0"},{"name":"4.5.0","release":"2022-04-26 03:12:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1653,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.5.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.5.0"},{"name":"4.5.1","release":"2022-08-01 07:48:04","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1226,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.5.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.5.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.5.1"},{"name":"4.5.2","release":"2022-09-12 06:00:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":592,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.5.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.5.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.5.2"},{"name":"4.5.3","release":"2022-09-26 04:36:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":826,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.5.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.5.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.5.3"},{"name":"4.5.4","release":"2022-10-10 08:08:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":684,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.5.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.5.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.5.4"},{"name":"4.5.5","release":"2022-10-25 02:34:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1628,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.5.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.5.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.5.5"},{"name":"4.5.6","release":"2022-12-05 06:44:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3926,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.5.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.5.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.5.6"},{"name":"4.6.0","release":"2023-01-16 07:36:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":757,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.6.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.6.0"},{"name":"4.7.0","release":"2023-01-30 03:04:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7129,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.7.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.7.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.7.0"},{"name":"4.7.1","release":"2023-02-07 01:56:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1301,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.7.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.7.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.7.1"},{"name":"4.7.2","release":"2023-03-28 06:00:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":168,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.7.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.7.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.7.2"},{"name":"4.7.3","release":"2023-03-29 08:04:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":33528,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/4.7.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/4.7.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/4.7.3"},{"name":"5.0.0","release":"2023-05-04 03:00:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":42,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.0.0"},{"name":"5.0.1","release":"2023-09-11 08:40:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":351,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.0.1"},{"name":"5.0.2","release":"2023-11-06 06:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":469,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.0.2"},{"name":"5.0.3","release":"2023-12-04 08:20:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":670,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.0.3"},{"name":"5.0.4","release":"2023-12-21 03:10:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":692,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.0.4"},{"name":"5.0.5","release":"2024-01-09 03:50:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":67817,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.0.5"},{"name":"5.0.6","release":"2024-04-22 06:50:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5793,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.0.6"},{"name":"5.0.7","release":"2024-11-05 02:28:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2678,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.0.7"},{"name":"5.1.0","release":"2025-03-03 01:42:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":636,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.0"},{"name":"5.1.1","release":"2025-03-17 03:22:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2341,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.1"},{"name":"5.1.2","release":"2025-06-09 02:42:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":664,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.2"},{"name":"5.1.3","release":"2025-07-07 10:14:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5341,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.3"},{"name":"5.1.4","release":"2026-01-13 03:00:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":429,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.4"},{"name":"5.1.5","release":"2026-01-27 03:30:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":684,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.5"},{"name":"5.1.6","release":"2026-02-02 03:50:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":851,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.6"},{"name":"5.1.7","release":"2026-03-02 04:36:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":944,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.7"},{"name":"5.1.8","release":"2026-03-30 04:04:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":411,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.8"},{"name":"5.1.9","release":"2026-04-13 05:08:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1635,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.9"},{"name":"5.1.10","release":"2026-04-27 04:52:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":879,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.10"},{"name":"5.1.11","release":"2026-05-11 04:52:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1119,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.1.11\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.1.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.1.11"},{"name":"5.2.0","release":"2026-06-22 05:16:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1520,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.0"},{"name":"5.2.1","release":"2026-07-20 09:56:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":330,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.1"},{"name":"5.2.2","release":"2026-07-27 07:54:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1653,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.2"},{"name":"5.2.3","release":"2026-08-03 05:48:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":262,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.3"},{"name":"5.2.4","release":"2026-08-10 07:10:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":267,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.4"},{"name":"5.2.5","release":"2026-08-17 05:52:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":395,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.5"},{"name":"5.2.6","release":"2026-08-24 05:38:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1717,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.6"},{"name":"6.0.0","release":"2026-08-24 06:00:39","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":119,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/6.0.0"},{"name":"6.0.2","release":"2026-09-21 04:16:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":70,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/6.0.2"},{"name":"5.2.7","release":"2026-09-21 04:18:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":853,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.7"},{"name":"5.2.8","release":"2026-10-12 06:52:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":878,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/5.2.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/5.2.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/5.2.8"},{"name":"6.0.3","release":"2026-10-12 06:52:16","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":71,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginLdap\/6.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/commits\/6.0.3","readmeHtml":{"description":"\n\n<p>Allows users in LDAP to log in to Matomo Analytics. Supports web server authentication (eg, for Kerberos SSO).<\/p>\n\n<p>LoginLdap authenticates with an LDAP server and uses LDAP information to personalize Matomo.<\/p>\n\n<h3>Installation<\/h3>\n\n<p>To start using LoginLdap, follow these steps:<\/p>\n\n<ol>\n<li>Login as a superuser<\/li>\n<li>On the <em>Manage &gt; Marketplace<\/em> admin page, install the LoginLdap plugin<\/li>\n<li>On the <em>Manage &gt; Plugins<\/em> admin page, enable the LoginLdap plugin<\/li>\n<li>Navigate to the <em>Settings &gt; LDAP<\/em> page<\/li>\n<li><p>Enter and save settings for your LDAP servers<\/p>\n\n<p><em>Note: You can test your servers by entering something into the 'Required User Group' and clicking the test link that appears.\nAn error message will display if LoginLdap cannot connect to the LDAP server.<\/em><\/p><\/li>\n<li><p>You can now login with LDAP credentials.<\/p><\/li>\n<\/ol>\n\n<p><em><strong>Note:<\/strong> LDAP users are not synchronized with Matomo until they are first logged in. This means you cannot access a token auth for an LDAP user until the user is synchronized.\nIf you use the default LoginLdap configuration, you can synchronize all of your LDAP users at once using the <code>.\/console loginldap:synchronize-users<\/code> command.<\/em><\/p>\n\n<h3>Troubleshooting<\/h3>\n\n<p>To troubleshoot any connectivity issues, read our <a href=\"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/wiki\/Troubleshooting\">troubleshooting guide<\/a>.<\/p>\n\n<h3>Upgrading from 2.2.7<\/h3>\n\n<p>Version 3.0.0 is a major rewrite of the plugin, so if you are upgrading for 2.2.7 you will have to do some extra work when upgrading:<\/p>\n\n<ul>\n<li><p>Navigate tothe <em>Settings &gt; LDAP<\/em> admin page. If the configuration options look broken, make sure to reload your browser cache. You can do this by reloading the page, or through your browser's settings.<\/p><\/li>\n<li><p>The admin user for servers must now be a full DN. In the LDAP settings page, change the admin name to be the full DN (ie, cn=...,dc=...).<\/p><\/li>\n<li><p>Uncheck the <code>Use LDAP for authentication<\/code> checkbox<\/p>\n\n<p>Version 2.2.7 and below used an authentication strategy where user passwords were stored both in Matomo and in LDAP. In order to keep your current\nusers' token auths from changing, that same strategy has to be used.<\/p><\/li>\n<\/ul>\n\n<h3>Configurations<\/h3>\n\n<p>LoginLdap supports three different LDAP authentication strategies:<\/p>\n\n<ul>\n<li>using LDAP for authentication only<\/li>\n<li>using LDAP for synchronization only<\/li>\n<li>logging in with Kerberos SSO (or something similar)<\/li>\n<\/ul>\n\n<p>Each strategy has advantages and disadvantages. What you should use depends on your needs.<\/p>\n\n<h3>Using LDAP for authentication only<\/h3>\n\n<p>This strategy is more secure than the one below, but it requires connecting to the LDAP server on each login attempt.<\/p>\n\n<p>With this strategy, every time a user logs in, LoginLdap will connect to LDAP to authenticate. On successful login, the user can\nbe synchronised, but the user's LDAP password is never stored in Matomo's DB. Instead, Matomo stores a random placeholder value for\nLDAP-authenticated users so database-only authentication cannot bypass LDAP-side checks.<\/p>\n\n<p>This means that if the Matomo DB is ever compromised, your LDAP users' passwords will still be safe.<\/p>\n\n<p><em>Note: With this auth strategy, non-LDAP users are still allowed to login to Matomo. These users must be created through Matomo, not in LDAP.<\/em><\/p>\n\n<p><strong>Steps to enable<\/strong><\/p>\n\n<p><em>Note: this is the default configuration.<\/em><\/p>\n\n<ol>\n<li>Check the <code>Use LDAP for authentication<\/code> option and uncheck the <code>Use Web Server Auth (e.g. Kerberos SSO)<\/code> option.<\/li>\n<\/ol>\n\n<h3>Using LDAP for synchronization only<\/h3>\n\n<p>This strategy involves storing the user's passwords in the Matomo DB using Matomo's hashing. As a result, it is not as secure as the above\nmethod. If your Matomo DB is compromised, your LDAP users' passwords will be in greater danger of being cracked.<\/p>\n\n<p>But, this strategy opens up the possibility of not communicating with LDAP servers at all during authentication, which may provide a better user experience.<\/p>\n\n<p><em>Note: With this auth strategy, non-LDAP users can login to Matomo.<\/em><\/p>\n\n<p><strong>Steps to enable<\/strong><\/p>\n\n<ol>\n<li>Uncheck the <code>Use LDAP for authentication<\/code> option and uncheck the <code>Use Web Server Auth (e.g. Kerberos SSO)<\/code> option.<\/li>\n<li><p>If you don't want to connect to LDAP while logging in, uncheck the <code>Synchronize Users After Successful Login<\/code> option.<\/p>\n\n<p>a. If you uncheck this option, make sure your users are synchronized in some other way (eg, by using the <code>loginldap:synchronize-users<\/code> command).\n  Matomo still needs information about your LDAP users in order to let them authenticate.<\/p><\/li>\n<\/ol>\n\n<h3>Logging in with Kerberos SSO (or something similar)<\/h3>\n\n<p>This strategy delegates authentication to the webserver. You setup a system where the webserver authenticates the user and\nsets the <code>$_SERVER['REMOTE_USER']<\/code> server variable, and LoginLdap will assume the user is already authenticated.<\/p>\n\n<p>This strategy will still connect to an LDAP server in order to synchronize user information, unless configured not to.<\/p>\n\n<p><em>Note: With this auth strategy, any user that appears as a REMOTE_USER can login, even if they are not in LDAP.<\/em><\/p>\n\n<p><strong>Steps to enable<\/strong><\/p>\n\n<ol>\n<li>Check the <code>Use Web Server Auth (e.g. Kerberos SSO)<\/code> option.<\/li>\n<li><p>If you don't want to connect to LDAP while logging in, uncheck the <code>Synchronize Users After Successful Login<\/code> option.<\/p>\n\n<p>a. If you uncheck this option, make sure your users are synchronized in some other way (eg, by using the <code>loginldap:synchronize-users<\/code> command).\n  Matomo still needs information about your LDAP users in order to let them authenticate.<\/p><\/li>\n<\/ol>\n\n<h3>Features<\/h3>\n\n<h3>Authenticating with Kerberos<\/h3>\n\n<p>If you want to use Kerberos, check the <strong>Use Web Server Auth (e.g. Kerberos SSO)<\/strong> checkbox in the LDAP settings admin page.<\/p>\n\n<p>Then, make sure your web server performs the necessary authentication and sets the <code>$_SERVER['REMOTE_USER']<\/code> server variable when a user is authenticated.<\/p>\n\n<p>When the <code>$_SERVER['REMOTE_USER']<\/code> variable is set, LoginLdap will assume the user has already been authenticated. When <code>$_SERVER['REMOTE_USER']<\/code> variable\nis not set and \"Always Use LDAP for Authentication\" option is checked, LDAP authentication is performed. When \"Always Use LDAP for Authentication\" is unchecked,\nnormal authentication will take place.<\/p>\n\n<p><em>Note: The plugin will still communicate with the LDAP server in order to synchronize user details, so if LDAP settings are incorrect, authentication will fail.<\/em><\/p>\n\n<h3>Authenticating using LDAPS.<\/h3>\n\n<p>In order to use LDAPS in the plugin, you would need to specify the hostname using ldaps:\/\/yourldapshost.com or alternatively using the LDAPS port of 636 in the configuration.<\/p>\n\n<p>_Please note: When using a hostname that contains ldap:\/\/ or ldaps:\/\/ the port number specified in the configuration will be ignored. If you need to use a non-standard port then you will need to specify the LDAP server hostname without ldap:\/\/ or ldaps:\/\/ _<\/p>\n\n<p>When using LDAPS - the server that you are hosting Matomo on will need to trust the CA that has issued the certificates for your LDAPS server (These certificates are often stored in \/etc\/openldap\/certs)<\/p>\n\n<p>Alternatively you can specify the location of the TSL certificates within the ldap.conf file that is normally stored in <em>\/etc\/openldap\/ldap.conf<\/em> by adding the following:\nTLS_REQCERT never\nTLS_CACERT \/usr\/local\/ssl\/certs\/myldap.pem\nTLS_CACERTDIR \/usr\/local\/ssl\/certs<\/p>\n\n<h3>Authenticating using LDAP + TLS.<\/h3>\n\n<p>In order to use LDAP + TLS in the plugin, you would need to check the checkbox \"Enable TLS\".<\/p>\n\n<p><em>Please note: This will call the ldap_start_tls() PHP function to start TLS before calling the ldap_bind()<\/em><\/p>\n\n<p>When using LDAP + TLS - the server that you are hosting Matomo on will need to trust the CA that has issued the certificates for your LDAP server (These certificates are often stored in \/etc\/openldap\/certs)<\/p>\n\n<p>Alternatively you can specify the location of the TSL certificates within the ldap.conf file that is normally stored in <em>\/etc\/openldap\/ldap.conf<\/em> by adding the following:\nTLS_REQCERT never\nTLS_CACERT \/usr\/local\/ssl\/certs\/myldap.pem\nTLS_CACERTDIR \/usr\/local\/ssl\/certs<\/p>\n\n<h3>Specifying Fallback Servers<\/h3>\n\n<p>LoginLdap v3.0.0 and greater supports specifying multiple LDAP servers to use. If connecting to one server fails, the other servers are used as fallbacks.<\/p>\n\n<p>You can enter fallback servers by adding new servers at the bottom of the <em>Settings &gt; LDAP<\/em> page.<\/p>\n\n<h3>Filtering Users in LDAP<\/h3>\n\n<p>You can use the <strong>Required User Group<\/strong> and <strong>LDAP Search Filter<\/strong> settings to filter LDAP entries. Users whose entries do not match these filters\nwill not be allowed to authenticate.<\/p>\n\n<p>Set <strong>Required User Group<\/strong> to the full DN of a group the user should be a member of. <em>Note: Internally, LoginLdap will issue a query using <code>(memberof=?)<\/code>\nto find users of a certain group. Your server may require additional configuration to support <code>memberof<\/code>.<\/em><\/p>\n\n<p>Set <strong>LDAP Search Filter<\/strong> to an LDAP filter string to use, for example: <code>(objectClass=person)<\/code> or\n<code>(&amp;(resMemberOf=cn=mygroup,ou=commonOU,dc=www,dc=example,dc=org)(objectclass=person))<\/code>.<\/p>\n\n<p>You can test both of these settings from within the LDAP settings page.<\/p>\n\n<h3>LDAP User Synchronization<\/h3>\n\n<p>LoginLdap will use information in LDAP to determine a user's alias and email address. On the <em>Settings &gt; LDAP<\/em> page, you can specify which LDAP attributes should be\nuse to determine these fields.<\/p>\n\n<p><em>Note: If the LDAP attribute for a user's alias is not found, the user's alias is defaulted to the first and last names of the user. On the settings page you can\nspecify which LDAP attributes are used to determine a user's first &amp; last name.<\/em><\/p>\n\n<p><strong>E-mail addresses<\/strong><\/p>\n\n<p>E-mail addresses are required for Matomo users. If your users in LDAP do not have e-mail addresses, you can set the <strong>E-mail Address Suffix<\/strong> setting to an e-mail\naddress suffix, for example:<\/p>\n\n<p><code>@myorganization.com<\/code><\/p>\n\n<p>The suffix will be added to usernames to generate an e-mail address for your users.<\/p>\n\n<p>Users are synchronized every time they log in. You can use the <code>loginldap:synchronize-users<\/code> command to synchronize users manually.<\/p>\n\n<h3>Matomo Access Synchronization<\/h3>\n\n<p>LoginLdap also supports synchronizing access levels using attributes found in LDAP. To use this feature, first, you will need to modify your LDAP server's\nschema and add three special attributes to user entries:<\/p>\n\n<ul>\n<li>an attribute to specify the sites a user has view access to<\/li>\n<li>an attribute to specify the sites a user has admin access to<\/li>\n<li>and an attribute used to specify if a user is a superuser or not<\/li>\n<\/ul>\n\n<p><em>Note: You can choose whatever names you want for these attributes. You will be able to tell LoginLdap about these names in the LDAP settings page.<\/em><\/p>\n\n<p>Then you must set these attributes correctly within LDAP, for example:<\/p>\n\n<ul>\n<li><code>view: all<\/code><\/li>\n<li><code>admin: 1,2,3<\/code><\/li>\n<li><code>superuser: 1<\/code><\/li>\n<\/ul>\n\n<p>Finally, in the LDAP settings page, check the <strong>Enable User Access Synchronization from LDAP<\/strong> checkbox and fill out the settings that appear below it.<\/p>\n\n<p>User access synchronization occurs at the same time as normal user synchronization. So the <code>loginldap:synchronize-users<\/code> command will synchronize access levels too.<\/p>\n\n<h4>Managing Access for Multiple Matomo Instances<\/h4>\n\n<p>LoginLdap supports using a single LDAP server to manage access for multiple Matomo instances. If you'd like to use this feature, you must specify special values\nfor LDAP access attributes. For example:<\/p>\n\n<ul>\n<li><code>view: mymatomoserver.whatever.com:1,2,3;myotherserver.com:all<\/code><\/li>\n<li><code>admin: mymatomoserver.whatever.com:all;mythirdserver.com:3,4<\/code><\/li>\n<li><code>superuser: myotherserver.com;myotherserver.com\/othermatomo<\/code><\/li>\n<\/ul>\n\n<p>URLs in access attributes are only matched if the host and port of this Matomo's URL are one of the <code>[General] trusted_hosts<\/code>\nconfigured in Matomo. Otherwise access synchronization removes the access they grant, including superuser access. If you manage access for multiple Matomo instances, we recommend setting the <strong>Special Name For This Matomo Instance<\/strong> setting\nin each of them.<\/p>\n\n<p>If you don't want to use URLs in your access attributes, you can use the <strong>Special Name For This Matomo Instance<\/strong> setting to specify a special name\nfor each of your Matomos. For example, if you set it to 'matomoServerA' in one Matomo and 'matomoServerB' in another, your LDAP attributes might look\nlike:<\/p>\n\n<ul>\n<li><code>view: matomoServerA:1,2,3;matomoServerB:all<\/code><\/li>\n<li><code>admin: matomoServerA:4,5,6<\/code><\/li>\n<li><code>superuser: matomoServerC<\/code><\/li>\n<\/ul>\n\n<p><strong>Using a custom access attribute format<\/strong><\/p>\n\n<p>You can customize the separators used in access attributes by setting the <strong>User Access Attribute Server Specification Delimiter<\/strong> and\n<strong>User Access Attribute Server &amp; Site List Separator<\/strong> settings.<\/p>\n\n<p>If you set the <strong>User Access Attribute Server Specification Delimiter<\/strong> option to <code>'#'<\/code>, access attributes can be specified as:<\/p>\n\n<p><code>view: matomoServerA:1,2,3#matomoServerB:all<\/code><\/p>\n\n<p>If you set the <strong>User Access Attribute Server &amp; Site List Separator<\/strong> option to <code>'#'<\/code>, access attributes can be specified as:<\/p>\n\n<p><code>view: matomoServerA#1,2,3;matomoServerB#all<\/code><\/p>\n\n<h3>Security Considerations<\/h3>\n\n<p><strong>User passwords<\/strong><\/p>\n\n<p>For added security, LoginLdap's default configuration will not store user passwords or a value derived from an LDAP password attribute within Matomo's DB. LDAP-authenticated\nusers receive a random placeholder instead. So if the Matomo DB is compromised for whatever reason, the LDAP password material is not exposed there.<\/p>\n\n<p><strong>Token Auths<\/strong><\/p>\n\n<p>LDAP has no concept of authentication tokens, so user token_auths are stored exclusively in Matomo's MySQL DB. If a token auth is compromised,\nyou can have Matomo generate a new.<\/p>\n\n<p><strong>Logging<\/strong><\/p>\n\n<p>LoginLdap uses debug logging extensively so problems can be diagnosed quickly. The logs should not contain sensitive information, but <em>you\nshould still disable DEBUG logging in production<\/em>.<\/p>\n\n<p>If you need to debug a problem, enable it temporarily by changing the <code>[log] log_level<\/code> and <code>[log] log_writers<\/code> core INI config options.\nIf you use file logs, make sure to delete the logs after you are finished debugging.<\/p>\n\n<h3>Commands<\/h3>\n\n<p>LoginLdap comes with the following console commands:<\/p>\n\n<ul>\n<li><code>loginldap:synchronize-users<\/code>: Can be used to synchronize one, multiple, or all users in LDAP at once. If you'd like to setup user access\nwithin Matomo before a user logs in, this command should be used.<\/li>\n<\/ul>\n\n<p><strong>Note:<\/strong>  If a user is synced and later removed from the LDAP, Matomo will not, by default, delete the user on sync. To delete old users during synchronization, you can use the following console command:<\/p>\n\n<pre><code>.\/console loginldap:synchronize-users --purge-non-existent-users\n<\/code><\/pre>\n\n<h3>Changelog<\/h3>\n\n<p>See <a href=\"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/blob\/4.x-dev\/CHANGELOG.md\">https:\/\/github.com\/matomo-org\/plugin-LoginLdap\/blob\/4.x-dev\/CHANGELOG.md<\/a>.<\/p>\n\n<h3>Support<\/h3>\n\n<p><strong>Please direct any feedback to <a href=\"https:\/\/github.com\/matomo-org\/plugin-LoginLdap\">https:\/\/github.com\/matomo-org\/plugin-LoginLdap<\/a>.<\/strong><\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h4>LoginLdap 6.0.3 - 2026-10-12<\/h4>\n\n<ul>\n<li>Improved the matching of LDAP access values to this Matomo by URL. They now only apply if the host and port of this Matomo's URL are one of its trusted hosts, otherwise access synchronization removes the access they grant, including superuser access. Before updating, add the host to the trusted hosts or set the LoginLdap instance name<\/li>\n<\/ul>\n\n<h4>LoginLdap 6.0.2<\/h4>\n\n<ul>\n<li>Fixed the LDAP instance identifier comparison, so an access value naming a different Matomo instance is no longer applied to this one<\/li>\n<li>Fixed the loading indicator showing as a white box in dark mode<\/li>\n<li>Fixed the login comparison so that logins the database collation treats as equal, but which are different users, are no longer accepted<\/li>\n<li>Added termination of a Matomo session when the web server starts authenticating a different user<\/li>\n<li>Fixed the login result being built from the user's access as it was before LDAP access synchronization ran<\/li>\n<\/ul>\n\n<h4>LoginLdap 6.0.1 - 2026-09-07<\/h4>\n\n<ul>\n<li>Fixed LDAP site access being denied when the instance name or a server separator contains a slash<\/li>\n<li>Fixed a failed LDAP entry lookup being reported as no matching users, which surfaced as a failed login instead of the underlying LDAP error<\/li>\n<\/ul>\n\n<h4>LoginLdap 6.0.0<\/h4>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<li>Added strict check for TLS if enabled<\/li>\n<li>Added strict comparison of login username<\/li>\n<li>Fixed an invalid connection URI on PHP 8.3 and newer when the LDAP server hostname is a URL that ends in a path or already specifies a port<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.2.4 - 2026-08-10<\/h4>\n\n<ul>\n<li>Added code to change the logic for random password generation<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.2.3 - 2026-08-03<\/h4>\n\n<ul>\n<li>Enabled password confirmation by default on the LoginLdap settings page<\/li>\n<li>Added code to synchronize LDAP users using the resolved Matomo login instead of the supplied identifier<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.2.2 - 2026-07-27<\/h4>\n\n<ul>\n<li>Added code to harden the check for anonymous user on sync<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.2.1 - 2026-07-20<\/h4>\n\n<ul>\n<li>Added code to disallow createAppSpecificTokenAuth endpoint for WebServerAuth<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.2.0 - 2026-06-22<\/h4>\n\n<ul>\n<li>Added code to enable password confirmation before any LDAP config save<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.11 - 2026-05-11<\/h4>\n\n<ul>\n<li>Added code to not skip password confirmation check, if user is a non-ldap user and skip password confirmation is enabled.<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.10 - 2026-04-27<\/h4>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.9 - 2026-04-13<\/h4>\n\n<ul>\n<li>Added more restrictive check in getSuperUserAccessFromSuperUserAttribute to determine superuser access<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.8 - 2026-03-30<\/h4>\n\n<ul>\n<li>Fixes no session fingerprint on successful web server authentication<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.7 - 2026-03-02<\/h4>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.6 - 2026-02-02<\/h4>\n\n<ul>\n<li>Fixes regression introduced in version 5.1.5 due to restrict actions<\/li>\n<li>Use new session method to destroy all sessions on plugin deactivation<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.5 - 2026-01-27<\/h4>\n\n<ul>\n<li>Restrict isLDAPUser preference set only via internal methods and not via API<\/li>\n<li>Set random token value on successful authenticate<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.4 - 2026-01-12<\/h4>\n\n<ul>\n<li>Added code to delete all the access if no access returned from Ldap and enable_synchronize_access_from_ldap=1<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.3 - 2025-07-07<\/h4>\n\n<ul>\n<li>Textual changes<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.2 - 2025-06-09<\/h4>\n\n<ul>\n<li>Fixed deprecation warning<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.1 - 2025-03-17<\/h4>\n\n<ul>\n<li>Adjust default port for ldaps protocol<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.1.0 - 2025-03-03<\/h4>\n\n<ul>\n<li>Corrects compatibility issue with Login plugin<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.0.7<\/h4>\n\n<ul>\n<li>Fixes for PHP 8.4<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.0.6<\/h4>\n\n<ul>\n<li>Added code to purge non existent LDAP users from DB<\/li>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.0.5<\/h4>\n\n<ul>\n<li>Fixes for PHP 8.3 uri determination logic<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.0.4<\/h4>\n\n<ul>\n<li>Fixed archiving error due to logs being printed for non-archive requests<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.0.3<\/h4>\n\n<ul>\n<li>Added code to auto accept invitation if present<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.0.2<\/h4>\n\n<ul>\n<li>Added code to skip password confirmation for create token auth<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.0.1<\/h4>\n\n<ul>\n<li>Prefer using ellipsis over three dots<\/li>\n<\/ul>\n\n<h4>LoginLdap 5.0.0<\/h4>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.7.3<\/h4>\n\n<ul>\n<li>Fixed migration script error for installs without prefix<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.7.2<\/h4>\n\n<ul>\n<li>Fixed _isLDAPUser option not being deleted from option table on user deletion.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.7.1<\/h4>\n\n<ul>\n<li>Updated migration script to include only users synced in Matomo<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.7.0<\/h4>\n\n<ul>\n<li>Started using SHA-256 instead of MD5 encryption while hashing auth secret<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.6.0<\/h4>\n\n<ul>\n<li>Added option to disable\/enable password confirmation.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.5.6<\/h4>\n\n<ul>\n<li>Updated log level to debug from warning during random password generation for a user.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.5.5<\/h4>\n\n<ul>\n<li>Allow single quote character in admin password, #308<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.5.4<\/h4>\n\n<ul>\n<li>Started replacing invalid characters from server name key before fetching from config<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.5.3<\/h4>\n\n<ul>\n<li>Added default value of servers as array instead of null<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.5.2<\/h4>\n\n<ul>\n<li>Started updating user password on sync for existing user if synchronize_users_after_login=1<\/li>\n<li>Fix to add new user  during sync without password confirmation<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.5.1<\/h4>\n\n<ul>\n<li>Translation updates.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.5.0<\/h4>\n\n<ul>\n<li>Migrate from AngularJS to Vue.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.4.0<\/h4>\n\n<ul>\n<li>Fixed domain strip from login when equal to Domain\\UserLogin.<\/li>\n<li>Added Start TLS option per LDAP server (change by Tomolimo).<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.3.1<\/h4>\n\n<ul>\n<li>Fixed deprecation warning for PHP8.1.<\/li>\n<li>Updated pronoun in text.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.3.0<\/h4>\n\n<ul>\n<li>Added new setting for the Web Server Auth strategy to avoid stripping off the domain of usernames. (change by EmTeedee)<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.2.2<\/h4>\n\n<ul>\n<li>Fix issue with LDAP user login that caused password confirmation dialog to log users out temporarily.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.2.1<\/h4>\n\n<ul>\n<li>Compatibility with matomo 4.0 and above.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.2.0<\/h4>\n\n<ul>\n<li>Compatibility with matomo 4.0 and above.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.0.8<\/h4>\n\n<ul>\n<li>Compatibility with matomo 3.10 and above.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.0.7<\/h4>\n\n<ul>\n<li>Updated translations and Readme (no code change)<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.0.6<\/h4>\n\n<ul>\n<li>Make plugin compatible with latest Matomo version<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.0.4<\/h4>\n\n<ul>\n<li>Fixing bug that made it impossible to set append_user_email_suffix_to_username to 0 for appending username suffix to username for email and not during auth.<\/li>\n<\/ul>\n\n<h4>LoginLdap 4.0.0<\/h4>\n\n<ul>\n<li>Compatibility with Piwik 3<\/li>\n<li>Configuration value 'enable_random_token_auth_generation' has been removed as its obsolete with Piwik 3 having random auth tokens.<\/li>\n<li>Command <code>loginldap:generate-token-auth<\/code> has been removed as auth tokens are independent from password now and new auth token can now be generated directly in user admin<\/li>\n<li>Updated UI: Now completely works using AngularJS and material design<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.3.1<\/h4>\n\n<ul>\n<li>Plugin settings: clarify an inline help for <code>Use Web Server Auth (e.g. Kerberos SSO)<\/code><\/li>\n<\/ul>\n\n<h4>LoginLdap 3.3.0<\/h4>\n\n<ul>\n<li>Compatibility with Piwik 2.16.0<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.2.2<\/h4>\n\n<ul>\n<li>LDAP user can't change their passwords in Piwik's UI (passwords should be managed directly on LDAP host)<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.2.1<\/h4>\n\n<ul>\n<li>Configureed LDAP passwords are no longer stored in the HTML in the LDAP settings page. This is a minor security update.<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.2.0<\/h4>\n\n<ul>\n<li>Compatibility w\/ Piwik 2.15.0<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.1.5<\/h4>\n\n<ul>\n<li>Fixing regression caused by Piwik 2.14 change: authenticating in tracker w\/ token_auth no longer worked if LoginLdap was used.<\/li>\n<li>Workaround issue where 'LDAP Functions are Missing' notification was never removed from the screen by making it transient &amp; closeable.<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.1.2<\/h4>\n\n<ul>\n<li>Change placeholder value of server hostname config option and add a note so users can avoid the problem where ports are ignored when ldap:\/\/ URLs are used in the hostname option.<\/li>\n<li>Make sure users upgrading from pre-3.0 versions set the correct LDAP settings.<\/li>\n<li>Add documentation regarding using LoginLdap with Piwik's official mobile app.<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.1.1<\/h4>\n\n<ul>\n<li>Make plugin compatible with latest Piwik version.<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.1.0<\/h4>\n\n<ul>\n<li>add --skip-existing option to loginldap:synchronize-users command<\/li>\n<li>warning displayed if Login + LoginLdap plugins are enabled at the same time<\/li>\n<li>re-added the load ldap user form in the settings page<\/li>\n<li>normal users can be managed when LdapAuth implementation is used (when Always Use LDAP for Authentication is checked)<\/li>\n<li>fixed bug in web server auth strategy where LDAP auth was not used if REMOTE_USER var not found. made connecting via mobile app impossible.<\/li>\n<li>fix bug in synchronizing users w\/ user_email_suffix configured (first login worked, subsequent logins failed since username used in UserSynchronizer was incorrect)<\/li>\n<\/ul>\n\n<h4>LoginLdap 3.0.0:<\/h4>\n\n<ul>\n<li>Automatic creation of Piwik users using LDAP (old 'auto create users' feature) is now standard.<\/li>\n<li>Default access permissions can be specified for newly synchronized users.<\/li>\n<li>Only super users are allowed to login w\/o authenticating to LDAP now. Normal users stored in Piwik will not be allowed to authenticate if using LoginLdap.<\/li>\n<li>It is possible now to test memberOf and filter settings from within the LDAP settings page.<\/li>\n<li>Piwik access permissions can be specified from within LDAP using custom attributes.<\/li>\n<li>It is allowed to specify multiple LDAP fallback servers. If one fails, the others are used.<\/li>\n<li>Tests that make sure the PHP LDAP extension exists were fixed and also implemented in loginpage.<\/li>\n<li>Special LDAP log was removed. Logging is done through Piwik\\Log now.<\/li>\n<li>New setting for LDAP network timeout.<\/li>\n<li>Menu entry is LDAP &gt; Settings now instead of Manage &gt; LDAP Users.<\/li>\n<li>The synchronize single user feature in the settings page was removed.<\/li>\n<li>Supports three types of authentication strategies.<\/li>\n<li>Only compatible with Piwik 2.8 and above.<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.2.7:<\/h4>\n\n<ul>\n<li>Auto create users from LDAP #23<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.2.6:<\/h4>\n\n<ul>\n<li>Fixes empty characters<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.2.5:<\/h4>\n\n<ul>\n<li>Fixes issue #22 'unable to login'<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.2.4:<\/h4>\n\n<ul>\n<li>Added debug mode and more detail logging<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.2.3:<\/h4>\n\n<ul>\n<li>Fixes #21 Ensure all variables are correctly set<\/li>\n<li>Storing log file in tmp\/logs\/ and fix PHP log read warning<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.2.2:<\/h4>\n\n<ul>\n<li>Adding missing namespace<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.2.1:<\/h4>\n\n<ul>\n<li>Controller now extends Login controller. Reusing assets and templates.<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.1.0:<\/h4>\n\n<ul>\n<li>Code updated to support Piwik 2.1 and newer<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.9:<\/h4>\n\n<ul>\n<li>Fixes Piwik #4001 Deprecate force_ssl_login setting<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.8:<\/h4>\n\n<ul>\n<li>Fixed issue #7 'Deinstallation not possible'<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.7:<\/h4>\n\n<ul>\n<li>Fixed issue #4 'useKerberos config problem'<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.6:<\/h4>\n\n<ul>\n<li>Tmuellerleile fixed default controller action<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.5:<\/h4>\n\n<ul>\n<li>Fixed issue with log file creation and reading<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.4:<\/h4>\n\n<ul>\n<li>Added 'View LDAP log from web as admin'<\/li>\n<li>Added better error detection and check if LDAP is enabled in PHP<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.3:<\/h4>\n\n<ul>\n<li>Issue #26 Fixed 'malformed UTF8 in de.json'<\/li>\n<li>Issue #28 Fixed 'plugin install should add parameters to config.ini.php'<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.2:<\/h4>\n\n<ul>\n<li>Added 'de' and 'et' translations<\/li>\n<li>Minor code enhancements<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.1:<\/h4>\n\n<ul>\n<li>First public release in Piwik Marketplace<\/li>\n<\/ul>\n\n<h4>LoginLdap 2.0.0:<\/h4>\n\n<ul>\n<li>First release for Piwik 2.0, may contain bugs!<\/li>\n<li>Added LDAP server port configuration option<\/li>\n<\/ul>\n\n<h4>LoginLdap 1.3.5:<\/h4>\n\n<ul>\n<li>Issue #20 Fixed 'kerberos is not working'<\/li>\n<li>Issue #19 Fixed 'wrong version info'<\/li>\n<\/ul>\n\n<h4>LoginLdap 1.3.4:<\/h4>\n\n<ul>\n<li>Issue #18 Fixed 'iconv() expects parameter 3 to be string array given'<\/li>\n<\/ul>\n\n<h4>LoginLdap 1.3.3:<\/h4>\n\n<ul>\n<li>Issue #17 Fixed 'Undefined index: phpVersion'<\/li>\n<\/ul>\n\n<h4>LoginLdap 1.3.2:<\/h4>\n\n<ul>\n<li>Issue #15 Fixed 'Setting a custom mail field has no effect'<\/li>\n<li>Issue #16 Fixed 'Login fails because of non-UTF8 values passed to json_encode()'<\/li>\n<\/ul>\n\n<h4>LoginLdap 1.3.1:<\/h4>\n\n<ul>\n<li>Issue #7 Added check on the activate handler to ensure the php-ldap extension is installed.<\/li>\n<li>Issue #8 Only superuser can view (and modify) LDAP configuration<\/li>\n<li>Issue #9 Fixed 'Undefined index: activeDirectory'<\/li>\n<li>Issue #11 E-Mail Address Being Required<\/li>\n<li>Issue #12 Fixed 'Undefined index: topMenu'<\/li>\n<li>Issue #13 LDAP Users were not able login using the mobile app and using API in general as their credentials were not stored in the database.<\/li>\n<li>Applied fix for Piwik Dev Zone Ticket #734: 'Correction added so Page Overlay feature works'.<\/li>\n<li>Added functionality to ensure that the Login and LoginLDAP plugins are never enabled simultaneously.<\/li>\n<li>Removed support for IE6.<\/li>\n<li>Changed log file location so to be include into the plugin directory and more easy to find.<\/li>\n<\/ul>\n\n<h4>LoginLdap 1.3.0:<\/h4>\n\n<ul>\n<li>Issue #1 Only superuser can modify LDAP configuration<\/li>\n<li>Issue #2 LDAP search filters<\/li>\n<li>Issue #3 Enable Kerberos login for piwik<\/li>\n<li>Issue #4 You cannot login as superuser if LDAP connection fails<\/li>\n<li>Issue #5 Add more LDAP logging options<\/li>\n<li>Issue #6 Error while trying to read a specific config file entry 'LoginLdap'<\/li>\n<\/ul>\n\n<h4>LoginLdap 1.2.0:<\/h4>\n\n<ul>\n<li>ActiveDirectory Support<\/li>\n<li>Piwik &gt;= 1.6 Install Bug Fix<\/li>\n<\/ul>\n\n<h4>LoginLdap 1.0.0:<\/h4>\n\n<ul>\n<li>Initial Version just for plain anonymous Ldap<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/LoginLdap\/download\/6.0.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LoginLdap\/changelog"},"consumer":{"license":null}},{"name":"LoginOIDC","displayName":"Login OIDC","owner":"dominik-th","description":"Adds support for integrating external authentication services.","homepage":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC","createdDateTime":"2019-03-30 20:08:04","donate":{"paypal":"matomo-loginoidc@dthiemermann.org","bitcoin":null},"support":[{"name":"Email","key":"email","value":"matomo-loginoidc@dthiemermann.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC","type":"url"}],"isTheme":false,"keywords":["login","authentication","sso","oauth","openid","connect"],"basePrice":0,"authors":[{"name":"Dominik Thiemermann","email":"hello@dthiemermann.org","homepage":"https:\/\/www.dthiemermann.org"}],"repositoryUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC","lastUpdated":"2023-05-21 17:34:02","latestVersion":"5.0.0","numDownloads":408444,"screenshots":["https:\/\/plugins.matomo.org\/LoginOIDC\/images\/5.0.0\/LoginOIDC_Admin_Settings.png","https:\/\/plugins.matomo.org\/LoginOIDC\/images\/5.0.0\/LoginOIDC_Github_Authorize_Consent.png","https:\/\/plugins.matomo.org\/LoginOIDC\/images\/5.0.0\/LoginOIDC_Sign_In.png","https:\/\/plugins.matomo.org\/LoginOIDC\/images\/5.0.0\/LoginOIDC_User_Settings_Link.png","https:\/\/plugins.matomo.org\/LoginOIDC\/images\/5.0.0\/LoginOIDC_User_Settings_Unlink.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"96","numContributors":"9","lastCommitDate":"2024-06-21 13:20:28"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2019-03-30 20:08:04","requires":{"piwik":">=3.9.1-stable,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":34,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/0.1.0"},{"name":"0.1.1","release":"2019-03-31 12:40:04","requires":{"piwik":">=3.8.0-b4,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":38,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/0.1.1"},{"name":"0.1.2","release":"2019-04-03 12:58:04","requires":{"piwik":">=3.8.0-b4,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":535,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/0.1.2"},{"name":"0.1.3","release":"2019-06-18 16:48:05","requires":{"piwik":">=3.8.0-b4,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":538,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/0.1.3"},{"name":"0.1.4","release":"2019-10-10 17:50:04","requires":{"piwik":">=3.8.0-b4,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1027,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/0.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/0.1.4"},{"name":"0.1.5","release":"2020-05-03 09:20:04","requires":{"piwik":">=3.8.0-b4,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1110,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/0.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/0.1.5"},{"name":"3.0.0","release":"2020-11-16 23:00:03","requires":{"piwik":">=3.8.0-b4,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":82,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/3.0.0"},{"name":"3.0.1","release":"2020-11-21 23:36:03","requires":{"piwik":">=3.8.0-b4,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3219,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/3.0.1"},{"name":"4.0.0","release":"2020-11-22 11:50:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":136877,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/4.0.0"},{"name":"4.1.0","release":"2022-08-28 18:46:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/4.1.0"},{"name":"4.1.1","release":"2022-08-28 19:20:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":47,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/4.1.1"},{"name":"4.1.2","release":"2022-08-28 20:44:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":69270,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/4.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/4.1.2"},{"name":"5.0.0","release":"2023-05-21 17:34:02","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":195664,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LoginOIDC\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\/commits\/5.0.0","readmeHtml":{"description":"\n\n<p>Login via third party authentication services.<\/p>\n\n<p>Easily add a \"Login with GitHub\" button your Matomo instance. You can also setup any other service to do the authentication for you.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What is the callback url?<\/strong><\/p>\n\n<p><code>http(s):\/\/&lt;YOUR_MATOMO_URL&gt;\/index.php?module=LoginOIDC&amp;action=callback&amp;provider=oidc<\/code><\/p>\n\n<p><strong>Which providers can I use?<\/strong><\/p>\n\n<p>I tested the plugin with Auth0, GitHub and Keycloak, which work fine.\nIf your provider does not seem to work, leave an issue on GitHub.<\/p>\n\n<p><strong>How can I unlink all users?<\/strong><\/p>\n\n<p>The easiest way is to fully uninstall the plugin and reinstall afterwards.\nOtherwise you can delete data from <code>matomo_loginoidc_provider<\/code> in your sql database.<\/p>\n\n<p>If you change the OAuth provider and there could be user id collisions, you should make sure to unlink all users beforehand.<\/p>\n\n<p><strong>Can I embed the Login button on another website?<\/strong><\/p>\n\n<p>You have to uncheck the <code>Disable direct login url<\/code> option in the settings.\nAfterwards you can link to <code>http(s):\/\/&lt;YOUR_MATOMO_URL&gt;\/index.php?module=LoginOIDC&amp;action=signin&amp;provider=oidc<\/code> and Matomo will redirect the client accordingly.<\/p>\n\n<p><strong>Can I setup more than one provider?<\/strong><\/p>\n\n<p>Currently that is <strong>not<\/strong> possible.\nBut you can use services like Auth0, which support multiple providers.<\/p>\n\n<p><strong>I get a <code>Can't create table<\/code> error when installing the plugin<\/strong><\/p>\n\n<p>Most likely you are using a very old Piwik installation, which still uses MyISAM tables.\nLearn here on how to update the database engine:\nhttps:\/\/matomo.org\/faq\/troubleshooting\/faq_25610\/<\/p>\n\n<p><strong>What are the settings for ...?<\/strong><\/p>\n\n<ul>\n<li><p>GitHub:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/github.com\/login\/oauth\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/github.com\/login\/oauth\/access_token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/api.github.com\/user<\/code><\/li>\n<li>Userinfo ID: <code>id<\/code><\/li>\n<li>OAuth Scopes: <code>&lt;EMPTY&gt;<\/code><\/li>\n<\/ul><\/li>\n<li><p>Auth0:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/oauth\/token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Keycloak:<\/p>\n\n<ul>\n<li>Authorize URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/auth<\/code><\/li>\n<li>Token URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/token<\/code><\/li>\n<li>Userinfo URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/userinfo<\/code><\/li>\n<li>Logout URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/logout?redirect_uri=&lt;MATOMO_URL&gt;<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Gitlab (self-hosted Community Edition 12.6.2):<\/p>\n\n<ul>\n<li>Authorize URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/authorize<\/code><\/li>\n<li>Token URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/token<\/code><\/li>\n<li>Userinfo URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Unikname Connect:<\/p>\n\n<ul>\n<li>Name: <code>Connect with your private @unikname<\/code><\/li>\n<li>Authorize URL: <code>https:\/\/connect.unikname.com\/oidc\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/connect.unikname.com\/oidc\/accessToken<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/connect.unikname.com\/oidc\/profile<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Microsoft Azure AD<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/login.microsoftonline.com\/&lt;TENANT_ID&gt;\/oauth2\/v2.0\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/login.microsoftonline.com\/&lt;TENANT_ID&gt;\/oauth2\/v2.0\/token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/graph.microsoft.com\/oidc\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<\/ul>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>4.1.2<\/h3>\n\n<ul>\n<li>Fix disabling OIDC for superusers not having any effect (#68).<\/li>\n<\/ul>\n\n<h3>4.1.1<\/h3>\n\n<ul>\n<li>Hotfix warning about session variable not being set when signing in with username\/password.<\/li>\n<\/ul>\n\n<h3>4.1.0<\/h3>\n\n<ul>\n<li>Add option to skip password confirmation requests when user has signed in via LoginOIDC (requires Matomo &gt;4.12.0) (#72).<\/li>\n<li>Add option to automatically link existing users when IdP user id matches Matomos user id (#44).<\/li>\n<li>Fix logout redirect (#64).<\/li>\n<li>Improve db table creation (#31).<\/li>\n<\/ul>\n\n<h3>4.0.0<\/h3>\n\n<ul>\n<li>Prepare plugin for Matomo 4.<\/li>\n<li>Linking accounts has been moved to the users security settings.<\/li>\n<\/ul>\n\n<h3>3.0.1<\/h3>\n\n<ul>\n<li>Hotfix saving plugin system settings with empty domain whitelist (#34).<\/li>\n<\/ul>\n\n<h3>3.0.0<\/h3>\n\n<ul>\n<li>Align version number with Matomo major release version.<\/li>\n<li>Support embedding login button on third-party sites.<\/li>\n<li>Restrict account creation to specified domains.<\/li>\n<li>Support <a href=\"https:\/\/openid.net\/specs\/openid-connect-session-1_0-17.html#RPLogout\">OIDC Logout URLs<\/a>.<\/li>\n<li>Support Matomos regular password verification (currently requires modification of plugins\/Login\/templates\/confirmPassword.twig)<\/li>\n<\/ul>\n\n<h3>0.1.5<\/h3>\n\n<ul>\n<li>Add option to bypass second factor when sign in with OIDC.<\/li>\n<\/ul>\n\n<h3>0.1.4<\/h3>\n\n<ul>\n<li>Add option to automatically create unknown users.<\/li>\n<\/ul>\n\n<h3>0.1.3<\/h3>\n\n<ul>\n<li>Add an option to override the redirect URI.<\/li>\n<\/ul>\n\n<h3>0.1.2<\/h3>\n\n<ul>\n<li>Fix oauth flow for <a href=\"https:\/\/github.com\/keycloak\/keycloak\">Keycloak<\/a>.<\/li>\n<li>Improve FAQ.<\/li>\n<\/ul>\n\n<h3>0.1.1<\/h3>\n\n<ul>\n<li>Lowered the required Matomo version for this plugin.<\/li>\n<\/ul>\n\n<h3>0.1.0<\/h3>\n\n<ul>\n<li>Initial version.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/LoginOIDC\/download\/5.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LoginOIDC\/changelog"},"consumer":{"license":null}},{"name":"LoginRevokable","displayName":"Login Revokable","owner":"torosian","description":"An Authentication plugin that allows a user to log into multiple locations, however remotely logs out of all locations when any of the locations log o.","homepage":"https:\/\/github.com\/torosian\/LoginRevokable","createdDateTime":"2015-03-06 16:52:03","donate":{},"support":[],"isTheme":false,"keywords":["login","authentication","Remote","Logout"],"basePrice":0,"authors":[{"name":"Bryan Torosian","email":"bryan@torosian.me","homepage":"https:\/\/github.com\/torosian\/LoginRevokable"}],"repositoryUrl":"https:\/\/github.com\/torosian\/LoginRevokable","lastUpdated":"2015-03-06 16:52:03","latestVersion":"0.1.4","numDownloads":7955,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"10","numContributors":"1","lastCommitDate":"2015-03-09 18:52:53"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.4","release":"2015-03-06 16:52:03","requires":{"piwik":">=2.11.2-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7955,"license":{"name":"GPL","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/torosian\/LoginRevokable\/commits\/0.1.4","readmeHtml":{"description":"\n\n<p>A plugin for Matomo (Piwik) that allows multiple logins by the same user, but remotely terminates sessions when any of them log out. This replaces the existing core Login plugin.<\/p>\n\n","faq":"","documentation":"","changelog":"<p>Initial Commit, adding first version<\/p>"},"download":"\/api\/2.0\/plugins\/LoginRevokable\/download\/0.1.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LoginRevokable\/changelog"},"consumer":{"license":null}},{"name":"LoginSaml","displayName":"Login SAML","owner":"matomo-org","description":"Provides SAML-based Single Sign-On (SSO) support for Matomo. Works with any Identity Provider (IdP) such as OneLogin, Microsoft Entra ID, Google, and Salesforce. Try now for free.","homepage":"https:\/\/plugins.matomo.org\/LoginSaml","createdDateTime":"2017-08-01 04:14:17","donate":{},"support":[],"isTheme":false,"keywords":["authentication","sso","google","saml","ADFS","OneLogin","Okta","Ping Identity","Salesforce","SharePoint","Just-in-time provisioning","Microsoft Entra ID"],"basePrice":550,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-22 03:06:30","latestVersion":"5.5.10","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/access_sp_metadata.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/advanced_settings.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/attribute_mapping_settings_form.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/attribute_sync_settings.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/enable_saml_saved.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/idenity_provider_settings.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/import_idp_metadata.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/LoginSaml_Admin_admin_page.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/LoginSaml_Admin_import_page.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/LoginSaml_Admin_metadata_page.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/LoginSaml_login_page.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/login_saml_menu_item.png","https:\/\/plugins.matomo.org\/LoginSaml\/images\/5.5.10\/saml_status.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/LoginSaml.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/LoginSaml","variations":[{"product_variation_id":130492,"price":"2219","prettyPrice":"2219EUR","currency":"EUR","period":"year","name":"Unlimited users.","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=4803&variation_id=130492&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=4803&variation_id=130492","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-loginsaml\/?attribute_type=Unlimited+users.&add-to-cart=4803&variation_id=130492&aelia_cs_currency=EUR"},{"product_variation_id":130492,"price":"2669","prettyPrice":"USD2669","currency":"USD","period":"year","name":"Unlimited users.","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=4803&variation_id=130492&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=4803&variation_id=130492","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-loginsaml\/?attribute_type=Unlimited+users.&add-to-cart=4803&variation_id=130492&aelia_cs_currency=USD","cheapest":true}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-loginsaml\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"5.00","ratingCount":1,"reviewCount":1}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["security"],"promotions":{},"versions":[{"name":"5.5.10","release":"2026-10-22 03:06:30","requires":{"php":">=7.3.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/LoginSaml\/5.5.10\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Unify access control and bolster security with SAML (Security Assertion Markup Language) support for Matomo, seamlessly integrating with Identity Providers like OneLogin, Okta, Ping Identity, ADFS, Google, Salesforce, and SharePoint.<\/p>\n\n<p>Managing multiple access controls can be a chaotic task, leaving potential gaps in your security. Without a unified system, you risk inconsistent permissions and unintended exposures.<\/p>\n\n<p>Seamlessly integrate SAML support into Matomo, unifying your access controls and eliminating inconsistent permissions. Centralise your management and bolster your security, reducing risks of unintended exposures.<\/p>\n\n<h3>How Login SAML Works<\/h3>\n\n<h4>Enjoy A Hassle-Free IdP Configuration<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Elevate your platform's user experience with our intuitive SAML setup. Seamlessly bridge Matomo with your Identity Provider, enabling robust single sign-on (SSO) capabilities and a fortified security landscape in just a few clicks.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/LoginSaml\/image1.jpg\" style=\"margin-left:24px;\" alt=\"Enjoy A Hassle-Free IdP Configuration\" \/>\n<\/div>\n<\/div>\n\n<h4>Streamline Account Creation and Access Management<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Use Just-in-time Provisioning to create user profiles automatically and provide a frictionless onboarding process. Pre-define the sites new users can view and choose when users can seamlessly log out from all connected sessions at once.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/LoginSaml\/image2.jpg\" style=\"margin-left:24px;\" alt=\"Streamline Account Creation and Access Management\" \/>\n<\/div>\n<\/div>\n\n<h4>Map User Attributes Seamlessly<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Combine user identification and email mapping for a more unified and streamlined user management experience. <\/p>\n<p>The Login SAML plugin ensures that each user's identity is correctly associated with their username and email, enhancing accuracy and paving the way for tailored engagement strategies across various platforms.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/LoginSaml\/image3.png\" style=\"margin-left:24px;\" alt=\"Map User Attributes Seamlessly\" \/>\n<\/div>\n<\/div>\n\n<h4>Harness Full Control with Access Synchronisation<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Assume complete control over user access levels by molding them according to your distinct SAML attributes. Enhance each user's experience by meticulously segmenting server information using precise delimiters.<\/p>\n<p>Give every Matomo instance its own unique identifier, ensuring effortless identification and management.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/LoginSaml\/image4.png\" style=\"margin-left:24px;\" alt=\"Harness Full Control with Access Synchronisation\" \/>\n<\/div>\n<\/div>\n\n<h4>Secure, Customise, and Troubleshoot with Ease<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Delve into Matomo's advanced SAML settings to bolster your data security. Activate 'strict mode' to ensure that only authenticated messages are processed. Tailor user identification by selecting the ideal NameID format. Use debug mode to identify and resolve problems swiftly.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/LoginSaml\/image5.png\" style=\"margin-left:24px;\" alt=\"Secure, Customise, and Troubleshoot with Ease\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Login SAML Today<\/h3>\n\n<p>Harness the power of Matomo's advanced SAML configurations, tailored just for you. Elevate your security, refine user access, and navigate challenges with clarity.<\/p>\n\n<p>Start your 30-day free trial today and unlock a new standard of digital security.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>SP-initiaited and IdP initiaited Single Sign On<\/li>\n<li>SP-initiaited and IdP initiaited Single Log Out<\/li>\n<li>Just-in-time provisioning<\/li>\n<li>Support attribute mapping<\/li>\n<li>Access synchronization based on data provided by Identity Provider<\/li>\n<li>Interoperate with any SAML Identity Provider<\/li>\n<li>Support SAML signature and encryption<\/li>\n<\/ul>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>5.5.10 - 2026-10-22\n- Fixed the redirect after SAML login so that URLs which could be resolved by browsers to a different host are no longer followed\n- Fixed the Single Logout Service redirecting to the RelayState without validation when no IdP SLO URL is configured<\/p>\n\n<p>5.5.9 - 2026-10-19\n- Fixed the prevent-password-login enforcement so it can no longer be skipped via a request parameter; the SAML login requirement is now determined from the authenticated SAML flow<\/p>\n\n<p>5.5.8\n- Fixed the SAML instance identifier comparison, so an access value naming a different Matomo instance is no longer applied to this one<\/p>\n\n<p>5.5.7\n- Fixed the login and email comparison so that values the database collation treats as equal, but which belong to a different user, are no longer accepted<\/p>\n\n<p>5.5.6 - 2026-08-24\n- Added strict comparison of login username<\/p>\n\n<p>5.5.5 - 2026-08-17\n- Updated the SSO login button to use the outline button style, so it follows the theme colours<\/p>\n\n<p>5.5.4 - 2026-08-10\n- Updated marketplace images<br \/>\n- Added code to check userLogin with logged-in use during re-auth<\/p>\n\n<p>5.5.3 - 2026-06-22\n- Added code to fix 2FA activation resulting in a verification loop due to recent core changes<\/p>\n\n<p>5.5.2 - 2026-05-14\n- Upgrade php-saml to 4.3.2 which uses xmlseclibs 3.1.5 due CVE-2026-32313 \n- Added code to always ask for password confirmation if setting enabled<\/p>\n\n<p>5.5.1 - 2026-05-11\n- Update core version check<\/p>\n\n<p>5.5.0 - 2026-05-11\n- Extend password confirmation box to add re-authentication via sso button, to ensure password confirmation box works for SAML\n- Added code to clear access before synchronization<\/p>\n\n<p>5.4.7 - 2026-04-27\n- Added code to sanitize errorMessage before display\n- Updated API documentation<\/p>\n\n<p>5.4.6 - 2026-04-13\n- Added more restrictive check in getSuperUserAccessFromSuperUserAttribute to determine superuser access\n- Added code to redirect to RelayState url only if it is a local URL<\/p>\n\n<p>5.4.5 - 2026-03-30\n- Fixes unable to set language if logged-in via SSO and field to identify is set as email<\/p>\n\n<p>5.4.4 - 2026-02-02\n- Updated API documentation PHPDoc blocks\n- Destroy all sessions when plugin is deactivated or saml is disabled via settings<\/p>\n\n<p>5.4.3 - 2026-01-05\n- Updated screenshots<\/p>\n\n<p>5.4.2 - 2025-12-09\n- Updated php-saml to 4.3.1<\/p>\n\n<p>5.4.1 - 2025-12-08\n- Updates screenshots to match the recent UI<\/p>\n\n<p>5.4.0 - 2025-11-24\n- Align create-app-tokenauth, password-reset, password-change and email-change with username\/password login auth\n  behavior: If user is not allowed to login via username\/password, this actions will now throw an exception.\n- Update default button text to \"Login with SSO\", and replace \"SAML Login\" with new default text<\/p>\n\n<p>5.3.6 - 2025-11-10\n- Update plugin description to mention SSO<\/p>\n\n<p>5.3.5 - 2025-08-18\n- Default to invite new users to login via SSO link, rather than set password.\n  Admins may choose to invite a user to set the password as before, on a case by\n  case basis.<\/p>\n\n<p>5.3.4 - 2025-07-07\n- Use SESSION_INFO_SESSION_VAR_NAME rather than hardcoded value<\/p>\n\n<p>5.3.3 - 2025-06-23\n- Improved the UI of the login page<\/p>\n\n<p>5.3.2 - 2025-05-12\n- Added an option to configure LoginSAML button text<\/p>\n\n<p>5.3.1 - 2025-05-12\n- We no longer enforce that users must use SSO when SSO is disabled, even if the \"Prevent normal login\nfor super users\" or \"Prevent normal login for non super users\" settings are enabled.<\/p>\n\n<p>5.3.0 - 2025-04-23\n- Added password confirmation, before saving any SAML settings<\/p>\n\n<p>5.2.3 - 2025-04-14\n- Improved error message displayed to users who must login via SAML, who have attempted to login via the normal \n  password system, if it's forbidden.<\/p>\n\n<p>5.2.2 - 2025-03-03\n- Improved force_saml check based on status<\/p>\n\n<p>5.2.1 - 2025-02-17\n- Fixed target parameter check<\/p>\n\n<p>5.2.0 - 2024-12-16\n- Add 2 new flags \"Prevent normal login for non super users\" and \"Prevent normal login for super users\"\n  and an exception list. When enabled, if a user matches the forced role and is not in the exception list\n  gonna be forced to use SAML, and the normal login form will fail.\n  There is a behavior change with respect to the previous LoginSAML versions, as previously,\n  if ForceSAML was enabled, we prevented super users from using the skip ForceSAML mechanism (normal mode login)\n  to use the normal login. Now, the \u201cPrevent normal login for super users\u201d needs to be enabled to\n  continue such behavior. Notice that by default, \u201cPrevent normal login for super users\u201d is now disabled.<\/p>\n\n<p>5.1.1 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.1.0 - 2024-10-15\n- Fixes normal login flow to work only for superusers\n- Added code to skip password confirmation for create token auth<\/p>\n\n<p>5.0.9 - 2024-09-09\n- Translated the login button text<\/p>\n\n<p>5.0.8 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.7\n- Added note explaining FriendlyName not working with some IDPs<\/p>\n\n<p>5.0.6\n- Added support for 2FA bypass when user logged via SAML<\/p>\n\n<p>5.0.5\n- Removed direct use of DI and Monolog dependencies<\/p>\n\n<p>5.0.4\n- Add support for write access permission\n- Support FriendlyName SAML attributes\n- Format certs before storing it on config file. Remove headers and extra spaces and lines\n- Added code to accept invitation if present during SAML SSO<\/p>\n\n<p>5.0.3\n- Updated README.md<\/p>\n\n<p>5.0.2\n- Disabled composer platform check<\/p>\n\n<p>5.0.1\n- Translation update<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.3.0\n- Added option to disable password confirmation.<\/p>\n\n<p>4.2.0\n- Migrate AngularJS code to Vue.<\/p>\n\n<p>4.1.2\n- Improved handling of request parameters<\/p>\n\n<p>4.1.1\n- Fixed deprecation warnings for PHP8.1.<\/p>\n\n<p>4.1.0\n- PHP 8.0 compatibility\n- Update php-saml to 4.X branch\n- Support a new setting: 'Retrieve Proxy Vars Parameters' that will enable in the plugin the ability to read real protocol and port from HTTP_X_FORWARDED_PORT and HTTP_X_FORWARDED_PROTO\n- Translation updates<\/p>\n\n<p>4.0.3\n- Remove alias setting as it is no longer needed<\/p>\n\n<p>4.0.2\n- Improve compatible with matomo &gt;=4.0.0<\/p>\n\n<p>4.0.1\n- Improve compatible with matomo &gt;=4.0.0<\/p>\n\n<p>4.0.0\n- Version compatible with matomo &gt;=4.0.0<\/p>\n\n<p>3.4.0\n- Support multiple x509cert from the IdP\n- Update php-saml dependency to 3.4.1<\/p>\n\n<p>3.3.2\n- When force SAML is enabled, A Super User should be able to reset its password\n- Allow customers to decide when session expires (Matomo settings or SAML SessionNotOnOrAfter value)\n- Be able to change user profile settings. There was an error raised even if email\/password was not changed on the view that prevented updating other user settings fields.\n- Update php-saml dependency to 3.2.1\n- Adds Dutch translations<\/p>\n\n<p>3.3.1\n- Fix issue w\/ setting initial websites with view access for new users when trying to login w\/ existing user.<\/p>\n\n<p>3.3.0\n- Compatibility with PHP 7.2 and PHP 7.3\n- Fix issue with Just-in-time provisioning of users and assigning 'Initial Websites With View Access For New Users' when 'Access Synchronization Settings' is disabled or access data could not be retrieved from SAML attributes\n- Allow using <code>?normal<\/code> URL query parameter (to force standard login screen) even when ForceSAML is enabled\n- When logging in, redirect to the URL that was requested before login\n- New diagnostics checking that openssl PHP extension is activated\n- When importing new metadata, old metadata is now removed\n- Whenever an error occurs during SAML process, the error message is now displayed to the user\n- Single Log Out (SLO) was not always working\n- Updated translations<\/p>\n\n<p>3.2.2\n- Updated translations<\/p>\n\n<p>3.2.0\n- Add new feature to force SAML authentication. You can now force users to use SAML authentication by enabling the \u201cForce SAML Login\u201d setting. Doing this will redirect all users directly to the Identity Provider, so the Matomo login screen will never be displayed. Super Users will still have to login normally to, for example, configure the SAML plugin. Super Users can login through the Matomo login screen by appending ?normal to the URL when visiting Matomo. (Note: other users will not be able to login this way.)<\/p>\n\n<p>3.1.0\n- Compatibility with Matomo 3.6.0<\/p>\n\n<p>3.0.3\n - Fixed issue with SAML redirect URLs using HTTP instead of HTTPS when Matomo is setup behind a <a href=\"http:\/\/piwik.org\/faq\/how-to-install\/faq_98\/\">reverse proxy<\/a>.<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/LoginSaml\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"LoginShibboleth","displayName":"Login Shibboleth","owner":"uniwue-rz","description":"Shibboleth Login Plugin for Matomo (Piwik).","homepage":"https:\/\/github.com\/uniwue-rz\/LoginShibboleth","createdDateTime":"2016-10-20 08:50:04","donate":{},"support":[],"isTheme":false,"keywords":["login","authentication","active","directory","shibboleth","singlelogon"],"basePrice":0,"authors":[{"name":"Pouyan Azari","email":"Pouyan.azari@uni-wuerzburg.de","homepage":"http:\/\/www.rz.uni-wuerzburg.de\/wir\/mitarbeiter\/web_services\/azari_pouyan\/"}],"repositoryUrl":"https:\/\/github.com\/uniwue-rz\/LoginShibboleth","lastUpdated":"2017-11-24 09:40:05","latestVersion":"1.2.0","numDownloads":7469,"screenshots":["https:\/\/plugins.matomo.org\/LoginShibboleth\/images\/1.2.0\/screenshots.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"3","numContributors":"1","lastCommitDate":"2023-02-20 13:01:07"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.1.9","release":"2016-10-20 08:50:04","requires":{"piwik":">=2.2.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":59,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/LoginShibboleth\/1.1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/uniwue-rz\/LoginShibboleth\/commits\/1.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginShibboleth\/download\/1.1.9"},{"name":"1.1.10","release":"2016-10-20 09:06:03","requires":{"piwik":">=2.2.0,<4.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/LoginShibboleth\/1.1.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/uniwue-rz\/LoginShibboleth\/commits\/1.1.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginShibboleth\/download\/1.1.10"},{"name":"1.1.12","release":"2016-10-20 13:56:03","requires":{"piwik":">=2.2.0,<4.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":38,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/LoginShibboleth\/1.1.12\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/uniwue-rz\/LoginShibboleth\/commits\/1.1.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginShibboleth\/download\/1.1.12"},{"name":"1.1.13","release":"2016-10-21 13:44:03","requires":{"piwik":">=2.2.0,<4.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2357,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/LoginShibboleth\/1.1.13\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/uniwue-rz\/LoginShibboleth\/commits\/1.1.13","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginShibboleth\/download\/1.1.13"},{"name":"1.2.0","release":"2017-11-24 09:40:05","requires":{"piwik":">=3.0.0,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4999,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/LoginShibboleth\/1.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/uniwue-rz\/LoginShibboleth\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/LoginShibboleth\/download\/1.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LoginShibboleth\/changelog"},"consumer":{"license":null}},{"name":"LoginTokenAuth","displayName":"Login Token Auth","owner":"HD-CMS","description":"Sign in to Matomo over api using the Users token_auth.","homepage":"https:\/\/www.hd-cms.de","createdDateTime":"2018-12-30 18:38:03","donate":{},"support":[{"name":"Email","key":"email","value":"support@hd-cms.de","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/HD-CMS\/matomo-plugin-LoginTokenAuth\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/HD-CMS\/matomo-plugin-LoginTokenAuth","type":"url"}],"isTheme":false,"keywords":["login","authentication","tokenAuth"],"basePrice":0,"authors":[{"name":"Dennis Hemeier","email":"support@hd-cms.de","homepage":"https:\/\/www.hd-cms.de"}],"repositoryUrl":"https:\/\/github.com\/HD-CMS\/matomo-plugin-LoginTokenAuth","lastUpdated":"2024-06-27 10:10:02","latestVersion":"5.0.0","numDownloads":22196,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"8","numContributors":"1","lastCommitDate":"2024-06-27 10:08:34"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"3.0.0","release":"2018-12-30 18:38:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2708,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/HD-CMS\/matomo-plugin-LoginTokenAuth\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginTokenAuth\/download\/3.0.0"},{"name":"4.0.0","release":"2020-11-25 16:32:02","requires":{"piwik":">=3.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8971,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/HD-CMS\/matomo-plugin-LoginTokenAuth\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LoginTokenAuth\/download\/4.0.0"},{"name":"5.0.0","release":"2024-06-27 10:10:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10517,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/HD-CMS\/matomo-plugin-LoginTokenAuth\/commits\/5.0.0","readmeHtml":{"description":"\n\n<p>The LoginTokenAuth plugin enhances the standard Matomo authentication system by enabling <code>token_auth<\/code> based login.<\/p>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ol>\n<li><p><strong>Log In as Super User<\/strong><\/p>\n\n<ul>\n<li>Access your Matomo account as a Super User.<\/li>\n<li>Navigate to the Settings section.<\/li>\n<li>Click on Marketplace.<\/li>\n<\/ul><\/li>\n<li><p><strong>Install and Activate the Plugin<\/strong><\/p>\n\n<ul>\n<li>Search for the LoginTokenAuth plugin.<\/li>\n<li>Install the plugin.<\/li>\n<li>After installation, click Activate.<\/li>\n<\/ul><\/li>\n<li><p><strong>Use the logme Method for Login<\/strong><\/p>\n\n<ul>\n<li><p>To log in using the token, use the following URL format:<\/p>\n\n<p><code>https:\/\/matomo.example.com\/index.php?module=LoginTokenAuth&amp;action=logme&amp;token_auth=YOUR_TOKEN_STRING<\/code><\/p><\/li>\n<li><p>TokenAuth login is available for all users except Super Users.<\/p><\/li>\n<li>You can include any parameters that are allowed by the default <code>logme<\/code> method of the standard Matomo Login Plugin.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h2>Creating a Token<\/h2>\n\n<p>You can create a token by either:\n1. Navigating to the user\u2019s security page within Matomo.\n2. Using the Matomo API to generate the token.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li><p>5.0 - Update for Matomo 5.x<\/p>\n\n<ul>\n<li>Compatibility with Matomo 5.0<\/li>\n<li>Improved documentation<\/li>\n<\/ul><\/li>\n<li><p>4.0 - Update for Matomo 4.x<\/p>\n\n<ul>\n<li>Compatibility with Matomo 4.0<\/li>\n<\/ul><\/li>\n<li><p>3.0 - First public release<\/p>\n\n<ul>\n<li>Compatibility with Matomo 3.0<\/li>\n<\/ul><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/LoginTokenAuth\/download\/5.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LoginTokenAuth\/changelog"},"consumer":{"license":null}},{"name":"LogViewer","displayName":"Log Viewer","owner":"matomo-org","description":"View log messages logged by Matomo.","homepage":"https:\/\/matomo.org","createdDateTime":"2015-09-22 09:26:18","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-LogViewer","type":"url"}],"isTheme":false,"keywords":["debug","log","viewer","diagnostic","debugging"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer","lastUpdated":"2026-10-12 07:00:05","latestVersion":"6.0.2","numDownloads":128990,"screenshots":["https:\/\/plugins.matomo.org\/LogViewer\/images\/6.0.2\/LogViewer.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/LogViewer.png","previews":[],"activity":{"numCommits":"264","numContributors":"32","lastCommitDate":"2026-10-21 06:42:30"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"database","categories":["development"],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-09-22 09:26:18","requires":{"piwik":">=2.15.0-b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":172,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/0.1.0"},{"name":"0.1.1","release":"2015-10-02 11:18:04","requires":{"piwik":">=2.15.0-b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":220,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/0.1.1"},{"name":"0.2.0","release":"2015-10-21 23:28:03","requires":{"piwik":">=2.15.0-rc4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3541,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/0.2.0"},{"name":"3.0.0","release":"2016-09-13 22:16:05","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":490,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/3.0.0"},{"name":"0.2.1","release":"2016-10-06 02:04:03","requires":{"piwik":">=2.15.0-rc4,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1777,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/0.2.1"},{"name":"3.0.1","release":"2016-11-21 20:48:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5618,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/3.0.1"},{"name":"3.0.2","release":"2017-07-10 09:14:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5554,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/3.0.2"},{"name":"3.0.3","release":"2018-06-18 10:34:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6799,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/3.0.3"},{"name":"3.0.4","release":"2019-04-01 07:48:04","requires":{"piwik":">=3.0.0-dev,<4.0.0-dev"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10455,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/3.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/3.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/3.0.4"},{"name":"4.0.0","release":"2020-07-29 07:22:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":935,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:22:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7826,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/4.0.1"},{"name":"4.1.0","release":"2022-04-26 03:12:07","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2712,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/4.1.0"},{"name":"4.1.1","release":"2022-08-01 07:52:03","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8185,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/4.1.1"},{"name":"5.0.0","release":"2023-05-04 03:04:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":76,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/5.0.0"},{"name":"4.1.2","release":"2023-07-17 07:18:04","requires":{"matomo":">=4.10.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13954,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/4.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/4.1.2"},{"name":"5.0.1","release":"2023-09-11 08:52:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8023,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/5.0.1"},{"name":"5.0.2","release":"2024-04-22 06:56:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19291,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/5.0.2"},{"name":"5.0.3","release":"2025-03-17 01:32:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6205,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/5.0.3"},{"name":"5.0.4","release":"2025-07-07 10:18:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11239,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/5.0.4"},{"name":"5.0.5","release":"2026-03-02 04:36:09","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4881,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/5.0.5"},{"name":"5.0.6","release":"2026-04-27 04:54:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10758,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/5.0.6"},{"name":"6.0.0","release":"2026-08-24 06:28:28","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":105,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/6.0.0"},{"name":"6.0.1","release":"2026-09-14 06:32:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":98,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/6.0.1"},{"name":"6.0.2","release":"2026-10-12 07:00:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":76,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/LogViewer\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-LogViewer\/commits\/6.0.2","readmeHtml":{"description":"\n\n<p>View log messages that were logged by Matomo via the Matomo UI or HTTP Reporting API.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>I want to see more than 100 log messages, is it possible?<\/strong><\/p>\n\n<p>Yes, there is a <code>limit<\/code> URL parameter that you can change to any number.<\/p>\n\n<p><strong>Can I use regular expressions in the search field?<\/strong><\/p>\n\n<p>Yes, you can enable regular expressions next to the search field.<\/p>\n\n<p><strong>Is the search field case insensitive?<\/strong><\/p>\n\n<p>Yes.<\/p>\n\n<p><strong>How is a Matomo log line formatted by default?<\/strong><\/p>\n\n<p><code>'$severity $tag[$datetime] [$requestId] $message<\/code> eg <code>WARNING Piwik\\Common[2015-01-01 01:02:03] [cf27] The log message<\/code><\/p>\n\n<p><strong>Is the search pattern applied to the whole log line?<\/strong><\/p>\n\n<p>Yes, this means a search for <code>WARNING Piwik\\Common<\/code> would deliver you all warnings triggered by <code>Piwik\\Common<\/code>.<\/p>\n\n<p><strong>How do I find all messages that belong to a certain request?<\/strong><\/p>\n\n<p>Each log message shows a \"Request Id\". By clicking on this Id it selects all log messages of the same request.\nAlternatively you can search for the expression <code>\\[1234\\]<\/code> where <code>1234<\/code> need to be replaced by a Request Id.<\/p>\n\n<p><strong>How do I find messages that belong to the same day?<\/strong><\/p>\n\n<p>Either click on a date field or search for it, eg <code>2012-12-12<\/code>.<\/p>\n\n<p><strong>What are the known issues?<\/strong><\/p>\n\n<ul>\n<li>If there are messages being logged while viewing the log messages, the paging might not work 100% correctly.<\/li>\n<li>There seems to be a problem when searching for a single quotation mark \"'\".<\/li>\n<\/ul>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>6.0.2 - 2026-10-19 Aligned the Log Viewer search field with the controls beside it<\/li>\n<li>6.0.1 - 2026-09-14 Fixed the loading indicator showing as a white box in dark mode<\/li>\n<li>6.0.0 - 2026-08-09 Compatibility with Matomo 6<\/li>\n<li>5.0.6 - 2026-04-27 Updated API documentation<\/li>\n<li>5.0.5 - 2026-03-02 Updated API documentation<\/li>\n<li>5.0.4 - 2025-07-07 Textual changes<\/li>\n<li>5.0.3 Added support for JSON<\/li>\n<li>5.0.2 Added plugin category for Marketplace<\/li>\n<li>5.0.1 Prefer using ellipsis over three dots<\/li>\n<li>5.0.0 Compatibility with Matomo 5.0<\/li>\n<li>4.1.2 PHP 8.2 Deprecation warnings handled<\/li>\n<li>4.1.1 Translation changes<\/li>\n<li>4.1.0 Migrate angularjs to Vue.<\/li>\n<li>4.0.1 Compatibility with Matomo 4.0<\/li>\n<li>4.0.0 Compatibility with Matomo 4.0<\/li>\n<li>3.0.0 Compatibility with Piwik 3.0<\/li>\n<li>0.2.0 Compatibility w\/ Piwik 2.15.<\/li>\n<li>0.1.1 Fix for IE8<\/li>\n<li>0.1.0 Initial Release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/LogViewer\/download\/6.0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/LogViewer\/changelog"},"consumer":{"license":null}},{"name":"MarketingCampaignsReporting","displayName":"Marketing Campaigns Reporting","owner":"matomo-org","description":"Measure the effectiveness of your marketing campaigns. New reports, segments & track up to five channels: campaign, source, medium, keyword, content.","homepage":"https:\/\/matomo.org","createdDateTime":"2017-03-16 00:16:03","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting","type":"url"}],"isTheme":false,"keywords":["Campaign","Marketing","Channels","UTM tags"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting","lastUpdated":"2026-10-05 03:58:13","latestVersion":"6.0.1","numDownloads":696057,"screenshots":["https:\/\/plugins.matomo.org\/","https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/images\/6.0.1\/Marketing-Campaign-Analytics-report.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/MarketingCampaignsReporting.png","previews":[],"activity":{"numCommits":"476","numContributors":"46","lastCommitDate":"2026-10-21 13:01:10"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"3.0.0","release":"2017-03-16 00:16:04","requires":{"piwik":">=3.0.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":49,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/3.0.0"},{"name":"3.0.1","release":"2017-03-16 16:48:04","requires":{"piwik":">=3.0.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":24,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/3.0.1"},{"name":"3.0.2","release":"2017-03-16 22:22:04","requires":{"piwik":">=3.0.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2157,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/3.0.2"},{"name":"3.1.0","release":"2017-09-05 17:00:05","requires":{"piwik":">=3.1.0-rc1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5766,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/3.1.0"},{"name":"3.1.1","release":"2018-06-18 10:18:04","requires":{"piwik":">=3.1.0-rc1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16737,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/3.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/3.1.1"},{"name":"4.0.0","release":"2020-07-29 08:12:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":564,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/4.0.0"},{"name":"4.0.1","release":"2020-09-03 01:54:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":493,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/4.0.1"},{"name":"4.0.2","release":"2020-11-02 20:10:07","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":42,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/4.0.2"},{"name":"4.0.3","release":"2020-11-03 20:42:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":56,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/4.0.3"},{"name":"4.0.4","release":"2020-11-10 19:12:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8187,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/4.0.4"},{"name":"4.1.1","release":"2021-11-15 07:40:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8079,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/4.1.1"},{"name":"4.1.3","release":"2022-08-01 08:00:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":185202,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/4.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/4.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/4.1.3"},{"name":"5.0.0","release":"2023-05-05 00:46:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":391,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.0.0"},{"name":"5.0.1","release":"2023-08-08 22:34:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":174,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.0.1"},{"name":"5.0.2","release":"2023-10-09 08:36:04","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21143,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.0.2"},{"name":"5.0.3","release":"2024-04-08 04:04:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2870,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.0.3"},{"name":"5.0.4","release":"2024-04-22 06:58:03","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":271185,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.0.4"},{"name":"5.1.0","release":"2024-12-16 05:06:03","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8956,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.1.0"},{"name":"5.1.1","release":"2025-01-15 04:06:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":40056,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.1.1"},{"name":"5.1.2","release":"2025-07-21 07:26:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10979,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.1.2"},{"name":"5.1.3","release":"2025-10-12 20:34:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7103,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.1.3"},{"name":"5.1.4","release":"2025-11-10 04:28:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1057,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.1.4"},{"name":"5.1.5","release":"2025-11-11 13:44:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":24237,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.1.5"},{"name":"5.1.6","release":"2026-03-02 04:38:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17589,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.1.6"},{"name":"5.1.7","release":"2026-04-27 04:54:09","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10297,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.1.7"},{"name":"5.2.0","release":"2026-05-11 05:06:05","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5363,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.2.0"},{"name":"5.2.1","release":"2026-05-26 00:10:06","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4820,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.2.1"},{"name":"5.2.2","release":"2026-06-11 02:32:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":34101,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.2.2"},{"name":"6.0.0","release":"2026-08-24 06:28:45","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2858,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/6.0.0"},{"name":"5.2.3","release":"2026-10-05 03:58:05","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4557,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/5.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/5.2.3"},{"name":"6.0.1","release":"2026-10-05 03:58:13","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":965,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MarketingCampaignsReporting\/commits\/6.0.1","readmeHtml":{"description":"\n\n<p>Measure the effectiveness of your marketing campaigns. \nMeasure up to five of your marketing campaigns channels: name, source, medium, keyword, content. \nAccess all your campaign analytics reports into a unified interface and track the effectiveness of all your channels.\nSupports any kind of campaign and channel: Adwords, Facebook, Twitter, Youtube, Display advertising, Custom Marketing campaigns, Email newsletters.<\/p>\n\n<h3>The Marketing URL Builder<\/h3>\n\n<p><a href=\"https:\/\/matomo.org\/docs\/tracking-campaigns-url-builder\/\">Generate your trackable marketing URLs with our URL Builder tool.<\/a><\/p>\n\n<h3>Tracking campaigns<\/h3>\n\n<p>To track a campaign, you add special URL parameters to your URLs.<\/p>\n\n<p>The URL parameters are:<\/p>\n\n<ul>\n<li><code>mtm_campaign<\/code> (campaign name such as mailing_2017_03 or Easter_Sale),<\/li>\n<li><code>mtm_source<\/code> (campaign source such as google or facebook),<\/li>\n<li><code>mtm_medium<\/code> (campaign medium such as email or cpc),<\/li>\n<li><code>mtm_keyword<\/code> (campaign keyword),<\/li>\n<li><code>mtm_content<\/code> (campaign content),<\/li>\n<li><code>mtm_cid<\/code> (campaign ID code).<\/li>\n<li><code>mtm_group<\/code> (campaign group).<\/li>\n<li><code>mtm_placement<\/code> (campaign placement).<\/li>\n<\/ul>\n\n<p>If you already have URLs tagged with Google Analytics parameters these are also supported:<\/p>\n\n<ul>\n<li><code>utm_campaign<\/code>,<\/li>\n<li><code>utm_source<\/code>,<\/li>\n<li><code>utm_medium<\/code>,<\/li>\n<li><code>utm_term<\/code>,<\/li>\n<li><code>utm_content<\/code>,<\/li>\n<li><code>utm_id<\/code>.<\/li>\n<\/ul>\n\n<p>For example if your Ad URL or landing page URL is <code>example.com\/offer<\/code>, you would track all clicks on this URL by \nadding one or more of the parameters above:<\/p>\n\n<pre><code>example.com\/offer?mtm_campaign=Best-Seller&amp;mtm_source=Newsletter_7&amp;mtm_medium=email\n<\/code><\/pre>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Real time Analytics Reports of all your Campaign Marketing.<\/li>\n<li>Detects Campaign parameters from the landing page URL, within the query string or in the #hash string.<\/li>\n<li>The Referrers&gt;Overview report displays a left column \"Referrers Overview\" with a list of reports that can be loaded on click.\nThis report viewer now also lists the new Campaign reports under \"View Referrers by Campaign\".<\/li>\n<li>The content of Referrers&gt; Campaign will be replaced with the new enhanced Campaigns reports.<\/li>\n<li>The default Referrers Campaign widget and API are working as before.<\/li>\n<li>The campaign reports are available in Matomo Mobile and can be sent as Scheduled reports (by email, as HTML or PDF).<\/li>\n<li>Segment editor: a new \"Campaigns\" category lists the five new segment for each campaign dimension (campaign name, campaign keyword, campaign source, campaign medium, campaign content).<\/li>\n<li>Add Marketing campaign reports to your personalized Dashboard.<\/li>\n<li>Access the Campaign Report data with the Marketing Campaigns Reporting API.<\/li>\n<li>Will track up to 250 characters for each of the five Campaign dimension.<\/li>\n<li>Get automatic <a href=\"https:\/\/matomo.org\/docs\/email-reports\/\">email and sms reports<\/a> for your campaigns, or send them to your colleagues or customers.<\/li>\n<\/ul>\n\n<h3>Reports for more than 1,000 campaigns<\/h3>\n\n<p>In the Campaign reports by default Matomo will only archive the first 1000 rows (your 1000 most popular campaigns). \nTo report on all your campaigns you can configure Matomo so it does not truncate your data. \nFor example to keep the top 10,000 campaigns edit your <code>config\/config.ini.php<\/code> and add the following:<\/p>\n\n<pre><code>[General]\ndatatable_archiving_maximum_rows_referrers = 10000\ndatatable_archiving_maximum_rows_subtable_referrers = 10000\n<\/code><\/pre>\n\n<h3>Customising your campaign parameters<\/h3>\n\n<p>It is possible to configure custom names for campaign parameters. In order to do so you have add config to config.ini.php file.\nIf you configure any campaign parameter this configuration will overwrite default config for this parameter.<\/p>\n\n<pre><code>[MarketingCampaignsReporting]\ncampaign_name = \"matomo_campaign,mtm_cpn,utm_campaign\"\ncampaign_keyword = \"mtm_keyword,matomo_kwd,mtm_kwd,utm_term\"\ncampaign_source = \"mtm_source,utm_source\"\ncampaign_medium = \"mtm_medium,utm_medium\"\ncampaign_content = \"mtm_content,utm_content\"\ncampaign_id = \"mtm_cid,utm_id,mtm_clid\"\ncampaign_group = \"mtm_group\"\ncampaign_placement = \"mtm_placement\"\n<\/code><\/pre>\n\n<p>For example, by default parameter <code>campaign_name<\/code> track following parameters if they are found in URL: <code>'mtm_campaign', 'matomo_campaign', 'mtm_cpn', 'utm_campaign'<\/code>. If you configure <code>campaign_name<\/code> like this <code>campaign_name=\"mtm_campaign,custom_name_parameter\"<\/code>, then parameter <code>campaign_name<\/code> will detect only presence of <code>mtm_campaign<\/code> and <code>custom_name_parameter<\/code> in URL. <code>matomo_campaign<\/code>, <code>mtm_cpn<\/code>, <code>utm_campaign<\/code> will be ignored until they are present in config.<\/p>\n\n<p>All parameter keys are case\u2011sensitive. For example, if you set <code>campaign_group = \"mtm_group\"<\/code>, it will match only <code>mtm_group<\/code>, not <code>MTM_GROUP<\/code>.<\/p>\n\n<p>All Parameter values are case\u2011insensitive unless the <code>Keep campaign parameter capitalisation<\/code> setting is enabled. For example, when the setting is disabled, values like <code>SummerSale<\/code> and <code>summersale<\/code> are treated as identical.<\/p>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Learn more about tracking campaigns in Matomo (Piwik) in our <a href=\"https:\/\/matomo.org\/docs\/tracking-campaigns\/\">user guide<\/a> and use the <a href=\"https:\/\/matomo.org\/docs\/tracking-campaigns-url-builder\/\">URL Builder<\/a> to generate URLs ready to use for tracking campaigns in Matomo.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h4>6.0.1 - 2026-10-05<\/h4>\n\n<ul>\n<li>Fixed AI Assistant visits being split into multiple visits when campaign value masking is enabled<\/li>\n<\/ul>\n\n<h4>6.0.0 - 2026-08-09<\/h4>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<\/ul>\n\n<h4>5.2.2 - 2026-06-11<\/h4>\n\n<ul>\n<li>Added code to fix other campaign parameters being missed due to _rcn \/ _rck check.<\/li>\n<li>Adds migration to repopulate the data from released date of v5.2.1<\/li>\n<\/ul>\n\n<h4>5.2.1 - 2026-05-26<\/h4>\n\n<ul>\n<li>Added code to fallback to <em>rcn \/ _rck when no campaign<\/em>* values are found on the visit or current URL<\/li>\n<\/ul>\n\n<h4>5.2.0 - 2026-05-11<\/h4>\n\n<ul>\n<li>added support for campaign masking via CNIL policy<\/li>\n<\/ul>\n\n<h4>5.1.7 - 2026-04-27<\/h4>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h4>5.1.6 - 2026-03-02<\/h4>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h4>5.1.5 - 2025-11-11<\/h4>\n\n<ul>\n<li>Fixed fatal error due to new code to track AI referrer visit<\/li>\n<\/ul>\n\n<h4>5.1.4 - 2025-11-10<\/h4>\n\n<ul>\n<li>Fixed incorrectly forcing a new visit for visits referred by AI referrers<\/li>\n<\/ul>\n\n<h4>5.1.3 - 2025-10-13<\/h4>\n\n<ul>\n<li>Fix for handling AI referrers correctly, providing utm_source parameter<\/li>\n<\/ul>\n\n<h4>5.1.2 - 2025-07-21<\/h4>\n\n<ul>\n<li>README.md updated<\/li>\n<\/ul>\n\n<h4>5.1.1 - 2025-01-15<\/h4>\n\n<ul>\n<li>Changed to logic to lower the campaign values in database query instead of serverside<\/li>\n<\/ul>\n\n<h4>5.1.0<\/h4>\n\n<ul>\n<li>Added an option to retain the case of campaign parameter values via SystemSetting<\/li>\n<\/ul>\n\n<h4>5.0.4<\/h4>\n\n<ul>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h4>5.0.3<\/h4>\n\n<ul>\n<li>Fixed flat report not working for campaign_name and campaign_source-medium report<\/li>\n<\/ul>\n\n<h4>5.0.2<\/h4>\n\n<ul>\n<li>Archiving: Ensure parameter is provided in correct type<\/li>\n<\/ul>\n\n<h4>5.0.1<\/h4>\n\n<ul>\n<li>Compatability with Matomo 5<\/li>\n<\/ul>\n\n<h4>5.0.0-b1<\/h4>\n\n<ul>\n<li>Compatability with Matomo 5<\/li>\n<\/ul>\n\n<h4>4.1.3<\/h4>\n\n<ul>\n<li>Translation changes<\/li>\n<\/ul>\n\n<h4>4.1.2<\/h4>\n\n<ul>\n<li>Allowed creating new visit when campaign changes to be different per site if necessary<\/li>\n<\/ul>\n\n<h4>4.1.1<\/h4>\n\n<ul>\n<li>Fixed deprecation warnings for PHP 8.1<\/li>\n<\/ul>\n\n<h4>4.1.0<\/h4>\n\n<ul>\n<li>Additional dimensions for campaign group and placement<\/li>\n<\/ul>\n\n<h4>4.0.0<\/h4>\n\n<ul>\n<li>Compatibility with Matomo 4 and translation updates<\/li>\n<\/ul>\n\n<h4>3.1.1<\/h4>\n\n<ul>\n<li>Rebrand and translation updates<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Show campaign information in visitor log and profile<\/li>\n<\/ul>\n\n<h4>3.0.1<\/h4>\n\n<ul>\n<li>Enables segmented visitorlog for campaign reports<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Plugin forked by Piwik team + Renamed + Compatibility with Piwik 3<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added possibility to configure custom campaign parameters names<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Better support for campaign parameters behind hash tag (#)<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Compatibility with Piwik 2.16.0<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Plugin comaptibility with Piwik 2.15.0<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Campaign reports now display your campaign report data even for campaign data before you activated AdvancedCampaignReporting<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Exclude Google Analytics campaign parameters from the Page URLs<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Documentation<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Detect new URL parameters: piwik_campaign, pk_cpn and for Keywords: pk_kwd, piwik_keyword<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>View Goals by Campaign Dimension in the Goals &amp; Ecommerce reports<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Released for free on the <a href=\"http:\/\/plugins.piwik.org\/\">Piwik Marketplace<\/a><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/MarketingCampaignsReporting\/download\/6.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/MarketingCampaignsReporting\/changelog"},"consumer":{"license":null}},{"name":"MaxConcurrent","displayName":"Max Concurrent","owner":"mikekerr247","description":"Reports maximum concurrent visitors in a time interval.","homepage":"http:\/\/github.com\/mikekerr247\/MaxConcurrent","createdDateTime":"2016-06-15 19:08:03","donate":{"paypal":"mikekerr247@hotmail.com","bitcoin":null},"support":[],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Michael Kerr","email":"mikekerr247@hotmail.com","homepage":"http:\/\/github.com\/mikekerr247"}],"repositoryUrl":"https:\/\/github.com\/mikekerr247\/MaxConcurrent","lastUpdated":"2016-07-06 13:08:03","latestVersion":"0.2.2","numDownloads":6082,"screenshots":["https:\/\/plugins.matomo.org\/MaxConcurrent\/images\/0.2.2\/Max_Concurrent_Usage.png","https:\/\/plugins.matomo.org\/MaxConcurrent\/images\/0.2.2\/line_graph.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"15","numContributors":"2","lastCommitDate":"2020-08-20 14:51:41"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2016-06-15 19:08:03","requires":{"piwik":">=2.16.1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":265,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mikekerr247\/MaxConcurrent\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MaxConcurrent\/download\/0.1.0"},{"name":"0.2.1","release":"2016-07-04 18:24:03","requires":{"piwik":">=2.16.1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":79,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mikekerr247\/MaxConcurrent\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MaxConcurrent\/download\/0.2.1"},{"name":"0.2.2","release":"2016-07-06 13:08:03","requires":{"piwik":">=2.16.1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5738,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mikekerr247\/MaxConcurrent\/commits\/0.2.2","readmeHtml":{"description":"\n\n<p>This is a plugin for the Open Source Web Analytics platform Matomo (Piwik). If enabled, it will add three new widgets that you can add to your dashboard.<\/p>\n\n<p>At the moment the plugin defaults to maximum concurrent usage for every 5 minute time interval for the last 200 days. These numbers can be reconfigured in the plugin settings page of the user profile menu.<\/p>\n\n<p>One widget gives a single number representing the maximum number of concurrent users that have ever occurred in the N time interval over the last M days.\nThe other two widgets are a line graph and a table showing the maximum concurrent visitors for each N time slice of 24 hours over the last M days.<\/p>\n\n<p>The plugin borrows the code structure and an SQL query from the Barometer plugin built by <a href=\"http:\/\/github.com\/halfdan\">@halfdan<\/a>.<\/p>\n\n<p>The plugin has also been translated into Ukrainian and Russian by twixi<\/p>\n\n","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/MaxConcurrent\/download\/0.2.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/MaxConcurrent\/changelog"},"consumer":{"license":null}},{"name":"McpServer","displayName":"MCP Server","owner":"matomo-org","description":"Connect Matomo to ChatGPT, Claude & MCP clients securely. Ask questions and get insights from your analytics instantly.","homepage":"https:\/\/github.com\/matomo-org\/plugin-McpServer","createdDateTime":"2026-03-12 11:46:03","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-McpServer\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-McpServer","type":"url"}],"isTheme":false,"keywords":["analytics","integration","chatgpt","ai","assistant","mcp","llm","automation","claude","openai","gemini","copilot"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-McpServer","lastUpdated":"2026-09-03 12:56:15","latestVersion":"6.0.0","numDownloads":44243,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/McpServer.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-22 09:45:33"},"featured":true,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{"featured":0},"versions":[{"name":"5.0.1","release":"2026-03-12 13:14:08","requires":{"matomo":">=5.8.0-rc1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4315,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/McpServer\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-McpServer\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/McpServer\/download\/5.0.1"},{"name":"5.0.2","release":"2026-04-28 14:42:09","requires":{"matomo":">=5.8.0-rc1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":82,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/McpServer\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-McpServer\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/McpServer\/download\/5.0.2"},{"name":"5.0.3","release":"2026-04-30 08:56:10","requires":{"matomo":">=5.8.0-rc1,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6056,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/McpServer\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-McpServer\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/McpServer\/download\/5.0.3"},{"name":"5.0.4","release":"2026-05-28 13:54:10","requires":{"matomo":">=5.8.0-rc1,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":23159,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/McpServer\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-McpServer\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/McpServer\/download\/5.0.4"},{"name":"5.1.0","release":"2026-08-10 07:02:11","requires":{"matomo":">=5.8.0-rc1,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4205,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/McpServer\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-McpServer\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/McpServer\/download\/5.1.0"},{"name":"5.1.1","release":"2026-09-03 11:44:11","requires":{"matomo":">=5.8.0-rc1,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6242,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/McpServer\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-McpServer\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/McpServer\/download\/5.1.1"},{"name":"6.0.0","release":"2026-09-03 12:56:15","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":184,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/McpServer\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-McpServer\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>The MCP Server for Matomo lets you connect your Matomo analytics data to AI tools and large language models (LLMs) like ChatGPT, Claude, or custom AI assistants.<\/p>\n\n<p>Instead of digging through reports, you can simply ask questions in plain English and get answers based on your real analytics data.<\/p>\n\n<h3>What does it do?<\/h3>\n\n<p>This plugin acts as a bridge between Matomo and AI tools. Once installed, it allows AI assistants to:<\/p>\n\n<ul>\n<li>Access your Matomo data<\/li>\n<li>Answer questions about your website performance<\/li>\n<li>Generate insights, summaries, and reports automatically<\/li>\n<\/ul>\n\n<p>Think of it as giving your analytics a natural language interface.<\/p>\n\n<h3>What can you use it for?<\/h3>\n\n<p>Here are a few examples of what you can do:<\/p>\n\n<h4>Ask questions, get instant answers<\/h4>\n\n<ul>\n<li>\u201cWhat were my top traffic sources last week?\u201d<\/li>\n<li>\u201cWhich campaigns drove the most conversions?\u201d<\/li>\n<li>\u201cHow is mobile traffic trending this month?\u201d<\/li>\n<\/ul>\n\n<h4>Generate reports in seconds<\/h4>\n\n<ul>\n<li>Weekly or monthly summaries<\/li>\n<li>Marketing performance overviews<\/li>\n<li>Executive-ready insights without manual work<\/li>\n<\/ul>\n\n<h4>Build smarter workflows<\/h4>\n\n<ul>\n<li>Connect Matomo to internal AI tools<\/li>\n<li>Power dashboards with AI-generated insights<\/li>\n<li>Enable teams to explore data without needing analytics expertise<\/li>\n<\/ul>\n\n<h3>Go beyond insights: take action with AI (optional)<\/h3>\n\n<p>If you choose to enable it, the MCP Server can also perform actions in Matomo. This means your AI tools can for example:<\/p>\n\n<ul>\n<li>Create and update segments<\/li>\n<li>Automate repetitive analytics tasks<\/li>\n<li>Integrate Matomo into internal workflows<\/li>\n<\/ul>\n\n<p>All actions are controlled by your permissions and configuration.<\/p>\n\n<h3>Why install this plugin?<\/h3>\n\n<ul>\n<li>Save time \u2013 no more manual report building<\/li>\n<li>Make data accessible \u2013 anyone can ask questions, no training needed<\/li>\n<li>Unlock AI use cases \u2013 bring your analytics into modern AI workflows<\/li>\n<\/ul>\n\n<h3>How do I set this plugin up?<\/h3>\n\n<ul>\n<li>Install the plugin in Matomo.<\/li>\n<li>Activate <strong>McpServer<\/strong> in <strong>Administration -&gt; Plugins<\/strong>.<\/li>\n<li>Enable MCP in <strong>Administration -&gt; System -&gt; General Settings -&gt; McpServer<\/strong>.<\/li>\n<li>Configure your MCP client with the endpoint and one of these authentication methods:\n\n<ul>\n<li>OAuth2, if your MCP client supports it and the Matomo <code>OAuth2<\/code> plugin is installed and enabled, with an OAuth2 client configured there.<\/li>\n<li>A Matomo <code>token_auth<\/code> used as a Bearer token otherwise.<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>For the recommended end-user setup flow, use the in-product connect guide at <strong>Administration -&gt; Platform -&gt; MCP Server<\/strong>.<\/p>\n\n<h3>Security And Access Model<\/h3>\n\n<ul>\n<li>MCP access is disabled by default.<\/li>\n<li>Raw Matomo API discovery and execution tools are separately disabled by default and must be enabled by an administrator.<\/li>\n<li>The plugin uses Matomo authentication, including OAuth2 when the Matomo <code>OAuth2<\/code> plugin is installed and enabled and an OAuth2 client is configured for the MCP client, or <code>token_auth<\/code> Bearer tokens otherwise.<\/li>\n<li>Data access is limited to the same sites and reports the Matomo user can already access.<\/li>\n<li>Data access can be limited to specific permissions\/roles and what type of methods can be accessed.<\/li>\n<li>Administrators can optionally restrict MCP usage to users or tokens at or below a configured privilege level.<\/li>\n<li>When raw API access is enabled, MCP clients can access the same Matomo API surface available to the authenticated user, including state-changing methods if an administrator has allowed them.<\/li>\n<li>If features such as the Visitor Log are available to that user, MCP clients may access the same underlying data scope.<\/li>\n<li>Review privacy, security, and compliance requirements before enabling raw API access.<\/li>\n<\/ul>\n\n<h3>Additional Documentation<\/h3>\n\n<p>The FAQ includes additional technical documentation for endpoint details, configuration, MCP enablement behavior, raw API access guidance, supported capabilities, argument handling, and troubleshooting.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Endpoint<\/h2>\n\n<p>Use the API endpoint:<\/p>\n\n<p><code>index.php?module=API&amp;method=McpServer.mcp&amp;format=mcp<\/code><\/p>\n\n<ul>\n<li><code>format=mcp<\/code> is required.<\/li>\n<li>The endpoint is root-request only and rejects nested\/proxy access (including <code>API.getBulkRequest<\/code>) with <code>400<\/code>.<\/li>\n<li>Unauthenticated requests return <code>401<\/code> with <code>WWW-Authenticate: Bearer realm=\"mcp\"<\/code>.<\/li>\n<li>Authenticate with Matomo credentials by sending a Bearer token. If your MCP client supports OAuth2 and the Matomo <code>OAuth2<\/code> plugin is installed and enabled, OAuth2 is the recommended option; create an OAuth2 client there if needed. Otherwise use a Matomo <code>token_auth<\/code> as the Bearer token.<\/li>\n<li>Direct cross-origin browser MCP is not supported. When a request supplies an <code>Origin<\/code> header, its host is validated (for DNS-rebinding protection) against Matomo's trusted deployment hostnames (<code>[General] trusted_hosts<\/code>): an <code>Origin<\/code> outside those hosts is rejected with <code>403<\/code>. This is request validation, not CORS support. Matomo may emit <code>Access-Control-Allow-Origin<\/code> according to <code>[General] cors_domains<\/code>, but the MCP endpoint does not provide the complete CORS flow required by browser clients: it does not handle preflight, and a CORS preflight (<code>OPTIONS<\/code>) cannot succeed because it arrives without the Bearer token. This <code>Origin<\/code> validation stays active even when <code>[General] enable_trusted_host_check<\/code> is disabled (that setting only affects requests without an <code>Origin<\/code>). Connect through an MCP client or a same-origin backend instead.<\/li>\n<\/ul>\n\n<h2>Configuration<\/h2>\n\n<p>Configure options in <code>config\/config.ini.php<\/code>:<\/p>\n\n<pre><code class=\"ini\">[McpServer]\nsession_ttl = 3600\nlog_tool_calls = 0\nlog_tool_call_level = DEBUG\nlog_tool_call_parameters_full = 0\n<\/code><\/pre>\n\n<ul>\n<li><code>session_ttl<\/code>: Session TTL in seconds. Default is <code>3600<\/code> if missing or invalid.<\/li>\n<li><code>log_tool_calls<\/code>: Enables tool-call logging when set to <code>1<\/code>. Default is disabled when missing or set to <code>0<\/code>.<\/li>\n<li><code>log_tool_call_level<\/code>: Tool-call logging level when <code>log_tool_calls = 1<\/code>. Accepted values: <code>ERROR<\/code>, <code>WARN<\/code>\/<code>WARNING<\/code>, <code>INFO<\/code>, <code>DEBUG<\/code>, <code>VERBOSE<\/code> (case-insensitive). Missing or invalid values default to <code>DEBUG<\/code>. <code>VERBOSE<\/code> is logged via debug-level logger calls.<\/li>\n<li><code>log_tool_call_parameters_full<\/code>: Logs full tool-call parameter values when set to <code>1<\/code>. Default is redacted parameter logging when set to <code>0<\/code> (may expose sensitive input data when enabled).<\/li>\n<\/ul>\n\n<p>Configure raw Matomo API tool access in <strong>Administration -&gt; System -&gt; General Settings -&gt; McpServer<\/strong>:<\/p>\n\n<ul>\n<li>Use the <strong>Raw Matomo API tool access<\/strong> drop-down to control visibility for <code>matomo_api_list<\/code>, <code>matomo_api_get<\/code>, and the raw API call tools.<\/li>\n<li><code>No API access<\/code> (default): hides all raw API discovery and execution tools.<\/li>\n<li><code>Partial API access<\/code>: shows <code>matomo_api_get<\/code>, <code>matomo_api_list<\/code>, and only the CRUD-specific execution tools enabled by the <strong>Read methods<\/strong>, <strong>Create methods<\/strong>, <strong>Update methods<\/strong>, and <strong>Delete methods<\/strong> checkboxes. Each checkbox is independent \u2014 selecting Create does not automatically include Read; check both if you want both.<\/li>\n<li><code>Full API access<\/code>: shows <code>matomo_api_get<\/code>, <code>matomo_api_list<\/code>, all CRUD-specific execution tools, and <code>matomo_api_call_full<\/code> for non-restricted methods that need unrestricted execution.<\/li>\n<li>The dedicated report tools remain available independently of this setting.<\/li>\n<li>Permanently restricted methods in <code>RawApiMethodPolicy<\/code> remain blocked in every mode.<\/li>\n<li>Low-confidence or unclassified direct API methods require <code>Full API access<\/code>.<\/li>\n<li>Direct API access can expose raw or personal data depending on enabled Matomo features. Review privacy and security requirements before enabling it, and consult your DPO or compliance owner when needed.<\/li>\n<\/ul>\n\n<p>Configure MCP privilege limits in <strong>Administration -&gt; System -&gt; General Settings -&gt; McpServer<\/strong>:<\/p>\n\n<ul>\n<li>Use <strong>Maximum allowed MCP privilege level<\/strong> to deny MCP access for users authenticated with a higher Matomo privilege.<\/li>\n<li><code>No privilege limit<\/code> (default): follows the usual Matomo access model and does not add an extra MCP privilege cap.<\/li>\n<li><code>View access<\/code>, <code>Write access<\/code>, or <code>Admin access<\/code>: allows only users whose highest privilege across all sites is at or below the selected level.<\/li>\n<li>For stricter separation, create a separate Matomo user or token with reduced permissions for MCP use.<\/li>\n<\/ul>\n\n<h2>Enabling MCP<\/h2>\n\n<p>MCP access is disabled by default and must be enabled in <strong>Administration -&gt; System -&gt; General Settings -&gt; McpServer<\/strong>.<\/p>\n\n<p>The Matomo <code>OAuth2<\/code> plugin is not required to use McpServer. If it is installed and enabled, OAuth2 is available for compatible MCP clients; create an OAuth2 client in that plugin if needed. Otherwise clients can connect with a Matomo <code>token_auth<\/code> as a Bearer token.<\/p>\n\n<p>When disabled, requests to <code>index.php?module=API&amp;method=McpServer.mcp&amp;format=mcp<\/code> behave as follows:<\/p>\n\n<ul>\n<li>Unauthenticated requests receive <code>401 Unauthorized<\/code> with <code>WWW-Authenticate: Bearer realm=\"mcp\"<\/code>.<\/li>\n<li>Authenticated requests with a top-level JSON-RPC <code>id<\/code> receive <code>403 Forbidden<\/code> with a JSON-RPC error response instructing the user to contact their Matomo administrator.<\/li>\n<li>Authenticated requests without a top-level <code>id<\/code> (for example notifications, invalid JSON, or batch payloads) receive <code>403 Forbidden<\/code> with an empty body.<\/li>\n<\/ul>\n\n<h2>Supported MCP Capabilities<\/h2>\n\n<p>The plugin is focused on read-oriented analytics workflows. The exact tool surface may expand over time, but the initial release includes tools around:<\/p>\n\n<ul>\n<li>sites<\/li>\n<li>reports, report metadata, and processed report data<\/li>\n<li>goals<\/li>\n<li>segments<\/li>\n<li>dimensions<\/li>\n<li>raw Matomo API discovery and execution, when enabled by an administrator<\/li>\n<\/ul>\n\n<p><code>matomo_report_processed<\/code> is always advertised to MCP clients as read-only and idempotent, regardless of the Matomo archiving settings. Matomo may materialize a cached archive while serving the report \u2014 including through browser-triggered archiving or browser-based segment archiving \u2014 and this plugin does not treat that derived cache work as a change to Matomo's state, because it never changes the reported data and repeating the call adds no further effect beyond the same cache work. Read-only does not mean cheap: a call covering dates or segments that have not been archived yet can still trigger substantial archiving work on the server.<\/p>\n\n<h2>Argument Handling<\/h2>\n\n<p>Some tools accept equivalent ways of writing the same argument and rewrite them to the canonical form silently. A rewritten request is still validated against the tool's published input schema, and access checks and domain validation run afterwards, so this cannot widen what a caller may read or change.<\/p>\n\n<p>Argument problems are reported on two channels. Failures against the tool's published input schema keep the JSON-RPC <code>-32602<\/code> (invalid params) error; this includes combining <code>reportUniqueId<\/code> with <code>apiModule<\/code> or <code>apiAction<\/code>, and a parameter object supplied as a string that is not visibly an object (a bare word or a quoted scalar keeps its schema type error). Problems found while normalizing arguments return a normal tool result with <code>isError: true<\/code>: contradictory raw-API selectors, conflicting aliases or parameter locations, a method name outside the <code>Module.action<\/code> form, a selector value longer than 256 bytes, and a parameter object string that opens as an object but does not decode as a bounded JSON object. These name the JSON pointers involved without repeating the values at them, so a segment expression or a token pasted into a parameter object is not echoed back.<\/p>\n\n<p>A <code>segment<\/code> Matomo cannot parse, or one naming a field this Matomo does not provide, is not an argument problem in the sense above \u2014 it is reported as a tool result error naming the segment as the problem, without repeating the expression.<\/p>\n\n<h2>Troubleshooting<\/h2>\n\n<ul>\n<li><code>401 Unauthorized<\/code>: verify the Bearer token is present and active. If you use OAuth2, verify the client completed authorization successfully and is sending a valid access token. If you use <code>token_auth<\/code>, verify you are sending <code>Authorization: Bearer &lt;token_auth&gt;<\/code> and that the token belongs to a user with access to the requested site data.<\/li>\n<li><code>403 Forbidden<\/code>: if MCP is disabled, enable MCP in <strong>Administration -&gt; System -&gt; General Settings -&gt; McpServer<\/strong>. If MCP is already enabled, verify the authenticated Matomo user behind the OAuth2 access token or <code>token_auth<\/code> has access to the requested site or report data and does not exceed the configured maximum MCP privilege level<\/li>\n<li><code>400 Bad Request<\/code>: verify the client is using the exact MCP endpoint and is not proxying requests through <code>API.getBulkRequest<\/code>.<\/li>\n<\/ul>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>6.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 6.<\/li>\n<\/ul>\n\n<h3>5.1.1<\/h3>\n\n<ul>\n<li>Updated <code>mcp\/sdk<\/code> to 0.7.1.<\/li>\n<li>Made <code>matomo_report_processed<\/code> always advertise itself as read-only and idempotent to MCP clients, even when browser-triggered archiving or browser-based segment archiving is enabled, because archive materialization while serving a report is no longer treated as a change to Matomo's state.<\/li>\n<li>Made the report and raw API tools tolerant of further input shapes MCP clients send, so these requests run instead of failing: a redundant <code>module<\/code>\/<code>action<\/code> beside <code>method<\/code>, report selectors with surrounding whitespace, <code>filterLimit<\/code>\/<code>filterOffset<\/code> for <code>filter_limit<\/code>\/<code>filter_offset<\/code>, a parameter object sent as a JSON object string, and <code>expanded<\/code>, <code>flat<\/code> or <code>segment<\/code> sent at the wrong nesting level. See \"Argument Handling\" in the FAQ for what each tool accepts.<\/li>\n<li>Fixed <code>parameters: {}<\/code> and <code>parameters: []<\/code> failing with the invalid-parameters protocol error on the <code>matomo_api_call_*<\/code> tools. Omitting <code>parameters<\/code> entirely was unaffected.<\/li>\n<li>Changed a request that supplies one value in two places and disagrees with itself to be rejected, instead of one location silently winning. This affects <code>matomo_report_processed<\/code> calls that sent <code>segment<\/code> both at the top level and inside <code>apiParameters<\/code>.<\/li>\n<li>Surfaced argument problems found before schema validation as a tool result error naming the arguments involved. Failures against a tool's published input schema keep the invalid-parameters protocol error, so clients branching on <code>-32602<\/code> are unaffected.<\/li>\n<li>Improved the errors for a <code>method<\/code> outside the <code>Module.action<\/code> form, and for a <code>segment<\/code> Matomo cannot parse or one naming a field this Matomo does not provide. Neither message repeats the supplied value back, since it may contain personal data.<\/li>\n<\/ul>\n\n<h3>5.1.0<\/h3>\n\n<ul>\n<li>Updated <code>mcp\/sdk<\/code> to 0.7.<\/li>\n<li>Added a search filter to <code>matomo_report_list<\/code> for finding reports by name, category, or uniqueId.<\/li>\n<li>Added <code>McpServer.addTools<\/code> and <code>McpServer.filterTools<\/code> events so other plugins can contribute or restrict MCP tool registrations.<\/li>\n<li>Added the <code>McpServer.serverEvent<\/code> event so other plugins can observe completed MCP requests, received notifications, and explicit session termination through SDK-agnostic events, with richer payloads for initialization and tool activity.<\/li>\n<li>Clarified the date\/period semantics in the <code>matomo_report_processed<\/code> tool description.<\/li>\n<li>Made the report and API discovery tools tolerant of the input shapes real MCP clients commonly send, so a plausible-but-imprecise argument is accepted instead of failing or resolving to something unintended: report selectors work in the API-method form (<code>VisitsSummary.get<\/code>) as well as the report uniqueId form (<code>VisitsSummary_get<\/code>), whole-bucket shorthand dates are expanded to a full date (<code>period=year<\/code> with <code>2026<\/code>, <code>period=month<\/code> with <code>2026-01<\/code>), stringified numbers are accepted for integer arguments, and <code>search<\/code> filters ignore spaces, underscores, hyphens, and dots.<\/li>\n<li>Hardened MCP endpoint <code>Origin<\/code> handling for DNS-rebinding protection: a supplied <code>Origin<\/code> is validated against Matomo's trusted deployment hostnames (<code>[General] trusted_hosts<\/code>) and rejected with <code>403<\/code> when it falls outside them, even when <code>[General] enable_trusted_host_check<\/code> is disabled. This is request validation, not CORS support \u2014 direct cross-origin browser MCP remains unsupported. Requests without an <code>Origin<\/code> (native MCP clients) are unaffected by this validation.<\/li>\n<\/ul>\n\n<h3>5.0.4<\/h3>\n\n<ul>\n<li>Updated <code>mcp\/sdk<\/code> to 0.5.<\/li>\n<li>Surfaced nested SegmentEditor validation messages through MCP tool errors instead of collapsing them to the generic failure message.<\/li>\n<li>Aligned the declared MCP <code>outputSchema<\/code> for the <code>matomo_api_*<\/code> tools so the <code>result<\/code> and <code>defaultValue<\/code> entries serialize as <code>{}<\/code> rather than <code>[]<\/code>, matching the MCP requirement that every schema value is a JSON object.<\/li>\n<\/ul>\n\n<h3>5.0.3<\/h3>\n\n<ul>\n<li>Added the missing PHP version requirement to <code>plugin.json<\/code> to reflect the plugin's actual runtime requirement.<\/li>\n<li>Updated the connect guidance so only superusers see the OAuth2 client management link, while other users are told to contact a superuser.<\/li>\n<\/ul>\n\n<h3>5.0.2<\/h3>\n\n<ul>\n<li>Disabled anonymous access to the MCP API endpoint and connect guidance page.<\/li>\n<li>Added raw Matomo API discovery and execution MCP tools, with administrator-controlled access modes and privilege limits.<\/li>\n<li>Added support for exposing subtable reports through the MCP report tools.<\/li>\n<li>Aligned <code>matomo_report_processed<\/code> so empty <code>resolvedReport.apiParameters<\/code> values serialize as <code>{}<\/code> rather than <code>[]<\/code>, matching the declared MCP output schema.<\/li>\n<li>Updated <code>matomo_report_processed<\/code> and <code>matomo_report_metadata<\/code> to accept <code>apiParameters: []<\/code> as the empty-input compatibility form.<\/li>\n<li>Added the full set of MCP tool annotations, including <code>destructiveHint<\/code>, to improve client compatibility and provide explicit tool metadata.<\/li>\n<li>Updated <code>matomo_report_processed<\/code> so MCP clients see it as read-only when Matomo is configured to avoid browser-triggered archiving for normal and segmented report requests, while still keeping the tool non-idempotent.<\/li>\n<\/ul>\n\n<h3>5.0.1<\/h3>\n\n<ul>\n<li>Marked the plugin as not compatible with WordPress installations of Matomo<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<ul>\n<li>Initial release<\/li>\n<li>Added MCP over HTTP endpoint<\/li>\n<li>Added tools for sites, reports, goals, segments, and dimensions<\/li>\n<li>Added admin page for MCP client setup<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/McpServer\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/McpServer\/changelog"},"consumer":{"license":null}},{"name":"MediaAnalytics","displayName":"Media Analytics","owner":"matomo-org","description":"Grow your business with advanced video & audio analytics. Get powerful insights into how your audience watches your videos and listens to your audio.","homepage":"https:\/\/www.media-analytics.net","createdDateTime":"2016-10-25 21:07:56","donate":{},"support":[],"isTheme":false,"keywords":["Marketing","conversion","video","audio","media","youtube","vimeo","html5","analytics","cro"],"basePrice":176,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-09-01 22:05:32","latestVersion":"6.0.0","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/MediaAnalytics\/images\/6.0.0\/0_Media_Overview.png","https:\/\/plugins.matomo.org\/MediaAnalytics\/images\/6.0.0\/1_Real-time_Reports.png","https:\/\/plugins.matomo.org\/MediaAnalytics\/images\/6.0.0\/2_Real-time_Audience_Map.png","https:\/\/plugins.matomo.org\/MediaAnalytics\/images\/6.0.0\/3_Audience_Log.png","https:\/\/plugins.matomo.org\/MediaAnalytics\/images\/6.0.0\/4_Audience_Map.png","https:\/\/plugins.matomo.org\/MediaAnalytics\/images\/6.0.0\/5_Media_Reports.png","https:\/\/plugins.matomo.org\/MediaAnalytics\/images\/6.0.0\/6_Row_Evolution.png","https:\/\/plugins.matomo.org\/MediaAnalytics\/images\/6.0.0\/7_Media_Details.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/MediaAnalytics.png","previews":[{"type":"demo","provider":"link","url":"https:\/\/demo.matomo.cloud\/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#?idSite=1&period=day&date=yesterday&category=MediaAnalytics_Media&subcategory=General_Overview"},{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/q7SaiE3iBGA","id":"q7SaiE3iBGA"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/MediaAnalytics","variations":[{"product_variation_id":130461,"price":"179","prettyPrice":"179EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130461&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130461","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/mediaanalytics\/?attribute_type=1+to+4+users&add-to-cart=2442&variation_id=130461&aelia_cs_currency=EUR"},{"product_variation_id":130461,"price":"219","prettyPrice":"USD219","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130461&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130461","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/mediaanalytics\/?attribute_type=1+to+4+users&add-to-cart=2442&variation_id=130461&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130462,"price":"1389","prettyPrice":"1389EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130462&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130462","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/mediaanalytics\/?attribute_type=Up+to+20+users&add-to-cart=2442&variation_id=130462&aelia_cs_currency=EUR"},{"product_variation_id":130462,"price":"1669","prettyPrice":"USD1669","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130462&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130462","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/mediaanalytics\/?attribute_type=Up+to+20+users&add-to-cart=2442&variation_id=130462&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130463,"price":"2749","prettyPrice":"2749EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130463&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130463","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/mediaanalytics\/?attribute_type=Up+to+50+users&add-to-cart=2442&variation_id=130463&aelia_cs_currency=EUR"},{"product_variation_id":130463,"price":"3299","prettyPrice":"USD3299","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130463&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2442&variation_id=130463","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/mediaanalytics\/?attribute_type=Up+to+50+users&add-to-cart=2442&variation_id=130463&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/mediaanalytics\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"4.80","ratingCount":5,"reviewCount":5}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{"bestselling":5},"versions":[{"name":"6.0.0","release":"2026-09-01 22:05:32","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/MediaAnalytics\/6.0.0\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>See how your video and audio content performs in detail. Uncover where people stay hooked and where they drift, offering you actionable insights for optimisation. Try now for free.<\/p>\n\n<p>Ever feel like using play counts to analyse your media performance isn't enough? Optimising your content becomes a guessing game when you don't know which parts truly resonate with your audience and how their media consumption connects to conversions. And that's not the way to go.<\/p>\n\n<h3>How Media Analytics Works<\/h3>\n\n<h4>A Complete Picture, From Views to Value<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>We all love seeing those view counts climb, but what do they really tell us? With Media Analytics, it's not just about numbers\u2014it's about the narratives behind them.<\/p>\n<p>By analysing finish rates, time spent, and engagement trends, you can truly comprehend the story of your audience's connection to your content. And by linking media consumption directly to conversions, you have a clear pathway to understand the ROI of every piece of content.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MediaAnalytics\/m1.gif\" style=\"margin-left:24px;\" alt=\"A Complete Picture, From Views to Value\" \/>\n<\/div>\n<\/div>\n\n<h4>Power Moments, Unveiled<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Every media piece has its golden moments\u2014the segments that transform the audience from mere spectators to potential customers. But spotting them amidst the entirety of your content? That used to be like finding a needle in a haystack.<\/p>\n<p>Not anymore. Media Analytics allows you to identify these key moments, ensuring you recognise what's working and have the insights to replicate that success in future content.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MediaAnalytics\/m2.png\" style=\"margin-left:24px;\" alt=\"Power Moments, Unveiled\" \/>\n<\/div>\n<\/div>\n\n<h4>Decoding the User's Journey<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Before that play button is clicked, and long after the video ends, your audience is on a journey with your brand. Wouldn't it be great to map out every step? With Media Analytics, you finally can.<\/p>\n<p>Trace the steps your audience takes pre and post-media consumption, offering a comprehensive understanding of their experience and revealing opportunities for further engagement.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MediaAnalytics\/m3.png\" style=\"margin-left:24px;\" alt=\"Decoding the User's Journey\" \/>\n<\/div>\n<\/div>\n\n<h4>Decisions at the Speed of Now<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>In the bustling world of digital media, waiting can mean missed opportunities. Why act on yesterday's data when today's insights are at your fingertips?<\/p>\n<p>With real-time data streaming, Media Analytics ensures you're always up-to-date with your content's performance, ready to pivot or capitalise based on live feedback.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MediaAnalytics\/m4.png\" style=\"margin-left:24px;\" alt=\"Decisions at the Speed of Now\" \/>\n<\/div>\n<\/div>\n\n<h4>Simplicity at its Finest<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Analysing your audio and video content shouldn't feel like rocket science. Media Analytics works right after you install your tracking code on your site. Zero configuration. Zero stress.<\/p>\n<p>Jump into your data journey without the hurdles of complex setups. After all, it's the insights you're after\u2014not a tech degree.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MediaAnalytics\/m5.jpg\" style=\"margin-left:24px;\" alt=\"Simplicity at its Finest\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Media Analytics Today<\/h3>\n\n<p>Why stay in the dark when you can harness the power of detailed, user-centric insights? Discover what works, optimise, and make your content shine with Matomo's Media Analytics plugin.<\/p>\n\n<p>Are you ready to elevate your content strategy? Start your 30-day free trial no and chart a brighter course forward.<\/p>\n\n<h3>Reporting features<\/h3>\n\n<p>Adds more than 15 new widgets and reports that all can be added to the dashboard or exported as widget. Some of the reports include:\n* Media usage by media title.\n* Media usage by media resource URL and grouped resource URL.\n* Media usage by hour.\n* Video usage by video resolution.\n* Media usage by media player.\n* Drill down to get usage for any specific video or audio.\n* View a heatmap of which parts of a video or audio have been viewed.\n  Some of the metrics displayed include\n* Number of impressions (how often was a media shown but not played).\n* Number of plays (how often was a media actually played after it was shown).\n* Number of finishes (how often was a media finished).\n* Time spent watching or listening to a media.\n* Media duration \/ length.\n* Time to play (how long did visitors wait before they start playing a media).\n* Number of views in fullscreen.\n* And many more.\n  Evolution graphs show how the media consumption on your website or app changes over time.<\/p>\n\n<h3>Real-time features<\/h3>\n\n<ul>\n<li>View the <a href=\"https:\/\/matomo.org\/docs\/media-analytics\/#audience-log\">audience log<\/a> to learn how each individual visitor used your website before and after playing a media.<\/li>\n<li>View the <a href=\"https:\/\/matomo.org\/docs\/media-analytics\/#audience-map\">audience map<\/a> to see at a glance where your visitors are from (lets you go down from continent to cities).<\/li>\n<\/ul>\n\n<h3>Segmenting features<\/h3>\n\n<ul>\n<li>Many new segments are provided. Segment your visitors by Media Title, Media URL, time spent playing media, the number of media plays and many more.<\/li>\n<li>Combine these Media segments with any other Matomo segments to drill down and get deep insights into your audience.<\/li>\n<\/ul>\n\n<h3>Tracking features<\/h3>\n\n<ul>\n<li>Tracks events when you a user plays, pauses, resumes, seeks, or finishes a video and see at what position within the media they paused or resumed. They can be viewed in the <a href=\"https:\/\/matomo.org\/docs\/user-profile\/\">Visitor Log<\/a>.<\/li>\n<li>Currently supports HTML5 Audio &amp; Video, SoundManager 2, JW Player (Flash and HTML5), Flowplayer, Video.js, MediaElement.js, SoundCloud, YouTube and Vimeo out of the box.<\/li>\n<li>Possibility to track the usage of any player by defining a <a href=\"https:\/\/developer.matomo.org\/guides\/media-analytics\/custom-player\">custom player<\/a>.<\/li>\n<li>Lets you exclude specific videos from being tracked.<\/li>\n<li>Lets you optionally <a href=\"https:\/\/developer.matomo.org\/guides\/media-analytics\/options\">customize the tracked media title and resource URL<\/a>.<\/li>\n<li>Works with multiple Matomo tracker instances<\/li>\n<li>Small footprint. Only adds a very few kilobytes to your Matomo JavaScript tracker (<code>piwik.js<\/code>).<\/li>\n<\/ul>\n\n<h3>Privacy features<\/h3>\n\n<ul>\n<li>Supports Matomo's <a href=\"https:\/\/matomo.org\/docs\/privacy\/\">privacy<\/a> and GDPR features like the right to erase data or the right to export data. GDPR stands for General Data Protection Regulation and is for example also known as RGPD in French, DS-GVO in German<\/li>\n<li>The plugin does not store personal data<\/li>\n<\/ul>\n\n<h3>Export &amp; API features<\/h3>\n\n<ul>\n<li>Get your Video and Audio analytics reports by <a href=\"https:\/\/matomo.org\/docs\/email-reports\/\">email<\/a> to you, your colleagues or customers.<\/li>\n<li>Via the <a href=\"https:\/\/developer.matomo.org\/api-reference\/tracking-api\">HTTP Tracking API<\/a>, media can be tracked on any platform or application (such as iOS or Android).<\/li>\n<li>All reports including real time reports are available via the <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#MediaAnalytics\">Media Analytics HTTP Reporting API<\/a>, and support <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">Matomo segments<\/a>.<\/li>\n<li>Export any video and audio analytics report directly in your app, dashboard, or even TV screen! Even your real time reports can be <a href=\"https:\/\/matomo.org\/docs\/embed-piwik-report\/\">embedded<\/a> anywhere.<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/media-analytics\/\">Media Analytics User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/media-analytics\/\">Media Analytics FAQ<\/a> cover how to get the most out of this plugin. The <a href=\"https:\/\/developer.matomo.org\/guides\/media-analytics\">Media Analytics developer guides<\/a> help you setting up  the tracking of your video and audio on your websites or apps.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.0 - 2026-08-14\n- Compatibility with Matomo 6<\/p>\n\n<p>5.0.17 - 2026-08-10\n- Updated marketplace images<\/p>\n\n<p>5.0.16 - 2026-07-27\n- Added missing default metric translations for play rate, finish rate and impression rate<\/p>\n\n<p>5.0.15 - 2026-06-29\n- Added code to sanitize media title in popover display<\/p>\n\n<p>5.0.14 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.0.13 - 2026-02-02\n- Updated API documentation<\/p>\n\n<p>5.0.12 - 2025-02-17\n- Fixed MediaAnalytics map not working with segments<\/p>\n\n<p>5.0.11 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.0.10 - 2024-10-08\n- Added check to handle invalid filter_limit for getCurrentMostPlays\n- Added code to enforce max last minutes<\/p>\n\n<p>5.0.9 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.8\n- Added cover image for marketplace<\/p>\n\n<p>5.0.7\n- Added 1 retry when deadlock is found during insert\/update of logMedia<\/p>\n\n<p>5.0.6\n- Updated README.md<\/p>\n\n<p>5.0.5\n- Added code to track audio player for JWPlayer<\/p>\n\n<p>5.0.4\n- Added code to not set row URL if row is summary row<\/p>\n\n<p>5.0.3\n- Reverses change from 5.0.2 as the root issue was addressed in core<\/p>\n\n<p>5.0.2\n- Fixed permission issue with the getting started widget<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.2.1\n- Fixed regression due to ranking query change<\/p>\n\n<p>4.2.0\n- Implemented ranking query to allow limiting the data to avoid running out of memory during archiving.\nTo learn more, refer to https:\/\/matomo.org\/faq\/media-analytics\/how-do-i-fix-an-allowed-memory-size-exhausted-error-in-media-analytics\/#if-above-does-not-fix-your-issue<\/p>\n\n<p>4.1.6\n- Fixed issue where installer overrode cloud default config<\/p>\n\n<p>4.1.5\n- Fixed typos for marketplace listing<\/p>\n\n<p>4.1.4\n- Updated code to respect max execution time during Archiving<\/p>\n\n<p>4.1.3\n- Added code to support fv_title to set MediaTitle for FlowPlayer<\/p>\n\n<p>4.1.2\n- Fixed regression bug due to getOriginalString not available in lower Matomo version<\/p>\n\n<p>4.1.1\n- Code changes to prevent sending the same progress request when it is not required<\/p>\n\n<p>4.1.0\n- Started limiting maximum media events that can be triggered per media per tracker per page view.\nLimits are play:50, pause: 25, resume:25, finish:50 and seek:50. To learn more refer - https:\/\/matomo.org\/faq\/rate-limits-when-tracking-media-events\/\n- Added option to disable rate limiting media events via JS tracker (MediaAnalytics::disableRateLimit())<\/p>\n\n<p>4.0.17\n- Started loading YouTube iframe script even when windowAlias.onYouTubeIframeAPIReady is defined<\/p>\n\n<p>4.0.16\n- Started passing segment during audience archive for country mao<\/p>\n\n<p>4.0.15\n- Added config option to not track media events by default<\/p>\n\n<p>4.0.14\n- Disabled sort feature in Media Details popup<\/p>\n\n<p>4.0.13\n- Fixed recursive search not working for audio and video resources<\/p>\n\n<p>4.0.12\n- Added view flat report option for Video Resource URLs\n- Fixed Video Resource URLs export with flatten option enabled<\/p>\n\n<p>4.0.11\n- Removed some unneeded <code>console.log<\/code> from tracker.min.js<\/p>\n\n<p>4.0.10\n- Fixed issue with JWPlayer, where fullscreen mode and width\/height were not tracked correctly\n- Fixed media type in action tooltip\n- Translation updates<\/p>\n\n<p>4.0.9\n- Throw meaningful exception when API is used with secondary dimension and multiple dates or sites. Support for this may be added later.<\/p>\n\n<p>4.0.8\n- Improve archiving performance for player name report<\/p>\n\n<p>4.0.7\n- Fix scanForMedia on specific elements<\/p>\n\n<p>4.0.6\n- Improve compatibility with scheduled reports\n- Add Portuguese translations<\/p>\n\n<p>4.0.5\n- Add category help text<\/p>\n\n<p>4.0.4\n- Fix live report 24 hours used more than 24 hours\n- Improve performance of live queries<\/p>\n\n<p>4.0.3\n- Add possibility to force a media title on vimeo<\/p>\n\n<p>4.0.2\n- Compatibility with Matomo 4<\/p>\n\n<p>4.0.1\n- Support more vimeo URLs<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4<\/p>\n\n<p>3.4.14\n- Detect more vimeo URLs<\/p>\n\n<p>3.4.13\n- Prevent possible errors on some PHP versions<\/p>\n\n<p>3.4.12\n- Improve YouTube tracking<\/p>\n\n<p>3.4.11\n- Improve tracking performance for media progress updates<\/p>\n\n<p>3.4.10\n- Disable tracking should Plyr with youtube media be used since they are not compatible with each other.<\/p>\n\n<p>3.4.9\n- Internal tweaks<\/p>\n\n<p>3.4.8\n- More efficient tracking<\/p>\n\n<p>3.4.7\n- Fix possible error in API<\/p>\n\n<p>3.4.6\n- Fix notice when a report has many different resource urls<\/p>\n\n<p>3.4.5\n- Fix media heatmap shows error<\/p>\n\n<p>3.4.4\n- Improvements for Matomo 3.12 to support faster segment archiving\n- Support more languages<\/p>\n\n<p>3.4.3\n- Support usage of a reader DB when configured<\/p>\n\n<p>3.4.2\n- Internal tracker performance improvements<\/p>\n\n<p>3.4.1\n- Add Turkish translations\n- Better support for JWPlayer 8<\/p>\n\n<p>3.4.0\n- Show a heatmap for each video\n- Queue tracking requests when possible for better performance\n- Internal change: Use a shorter ID for each view to optimise storage<\/p>\n\n<p>3.3.1\n- SoundCloud playlist support<\/p>\n\n<p>3.3.0\n- Support SoundCloud<\/p>\n\n<p>3.2.13\n- Improve compatibility with tag manager\n- Truncate media title if needed<\/p>\n\n<p>3.2.12\n- Trim values if needed before writing them into the database\n- Support more translations\n- Video \"details\" modal now supplies an export feature.<\/p>\n\n<p>3.2.11\n- Show Media Title and Media Resource URL report on same page<\/p>\n\n<p>3.2.10\n- Improve Paella\/Opencast support\n- Internal changes<\/p>\n\n<p>3.2.9\n- Limit the number of rows to archive for each report to improve memory usage<\/p>\n\n<p>3.2.8\n- Improve Opencast with Paella integration\n- Better detection of the player name\n- Limit tracking to 3 hours by default after the first media tracking request<\/p>\n\n<p>3.2.7\n- Improve archiving performance by no longer needing to process media analytics segment for all reports but only location reports<\/p>\n\n<p>3.2.6\n- Improve detection of Youtube API availability<\/p>\n\n<p>3.2.5\n- Make sure noCookie works when loading the iframe API async<\/p>\n\n<p>3.2.4\n- Support for YouTube NoCookie<\/p>\n\n<p>3.2.3\n- Improve detection of seek events<\/p>\n\n<p>3.2.2\n- Improve tracking of YouTube media progress.<\/p>\n\n<p>3.2.1\n- Fix possible error in Live.getLastVisitDetails that causes no output<\/p>\n\n<p>3.2.0\n- Show media interactions in the visitor log and visitor profile\n- Support <code>matomo<\/code> keyword in attributes and properties when customizing the tracking<\/p>\n\n<p>3.1.0\n- Track position witin media when a video was played, paused, resumed, or seeked.\n- Track new event when a user seeks to a different position (not supported by YouTube)<\/p>\n\n<p>3.0.19\n- Piwik is now Matomo<\/p>\n\n<p>3.0.18\n- Ensure correct data is shown when an action segment is applied<\/p>\n\n<p>3.0.17\n- Improve archiving speed\n- Fix media title was not kept when a video finished playing and the same video was played again\n- Fix Youtube Player did not support to scan for videos on only a subset of the page, only the full page.<\/p>\n\n<p>3.0.16\n- Add possibility to set a callback method via the tracker method <code>MediaAnalytics::setMediaTitleFallback<\/code> to detect a custom title if no title cannot be detected automatically\n- Improved detection of custom titles and resource URLs for JWplayer 5<\/p>\n\n<p>3.0.15\n- Better support for OpenCast\n- Better support for older versions of JWplayer (eg version 5)\n- Fix some events for HTML5 players were not tracked under circumstances (for example resume)\n- HTML5 Player. Better detection of duration, width, and height<\/p>\n\n<p>3.0.14\n- Automatically detect media titles for Opencast.<\/p>\n\n<p>3.0.13\n- Prevent possible error if a method jwplayer is defined which is not the actual jwplayer but a custom implementation<\/p>\n\n<p>3.0.12\n- Removed the need for some custom tracking code in rare cases\n- Better flowplayer detection of media and flowplayer splash support<\/p>\n\n<p>3.0.11\n- Added support for Custom Reports\n- Better differentiation between seek and pause for YouTube and Vimeo.<\/p>\n\n<p>3.0.10\n- HTML5 Player: Fix play event might be triggered too often, eg after a loop\n- HTML5 Player: Fix pause \/ resume event is triggered when user is actually seeking\n- Increase tracking interval over time<\/p>\n\n<p>3.0.9\n- Apply selected segment in Audience Log correctly<\/p>\n\n<p>3.0.8\n- Possibility to define custom video title to be used only for tracking when using JW Player or flowplayer.<\/p>\n\n<p>3.0.7\n- Add support for Flowplayer (only HTML5 so far)\n- Add possibility to track custom resource with JW Player\n- Better detection of JW Player and Flowplayer videos when they are embedded after the load event.<\/p>\n\n<p>3.0.6\n- HTML5 Player: When source changes, check if title changed as well instead of only clearing the title\n- HTML5 Player: Track play event only if the player actually starts playing\n- HTML5 Player: When source (video or audio) was changed, it may have missed to record updated src under circumstances<\/p>\n\n<p>3.0.5\n- Fix Unique Visitors is zero when Media Analytics is installed<\/p>\n\n<p>3.0.4\n- Full support for JW Player including Flash and M3U8\n- Fixed a bug where a real time report was not updated automatically<\/p>\n\n<p>3.0.3\n- Improved support for jwplayer by detecting video title automatically<\/p>\n\n<p>3.0.2\n- Fix Overview page may require admin access<\/p>\n\n<p>3.0.1\n- Added compatibility with Roll-Up Reporting\n- Better JSON object detection<\/p>\n\n<p>3.0.0\n- Initial version<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/MediaAnalytics\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"MicrosoftTeams","displayName":"Microsoft Teams","owner":"matomo-org","description":"Send Matomo reports and alerts to Microsoft Team channels, keeping your team informed and ready to act in real time.","homepage":null,"createdDateTime":"2026-01-07 07:16:02","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams","type":"url"}],"isTheme":false,"keywords":["microsoft","ScheduledReports","CustomAlerts","Microsoft Teams","MicrosoftTeams","Teams"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams","lastUpdated":"2026-10-05 01:08:17","latestVersion":"6.0.2","numDownloads":8716,"screenshots":["https:\/\/plugins.matomo.org\/MicrosoftTeams\/images\/6.0.2\/0_Create_and_Schedule_Report.png","https:\/\/plugins.matomo.org\/MicrosoftTeams\/images\/6.0.2\/1_List_Schedule_Reports.png","https:\/\/plugins.matomo.org\/"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/MicrosoftTeams.png","previews":[],"activity":{"numCommits":"55","numContributors":"9","lastCommitDate":"2026-10-21 04:38:39"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"5.0.0","release":"2026-01-07 07:16:03","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.0.0"},{"name":"5.0.1","release":"2026-01-09 02:52:03","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":613,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.0.1"},{"name":"5.0.2","release":"2026-02-16 06:58:02","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":681,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.0.2"},{"name":"5.0.3","release":"2026-03-26 04:30:04","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":124,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.0.3"},{"name":"5.0.4","release":"2026-03-30 05:20:03","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.0.4"},{"name":"5.0.5","release":"2026-03-30 07:14:03","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1367,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.0.5"},{"name":"5.0.6","release":"2026-04-28 02:30:04","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1011,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.0.6"},{"name":"5.1.0","release":"2026-05-25 06:10:04","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1687,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.1.0"},{"name":"5.2.0","release":"2026-07-20 09:56:10","requires":{"matomo":">=5.7.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3023,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/5.2.0"},{"name":"6.0.0","release":"2026-08-24 06:00:44","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/6.0.0"},{"name":"6.0.1","release":"2026-08-31 05:50:13","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":127,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/6.0.1"},{"name":"6.0.2","release":"2026-10-05 01:08:17","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":53,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-MicrosoftTeams\/commits\/6.0.2","readmeHtml":{"description":"\n\n<p>Bring Matomo directly into Microsoft Teams, where decisions actually happen. Zero cost. Zero friction. Real insight.<\/p>\n\n<p>The Matomo plugin for Microsoft Teams delivers key analytics directly into daily workflows to surface real user behaviour, conversion trends, and anomalies where decisions already happen.<\/p>\n\n<p>Integrating with collaboration tools like Microsoft Teams reduces reporting delays, fragmented communication,  and keeps insights anchored in the conversations that drive action. Faster visibility, shared understanding across teams, and zero budget risk make installation a rational choice, not an experiment.<\/p>\n\n","faq":"<p><strong>Why are my Microsoft Teams messages not delivered on an install that uses an outgoing proxy?<\/strong><\/p>\n\n<p>Matomo sends the webhook request over its SSRF safe fetch path, which resolves the webhook host itself\nand connects to the address it validated. That path needs the curl PHP extension and cannot go through\na proxy, so on an install that only reaches the internet through a proxy configured in the <code>[proxy]<\/code>\nsection of <code>config\/config.ini.php<\/code> every Teams message is refused. Such a refusal is written to the\nMatomo log as <code>MicrosoftTeams webhook request to &lt;host&gt; was refused<\/code>. Sending Teams messages through a\nproxy is not supported at the moment.<\/p>\n\n<p><strong>Why is my webhook URL rejected as invalid?<\/strong><\/p>\n\n<p>The webhook host has to be a name that resolves to a public address, because the plugin must not be\nable to make Matomo call itself or another host on your network. An IP address, an encoded address such\nas <code>127.1<\/code> or <code>0x7f000001<\/code>, <code>localhost<\/code> and the host Matomo itself is reached on are all rejected while\nthe report or alert is being saved.<\/p>\n\n<p><strong>Can I use a Teams webhook that is served on a private address?<\/strong><\/p>\n\n<p>Yes, if you allow that address explicitly. Add it, or the range it is in, to\n<code>allowed_private_egress_ranges<\/code> in the <code>[General]<\/code> section of <code>config\/config.ini.php<\/code>. The webhook still\nhas to be a named host, so an address written directly in the webhook URL stays rejected.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.2 - 2026-10-05\n- Support rotating the encryption key of the stored Microsoft Teams credentials with the <code>core:rotate-encryption-keys<\/code> console command (available from the Matomo release that introduces it)<\/p>\n\n<p>6.0.1 - 2026-08-31\n- Send Microsoft Teams webhook messages over Matomo's SSRF safe fetch path, so the webhook host must resolve to a public address, the connection is pinned to the validated address and every redirect is revalidated. This request now needs curl and cannot be routed through a configured outgoing proxy, and private ranges have to be allowed with the <code>[General] allowed_private_egress_ranges<\/code> setting.\n- Rejected further webhook URLs that point at the Matomo installation itself, such as encoded address literals (<code>127.1<\/code>, <code>0x7f000001<\/code>, <code>0x7f.1<\/code>), a host that is not a valid DNS name at all (<code>%6c%6fcalhost<\/code>) and a host written in another case, with a trailing dot or in an internationalised form.\n- Added FAQ entries covering why a Teams message is refused on an install that reaches the internet only through an outgoing proxy, and how to allow a webhook served on a private address.<\/p>\n\n<p>6.0.0 - 2026-08-10\n- Compatibility with Matomo 6<\/p>\n\n<p>5.2.0 - 2026-07-20\n- Encrypted Microsoft Teams system settings and added a migration for existing plaintext values.\n- Added code to harden the URL check for Microsoft Teams<\/p>\n\n<p>5.1.0 - 2025-05-25\n- Replaced inline Microsoft Teams report expiry note with emails notices for client secret expiry.<\/p>\n\n<p>5.0.6 - 2025-04-27\n- Added code to harden the URL check for Microsoft Teams<\/p>\n\n<p>5.0.5 - 2026-03-30\n- Fixed exception when module, action and idsite is not defined when setting js variables<\/p>\n\n<p>5.0.4 - 2026-03-30\n- Added code to add notification if using deprecated Microsoft Teams webhook URL and also send an email via migration<\/p>\n\n<p>5.0.3 - 2026-03-26\n- Added code to ensure workflow webhook URL works as expected, as webhook URL is deprecated<\/p>\n\n<p>5.0.2 - 2026-02-16\n- Added code to disallow I\/P as host in Microsoft Teams webhook URL<\/p>\n\n<p>5.0.1 - 2026-01-09\n- New release for plugin to show up correctly on marketplace<\/p>\n\n<p>5.0.0 - 2026-01-05\n- Initial release to send scheduled reports and Custom Alerts to a Microsoft Teams channel<\/p>"},"download":"\/api\/2.0\/plugins\/MicrosoftTeams\/download\/6.0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/MicrosoftTeams\/changelog"},"consumer":{"license":null}},{"name":"Migration","displayName":"Migration","owner":"matomo-org","description":"Migrate\/copy any measurable (site, app, roll-up) from one Matomo to another Matomo.","homepage":"https:\/\/matomo.org","createdDateTime":"2019-01-23 21:04:04","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-Migration\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-Migration","type":"url"}],"isTheme":false,"keywords":["website","migration","site","move","measurable","migrate","copy"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration","lastUpdated":"2026-08-24 06:00:50","latestVersion":"6.0.0","numDownloads":58584,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/Migration.png","previews":[],"activity":{"numCommits":"122","numContributors":"9","lastCommitDate":"2026-10-21 06:58:08"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["database"],"promotions":{},"versions":[{"name":"3.0.0","release":"2019-01-23 21:04:04","requires":{"piwik":">=3.7.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":164,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/3.0.0"},{"name":"3.0.1","release":"2019-02-06 19:30:06","requires":{"piwik":">=3.7.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/3.0.1"},{"name":"3.0.2","release":"2019-02-06 22:34:04","requires":{"piwik":">=3.7.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":99,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/3.0.2"},{"name":"3.0.3","release":"2019-02-14 21:36:03","requires":{"piwik":">=3.7.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":207,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/3.0.3"},{"name":"3.0.4","release":"2019-02-21 23:48:04","requires":{"piwik":">=3.7.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":596,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/3.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/3.0.4"},{"name":"3.0.5","release":"2019-04-14 20:20:04","requires":{"piwik":">=3.7.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5097,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/3.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/3.0.5"},{"name":"4.0.0","release":"2020-07-31 00:26:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":327,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:08:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":67,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/4.0.1"},{"name":"4.0.2","release":"2020-11-24 01:12:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5258,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/4.0.2"},{"name":"5.0.0","release":"2023-05-08 02:04:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.0"},{"name":"4.0.3","release":"2023-05-22 10:08:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10852,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/4.0.3"},{"name":"5.0.1","release":"2023-07-31 04:22:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2825,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.1"},{"name":"5.0.2","release":"2024-02-12 05:56:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2511,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.2"},{"name":"5.0.3","release":"2024-04-22 07:04:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5275,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.3"},{"name":"5.0.4","release":"2024-09-16 05:06:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2810,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.4"},{"name":"5.0.5","release":"2025-01-20 07:48:07","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6117,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Migration\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.5"},{"name":"5.0.6","release":"2025-09-30 03:42:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10078,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Migration\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.6"},{"name":"5.0.7","release":"2026-06-08 05:12:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1057,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Migration\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.7"},{"name":"5.0.8","release":"2026-06-29 05:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5047,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Migration\/5.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Migration\/download\/5.0.8"},{"name":"6.0.0","release":"2026-08-24 06:00:50","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":162,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Migration\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Migration\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>Lets you copy a Matomo Measurable (Website, Mobile App, ...) including all tracked raw data and generated reports\nfrom one Matomo instance to another Matomo instance.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>You need access to source Matomo server and be able to execute a command on the console.<\/li>\n<li>You need access to target Matomo database.<\/li>\n<li>Make sure you have updated both Matomo servers to the same Matomo version or have at least the same DB structure.<\/li>\n<li>Wanting to migrate from Matomo On-Premise to Matomo for WordPress? <a href=\"https:\/\/matomo.org\/faq\/wordpress\/how-do-i-migrate-all-my-data-from-matomo-on-premise-to-matomo-for-wordpress\/\">Learn more about this here<\/a><\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<p>Before executing the migration command we always recommend to make a backup of the target database and ideally also test\nit first with the <code>dry-run<\/code> flag (dry-run is faster but can take a long time as well and will give you an idea of how long migration\nwill take).<\/p>\n\n<p><strong>NOTE:<\/strong> The migration tool will create a <strong>new website<\/strong> in the target Matomo, using the next available <code>siteid<\/code>, and copy all the data from the source website to this newly created target website.\nRemember to update the tracking code to match the new <code>siteid<\/code>.<\/p>\n\n<p>To start a migration execute the <code>migration:measurable<\/code> command, example:<\/p>\n\n<pre><code> .\/console migration:measurable --source-idsite=1 --target-db-host=192.168.1.1 --target-db-username=root --target-db-password=secure --target-db-name=piwik2\n<\/code><\/pre>\n\n<p>Optional parameters are:<\/p>\n\n<pre><code> --target-db-prefix=piwik_                          Target database table prefix (default: \"\")\n --target-db-port=3306                              Target database port (default: \"3306\")\n --target-db-enable-ssl                             Used for establishing secure connections using SSL with target database host\n --target-db-ssl-ca=\/etc\/ssl\/certs\/cert.pem         The path name to the certificate authority file (default: \"\/etc\/ssl\/certs\/cert.pem\")\n --target-db-ssl-no-verify                          Disable server certificate validation of the target database\n --skip-logs                                        Skip migration of logs (Raw tracking data)\n --skip-archives                                    Skip migration of archives (Report data)\n --dry-run                                          Enable debug mode where it does not insert anything.\n --disable-db-transactions                          Disable the usage of MySQL database transactions\n<\/code><\/pre>\n\n<p>Both Matomo instances may be on different servers with proper firewall rules that restrict database access on target instance.\nIn such case, the easiest way for source server to access target database is to create a <a href=\"https:\/\/www.ssh.com\/academy\/ssh\/tunneling\">ssh tunnel<\/a> on new port (e.g. 3307) in another terminal.\nThen, execute to the above command with <code>--target-db-port=3307<\/code> instead to access port 3306 on target host. Example:<\/p>\n\n<pre><code>ssh -NL 3307:localhost:3306 targetuser@targethost\n<\/code><\/pre>\n\n<p>This command should be run on the source Matomo server. It essentially maps port 3307 of the server to port 3306 of the server you are migrating to and is specified by <code>targethost<\/code>.\nThe <code>targethost<\/code> should be replaced by a valid IP or domain name referencing the server you are migrating to and must be accessible to the server that you are migrating from. So, the source server should be able to <a href=\"https:\/\/www.redhat.com\/sysadmin\/ping-usage-basics\">ping<\/a> the target server.\nThe <code>targetuser<\/code> should be replaced with a valid SSH user account that has been setup on the server that you are migrating to. It's preferable to setup <a href=\"https:\/\/docs.github.com\/en\/authentication\/connecting-to-github-with-ssh\/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent\">an SSH key<\/a> on the source server and use <a href=\"https:\/\/www.ssh.com\/academy\/ssh\/copy-id\">the ssh-copy-id command<\/a> to add it to the authorized keys for the <code>targetuser<\/code>, but using the user's password should work too.<\/p>\n\n<p>An alternative to using an SSH tunnel is to make a backup of your MySQL database, copy it to the new server, import it into a temporary database, and then migrate using that database name.\nRemember to delete the temporary database after completing the migration, and checking that everything works.\nFor more information about this process please refer to: <a href=\"https:\/\/matomo.org\/faq\/how-to-install\/faq_76\/\">How can I move Matomo from one server to another, also migrating the data from one mysql server to another?<\/a>.<\/p>\n\n<p>Matomo instance and files in folders may be owned by a special user (e.g. <code>www-data<\/code>) with restricted ssh access.\nThe abovementioned may be run either under root (e.g. <code>sudo ...<\/code>), or the special user (<code>sudo -u www-data ...<\/code>).<\/p>\n\n<p>Please note that the migration can take a while depending on the amount of data that needs to be copied.<\/p>\n\n<p>No data from the original Matomo instance will be deleted, only new data will be added to the new Matomo instance.<\/p>\n\n<p>No premium feature data is currently being migrated.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>6.0.0 - 2026-08-10<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<\/ul>\n\n<h3>5.0.8 - 2026-06-29<\/h3>\n\n<ul>\n<li>Improved visit log migration batching to use idvisit keyset pagination<\/li>\n<\/ul>\n\n<h3>5.0.7 - 2026-06-08<\/h3>\n\n<ul>\n<li>Added code to ignore migration if no option is provided explicitly<\/li>\n<\/ul>\n\n<h3>5.0.6 - 2025-09-29<\/h3>\n\n<ul>\n<li>Allow annotations migration to work with both option and annotations tables<\/li>\n<\/ul>\n\n<h3>5.0.5 - 2025-01-20<\/h3>\n\n<ul>\n<li>Added missing license file<\/li>\n<\/ul>\n\n<h3>5.0.4 - 2024-09-16<\/h3>\n\n<ul>\n<li>Added code to continue import if duplicate records are found in archive table<\/li>\n<\/ul>\n\n<h3>5.0.3<\/h3>\n\n<ul>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h3>5.0.2<\/h3>\n\n<ul>\n<li>Add optional parameters to support ssl<\/li>\n<\/ul>\n\n<h3>5.0.1<\/h3>\n\n<ul>\n<li>Second beta release<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<h3>4.0.3<\/h3>\n\n<ul>\n<li>Security improvements in query builder<\/li>\n<\/ul>\n\n<h3>4.0.2<\/h3>\n\n<ul>\n<li>Support export from Matomo for WordPress<\/li>\n<\/ul>\n\n<h3>4.0.1<\/h3>\n\n<ul>\n<li>Update sequence table if needed<\/li>\n<\/ul>\n\n<h3>4.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 4<\/li>\n<\/ul>\n\n<h3>3.0.5<\/h3>\n\n<ul>\n<li>Fix an issue in copying visits<\/li>\n<\/ul>\n\n<h3>3.0.4<\/h3>\n\n<ul>\n<li>Fix possible duplicate entry error while migrating archives<\/li>\n<\/ul>\n\n<h3>3.0.3<\/h3>\n\n<ul>\n<li>Migrate segments &amp; annotations<\/li>\n<\/ul>\n\n<h3>3.0.2<\/h3>\n\n<ul>\n<li>More logging<\/li>\n<\/ul>\n\n<h3>3.0.1<\/h3>\n\n<ul>\n<li>Fix possible notice when Custom Dimensions is not installed<\/li>\n<\/ul>\n\n<h3>3.0.0<\/h3>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Migration\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Migration\/changelog"},"consumer":{"license":null}},{"name":"Missivus","displayName":"Missivus","owner":"Solvetus","description":"Missivus for Matomo \u2014 send Matomo email through Microsoft Graph with application permissions and a shared mailbox. No SMTP, no user login.","homepage":"https:\/\/missivus.com","createdDateTime":"2026-08-17 21:26:03","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/missivus.com\/matomo\/","type":"url"},{"name":"Email","key":"email","value":"support@missivus.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Solvetus\/missivus-matomo\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Solvetus\/missivus-matomo","type":"url"}],"isTheme":false,"keywords":["graph","microsoft","email","mail","office365","microsoft365","exchange","smtp","entra"],"basePrice":0,"authors":[{"name":"Solvetus","email":"support@missivus.com","homepage":"https:\/\/solvetus.com"}],"repositoryUrl":"https:\/\/github.com\/Solvetus\/missivus-matomo","lastUpdated":"2026-09-13 11:26:04","latestVersion":"1.0.0","numDownloads":1418,"screenshots":["https:\/\/plugins.matomo.org\/Missivus\/images\/1.0.0\/Settings_page.png","https:\/\/plugins.matomo.org\/Missivus\/images\/1.0.0\/Test_email_sent.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/integration.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-09-13 11:25:43"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"0.1.3","release":"2026-08-17 21:26:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Missivus\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Solvetus\/missivus-matomo\/commits\/v0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Missivus\/download\/0.1.3"},{"name":"0.1.4","release":"2026-08-18 07:02:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Missivus\/0.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Solvetus\/missivus-matomo\/commits\/v0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Missivus\/download\/0.1.4"},{"name":"0.1.5","release":"2026-08-19 14:52:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1170,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Missivus\/0.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Solvetus\/missivus-matomo\/commits\/v0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Missivus\/download\/0.1.5"},{"name":"0.1.6","release":"2026-09-13 11:18:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":171,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Missivus\/0.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Solvetus\/missivus-matomo\/commits\/v0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Missivus\/download\/0.1.6"},{"name":"1.0.0","release":"2026-09-13 11:26:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":58,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Missivus\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Solvetus\/missivus-matomo\/commits\/v1.0.0","readmeHtml":{"description":"\n\n<p><strong>Missivus for Matomo \u2014 send Matomo email through Microsoft Graph with application permissions and a\nshared mailbox. No SMTP, no user login. Free, GPLv3.<\/strong><\/p>\n\n<p>Matomo has no email API. It sends only through PHPMailer, over SMTP or PHP's <code>mail()<\/code>. For Microsoft\n365 that means SMTP AUTH with basic authentication \u2014 a licensed user's password stored on your\nserver as a shared credential, on a path Microsoft is retiring: disabled by default for existing\ntenants from the end of December 2026, unavailable to new tenants from 2027, with final removal to\nfollow. Matomo's PHPMailer path cannot do the OAuth2 SMTP that replaces it. Sooner or later the\npassword resets, scheduled reports and alerts stop.<\/p>\n\n<p>Missivus replaces Matomo's mail transport with one that posts to the Microsoft Graph API using\n<strong>OAuth2 client credentials<\/strong> and the <strong>Mail.Send application permission<\/strong>, sending as one shared\nmailbox you nominate. Every email Matomo produces goes out that way \u2014 there is nothing to switch\nover report by report.<\/p>\n\n<h3>Application permissions, not a delegated login<\/h3>\n\n<p>The usual Microsoft 365 mailers use <em>delegated<\/em> authentication: a multi-tenant app, a redirect URI,\nand a human who clicks \"Connect\" so that mail goes out as their account. That is the wrong shape for\na server. It breaks when that person leaves, when their password changes, and when MFA policy\ntightens.<\/p>\n\n\n\n\n  \n  Delegated mailers\n  Missivus\n\n\n\n\n  Who sends\n  A named person's account\n  A shared mailbox\n\n\n  Setup\n  A human clicks \"Connect\"\n  Nothing to click\n\n\n  Survives an employee leaving\n  No\n  Yes\n\n\n  Mailbox licence needed\n  Yes\n  No\n\n\n  Scope\n  Whatever that person can reach\n  One mailbox, enforced by Exchange\n\n\n  Cost\n  Often a paid extension\n  Free, GPLv3\n\n\n\n\n<p>The scoping is what makes this safe. An <strong>Exchange application access policy<\/strong> restricts the app\nregistration to the single shared mailbox, so the <code>Mail.Send<\/code> permission cannot touch any other\nmailbox in your tenant \u2014 and the install guide treats that step as first-class, with a command to\nverify it actually took effect.<\/p>\n\n<h3>What it does<\/h3>\n\n<ul>\n<li><strong>Everything <code>Piwik\\Mail<\/code> supports:<\/strong> HTML and plaintext, multiple recipients, BCC, Reply-To, and\nattachments \u2014 including the PDFs that scheduled reports generate.<\/li>\n<li><strong>Large attachments never fail on size.<\/strong> Files under 3 MB go inline; anything larger is uploaded\nthrough a Graph upload session automatically. There is no setting that can get this wrong.<\/li>\n<li><strong>Client secret or certificate.<\/strong> A client secret is the quickest way in and is the default; a\ncertificate is supported as optional hardening.<\/li>\n<li><strong>Secrets can stay out of the database.<\/strong> Any value can come from a <code>[Missivus]<\/code> section of\n<code>config.ini.php<\/code> or from an environment variable, which then wins over the settings UI and is\nnever written to the option table.<\/li>\n<li><strong>Nothing fails silently.<\/strong> A Graph failure is logged at error level and, unless you explicitly\nturn on the fallback, raised. Nothing is swallowed.<\/li>\n<li><strong>A test-email button<\/strong> that shows you the exact error Microsoft returned.<\/li>\n<li><strong>No third-party runtime dependencies.<\/strong> Nothing beyond what Matomo already ships, and nothing to\n<code>composer install<\/code>.<\/li>\n<\/ul>\n\n<h3>What you need<\/h3>\n\n\n\n\n  Matomo version\n  Missivus release line\n  Branch\n  PHP\n\n\n\n\n  Matomo 5.x\n  0.1.x\n  <code>main<\/code>\n  7.2.5 or later\n\n\n  Matomo 6.x\n  1.x\n  <code>6.x-dev<\/code>\n  8.1 or later\n\n\n\n\n<ul>\n<li>PHP with the <code>openssl<\/code> and <code>json<\/code> extensions (PHP 8.1 or later on the 1.x line)<\/li>\n<li>A Microsoft 365 tenant, and an administrator who can create an app registration, grant admin\nconsent, and run one Exchange Online PowerShell command<\/li>\n<li>A shared mailbox to send from. It needs <strong>no licence<\/strong><\/li>\n<\/ul>\n\n<h3>Getting started<\/h3>\n\n<p>Install the plugin, then follow <strong><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/blob\/main\/docs\/index.md\">the installation guide<\/a><\/strong> \u2014\nit is written for someone who has never opened Microsoft Entra, and every click is spelled out.\nBudget about an hour for the Microsoft side. The\n<a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/blob\/main\/docs\/faq.md\">FAQ<\/a> answers the questions that\ncome up most often, and\n<a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/blob\/main\/docs\/SECURITY.md\">docs\/SECURITY.md<\/a> is the\nstanding security review.<\/p>\n\n<p>Missivus is free and open source (GPLv3). If you would rather not do the Entra and Exchange setup\nyourself, <a href=\"https:\/\/solvetus.com\">Solvetus<\/a> offers paid installation and support.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Does the shared mailbox need a Microsoft 365 licence?<\/h2>\n\n<p>No. An Exchange Online <strong>shared mailbox<\/strong> is free, up to 50 GB, and needs no licence assigned to it \u2014\nwhich is the point. Missivus authenticates as an <em>application<\/em>, not as the mailbox, so nobody has to\nsign in as it and nothing has to be paid for it. (A licence is only required if you want to convert\nit to a user mailbox, put it under litigation hold, or give it an archive.)<\/p>\n\n<h2>Why not just use SMTP? Matomo already supports it.<\/h2>\n\n<p>Because it is on borrowed time, and because of what it costs you today. Microsoft is retiring\nbasic-authentication SMTP AUTH for Microsoft 365: it is disabled by default for existing tenants\nfrom the end of December 2026, unavailable to new tenants from 2027, and the final removal date\nwill be announced in 2027 (see Microsoft's\n<a href=\"https:\/\/techcommunity.microsoft.com\/blog\/exchange\/exchange-online-to-retire-basic-auth-for-client-submission-smtp-auth\/4114750\">announcement<\/a>\nand <a href=\"https:\/\/techcommunity.microsoft.com\/blog\/exchange\/updated-exchange-online-smtp-auth-basic-authentication-deprecation-timeline\/4489835\">updated timeline<\/a>).\nWhat remains after that is SMTP AUTH with OAuth2, which Matomo's PHPMailer path does not speak. And\neven while it still works, SMTP means a licensed user account whose password sits on your server as\na shared credential, with no way to scope what it can do.<\/p>\n\n<p>Graph with application permissions has neither problem: there is no password, no user, no licence,\nand the credential is scoped by Exchange to one mailbox.<\/p>\n\n<h2>Client secret or certificate \u2014 which should I use?<\/h2>\n\n<p>Start with a <strong>client secret<\/strong>. It is two clicks in Entra, there is nothing to manage on the\nfilesystem, and it is the documented route throughout the guide.<\/p>\n\n<p>A <strong>certificate<\/strong> is stronger, because the secret never travels in a request body: Missivus signs a\nshort-lived assertion with the private key instead. Use it if your security policy asks for it, or if\nyou would rather rotate a file on disk than a value in a database. The trade is that you now have a\nPEM file to keep readable by the web server and nobody else, and to replace before it expires.<\/p>\n\n<p>Both are fully implemented and tested. You can switch between them at any time from the settings\npage.<\/p>\n\n<h2>How do I rotate the client secret?<\/h2>\n\n<p>Entra secrets expire \u2014 24 months at most, and 6 months is the default. Rotation is deliberately\nboring:<\/p>\n\n<ol>\n<li>In your app registration, <strong>Certificates &amp; secrets \u2192 New client secret<\/strong>. The old one keeps\nworking until it expires, so there is no outage window.<\/li>\n<li>Copy the new secret <strong>Value<\/strong> (not the Secret ID).<\/li>\n<li>Paste it into <strong>Administration \u2192 System \u2192 General settings \u2192 Missivus \u2192 Client secret<\/strong>, and\nclick <strong>Save<\/strong>. If you keep credentials in <code>config.ini.php<\/code> or an environment variable instead,\nchange it there and reload PHP.<\/li>\n<li>Press <strong>Send test email<\/strong> to confirm.<\/li>\n<li>Delete the old secret in Entra.<\/li>\n<\/ol>\n\n<p>Missivus caches the <em>access token<\/em>, not the secret, for at most 55 minutes \u2014 so the changeover is\nimmediate for new tokens and nothing needs restarting.<\/p>\n\n<h2>What happens with attachments over 3 MB?<\/h2>\n\n<p>They still send. Graph's inline attachment limit is 3 MB, and the whole <code>sendMail<\/code> request is bounded\nat 4 MB, so above that ceiling Missivus automatically switches to Graph's large-file path: it creates\na draft, uploads each large file in chunks through an upload session, then sends the draft. The\ndecision is made per message and is total-aware, so several medium files that add up also take the\nsafe path.<\/p>\n\n<p>There is no setting for this and no way to configure it wrongly \u2014 scheduled-report PDFs must never\nfail on size.<\/p>\n\n<h2>Why does the guide ask for Mail.ReadWrite as well as Mail.Send?<\/h2>\n\n<p>Only for that large-attachment path. Creating a draft message and opening an attachment upload\nsession are not covered by <code>Mail.Send<\/code>; Microsoft requires <code>Mail.ReadWrite<\/code> for them.<\/p>\n\n<p>If you never send attachments over 3 MB you can grant <code>Mail.Send<\/code> alone. If you do, and\n<code>Mail.ReadWrite<\/code> is missing, the failure is loud and names the permission rather than being\nmysterious.<\/p>\n\n<p>Both permissions are scoped by the same application access policy, so <code>Mail.ReadWrite<\/code> grants nothing\noutside the one shared mailbox.<\/p>\n\n<h2>Is the application access policy really necessary?<\/h2>\n\n<p>Yes \u2014 treat it as part of the installation, not as hardening you might do later.<\/p>\n\n<p>Without it, <code>Mail.Send<\/code> as an application permission means the app can send as <strong>any mailbox in your\ntenant<\/strong>. The policy narrows it to one. That single step is what turns \"an app that can impersonate\neverybody\" into \"an app that can send as noreply@\". The guide gives you the exact commands, including\n<code>Test-ApplicationAccessPolicy<\/code> to prove that another mailbox comes back <strong>Denied<\/strong> before you go any\nfurther.<\/p>\n\n<p>Note that Exchange scopes a policy to a <em>group<\/em>, not a mailbox, so the guide has you create a\nsecurity group whose only member is the shared mailbox. Nobody ever sends to that group; it exists so\nthe policy has something to point at.<\/p>\n\n<h2>The test email button is greyed out. What now?<\/h2>\n\n<p>The test sends with the settings that are <strong>saved<\/strong>, not with what is currently typed on screen, so\nthe button stays disabled until the stored configuration is complete and Missivus is switched on. The\nnote under the button says which of those is missing.<\/p>\n\n<p>Fill in the fields, tick <strong>Send email through Microsoft Graph<\/strong>, and click <strong>Save<\/strong>. The button\nenables itself a moment later \u2014 no page reload needed.<\/p>\n\n<h2>My Matomo runs in Docker and I cannot drop files into <code>plugins\/<\/code>. Can I upload the zip?<\/h2>\n\n<p>Yes, with one temporary setting change. Matomo ships <code>enable_plugin_upload<\/code> <strong>off<\/strong> because it lets\nany superuser upload a zip that Matomo then unpacks and executes \u2014 arbitrary PHP running as your web\nserver user.<\/p>\n\n<p>The guide's <a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/blob\/main\/docs\/index.md#upload-via-the-matomo-ui-docker-or-locked-down-installs\">Upload via the Matomo UI<\/a>\nsection walks through turning it on from inside the container, uploading and activating the plugin,\nand \u2014 importantly \u2014 turning it back off again afterwards. Leaving it on is a standing\nremote-code-execution path for anyone who ever gets a superuser session.<\/p>\n\n<h2>Will Missivus break my email if I install it and do nothing?<\/h2>\n\n<p>No. It ships switched off. Activating the plugin changes nothing at all: <code>Piwik\\Mail<\/code> keeps using\nwhatever transport Matomo was already using until you tick <strong>Send email through Microsoft Graph<\/strong>.\nDeactivating the plugin restores the stock transport with no cleanup.<\/p>\n\n<p>The optional <strong>fall back to Matomo's own mail settings<\/strong> switch is also off by default, deliberately:\na failure you can see beats an email that quietly goes nowhere. Either way, every Graph failure is\nwritten to Matomo's log at error level.<\/p>\n\n<h2>I got an error code from Microsoft. What does it mean?<\/h2>\n\n<p>The common ones, in full in the <a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/blob\/main\/docs\/index.md#when-it-does-not-work\">installation guide's troubleshooting table<\/a>:<\/p>\n\n\n\n\n  Code\n  Usually means\n\n\n\n\n  <code>AADSTS7000215<\/code>\n  Wrong client secret \u2014 often the Secret <strong>ID<\/strong> was copied instead of the <strong>Value<\/strong>\n\n\n  <code>AADSTS900023<\/code>\n  Wrong Directory (tenant) ID\n\n\n  <code>AADSTS700027<\/code>\n  The certificate Matomo is using is not the one uploaded to Entra\n\n\n  <code>ErrorAccessDenied<\/code>\n  The application access policy does not cover this mailbox, or admin consent was never granted\n\n\n  <code>ErrorAccessDenied<\/code> only on big attachments\n  <code>Mail.ReadWrite<\/code> is missing\n\n\n  <code>MailboxNotEnabledForRESTAPI<\/code>\n  The sender address is not a real Exchange Online mailbox\n\n\n  \"mailbox is either inactive, soft-deleted\u2026\"\n  The mailbox has not finished provisioning \u2014 wait and retry\n\n\n\n\n<p>Secrets are redacted before anything is logged or shown, so you can paste these errors into an issue\nsafely \u2014 but do check them over first.<\/p>\n\n<h2>Does it work with Matomo for WordPress, or with other Matomo plugins that send email?<\/h2>\n\n<p>Any email that goes through <code>Piwik\\Mail<\/code> goes through Missivus \u2014 that includes password resets,\nscheduled report PDFs, alerts, and third-party plugins that use Matomo's mail layer properly. A\nplugin that opens its own SMTP connection instead is untouched by any of this.<\/p>\n\n<p>Missivus for Matomo has not been tested running under <strong>Matomo for WordPress<\/strong> specifically. If you\nrun Matomo on WordPress, the supported route is the sibling <strong>missivus-wordpress<\/strong> plugin, which\nvendors the same Microsoft Graph transport for WordPress's own mail layer directly, rather than\nthis Matomo plugin running inside a WordPress-hosted Matomo.<\/p>\n\n<p>The WordPress sibling has shipped \u2014 along with <strong>missivus-nextcloud<\/strong> and <strong>missivus-ghost<\/strong>, which\nsend Nextcloud's and Ghost's own outbound email the same way. See\n<a href=\"https:\/\/missivus.com\">missivus.com<\/a> for all four.<\/p>\n\n<h2>Which version do I install \u2014 Matomo 5 or Matomo 6?<\/h2>\n\n\n\n\n  Matomo version\n  Missivus release line\n  Branch\n  PHP\n\n\n\n\n  Matomo 5.x\n  0.1.x\n  <code>main<\/code>\n  7.2.5 or later\n\n\n  Matomo 6.x\n  1.x\n  <code>6.x-dev<\/code>\n  8.1 or later\n\n\n\n\n<p>The Marketplace offers the right line automatically, based on the Matomo version you have\ninstalled. A manual install from GitHub takes the latest tag on the branch matching your Matomo.<\/p>\n\n<h2>Where do I report a bug, or a security problem?<\/h2>\n\n<p>Bugs and feature requests: the\n<a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/issues\">issue tracker<\/a>.<\/p>\n\n<p>Security problems: email <a href=\"mailto:security@missivus.com\">security@missivus.com<\/a> instead, and please give us a chance to fix it\nbefore it becomes public.\n<a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/blob\/main\/docs\/SECURITY.md\">docs\/SECURITY.md<\/a>\ndocuments what has already been reviewed.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>This guide assumes you have <strong>never used Microsoft Entra before<\/strong>. Every click is spelled out.<\/p>\n\n<p>Pick the release line that matches your Matomo:<\/p>\n\n\n\n\n  Matomo version\n  Missivus release line\n  Branch\n  PHP\n\n\n\n\n  Matomo 5.x\n  0.1.x\n  <code>main<\/code>\n  7.2.5 or later\n\n\n  Matomo 6.x\n  1.x\n  <code>6.x-dev<\/code>\n  8.1 or later\n\n\n\n\n<p>You will need:<\/p>\n\n<ul>\n<li>An account in your Microsoft 365 tenant that can create app registrations and grant admin consent\n\u2014 in practice, a <strong>Global Administrator<\/strong> or an <strong>Application Administrator<\/strong> who is also an\n<strong>Exchange Administrator<\/strong>.<\/li>\n<li>Access to the server Matomo runs on.<\/li>\n<\/ul>\n\n<p>Set aside about an hour. Nothing here is reversible-by-accident; every step can be undone.<\/p>\n\n<p>Throughout, replace <code>example.com<\/code> with your own domain and <code>noreply@example.com<\/code> with whatever\naddress you want Matomo's email to come from.<\/p>\n\n\n\n<h2>Part 1 \u2014 Create the app registration<\/h2>\n\n<p>This is the identity Matomo will use. It is not a user and has no password anyone types.<\/p>\n\n<ol>\n<li>Go to <a href=\"https:\/\/entra.microsoft.com\">https:\/\/entra.microsoft.com<\/a> and sign in.<\/li>\n<li>In the left-hand menu choose <strong>Applications \u2192 App registrations<\/strong>.<\/li>\n<li>Click <strong>+ New registration<\/strong>.<\/li>\n<li>Fill in the form:\n\n<ul>\n<li><strong>Name<\/strong>: <code>missivus-matomo-&lt;your Matomo hostname&gt;<\/code> \u2014 for example\n<code>missivus-matomo-analytics.example.com<\/code>. Only administrators see this, and naming it after the\ntool and the host keeps it straight once your tenant holds several registrations.<\/li>\n<li><strong>Supported account types<\/strong>: <strong>Accounts in this organizational directory only (Single tenant)<\/strong><\/li>\n<li><strong>Redirect URI<\/strong>: leave completely empty. Missivus never redirects a browser anywhere, and an\nempty value here is part of why this setup cannot be hijacked.<\/li>\n<\/ul><\/li>\n<li>Click <strong>Register<\/strong>.<\/li>\n<\/ol>\n\n<p>You now land on the app's <strong>Overview<\/strong> page. Two values on it go into Matomo. Copy them somewhere\nsafe \u2014 they are identifiers, not secrets, so a note is fine:<\/p>\n\n\n\n\n  On the Overview page\n  Goes into Matomo as\n\n\n\n\n  <strong>Application (client) ID<\/strong>\n  Client ID\n\n\n  <strong>Directory (tenant) ID<\/strong>\n  Tenant ID\n\n\n\n\n\n\n<h2>Part 2 \u2014 Grant the permission to send mail<\/h2>\n\n<ol>\n<li>Still inside your app registration, choose <strong>API permissions<\/strong> in the left-hand menu.<\/li>\n<li>Click <strong>+ Add a permission<\/strong>.<\/li>\n<li>Choose <strong>Microsoft Graph<\/strong>.<\/li>\n<li>Choose <strong>Application permissions<\/strong>. This is the important choice \u2014 <em>not<\/em> \"Delegated permissions\".\nApplication permissions belong to the app itself, which is why no human ever has to sign in.<\/li>\n<li>In the search box type <code>Mail.Send<\/code>. Tick <strong>Mail.Send<\/strong>.<\/li>\n<li><strong>If Matomo will email attachments larger than 3 MB<\/strong> \u2014 which scheduled PDF reports often are \u2014\nalso search for <code>Mail.ReadWrite<\/code> and tick it. Microsoft requires it for the large-attachment\nupload path: sending a big file means creating a draft first, and <code>Mail.Send<\/code> alone does not\nallow that. If you skip it, ordinary email still works and only oversized attachments fail, with\nan error naming this permission.<\/li>\n<li>Click <strong>Add permissions<\/strong>.<\/li>\n<li>Back on the API permissions page you will see your permissions with a warning triangle and the\nstatus <strong>Not granted for &lt;your organisation&gt;<\/strong>. Click\n<strong>\u2713 Grant admin consent for &lt;your organisation&gt;<\/strong>, then <strong>Yes<\/strong>.<\/li>\n<li>Confirm the Status column now reads <strong>Granted for &lt;your organisation&gt;<\/strong> with a green tick.<\/li>\n<\/ol>\n\n<blockquote>\n  <p>If the \"Grant admin consent\" button is greyed out, your account cannot consent. Ask a Global\n  Administrator to click it. Nothing else in this guide requires their involvement.<\/p>\n<\/blockquote>\n\n<p>You may also see <strong>User.Read<\/strong> listed as a delegated permission. Azure adds it automatically to new\nregistrations. Missivus does not use it and you can safely remove it.<\/p>\n\n\n\n<h2>Part 3 \u2014 Give the app a credential<\/h2>\n\n<p>Pick <strong>one<\/strong> of these. If you are not sure, pick the client secret: it is two clicks, it is what the\nrest of this guide assumes, and you can move to a certificate later without reinstalling anything.<\/p>\n\n<h3>Option A \u2014 Client secret (start here)<\/h3>\n\n<ol>\n<li>In your app registration choose <strong>Certificates &amp; secrets<\/strong>.<\/li>\n<li>On the <strong>Client secrets<\/strong> tab click <strong>+ New client secret<\/strong>.<\/li>\n<li>Give it a description following the pattern <code>missivus-matomo-&lt;your Matomo hostname&gt;<\/code> \u2014\nfor example <code>missivus-matomo-analytics.example.com<\/code> \u2014 then choose an expiry and click\n<strong>Add<\/strong>. A tenant accumulates app registrations and secrets quickly, and a name that says\nwhich tool and which host it belongs to is the difference between confidently rotating a\nsecret and being afraid to touch it.<\/li>\n<li>Copy the <strong>Value<\/strong> column immediately. <strong>It is shown once and never again.<\/strong> The <em>Secret ID<\/em>\ncolumn is not the secret and is not what you need \u2014 this trips almost everyone up the first\ntime.<\/li>\n<li>Put the expiry date in a calendar. Mail stops on that day if the secret is not replaced.<\/li>\n<\/ol>\n\n<p>That is the credential. Skip to Part 4.<\/p>\n\n<h3>Option B \u2014 Certificate (optional hardening)<\/h3>\n\n<p>A certificate is more secure than a secret: it never travels in a request body, and it can be given\na longer life without the same exposure. It is worth doing if you are comfortable with <code>openssl<\/code> and\nmanaging a key file on the server \u2014 but nothing in Missivus needs it, and a secret is not a second-\nclass option.<\/p>\n\n<p>Run this on the Matomo server, or anywhere with <code>openssl<\/code> installed:<\/p>\n\n<pre><code>openssl req -x509 -newkey rsa:2048 -keyout missivus.key -out missivus.crt \\\n  -days 730 -nodes -subj \"\/CN=missivus-matomo\"\n\n# Missivus wants one file containing both parts:\ncat missivus.key missivus.crt &gt; missivus.pem\n<\/code><\/pre>\n\n<ul>\n<li><code>missivus.pem<\/code> is the file Matomo reads. <strong>It is a credential \u2014 treat it like a password.<\/strong><\/li>\n<li><code>missivus.crt<\/code> is the public half, the only part you upload to Microsoft.<\/li>\n<\/ul>\n\n<p>Upload the public half:<\/p>\n\n<ol>\n<li>In your app registration choose <strong>Certificates &amp; secrets<\/strong>.<\/li>\n<li>Select the <strong>Certificates<\/strong> tab, click <strong>Upload certificate<\/strong>.<\/li>\n<li>Choose <code>missivus.crt<\/code>, add a description, click <strong>Add<\/strong>.<\/li>\n<li>A thumbprint and an expiry date appear. <strong>Put the expiry date in a calendar<\/strong> \u2014 mail stops on\nthat day if the certificate is not replaced.<\/li>\n<\/ol>\n\n<p>Put the PEM somewhere outside your web root and outside the plugin directory, so a plugin update\ncannot overwrite it and a web server misconfiguration cannot serve it:<\/p>\n\n<pre><code>sudo mkdir -p \/etc\/matomo\/secrets\nsudo mv missivus.pem \/etc\/matomo\/secrets\/missivus.pem\nsudo chown root:www-data \/etc\/matomo\/secrets\/missivus.pem\nsudo chmod 640 \/etc\/matomo\/secrets\/missivus.pem\nrm missivus.key missivus.crt      # no longer needed on this machine\n<\/code><\/pre>\n\n<p>Use <code>www-data<\/code> or whichever user your web server runs as.<\/p>\n\n<p>If you choose this option, set <strong>Authentication method<\/strong> to <strong>Certificate<\/strong> in Part 7 and give the\npath to the PEM instead of a secret.<\/p>\n\n\n\n<h2>Part 4 \u2014 Create the shared mailbox<\/h2>\n\n<p>A shared mailbox needs no licence, which is the point: Matomo gets a real, monitorable mailbox for\nfree.<\/p>\n\n<p>Make it a <strong>company-wide no-reply address rather than a Matomo-specific one<\/strong> \u2014 <code>noreply@example.com<\/code>\nwith the display name set to your company name, not <code>matomo@<\/code> or <code>Matomo Analytics<\/code>. Recipients see\nthe display name, and \"Example Ltd\" reads better in an inbox than the name of your analytics\nsoftware. It also means the next tool that needs to send email can reuse this same mailbox: each\ntool gets <strong>its own Entra app registration<\/strong>, scoped to this mailbox by the same kind of application\naccess policy, so their credentials stay completely separate while the address your customers see\nstays consistent.<\/p>\n\n<ol>\n<li>Go to <a href=\"https:\/\/admin.microsoft.com\">https:\/\/admin.microsoft.com<\/a>.<\/li>\n<li>Choose <strong>Teams &amp; groups \u2192 Shared mailboxes<\/strong>.<\/li>\n<li>Click <strong>+ Add a shared mailbox<\/strong>.<\/li>\n<li>Set the name to your company name \u2014 for example <code>Example Ltd<\/code> \u2014 with the address\n<code>noreply@example.com<\/code>.<\/li>\n<li>Click <strong>Save changes<\/strong>. Give it a few minutes to appear everywhere.<\/li>\n<\/ol>\n\n<p>Do not add any members. Nobody needs to sign into it.<\/p>\n\n<p>Two optional bits of hardening while you are here. Both are worth doing and <strong>neither changes\nanything for Missivus<\/strong>, which talks to Graph and needs none of these protocols:<\/p>\n\n<ul>\n<li><strong>Mailbox \u2192 Email apps<\/strong>: switch off Outlook desktop (MAPI), Exchange web services, ActiveSync,\nIMAP, POP3 and Outlook on the web. That closes every sign-in route into the mailbox.<\/li>\n<li><strong>Mailbox \u2192 General \u2192 Hide from address list<\/strong>: turn it on, so a no-reply address does not clutter\ncolleagues' address pickers or invite replies.<\/li>\n<\/ul>\n\n\n\n<h2>Part 5 \u2014 Lock the app to that one mailbox<\/h2>\n\n<p><strong>Do not skip this.<\/strong> Until you do, the <code>Mail.Send<\/code> permission you granted in Part 2 lets the app\nsend as <em>anyone<\/em> in your tenant. An application access policy narrows it to the single shared\nmailbox, and it is what makes this whole model safe.<\/p>\n\n<p><strong>How it works, in one paragraph.<\/strong> Exchange cannot point a policy at a single mailbox \u2014 it can\nonly point one at a <em>group<\/em>. So you create a security group whose only member is the shared\nmailbox from Part 4, then tell Exchange \"this app may only touch mailboxes in that group\". The\ngroup gets an email address of its own (<code>noreply-apps@yourcompany.onmicrosoft.com<\/code> below), but nobody ever sends\nto it or from it; it exists purely so the policy has something to point at. Your shared mailbox\nstays exactly as you created it.<\/p>\n\n<p>You need PowerShell with the Exchange Online module. Windows has PowerShell built in; on macOS run\n<code>brew install --cask powershell<\/code> and then <code>pwsh<\/code>; on Linux see Microsoft's install page. Everything\nbelow is typed into that PowerShell window, one command at a time.<\/p>\n\n<p><strong>Before you start, have two values ready:<\/strong><\/p>\n\n<ul>\n<li>the value shown in the <strong>Application (client) ID<\/strong> field on your app's Overview page (Part 1) \u2014\na long identifier like <code>1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d<\/code>. Below it is written as\n<code>PASTE-APPLICATION-CLIENT-ID<\/code>.<\/li>\n<li>the address you sign in to <a href=\"https:\/\/admin.microsoft.com\">https:\/\/admin.microsoft.com<\/a> with. This is often <strong>not<\/strong> your normal\nemail \u2014 many tenants use a separate admin account such as <code>admin@yourcompany.onmicrosoft.com<\/code>.\nUse that one; below it is written as <code>admin@yourcompany.onmicrosoft.com<\/code>.<\/li>\n<\/ul>\n\n<p><strong>How to fill in the commands.<\/strong> Wherever you see <code>PASTE-APPLICATION-CLIENT-ID<\/code>, replace <em>only\nthose words<\/em> with the Application (client) ID and <strong>keep the quotation marks around it<\/strong> \u2014 so\n<code>-AppId \"PASTE-APPLICATION-CLIENT-ID\"<\/code> becomes\n<code>-AppId \"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d\"<\/code>. Same for <code>example.com<\/code> and the admin address.\nChange nothing else on the line.<\/p>\n\n<p><strong>Step 1 \u2014 install the module and sign in<\/strong> (a browser window opens; sign in with the admin\naccount):<\/p>\n\n<pre><code>Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser\nConnect-ExchangeOnline -UserPrincipalName admin@yourcompany.onmicrosoft.com\n<\/code><\/pre>\n\n<p><strong>Step 2 \u2014 create the group.<\/strong> One line. Its only member is your shared mailbox:<\/p>\n\n<pre><code>New-DistributionGroup -Name \"NoReply Apps\" -Alias noreply-apps -Type Security -Members \"noreply@example.com\"\n<\/code><\/pre>\n\n<p>PowerShell prints the group it created. Note the <strong>PrimarySmtpAddress<\/strong> it shows. It is usually\n<strong>not<\/strong> on your normal domain but on your tenant's built-in one \u2014\n<code>noreply-apps@yourcompany.onmicrosoft.com<\/code>. If you are unsure, run\n<code>Get-DistributionGroup -Identity noreply-apps | Format-List PrimarySmtpAddress<\/code> and copy the value.\nThat exact address is what goes in the next command; using the wrong domain gives\n<code>The identity of the policy scope could not be resolved<\/code>.<\/p>\n\n<p><strong>Step 3 \u2014 lock the app to the group.<\/strong> One line. Paste the Application (client) ID and the group\naddress from Step 2 inside the quotes:<\/p>\n\n<pre><code>New-ApplicationAccessPolicy -AppId \"PASTE-APPLICATION-CLIENT-ID\" -PolicyScopeGroupId \"noreply-apps@yourcompany.onmicrosoft.com\" -AccessRight RestrictAccess -Description \"Missivus (Matomo) may only send as noreply@example.com\"\n<\/code><\/pre>\n\n<p><strong>Step 4 \u2014 wait 5\u201310 minutes<\/strong>, then check it took effect. Two commands; paste the same\nApplication (client) ID in both. In the second, use any <em>other<\/em> mailbox in your tenant \u2014 your own\nemail address is fine:<\/p>\n\n<pre><code>Test-ApplicationAccessPolicy -Identity \"noreply@example.com\" -AppId \"PASTE-APPLICATION-CLIENT-ID\"\nTest-ApplicationAccessPolicy -Identity \"you@example.com\" -AppId \"PASTE-APPLICATION-CLIENT-ID\"\n<\/code><\/pre>\n\n<p>The first must show <code>AccessCheckResult : Granted<\/code>. The second must show\n<code>AccessCheckResult : Denied<\/code>. If the second still says <strong>Granted<\/strong>, the policy has not propagated\nyet: wait and run it again. Do not go further until it says Denied.<\/p>\n\n<p><strong>Step 5 \u2014 pre-flight: send one real email from PowerShell.<\/strong> Optional but strongly\nrecommended: it proves tenant, app, secret and policy end to end before Matomo is involved, so\nany later failure is the plugin's, not Microsoft's. Fill in the three values (keep the quotes):\nyour <strong>Directory (tenant) ID<\/strong> and <strong>Application (client) ID<\/strong> from Part 1, and the secret\n<strong>Value<\/strong> from Part 3. Replace <code>you@example.com<\/code> with your own inbox.<\/p>\n\n<pre><code>$TenantId = \"PASTE-DIRECTORY-TENANT-ID\"\n$ClientId = \"PASTE-APPLICATION-CLIENT-ID\"\n$Secret   = \"PASTE-SECRET-VALUE\"\n\n$tok = Invoke-RestMethod -Method Post -Uri \"https:\/\/login.microsoftonline.com\/$TenantId\/oauth2\/v2.0\/token\" -Body @{ client_id=$ClientId; client_secret=$Secret; scope=\"https:\/\/graph.microsoft.com\/.default\"; grant_type=\"client_credentials\" }\n$tok.access_token.Substring(0,20)\n<\/code><\/pre>\n\n<p>If that prints 20 characters, authentication works. If it errors, the tenant ID or the secret is\nwrong \u2014 most often the <em>Secret ID<\/em> was copied instead of the <em>Value<\/em>. Then send:<\/p>\n\n<pre><code>$body = '{\"message\":{\"subject\":\"Missivus pre-flight\",\"body\":{\"contentType\":\"Text\",\"content\":\"Graph app-only send OK\"},\"toRecipients\":[{\"emailAddress\":{\"address\":\"you@example.com\"}}]},\"saveToSentItems\":false}'\nInvoke-WebRequest -Method Post -Uri \"https:\/\/graph.microsoft.com\/v1.0\/users\/noreply@example.com\/sendMail\" -Headers @{ Authorization = \"Bearer $($tok.access_token)\" } -ContentType \"application\/json\" -Body $body | Select-Object StatusCode\n<\/code><\/pre>\n\n<p><code>StatusCode 202<\/code> and an email in your inbox from your company name = the Microsoft side is\ndone. <code>403<\/code> = the policy is still propagating or admin consent is missing; <code>404<\/code> = the mailbox\nhas not finished provisioning \u2014 wait and retry.<\/p>\n\n<p><strong>Step 6 \u2014 clean up and sign out.<\/strong> The secret was typed into this window, so clear it:<\/p>\n\n<pre><code>Remove-Variable Secret,tok,body\nDisconnect-ExchangeOnline\n<\/code><\/pre>\n\n<p>Then close the PowerShell window.<\/p>\n\n<p><strong>Adding another tool later<\/strong> (Uptime Kuma, a CRM, anything that sends as <code>noreply@<\/code>): give it its\nown app registration (Parts 1\u20133), then run only Step 3 again with that app's Application (client)\nID. The group from Step 2 is reused; you never create a second one.<\/p>\n\n\n\n<h2>Part 6 \u2014 Install the plugin<\/h2>\n\n<p>Copy the plugin so it lands at <code>plugins\/Missivus<\/code> inside your Matomo installation, then activate it.<\/p>\n\n<p>From the release zip:<\/p>\n\n<pre><code>cd \/path\/to\/matomo\/plugins\nunzip \/path\/to\/Missivus-&lt;version&gt;.zip      # creates plugins\/Missivus\/\nchown -R www-data:www-data Missivus\ncd ..\n.\/console plugin:activate Missivus\n<\/code><\/pre>\n\n<p>Or straight from git:<\/p>\n\n<pre><code>cd \/path\/to\/matomo\ngit clone https:\/\/github.com\/Solvetus\/missivus-matomo.git plugins\/Missivus\n.\/console plugin:activate Missivus\n<\/code><\/pre>\n\n<p>Run <code>.\/console<\/code> as your web server user (<code>sudo -u www-data .\/console \u2026<\/code>) so file ownership stays\nconsistent.<\/p>\n\n<h3>Upload via the Matomo UI (Docker or locked-down installs)<\/h3>\n\n<p>If you have no shell on the machine \u2014 or Matomo runs in a container where dropping files into\n<code>plugins\/<\/code> is awkward \u2014 you can upload the zip through Matomo's own interface instead. It takes one\ntemporary setting change.<\/p>\n\n<p><strong>Why it is off by default.<\/strong> <code>enable_plugin_upload<\/code> lets any superuser upload a zip that Matomo\nthen unpacks into <code>plugins\/<\/code> and executes. That is arbitrary PHP running as your web server user:\none compromised superuser account, or one careless one, and the whole server is gone. Matomo ships\nit off, and the safest way to use it is to turn it on for the five minutes you need it and turn it\nstraight back off. The shell route above avoids the trade-off entirely, which is why it is the\nrecommended one.<\/p>\n\n<p><strong>Step 1 \u2014 turn it on.<\/strong> From the Matomo directory:<\/p>\n\n<pre><code>.\/console config:set --section=General --key=enable_plugin_upload --value=1\n<\/code><\/pre>\n\n<p>In Docker, run the same console command inside the container, as the web server user \u2014 replace\n<code>&lt;container&gt;<\/code> with your Matomo container's name (<code>docker ps<\/code> will show it):<\/p>\n\n<pre><code>docker exec -u www-data &lt;container&gt; php \/var\/www\/html\/console config:set --section=General --key=enable_plugin_upload --value=1\n<\/code><\/pre>\n\n<p><strong>Step 2 \u2014 upload and activate.<\/strong> In Matomo, go to <strong>Administration (the cog) \u2192 Platform \u2192 Plugins<\/strong>\nand click <strong>Install a new plugin<\/strong> at the top of the list. Choose <strong>Upload a plugin<\/strong>, pick the\n<code>Missivus-&lt;version&gt;.zip<\/code> file, and click <strong>Upload plugin<\/strong>. Matomo unpacks it into <code>plugins\/Missivus<\/code>\nand shows it in the plugin list. Find <strong>Missivus<\/strong> in that list and click <strong>Activate<\/strong>.<\/p>\n\n<p>If the upload page does not appear, Matomo has not picked the setting up yet: reload the page, and\ncheck the command in step 1 ran against the same installation Matomo is serving.<\/p>\n\n<p><strong>Step 3 \u2014 turn it back off.<\/strong> As soon as the plugin is activated, close the door again. This is\nbest practice, not optional housekeeping \u2014 leaving it open is a standing remote-code-execution path\nfor anyone who ever gets a superuser session:<\/p>\n\n<pre><code>.\/console config:set --section=General --key=enable_plugin_upload --value=0\n<\/code><\/pre>\n\n<pre><code>docker exec -u www-data &lt;container&gt; php \/var\/www\/html\/console config:set --section=General --key=enable_plugin_upload --value=0\n<\/code><\/pre>\n\n<p>Turning it off does not affect the plugin you just installed. Repeat steps 1\u20133 when you next need to\nupload an update, or use the shell route.<\/p>\n\n<p>Activating the plugin on its own changes nothing: Missivus starts switched off, and Matomo keeps\nusing whatever mail settings it already had.<\/p>\n\n\n\n<h2>Part 7 \u2014 Configure Matomo<\/h2>\n\n<h3>Tell Matomo the From address<\/h3>\n\n<p>Edit <code>config\/config.ini.php<\/code> and make sure the <code>[General]<\/code> section contains:<\/p>\n\n<pre><code>[General]\nemails_enabled = 1\nnoreply_email_address = \"noreply@example.com\"\n<\/code><\/pre>\n\n<p>Application-only sending can only send as the shared mailbox, so Missivus forces that From address\nregardless. Setting it here means Matomo and Microsoft agree, and no warnings appear in your log.<\/p>\n\n<h3>Enter the credentials<\/h3>\n\n<p>Go to <strong>Administration \u2192 System \u2192 General settings<\/strong> in Matomo and scroll to <strong>Missivus<\/strong>. Fill in:<\/p>\n\n\n\n\n  Field\n  Value\n\n\n\n\n  Directory (tenant) ID\n  from Part 1\n\n\n  Application (client) ID\n  from Part 1\n\n\n  Authentication method\n  <strong>Client secret<\/strong> (or <strong>Certificate<\/strong> if you chose Option B)\n\n\n  Client secret\n  the <strong>Value<\/strong> you copied in Part 3\n\n\n  Sender mailbox\n  <code>noreply@example.com<\/code> from Part 4\n\n\n\n\n<p>Click <strong>Save<\/strong>. That is all the configuration Missivus needs \u2014 <strong>you do not have to touch\n<code>config.ini.php<\/code> for any of it.<\/strong><\/p>\n\n<h4>Optional: keep credentials in a file instead<\/h4>\n\n<p>If you would rather your credentials lived with your configuration than in Matomo's database \u2014 which\nsuits a server you deploy by pulling code \u2014 add a <code>[Missivus]<\/code> section to <code>config\/config.ini.php<\/code>:<\/p>\n\n<pre><code>[Missivus]\ntenant_id = \"00000000-0000-0000-0000-000000000000\"\nclient_id = \"00000000-0000-0000-0000-000000000000\"\nauth_method = \"secret\"\nclient_secret = \"the Value you copied in Part 3\"\nsender_mailbox = \"noreply@example.com\"\n<\/code><\/pre>\n\n<p>For a certificate instead, replace the last two credential lines with:<\/p>\n\n<pre><code>auth_method = \"certificate\"\ncertificate_path = \"\/etc\/matomo\/secrets\/missivus.pem\"\n<\/code><\/pre>\n\n<p>Anything set here appears in the settings page marked <em>set in config file<\/em>, cannot be edited from\nthe UI, and is never written to Matomo's database.<\/p>\n\n<p>Each key can also come from an environment variable, which beats both: <code>MISSIVUS_TENANT_ID<\/code>,\n<code>MISSIVUS_CLIENT_ID<\/code>, <code>MISSIVUS_AUTH_METHOD<\/code>, <code>MISSIVUS_CLIENT_SECRET<\/code>,\n<code>MISSIVUS_CERTIFICATE_PATH<\/code>, <code>MISSIVUS_CERTIFICATE_PASSPHRASE<\/code>, <code>MISSIVUS_SENDER_MAILBOX<\/code>.<\/p>\n\n<h3>Turn it on<\/h3>\n\n<p>In <strong>Administration \u2192 System \u2192 General settings \u2192 Missivus<\/strong>, tick <strong>Send email through Microsoft\nGraph<\/strong> and click <strong>Save<\/strong>.<\/p>\n\n\n\n<h2>Part 8 \u2014 Test it<\/h2>\n\n<p>On the same settings page, enter your own address next to <strong>Send a test email<\/strong> and click the\nbutton.<\/p>\n\n<p>The button is disabled until the <strong>saved<\/strong> settings are complete and Missivus is switched on, and it\ntells you which of those is missing. The test sends with what is stored, not with what is on screen,\nso if you have just typed something into a field, click <strong>Save<\/strong> first \u2014 the button enables itself a\nmoment later, without a page reload.<\/p>\n\n<ul>\n<li><strong>Success<\/strong> \u2014 you will have an email within a minute. Microsoft accepting the message is not\nquite the same as delivering it, so do check it actually arrives.<\/li>\n<li><strong>Failure<\/strong> \u2014 the exact error Microsoft returned is shown on the page. See the table below.<\/li>\n<\/ul>\n\n<p>As a second, independent check, sign out of Matomo and use <strong>Lost your password?<\/strong>. That exercises\nthe real <code>Piwik\\Mail<\/code> path rather than the test button.<\/p>\n\n\n\n<h2>When it does not work<\/h2>\n\n\n\n\n  What you see\n  What it means\n  Fix\n\n\n\n\n  <code>AADSTS7000215: Invalid client secret provided<\/code>\n  The secret is wrong, or you copied the Secret ID instead of the Value\n  Create a new secret and copy the <strong>Value<\/strong> column\n\n\n  <code>AADSTS700027<\/code> or <code>invalid_client<\/code> with a certificate\n  The certificate Matomo is using is not the one uploaded to Entra\n  Re-upload <code>missivus.crt<\/code>; check <code>certificate_path<\/code> points at the PEM holding <strong>both<\/strong> the key and the certificate\n\n\n  <code>AADSTS900023: Specified tenant identifier is not valid<\/code>\n  Wrong tenant ID\n  Recopy <strong>Directory (tenant) ID<\/strong> from the Overview page\n\n\n  <code>ErrorAccessDenied<\/code> \/ <code>Access is denied<\/code> on send\n  The application access policy does not cover this mailbox, or admin consent was never granted\n  Re-run <code>Test-ApplicationAccessPolicy<\/code> from Part 5; re-check the green tick in Part 2\n\n\n  <code>ErrorAccessDenied<\/code> only on large attachments\n  <code>Mail.ReadWrite<\/code> is missing\n  Add it in Part 2 and grant admin consent again\n\n\n  <code>MailboxNotEnabledForRESTAPI<\/code>\n  The sender address is not a real Exchange Online mailbox\n  Check the shared mailbox exists and the address is spelled right\n\n\n  <code>The mailbox is either inactive, soft-deleted, or is hosted on-premise<\/code>\n  The mailbox has not finished provisioning\n  Wait fifteen minutes and try again\n\n\n  <code>certificate file is not readable at \u2026<\/code>\n  File permissions\n  <code>chown root:www-data<\/code> and <code>chmod 640<\/code> the PEM, and check the path\n\n\n  <code>the private key \u2026 could not be loaded<\/code>\n  Wrong passphrase, or the PEM has no <code>PRIVATE KEY<\/code> block\n  Rebuild the PEM: <code>cat missivus.key missivus.crt &gt; missivus.pem<\/code>\n\n\n  Nothing happens, no error\n  Missivus is switched off, so Matomo used its own settings\n  Tick <strong>Send email through Microsoft Graph<\/strong>\n\n\n  The <strong>Send test email<\/strong> button is greyed out\n  The saved settings are incomplete, or Missivus is switched off\n  Read the note under the button \u2014 it names what is missing. Fill it in and click <strong>Save<\/strong>\n\n\n\n\n<p>Missivus writes every failure to Matomo's log at error level, so\n<strong>Administration \u2192 Diagnostic \u2192 System Check<\/strong> and your Matomo log are the next place to look.\nSecrets are redacted before anything is logged.<\/p>\n\n<p>If Entra rejects the certificate assertion with a signature error and you have checked everything\nabove, add <code>certificate_algorithm = \"RS256\"<\/code> to the <code>[Missivus]<\/code> section. Missivus signs with PS256\nby default, which is what Microsoft's current documentation specifies; RS256 is the older algorithm\nthat Entra also accepts. This should not be necessary \u2014 please open an issue if it is.<\/p>\n\n\n\n<h2>Keeping it working<\/h2>\n\n<ul>\n<li><strong>Diary the credential expiry.<\/strong> A certificate or secret that expires stops mail dead. Replace it\na week early: upload the new certificate, change <code>certificate_path<\/code>, test, then delete the old\none from Entra.<\/li>\n<li><strong>After a Matomo upgrade<\/strong>, press <strong>Send test email<\/strong> once. <code>PLAN.md<\/code> lists exactly which Matomo\ninternals this plugin depends on if something does break.<\/li>\n<li><strong>To turn it off<\/strong>, untick the setting, or run <code>.\/console plugin:deactivate Missivus<\/code>. Matomo\nreverts to its own mail settings immediately, with nothing to clean up.<\/li>\n<\/ul>\n\n\n\n<h2>Getting help<\/h2>\n\n<p>Open an issue at\n<a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/issues\">https:\/\/github.com\/Solvetus\/missivus-matomo\/issues<\/a>. Never paste a client secret,\na certificate, or a PEM file into an issue.<\/p>\n\n<p>If you would rather have this set up for you, <a href=\"https:\/\/solvetus.com\">Solvetus<\/a> does paid\ninstallation and support.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>All notable changes to Missivus for Matomo are recorded here. The format follows\n<a href=\"https:\/\/keepachangelog.com\/en\/1.1.0\/\">Keep a Changelog<\/a>, and the project uses\n<a href=\"https:\/\/semver.org\/spec\/v2.0.0.html\">semantic versioning<\/a>.<\/p>\n\n<h2><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/releases\/tag\/v1.0.0\">1.0.0<\/a> \u2014 2026-09-13<\/h2>\n\n<p>First release of the Matomo 6 line. Functionally identical to 0.1.6; the version number\nmarks the platform, not new behaviour.<\/p>\n\n<h3>Compatibility<\/h3>\n\n\n\n\n  Matomo version\n  Missivus release line\n  Branch\n  PHP\n\n\n\n\n  Matomo 5.x\n  0.1.x\n  <code>main<\/code>\n  7.2.5 or later\n\n\n  Matomo 6.x\n  1.x\n  <code>6.x-dev<\/code>\n  8.1 or later\n\n\n\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li><strong>The <code>PIWIK_TEST_MODE<\/code> guard in <code>GraphTransport::send()<\/code> made the entire unit suite pass\nvacuously under Matomo's own test runner.<\/strong> Matomo's <code>tests\/PHPUnit\/bootstrap.php<\/code> defines that\nconstant unconditionally, and the guard checked it before the enabled setting \u2014 so under\n<code>.\/console tests:run<\/code> every send short-circuited to the PHPMailer fallback before the fake Graph\nendpoint the tests inject was ever reached. Caught by the first CI run on this line (all 8 matrix\ncells, 5 errors + 5 failures in <code>GraphTransportTest<\/code>); the standalone runner (<code>tests\/run.php<\/code>)\nnever defined the constant, which is why it stayed green locally and in every prior release. The\nguard duplicated a short-circuit Matomo's own stock transport already performs\n(<code>core\/Mail\/Transport.php:106-113<\/code>) and served no purpose once accounted for, so it is removed\noutright \u2014 the transport is now decided solely by the enabled setting and the fallback rule.\n<code>tests\/run.php<\/code> now defines <code>PIWIK_TEST_MODE<\/code> itself so this class of bug reproduces locally, and\na regression test guards against it returning.<\/li>\n<\/ul>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li><code>plugin.json<\/code>: <code>\"matomo\": \"&gt;=6.0.0-b1,&lt;7.0.0-b1\"<\/code>, <code>\"php\": \"&gt;=8.1.0\"<\/code>. Matomo 5 stays\non the 0.1.x line (<code>main<\/code>); Matomo 6 is the 1.x line (<code>6.x-dev<\/code>).<\/li>\n<\/ul>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>GitHub Actions plugin tests on Matomo 6 (PHP 8.1 and 8.5; MySQL 8.0 and MariaDB 10.6).<\/li>\n<li>Compatibility table in the README, installation guide and FAQ.<\/li>\n<\/ul>\n\n<h2><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/releases\/tag\/v0.1.6\">0.1.6<\/a> \u2014 2026-09-13<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li><strong>The <code>PIWIK_TEST_MODE<\/code> guard in <code>GraphTransport::send()<\/code> made the entire unit suite pass\nvacuously under Matomo's own test runner.<\/strong> Matomo's <code>tests\/PHPUnit\/bootstrap.php<\/code> defines that\nconstant unconditionally, and the guard checked it before the enabled setting \u2014 so under\n<code>.\/console tests:run<\/code> every send short-circuited to the PHPMailer fallback before the fake Graph\nendpoint the tests inject was ever reached. Caught by the first CI run on the Matomo 6 line (all\n8 matrix cells, 5 errors + 5 failures in <code>GraphTransportTest<\/code>); the standalone runner\n(<code>tests\/run.php<\/code>) never defined the constant, which is why it stayed green locally and in every\nprior release. The guard duplicated a short-circuit Matomo's own stock transport already\nperforms (<code>core\/Mail\/Transport.php:106-113<\/code>) and served no purpose once accounted for, so it is\nremoved outright \u2014 the transport is now decided solely by the enabled setting and the fallback\nrule. <code>tests\/run.php<\/code> now defines <code>PIWIK_TEST_MODE<\/code> itself so this class of bug reproduces\nlocally, and a regression test guards against it returning.<\/li>\n<\/ul>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Compatibility table in the README, installation guide and FAQ (Matomo 5 \u2192 0.1.x on <code>main<\/code>,\nMatomo 6 \u2192 1.x on <code>6.x-dev<\/code>).<\/li>\n<\/ul>\n\n<h2><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/releases\/tag\/v0.1.5\">0.1.5<\/a> \u2014 2026-08-19<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>docs: correct SMTP retirement timeline; absolute marketplace links; contact addresses; stale\nversion strings.<\/li>\n<\/ul>\n\n<h2><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/releases\/tag\/v0.1.4\">0.1.4<\/a> \u2014 2026-08-18<\/h2>\n\n<h3>Security<\/h3>\n\n<ul>\n<li><p><strong>Endpoint override URLs are no longer repeated back into errors, logs, or the test-email\nresponse.<\/strong> <code>Endpoint::normalise()<\/code> refused an unsafe <code>graph_base_url<\/code> \/ <code>login_base_url<\/code>\ncorrectly, but ended its message with the rejected value verbatim \u2014 and that message was then\nlogged by <code>GraphTransport<\/code> and returned to the superuser by <code>API.sendTestEmail<\/code> with no final\nredaction pass. A value set through <code>MISSIVUS_GRAPH_BASE_URL<\/code> or <code>MISSIVUS_LOGIN_BASE_URL<\/code> that\ncarried credentials (<code>https:\/\/user:password@host<\/code>) or a token (<code>?access_token=\u2026<\/code>) could therefore\nreach a Matomo log file and the settings page. Fixed in three independent layers:<\/p>\n\n<ul>\n<li><code>Endpoint<\/code> builds every message from scheme, host, port and path only \u2014 userinfo, query string\nand fragment are never assembled into a message at all \u2014 and reports a value it cannot parse,\nor a host name it cannot accept, by reason rather than by value.<\/li>\n<li><code>Redactor<\/code> gained URL patterns: credentials inside a URL, any <code>name=value<\/code> on the new\n<code>Redactor::SECRET_PARAMS<\/code> list (<code>access_token<\/code>, <code>client_secret<\/code>, <code>code<\/code>, <code>password<\/code>,\n<code>signature<\/code>, <code>sas<\/code>, \u2026), and URL fragments. An ordinary mailbox address is deliberately left\nalone.<\/li>\n<li><code>GraphTransport::redact()<\/code> is now the single final pass on every string the transport logs or\nrethrows, and <code>API.sendTestEmail<\/code> applies the same pass to the message it returns.<\/li>\n<\/ul>\n\n<p>Reported by <a href=\"https:\/\/github.com\/textagroup\">@textagroup<\/a> (Kirk Mayo) \u2014\n<a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/issues\/1\">#1<\/a>. Thank you. Written up as finding 12 in\n<a href=\"docs\/SECURITY.md\">docs\/SECURITY.md<\/a>.<\/p><\/li>\n<\/ul>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Eleven tests covering the above: URLs with userinfo, with <code>access_token<\/code> \/ <code>client_secret<\/code> \/\n<code>code<\/code> query parameters, and with fragments, asserted absent from exception messages, from the\nlog, and from the string the API method returns. 75 tests in total, all passing.<\/li>\n<\/ul>\n\n<h2><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/releases\/tag\/v0.1.3\">0.1.3<\/a> \u2014 2026-08-17<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>The test-email success message now reads \"Test email sent to %s. Microsoft accepted it \u2014 check\nthe inbox to confirm delivery.\", clearer about what \"sent\" does and does not guarantee.<\/li>\n<li><code>plugin.json<\/code>: <code>homepage<\/code> now points to <code>https:\/\/missivus.com<\/code> and <code>support.docs<\/code> to\n<code>https:\/\/missivus.com\/matomo\/<\/code>, moving both off the GitHub repository now that the plugin has a\ndedicated site. <code>license<\/code> stays <code>GPL-3.0+<\/code>.<\/li>\n<\/ul>\n\n<h3>Added<\/h3>\n\n<ul>\n<li><code>screenshots\/Settings_page.png<\/code>, the plugin's settings page for the Marketplace listing.<\/li>\n<\/ul>\n\n<h2><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/releases\/tag\/v0.1.2\">0.1.2<\/a> \u2014 2026-08-17<\/h2>\n\n<p>Marketplace readiness and public-repository hygiene. No functional change to the plugin itself.<\/p>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li><code>plugin.json<\/code>: the <code>license<\/code> string is now <code>GPL-3.0+<\/code>, which is the spelling the Marketplace\naccepts (<code>GPL-3.0-or-later<\/code> is correct SPDX but is not on their list); added\n<code>\"category\": \"integration\"<\/code>, a <code>docs<\/code> support link, and an <code>archive.exclude<\/code> list so the\nMarketplace-built zip leaves out <code>\/dist<\/code>, <code>\/tools<\/code>, <code>\/PLAN.md<\/code> and <code>\/docs\/BRIEF.md<\/code>.<\/li>\n<li><code>README.md<\/code> is restructured around a <code>## Description<\/code> section, because the Marketplace renders\neverything between that heading and the next <code>##<\/code> as the plugin's page: what it does, why\napplication permissions beat a delegated login, what you need, and where the guide is.<\/li>\n<li>The installation guide moved from <code>docs\/INSTALL.md<\/code> to <strong><code>docs\/index.md<\/code><\/strong>, which is the path the\nMarketplace turns into the plugin page's Documentation tab. Every internal reference was updated.<\/li>\n<\/ul>\n\n<h3>Added<\/h3>\n\n<ul>\n<li><strong><code>docs\/faq.md<\/code><\/strong> \u2014 twelve real questions, and the path they came from: mailbox licensing, why not\nSMTP, secret versus certificate, rotating a secret, attachments over 3 MB, why <code>Mail.ReadWrite<\/code>,\nwhy the access policy is not optional, the greyed-out test button, the Docker upload flag, what\nhappens if you install and do nothing, the Microsoft error codes, and where to report a problem.\nIt becomes the FAQ tab.<\/li>\n<li><strong><code>screenshots\/README.md<\/code><\/strong> \u2014 the exact captures the Marketplace page needs, with target\nfilenames (the file name becomes the caption), the 880\u00d7480 <code>_cover.png<\/code> rule, and a\nbefore-committing checklist, since a screenshot of a filled-in settings page is a screenshot of\nsomeone's tenant.<\/li>\n<\/ul>\n\n<h3>Removed<\/h3>\n\n<ul>\n<li>Deployment topology is out of the public tree: host names, orchestration, the private network, and\nlocal vault paths are gone from <code>docs\/BRIEF.md<\/code> and <code>PLAN.md<\/code>, replaced with generic wording. That\ndetail belongs in the operator's own runbook. (Note that it remains in the git history of releases\nbefore this one.)<\/li>\n<\/ul>\n\n<h2><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/releases\/tag\/v0.1.1\">0.1.1<\/a> \u2014 2026-08-17<\/h2>\n\n<p>First round of fixes after the first live deployment, plus a security review\n(<a href=\"docs\/SECURITY.md\">docs\/SECURITY.md<\/a>).<\/p>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li><strong>The test-email button no longer lies about being ready.<\/strong> The test sends with the <em>saved<\/em>\nsettings, so filling the form in and clicking <strong>Send test email<\/strong> used to report that Missivus was\nswitched off. The button now stays disabled until the stored configuration can actually send, says\nwhich part is missing, and re-checks itself when a settings save completes \u2014 no page reload.<\/li>\n<li><strong>The result box is readable in the dark theme.<\/strong> It used hand-rolled pastel backgrounds that set a\nbackground colour but not a foreground one, so in dark mode the Graph error \u2014 the one thing worth\nreading \u2014 was light text on a light panel. It now uses Matomo's own <code>notification<\/code> \/\n<code>notification-success<\/code> \/ <code>notification-error<\/code> \/ <code>notification-info<\/code> classes.<\/li>\n<li>A network failure while uploading a large attachment escaped as an unhandled exception, skipping\nthe \"fall back to Matomo's own transport\" setting, and could write the pre-authenticated upload URL\nto the log. It is now a normal, redacted transport failure.<\/li>\n<\/ul>\n\n<h3>Security<\/h3>\n\n<ul>\n<li>A <code>graph_base_url<\/code> \/ <code>login_base_url<\/code> override is now refused unless it is a bare <code>https<\/code> origin,\nso a mis-set \u2014 or hostile \u2014 value can no longer send a client secret or a bearer token in clear\ntext to another host.<\/li>\n<li><code>Redactor<\/code> now also blanks <code>uploadUrl<\/code> values, which are pre-authenticated and therefore credentials.<\/li>\n<li>Every setting is validated: tenant and client IDs must be a GUID (or a tenant domain), the sender\nmailbox must be an email address, the certificate path must be absolute and readable, and a secret\ncarrying whitespace or control characters \u2014 always a copy-paste accident \u2014 is rejected on entry.<\/li>\n<li><code>Missivus.sendTestEmail<\/code> validates the recipient address and refuses anything but an HTTP POST, and\nthe recipient now travels in the request body rather than the query string.<\/li>\n<li>Full audit of secret handling, authentication, CSRF and error-body disclosure written up in\n<a href=\"docs\/SECURITY.md\">docs\/SECURITY.md<\/a>, including the three risks that were accepted rather than\neliminated, with the reasoning.<\/li>\n<\/ul>\n\n<h3>Added<\/h3>\n\n<ul>\n<li><code>Missivus.getTestEmailStatus<\/code> \u2014 superuser-only; reports whether the saved settings can send, and\nwhy not when they cannot. This is what gates the button.<\/li>\n<li><code>docs\/index.md<\/code> Part 6 gains <strong>Upload via the Matomo UI (Docker or locked-down installs)<\/strong>: why\n<code>enable_plugin_upload<\/code> is off by default, the console command to turn it on (with the\n<code>docker exec<\/code> form), the upload and activate steps, and the command to close it again afterwards.<\/li>\n<li><code>docs\/SECURITY.md<\/code> and this changelog.<\/li>\n<\/ul>\n\n<h3>Tests<\/h3>\n\n<ul>\n<li>60 unit tests, all passing (was 50): the new <code>EndpointTest<\/code>, plus coverage for the upload-URL leak\nand its redaction.<\/li>\n<\/ul>\n\n<h2><a href=\"https:\/\/github.com\/Solvetus\/missivus-matomo\/releases\/tag\/v0.1.0\">0.1.0<\/a> \u2014 2026-08-16<\/h2>\n\n<p>Initial release.<\/p>\n\n<ul>\n<li>Replaces Matomo's PHPMailer transport with Microsoft Graph <code>sendMail<\/code>, using OAuth2 client\ncredentials and the <code>Mail.Send<\/code> application permission, through the DI seam from\n<a href=\"https:\/\/github.com\/matomo-org\/matomo\/pull\/14041\">matomo-org\/matomo#14041<\/a>.<\/li>\n<li>Client secret and certificate authentication (PS256, with an RS256 escape hatch), token caching\nwith a five-minute refresh margin, and one retry on a 401.<\/li>\n<li>HTML and plaintext bodies, multiple recipients, BCC, reply-to, inline images, and attachments \u2014\nautomatically switching to the draft \u2192 upload session \u2192 send path above 3 MB so scheduled-report\nPDFs never fail on size.<\/li>\n<li>Settings page with a config-file and environment-variable override tier, write-only secrets, and a\ntest-email button.<\/li>\n<li>Optional fallback to Matomo's own transport, off by default; nothing is ever swallowed.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Missivus\/download\/1.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Missivus\/changelog"},"consumer":{"license":null}},{"name":"MistralAI","displayName":"Mistral AI","owner":"openmost","description":"Chat with your Matomo data and get one-click AI insights on any report, powered by Mistral AI.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/mistral-ai","createdDateTime":"2024-01-15 16:26:02","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/MistralAI\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/MistralAI","type":"url"}],"isTheme":false,"keywords":["chat","mistral","ai","mistralai","assistant","assistants","insight","insights"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/MistralAI","lastUpdated":"2026-10-22 15:14:51","latestVersion":"5.12.0","numDownloads":17977,"screenshots":["https:\/\/plugins.matomo.org\/MistralAI\/images\/5.12.0\/Agent_mode_weekly_KPI_review_with_tool_steps.png","https:\/\/plugins.matomo.org\/MistralAI\/images\/5.12.0\/Insights_on_any_report_in_one_click.png","https:\/\/plugins.matomo.org\/MistralAI\/images\/5.12.0\/Settings_connection_agent_model_and_prompts.png"],"coverImage":"https:\/\/plugins.matomo.org\/MistralAI\/images\/5.12.0\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/tYo07Aomgzc","id":"tYo07Aomgzc"}],"activity":{"numCommits":"61","numContributors":"1","lastCommitDate":"2026-10-22 15:12:59"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"5.0.0","release":"2024-01-15 16:26:02","requires":{"matomo":">=5.0.1-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.0.0"},{"name":"5.0.1","release":"2024-01-15 19:34:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.0.1"},{"name":"5.0.2","release":"2024-01-15 20:32:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":572,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.0.2"},{"name":"5.0.4","release":"2024-01-24 21:12:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":136,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.0.4"},{"name":"5.1.2","release":"2024-01-30 18:26:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.1.2"},{"name":"5.1.3","release":"2024-01-30 19:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.1.3"},{"name":"5.1.4","release":"2024-01-30 19:26:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.1.4"},{"name":"5.2.0","release":"2024-01-30 20:00:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.2.0"},{"name":"5.2.1","release":"2024-01-31 18:48:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":42,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.2.1"},{"name":"5.3.0","release":"2024-02-01 19:28:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.0"},{"name":"5.3.1","release":"2024-02-01 19:46:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.1"},{"name":"5.3.2","release":"2024-02-01 21:16:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.2"},{"name":"5.3.3","release":"2024-02-01 21:20:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.3"},{"name":"5.3.4","release":"2024-02-01 21:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.4"},{"name":"5.3.5","release":"2024-02-01 21:40:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.5"},{"name":"5.3.6","release":"2024-02-01 21:58:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.6"},{"name":"5.3.8","release":"2024-02-02 09:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.8"},{"name":"5.3.9","release":"2024-02-02 15:34:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.9"},{"name":"5.3.10","release":"2024-02-02 15:40:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":50,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.10"},{"name":"5.3.11","release":"2024-02-05 20:22:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.11"},{"name":"5.3.12","release":"2024-02-05 21:00:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":549,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.12"},{"name":"5.3.13","release":"2024-02-17 17:58:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":217,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.3.13","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.3.13"},{"name":"5.4.0","release":"2024-02-27 13:00:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.4.0"},{"name":"5.4.1","release":"2024-02-27 13:06:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.4.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.4.1"},{"name":"5.4.2","release":"2024-02-27 13:08:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":356,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.4.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.4.2"},{"name":"5.4.3","release":"2024-03-05 17:52:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":885,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.4.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.4.3"},{"name":"5.5.0","release":"2024-04-09 17:52:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":23,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.5.0"},{"name":"5.5.2","release":"2024-04-10 10:00:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.5.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.5.2"},{"name":"5.5.3","release":"2024-04-10 10:10:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":71,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.5.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.5.3"},{"name":"5.6.0","release":"2024-04-15 13:16:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.6.0"},{"name":"5.6.1","release":"2024-04-15 14:58:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":308,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.6.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.6.1"},{"name":"5.6.2","release":"2024-04-24 18:08:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.6.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.6.2"},{"name":"5.6.3","release":"2024-04-24 18:16:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1710,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.6.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.6.3"},{"name":"5.6.4","release":"2024-06-27 08:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2596,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.6.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.6.4"},{"name":"5.7.0","release":"2025-02-20 14:42:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2277,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.7.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.7.0"},{"name":"5.8.0","release":"2025-11-21 13:44:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":37,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.8.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.8.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.8.0"},{"name":"5.8.1","release":"2025-11-24 20:18:08","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":214,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.8.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.8.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.8.1"},{"name":"5.9.0","release":"2025-12-05 19:28:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.9.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.9.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.9.0"},{"name":"5.9.1","release":"2025-12-05 19:34:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.9.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.9.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.9.1"},{"name":"5.9.2","release":"2025-12-05 19:40:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.9.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.9.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.9.2"},{"name":"5.9.3","release":"2025-12-05 19:56:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3990,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.9.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.9.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.9.3"},{"name":"5.10.0","release":"2026-05-06 09:58:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3597,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.10.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.10.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.10.0"},{"name":"6.0.0","release":"2026-09-15 19:10:08","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":45,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/6.0.0"},{"name":"6.1.0","release":"2026-10-14 14:32:17","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/6.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/6.1.0"},{"name":"5.11.0","release":"2026-10-14 15:28:26","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":82,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.11.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.11.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.11.0"},{"name":"5.11.1","release":"2026-10-21 21:20:31","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.11.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.11.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.11.1"},{"name":"5.11.2","release":"2026-10-21 21:28:14","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.11.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.11.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.11.2"},{"name":"6.1.2","release":"2026-10-21 21:30:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/6.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/6.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/6.1.2"},{"name":"6.2.0","release":"2026-10-22 15:14:20","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/6.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/6.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/6.2.0"},{"name":"5.12.0","release":"2026-10-22 15:14:51","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":57,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MistralAI\/5.12.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/MistralAI\/commits\/5.12.0","readmeHtml":{"description":"\n\n<p>Chat with your Matomo data and get one-click AI insights on any report, powered by Mistral AI or any OpenAI-compatible endpoint, plus an optional agent that queries your live reports through the Matomo MCP tools.<\/p>\n\n<h3>Features<\/h3>\n\n<h4>Insights on any report<\/h4>\n\n<ul>\n<li>A square AI button, styled like the Matomo 5 selectors, in the header of each report opens an insight panel that analyses the report you are looking at, then lets you ask follow-up questions.<\/li>\n<li>The whole report is analysed as Matomo serves it, not only the visible rows: a compact payload with the rows, the totals, the metric names and units, and the exact API request behind the report.<\/li>\n<li>The analysis follows what you see: the active segment, the period and the compared periods or segments.<\/li>\n<li>The analysis also follows the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>Works with tables, evolution graphs, goals, custom reports and the other widgets backed by a Matomo report.<\/li>\n<li>When a widget cannot be analysed, the panel shows a clear message instead of a raw error.<\/li>\n<li>The panel is an accessible dialog: keyboard navigation, focus kept inside the panel, Escape to close.<\/li>\n<\/ul>\n\n<h4>Chat<\/h4>\n\n<ul>\n<li>A dedicated <em>Mistral AI<\/em> page in the main menu, with suggested questions to get started.<\/li>\n<li>Answers stream in real time, with an automatic fallback for servers that do not support streaming.<\/li>\n<li>The conversation follows the latest message while it is written, and stops scrolling as soon as you scroll up to read.<\/li>\n<li>Answers are rendered as Markdown, with readable tables, highlighted code and copy buttons for an answer or a code block.<\/li>\n<\/ul>\n\n<h4>Agent mode, with MCP Server<\/h4>\n\n<p>When the MCP Server plugin, available on the Matomo Marketplace, is installed, activated and enabled, the chat and the insights switch to agent mode:<\/p>\n\n<ul>\n<li>The assistant queries your real reports through the Matomo tools to answer, for example to compare periods or fetch a subtable.<\/li>\n<li>Each tool call is listed in a step timeline under the answer.<\/li>\n<li>Tools run inside Matomo with the access of the current user: no public URL, OAuth client or extra token is needed.<\/li>\n<li>Write actions, such as creating a goal or an annotation, are only available when write mode is enabled in MCP Server. The assistant then always describes the change and waits for your explicit confirmation before it creates, modifies or deletes anything. This rule is added by the plugin and cannot be removed by editing the prompts.<\/li>\n<li>When agent mode is not available, the chat recommends the next step: install MCP Server, activate it, enable MCP or enable write mode. Super users get a direct link, other users are asked to contact their administrator.<\/li>\n<li>Agent mode has its own <em>Agent mode model<\/em> setting, because calling tools needs a larger model than chatting.<\/li>\n<\/ul>\n\n<p>The agent mode is optional. Without MCP Server, the chat and the insights keep working with the plugin settings.<\/p>\n\n<h4>Connection and models<\/h4>\n\n<ul>\n<li><strong>One key is enough<\/strong>: the key of the website is used first, then the general key. The plugin never uses the Matomo AI Providers plugin, which has no Mistral AI provider, so the credential of another provider is never sent to Mistral AI.<\/li>\n<li>Works with Mistral AI (default) and any OpenAI-compatible chat completions endpoint served over HTTPS, including self-hosted models. The API key is optional on a custom host.<\/li>\n<li>The general API key is only sent to the general host: a website using its own host never receives it.<\/li>\n<li>Presets curated for conversation: Latest recommended (default, currently Ministral 3 14B), Mistral Medium 3.5, Mistral Large 3, Mistral Small 4, Ministral 3 14B, 8B and 3B. A custom model field accepts any other model name.<\/li>\n<li>When the configured model is deprecated, retired or not included in your Mistral AI plan, the chat explains it and links to the settings instead of showing the raw API error.<\/li>\n<\/ul>\n\n<h4>Prompts<\/h4>\n\n<ul>\n<li>Default chat and insight prompts written for analytics: the chat answers as a senior analytics consultant, the insights follow a fixed structure (summary, key figures, notable patterns, recommendations).<\/li>\n<li>Default prompts of previous versions are upgraded automatically, custom prompts are kept.<\/li>\n<li>A prompt equal to the default is not stored, so future improvements of the defaults reach you. A <em>Reset to default<\/em> button restores the default prompts.<\/li>\n<\/ul>\n\n<h4>More<\/h4>\n\n<ul>\n<li>Interface and default prompts translated into 13 languages: English, Arabic, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish.<\/li>\n<li>Follows the Matomo light and dark themes.<\/li>\n<li>Rate limit of 30 AI requests per hour, per user and per website, configurable in <code>config\/config.ini.php<\/code>.<\/li>\n<li>HTTP API: <code>MistralAI.getResponse<\/code>, <code>MistralAI.getStreamingResponse<\/code>, <code>MistralAI.getInsights<\/code>, <code>MistralAI.getSiteSettings<\/code>, <code>MistralAI.setSiteSettings<\/code> and <code>MistralAI.setSystemSettings<\/code>.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher, below 6 (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>PHP: the version required by your Matomo 5 (PHP 8.1 or higher for the agent mode, required by MCP Server)<\/li>\n<li>A Mistral AI API key, or an OpenAI-compatible HTTPS endpoint<\/li>\n<li>Optional, for the agent mode: the <strong>MCP Server<\/strong> plugin from the Marketplace (Matomo 5.8 or higher, PHP 8.1 or higher). Write actions also require write mode to be enabled in the MCP Server settings.<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate <strong>Mistral AI<\/strong> from <strong>Administration &gt; Platform &gt; Marketplace<\/strong>.<\/li>\n<li>As a super user, open <strong>Administration &gt; System &gt; Mistral AI<\/strong>:\n\n<ul>\n<li><strong>Connection<\/strong> card: host (an HTTPS URL), API key, chat model and agent mode model. Each card is saved on its own. The saved key is never displayed, and a <strong>Delete key<\/strong> button removes it. Create a key in the <a href=\"https:\/\/console.mistral.ai\/\">Mistral AI console<\/a>.<\/li>\n<li><strong>Privacy<\/strong> card: check <strong>Allow sending Matomo data to the AI provider<\/strong>, off by default. Until a super user checks it, nothing is sent to the provider. The card shows where the data goes, and masks e-mail and IP addresses, removes URL query strings and excludes visitor-level data, all three on by default.<\/li>\n<li><strong>Prompts<\/strong> card: chat and insight base prompts, with a <strong>Reset to default<\/strong> button.<\/li>\n<\/ul><\/li>\n<li>Optionally, override the settings for a website in <strong>Administration &gt; Websites &gt; Mistral AI<\/strong> (website admin access): host, API key, model and prompts, with a <strong>Delete key<\/strong> button and a <strong>Use the general prompts<\/strong> button. Empty fields use the general settings.<\/li>\n<li>For the agent mode, install, activate and enable <strong>MCP Server<\/strong>, and enable write mode in its settings if you want the assistant to perform actions. The chat guides you through each missing step.<\/li>\n<li><p>Optionally, as a server administrator, tune the plugin in a <code>[MistralAI]<\/code> section of <code>config\/config.ini.php<\/code>. Every key is optional:<\/p>\n\n<pre><code>[MistralAI]\n; name shown in the top menu, on the chat page and in the insights panel, 40 characters max\ndisplay_name = \"Company AI\"\n; AI requests per user and per website within the window, 0 disables the limit\nrate_limit_requests = 30\n; length of the window, in seconds\nrate_limit_window = 3600\n<\/code><\/pre><\/li>\n<\/ol>\n\n<p>Then open the <strong>Mistral AI<\/strong> page in the main menu, or click the AI button in the header of a report.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>Insights send the data of the report you are looking at (labels, metrics and totals), its period, segment and comparisons, and the conversation, to the configured endpoint: Mistral AI by default, or your custom host.<\/li>\n<li>The chat sends your messages and the prompts. In agent mode, the results of the Matomo tools called by the assistant are also sent to the endpoint.<\/li>\n<li>Nothing is sent to the AI provider until a super user checks <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Mistral AI<\/strong>, <strong>Privacy<\/strong> card. It is off by default: until then, the chat and the insights tell users to ask a super user to allow it.<\/li>\n<li>Before sending, e-mail and IP addresses are replaced with <code>[email]<\/code> and <code>[ip]<\/code>, and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default and can be turned off in the same <strong>Privacy<\/strong> card.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default: the insights and the agent cannot read it until a super user unchecks <strong>Exclude visitor-level data<\/strong>.<\/li>\n<li>Report labels can hold values set by visitors (page titles, URLs, referrers, campaign names, custom dimensions). Check the retention and privacy terms of the provider before connecting it, and prefer a self-hosted or EU-hosted endpoint when your data policy requires it.<\/li>\n<li>The chat shows every user a notice stating that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the Matomo administrator.<\/li>\n<li>When a Matomo tool fails in agent mode, the model only receives a generic error with a reference: the details stay in the Matomo logs.<\/li>\n<li>Insight requests are restricted to Matomo report and data methods, never to an arbitrary API method, and run with the access of the current user.<\/li>\n<li>API keys are stored in the Matomo settings and are never sent back to the browser. Conversations are not stored by the plugin.<\/li>\n<li>To keep all data on your infrastructure, point the host to a self-hosted model.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We connect Matomo to AI assistants, BI tools and the rest of your stack with <a href=\"https:\/\/openmost.com\/matomo\/services\/integration?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=mistralai\">Matomo integrations<\/a> built on official APIs, with documented and privacy-checked data flows.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How do I install and configure the plugin?<\/strong><\/p>\n\n<ol>\n<li>Install the plugin from the Matomo Marketplace and activate it.<\/li>\n<li>Go to <em>Administration &gt; System &gt; Mistral AI<\/em> as a super user. In the <strong>Privacy<\/strong> card, check <strong>Allow sending Matomo data to the AI provider<\/strong>: it is off by default.<\/li>\n<li>Paste your Mistral AI API key in the <em>Connection<\/em> card and save.<\/li>\n<\/ol>\n\n<p>You can create an API key in the <a href=\"https:\/\/console.mistral.ai\/\">Mistral AI console<\/a>.<\/p>\n\n<p><strong>Can I change the rate limit or the name shown in the menu?<\/strong><\/p>\n\n<p>Yes, in a <code>[MistralAI]<\/code> section of <code>config\/config.ini.php<\/code>: <code>display_name<\/code> renames the plugin in the top menu, on the chat page and in the insights panel, for example when you use a self-hosted model. <code>rate_limit_requests<\/code> sets the AI requests per user and per website (30 by default, 0 disables the limit) and <code>rate_limit_window<\/code> the length of the window in seconds (3600 by default). These values are kept when the plugin is updated.<\/p>\n\n<p><strong>The chat says that data sharing is not allowed<\/strong><\/p>\n\n<p>No Matomo data leaves your instance without an explicit decision: a super user must check <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Mistral AI<\/strong>, <strong>Privacy<\/strong> card. Other users are asked to contact a super user.<\/p>\n\n<p><strong>Where are the settings?<\/strong><\/p>\n\n<p>The general settings are in <em>Administration &gt; System &gt; Mistral AI<\/em> (super user). The settings of a website are in <em>Administration &gt; Websites &gt; Mistral AI<\/em> (website admin). They are no longer in <em>Administration &gt; General settings<\/em> nor in the website edit form.<\/p>\n\n<p><strong>Which API key is used?<\/strong><\/p>\n\n<p>The key of the website first, then the general key. The general key is only sent to the general host: a website that uses another host must set its own key. The plugin never uses the Matomo AI Providers plugin, which has no Mistral AI provider, so the key of another provider is never sent to Mistral AI.<\/p>\n\n<p><strong>How do I remove a saved API key?<\/strong><\/p>\n\n<p>Click <em>Delete key<\/em> next to the API key field, on the general settings or on the website settings. A saved key is never displayed again.<\/p>\n\n<p><strong>What is agent mode?<\/strong><\/p>\n\n<p>With the MCP Server plugin (Matomo Marketplace) installed, activated and enabled, the assistant queries your real reports through the Matomo tools to answer, and lists each tool call in a step timeline. Without it, the chat answers from the prompt and, for insights, from the report data. The chat recommends the missing step to unlock agent mode.<\/p>\n\n<p><strong>Can the assistant change things in Matomo?<\/strong><\/p>\n\n<p>Only when write mode is enabled in the MCP Server settings. The assistant then always describes the change and waits for your explicit confirmation in the conversation before it creates, modifies or deletes anything. This rule is added by the plugin and cannot be removed by editing the prompts.<\/p>\n\n<p><strong>Which model does agent mode use?<\/strong><\/p>\n\n<p>The <em>Agent mode model<\/em> of the general settings. Calling tools needs a larger model than chatting: the default, \"Latest recommended\" (currently Ministral 3 14B), works with the free Mistral AI plan. \"Same as the chat model\" reuses the chat model, except the 3B models, which are replaced by the recommended one.<\/p>\n\n<p><strong>Which models are supported?<\/strong><\/p>\n\n<p>The presets are curated for conversation: Latest recommended (default, currently Ministral 3 14B), Mistral Medium 3.5, Mistral Large 3, Mistral Small 4, Ministral 3 14B, 8B and 3B. Any other model, including Codestral, Devstral, Pixtral or a self-hosted model, can be set in the <em>Model (Custom)<\/em> field.<\/p>\n\n<p><strong>The chat says my model is not available or not included in my plan<\/strong><\/p>\n\n<p>Mistral AI retires old models, and some plans do not include every model (Mistral AI then answers \"Rate limit exceeded\" with a limit of 0 requests per minute). Choose another model in the settings, for example \"Latest recommended\", which follows the model recommended by each plugin release.<\/p>\n\n<p><strong>Can I use another endpoint than Mistral AI?<\/strong><\/p>\n\n<p>Yes. Set the host to any OpenAI-compatible chat completions endpoint served over HTTPS, such as a self-hosted model served by vLLM, Ollama or LocalAI. The API key is optional for a custom host: without a key, no Authorization header is sent.<\/p>\n\n<p><strong>What do the insights analyse?<\/strong><\/p>\n\n<p>The full report as Matomo serves it, not only the visible rows: the rows, the totals, the metric names and units, the active segment, the period and the compared periods or segments. Evolution graphs, goals and custom reports are supported. When a widget cannot be analysed, the panel shows a clear message.<\/p>\n\n<p><strong>I changed the default prompts in a previous version. Are they kept?<\/strong><\/p>\n\n<p>Yes. Custom prompts are kept. Default prompts saved by previous versions are upgraded automatically to the new defaults. <em>Reset to default<\/em> restores the defaults at any time.<\/p>\n\n<p><strong>Is my data sent to Mistral AI?<\/strong><\/p>\n\n<p>Your messages, the prompts and, for insights, the data of the report you are looking at are sent to the configured endpoint. Raw visitor data is never sent, unless the report itself contains it, such as the Visits Log. In agent mode, the results of the Matomo tools called by the assistant are sent too. To keep all data on your infrastructure, use a self-hosted model.<\/p>\n\n<p><strong>Who can use the plugin?<\/strong><\/p>\n\n<p>Every user with view access to a website can use the chat and the insights for that website. Each user can send 30 requests per hour and per website.<\/p>\n\n<p><strong>Does the plugin support the dark theme?<\/strong><\/p>\n\n<p>Yes, the chat and the insights follow the light and dark themes of Matomo.<\/p>\n\n<p><strong>Which languages are supported?<\/strong><\/p>\n\n<p>Arabic, Chinese (Simplified and Traditional), Dutch, English, French, German, Italian, Japanese, Polish, Portuguese, Spanish and Swedish. The default prompts are translated too.<\/p>\n\n<p><strong>What are the requirements?<\/strong><\/p>\n\n<p>Matomo 5.0.0 or later, below 6.0.0. The MCP Server plugin is optional, for agent mode: MCP Server 5.x requires Matomo 5.8 and PHP 8.1 or later.<\/p>\n\n<p><strong>How do I get support?<\/strong><\/p>\n\n<p>Report issues on <a href=\"https:\/\/github.com\/openmost\/MistralAI\/issues\">GitHub<\/a> or write to ronan@openmost.com.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Chat with your Matomo data and get one-click AI insights on any report, powered by Mistral AI or any OpenAI-compatible endpoint.<\/p>\n\n<h2>Getting started<\/h2>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <em>Administration &gt; System &gt; Mistral AI<\/em> as a super user.<\/li>\n<li>In the <em>Connection<\/em> card, paste your Mistral AI API key, created in the <a href=\"https:\/\/console.mistral.ai\/\">Mistral AI console<\/a>, and save.<\/li>\n<li>Open a report and click the AI button in its header, or open the <em>Mistral AI<\/em> page from the main menu.<\/li>\n<\/ol>\n\n<h2>Report insights<\/h2>\n\n<p>The square AI button in the header of each report, styled like the Matomo 5 selectors, opens an insight panel. The analysis uses the full report as Matomo serves it: a compact payload with the rows, the totals, the metric names and units, and the exact API request behind the report. The active segment, the period and the compared periods or segments are taken into account, as well as the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis. Tables, evolution graphs, goals, custom reports and the other widgets backed by a Matomo report are supported. You can ask follow-up questions in the same panel.<\/p>\n\n<p>The panel is an accessible dialog: keyboard navigation, focus kept inside the panel, Escape to close.<\/p>\n\n<h2>Chat<\/h2>\n\n<p>The <em>Mistral AI<\/em> page of the main menu is a full chat with suggested questions. Answers stream in real time and are rendered as Markdown, with readable tables, highlighted code and copy buttons. The conversation follows the latest message while it is written, unless you scroll up.<\/p>\n\n<h2>Agent mode<\/h2>\n\n<p>With the MCP Server plugin (Matomo Marketplace) installed, activated and enabled, the assistant queries your real reports through the Matomo tools to answer. Each tool call appears in a step timeline under the answer.<\/p>\n\n<ul>\n<li>Read tools are available as soon as MCP is enabled.<\/li>\n<li>Write actions, such as creating a goal or an annotation, need write mode in the MCP Server settings. The assistant then always describes the change and waits for your explicit confirmation before it creates, modifies or deletes anything.<\/li>\n<li>When a step is missing, the chat recommends it: install MCP Server, activate it, enable MCP or enable write mode. Super users get a direct link, other users are asked to contact their administrator.<\/li>\n<li>Agent mode uses the <em>Agent mode model<\/em> of the general settings. Its default, \"Latest recommended\", works with the free Mistral AI plan. \"Same as the chat model\" reuses the chat model, except the 3B models, which are replaced by the recommended one.<\/li>\n<\/ul>\n\n<h2>Settings<\/h2>\n\n<h3>General settings<\/h3>\n\n<p><em>Administration &gt; System &gt; Mistral AI<\/em> (super user):<\/p>\n\n\n\n\n  Card\n  Setting\n  Description\n\n\n\n\n  Connection\n  Host\n  Chat completions endpoint, an HTTPS URL. Default: <code>https:\/\/api.mistral.ai\/v1\/chat\/completions<\/code>\n\n\n  Connection\n  API key\n  Required for Mistral AI, optional for a custom host. Never displayed once saved, removed with <em>Delete key<\/em>\n\n\n  Connection\n  Model (Preset)\n  Latest recommended (default), Mistral Medium 3.5, Mistral Large 3, Mistral Small 4, Ministral 3 14B, 8B or 3B\n\n\n  Connection\n  Model (Custom)\n  Any model name, overrides the preset\n\n\n  Connection\n  Agent mode model\n  Model used with the Matomo tools\n\n\n  Privacy\n  Allow sending Matomo data to the AI provider\n  Off by default: nothing is sent until a super user checks it\n\n\n  Privacy\n  Mask e-mail and IP addresses\n  Replaced with <code>[email]<\/code> and <code>[ip]<\/code> before sending. On by default\n\n\n  Privacy\n  Remove URL query strings\n  The parameters after the <code>?<\/code> of the URLs are removed before sending. On by default\n\n\n  Privacy\n  Exclude visitor-level data\n  Visits Log, visitor profiles, real-time and User ID reports are kept out. On by default\n\n\n  Prompts\n  Chat base prompt\n  Instructions of the chat\n\n\n  Prompts\n  Insight base prompt\n  Instructions of the insights\n\n\n\n\n<p>Each card is saved on its own. <em>Reset to default<\/em> fills in the default prompts in your language. A prompt equal to its default is not stored, so it follows the updates of the plugin. Default prompts saved by previous versions are upgraded automatically, custom prompts are kept.<\/p>\n\n<h3>Website settings<\/h3>\n\n<p><em>Administration &gt; Websites &gt; Mistral AI<\/em> (website admin) overrides the host, API key, model and prompts for one website. Leave a field empty to use the general value. <em>Use the general prompts<\/em> makes the website follow the general prompts again.<\/p>\n\n<h3>Configuration file<\/h3>\n\n<p>A server administrator can tune the plugin in a <code>[MistralAI]<\/code> section of <code>config\/config.ini.php<\/code>. Every key is optional:<\/p>\n\n<pre><code>[MistralAI]\n; name shown in the top menu, on the chat page and in the insights panel, 40 characters max\ndisplay_name = \"Company AI\"\n; AI requests per user and per website within the window, 0 disables the limit\nrate_limit_requests = 30\n; length of the window, in seconds\nrate_limit_window = 3600\n<\/code><\/pre>\n\n<h3>API key cascade<\/h3>\n\n<p>The key of the website is used first, then the general key. The general key is only sent to the general host, so a website using another host must set its own key. The plugin never uses the Matomo AI Providers plugin, which has no Mistral AI provider.<\/p>\n\n<h2>API<\/h2>\n\n\n\n\n  Method\n  Access\n  Description\n\n\n\n\n  <code>MistralAI.getResponse<\/code>\n  view\n  Chat answer, not streamed\n\n\n  <code>MistralAI.getStreamingResponse<\/code>\n  view\n  Chat or insight answer, streamed as Server-Sent Events\n\n\n  <code>MistralAI.getInsights<\/code>\n  view\n  Insight answer for a report widget\n\n\n  <code>MistralAI.getSiteSettings<\/code>\n  website admin\n  Settings of a website, the API key replaced by a placeholder\n\n\n  <code>MistralAI.setSiteSettings<\/code>\n  website admin\n  Saves the settings of a website\n\n\n  <code>MistralAI.setSystemSettings<\/code>\n  super user\n  Saves the general settings\n\n\n\n\n<p>Each user can send 30 requests per hour and per website.<\/p>\n\n<h2>Privacy and data<\/h2>\n\n<ul>\n<li>Nothing is sent to the AI provider until a super user checks <strong>Allow sending Matomo data to the AI provider<\/strong> in <strong>Administration &gt; System &gt; Mistral AI<\/strong>, <strong>Privacy<\/strong> card. It is off by default: until then, the chat and the insights tell users to ask a super user to allow it.<\/li>\n<li>Before sending, e-mail and IP addresses are replaced with <code>[email]<\/code> and <code>[ip]<\/code>, and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default and can be turned off in the same <strong>Privacy<\/strong> card.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default: the insights and the agent cannot read it until a super user unchecks <strong>Exclude visitor-level data<\/strong>.<\/li>\n<\/ul>\n\n<h2>Requirements<\/h2>\n\n<ul>\n<li>Matomo 5.0.0 or later, below 6.0.0.<\/li>\n<li>PHP: the minimum required by Matomo.<\/li>\n<li>A Mistral AI API key, or the URL of an OpenAI-compatible endpoint.<\/li>\n<li>Optional: the MCP Server plugin for agent mode. MCP Server 5.x requires Matomo 5.8 and PHP 8.1 or later.<\/li>\n<\/ul>\n\n<h2>Support<\/h2>\n\n<ul>\n<li>Homepage: https:\/\/openmost.com\/matomo\/extensions\/mistral-ai<\/li>\n<li>Issues: https:\/\/github.com\/openmost\/MistralAI\/issues<\/li>\n<li>Email: ronan@openmost.com<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>5.12.0<\/h3>\n\n<ul>\n<li>Insights follow the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis.<\/li>\n<li>The rate limit is configurable in a <code>[MistralAI]<\/code> section of <code>config\/config.ini.php<\/code>: <code>rate_limit_requests<\/code> (30 by default, 0 disables it) and <code>rate_limit_window<\/code> in seconds (3600 by default).<\/li>\n<li>The name shown in the top menu, on the chat page and in the insights panel is configurable with <code>display_name<\/code> in the same section, for example for a self-hosted model.<\/li>\n<\/ul>\n\n<h3>5.11.2<\/h3>\n\n<ul>\n<li>Fix: a default prompt saved with Windows (CRLF) line breaks is recognised again on Linux servers, so it follows the new default instead of being kept as a custom prompt.<\/li>\n<\/ul>\n\n<h3>5.11.1<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>5.11.0<\/h3>\n\n<blockquote>\n  <p><strong>Action required.<\/strong> Nothing is sent to the AI provider any more until a super user checks <em>Allow sending Matomo data to the AI provider<\/em> in <em>Administration &gt; System &gt; Mistral AI<\/em>, Privacy card. Until then, the chat and the insights ask users to contact a super user. The settings of your websites, your custom prompts and the model chosen with a previous version are kept.<\/p>\n<\/blockquote>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<ul>\n<li>New privacy settings in <em>Administration &gt; System &gt; Mistral AI<\/em>, <em>Privacy<\/em> card: nothing is sent to the AI provider until a super user checks <em>Allow sending Matomo data to the AI provider<\/em>, off by default. They also show where the data goes.<\/li>\n<li>Before sending, e-mail and IP addresses are masked and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default.<\/li>\n<li>Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default from the insights and the agent.<\/li>\n<li>The chat tells users that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the administrator.<\/li>\n<li>When a Matomo tool fails in agent mode, the AI provider only receives a generic error with a reference: the details stay in the Matomo logs.<\/li>\n<\/ul>\n\n<p><strong>Agent mode with the MCP Server plugin<\/strong><\/p>\n\n<ul>\n<li>When the MCP Server plugin is installed, activated and enabled, the chat and the insights query your real reports through the Matomo tools. Each tool call is shown in a step timeline under the answer.<\/li>\n<li>Write actions, such as creating a goal or an annotation, need write mode in MCP Server, and the assistant always waits for the explicit confirmation of the user before it creates, modifies or deletes anything. This rule cannot be removed by editing the prompts.<\/li>\n<li>The chat recommends the next step to unlock agent mode: install MCP Server, activate it, enable MCP or enable write mode. Super users get a direct link.<\/li>\n<li>New <em>Agent mode model<\/em> general setting, \"Latest recommended\" by default, as calling tools needs a larger model than chatting.<\/li>\n<\/ul>\n\n<p><strong>Settings<\/strong><\/p>\n\n<ul>\n<li>One key is enough: the API key of the website, then the general API key. The plugin never uses the Matomo AI Providers plugin, which has no Mistral AI provider.<\/li>\n<li>The general settings moved from <em>Administration &gt; General settings<\/em> to a dedicated <em>Administration &gt; System &gt; Mistral AI<\/em> page, with a <em>Connection<\/em> card and a <em>Prompts<\/em> card saved separately, and a <em>Delete key<\/em> button. New API method <code>MistralAI.setSystemSettings<\/code>.<\/li>\n<li>The website settings moved from the website edit form to <em>Administration &gt; Websites &gt; Mistral AI<\/em>. New API methods <code>MistralAI.getSiteSettings<\/code> and <code>MistralAI.setSiteSettings<\/code>.<\/li>\n<li>Saved API keys are never sent back to the browser, and the general key is only sent to the general host.<\/li>\n<li>The API key is optional on a custom host (self-hosted or compatible endpoint), as the documentation states: the chat, the insights and the plugin assets work with a keyless custom host, and no Authorization header is sent without a key. The default Mistral AI host still requires a key.<\/li>\n<li>A general host that is not an HTTPS URL is refused on save with a translated error, as the host of a website already was, like in the ChatGPT plugin.<\/li>\n<li>The host is checked with the same HTTPS rule when the settings are saved and when a request is sent, and the configuration errors of a request (host, API key, model, HTTPS) are translated.<\/li>\n<\/ul>\n\n<p><strong>Prompts<\/strong><\/p>\n\n<ul>\n<li>New default chat and insight prompts written for analytics, translated in every language of the plugin.<\/li>\n<li>Default prompts saved by previous versions are upgraded automatically, custom prompts are kept. A <em>Reset to default<\/em> button restores the defaults, and <em>Use the general prompts<\/em> makes a website follow the general prompts again.<\/li>\n<li>The default prompts ask the assistant to flag the figures of a period that has not ended yet as partial and to compare the same number of elapsed days instead of calling a drop a decline, and to compute every difference, percentage and ratio from the exact numbers. Installs still on a previous default prompt get the new one, custom prompts are kept.<\/li>\n<\/ul>\n\n<p><strong>Models<\/strong><\/p>\n\n<ul>\n<li>New \"Latest recommended\" model, the default, currently Ministral 3 14B. Updated list: Mistral Medium 3.5, Mistral Large 3, Mistral Small 4, Ministral 3 14B, 8B and 3B. Magistral Medium and Open Mistral Nemo, deprecated by Mistral AI, were removed.<\/li>\n<li>When the model is deprecated, retired or not included in the Mistral AI plan, the chat explains it and links to the settings instead of showing the raw API error.<\/li>\n<\/ul>\n\n<p><strong>Chat and insights<\/strong><\/p>\n\n<ul>\n<li>Redesigned chat: one accessible, keyboard friendly insight panel, readable tables, highlighted code, copy buttons, auto-scroll that stops when you scroll up, and a dedicated chat page with suggested questions.<\/li>\n<li>The send button and the logo tiles use the Mistral AI brand colour, and the default accent colour is Mistral orange everywhere instead of ChatGPT green in places.<\/li>\n<li>The insight panels of ChatGPT, Mistral AI, Claude and Ask AI close each other when one opens, and closing one no longer lets the page scroll under the panel that is still open.<\/li>\n<li>Insights analyse the full report: a compact payload with the totals, the active segment, the period and the comparisons. Evolution graphs, goals, custom reports and the other report widgets are supported, and errors are shown as clean messages.<\/li>\n<li>Wide answer tables fit the insight panel, their columns wrap or scroll sideways instead of being cut off on the right.<\/li>\n<li>Once the limit of 30 requests per hour is reached, the chat and the insight panel show the rate limit message in the language of the user instead of a generic error.<\/li>\n<li>Opening the insight panel again on a report it has already analysed no longer fails with an error from Mistral AI, the report is analysed again.<\/li>\n<li>Security: insight requests are restricted to Matomo report and data methods.<\/li>\n<li>Security: AI answers are sanitized before being displayed, which fixes links that could run JavaScript when clicked.<\/li>\n<li>Errors returned by the model API, including while streaming, are shown as a notice in the chat instead of failing silently.<\/li>\n<li>Translated into 6 more languages: Arabic, Chinese (Simplified and Traditional), Japanese, Polish and Portuguese.<\/li>\n<li>The rate limit message and the description of the host setting are translated and name Mistral AI instead of GPT.<\/li>\n<\/ul>\n\n<p><strong>Compatibility<\/strong><\/p>\n\n<ul>\n<li>Compatible again with Matomo 5.0.0 or higher, below 6: every Matomo theme variable used by the chat and the insight panel keeps the light theme value of Matomo as a fallback, so the releases without these variables show the light look. The agent mode needs MCP Server (Matomo 5.8 or higher, PHP 8.1 or higher).<\/li>\n<li>Smaller package: the Vue source maps, which Matomo does not load, are no longer shipped.<\/li>\n<\/ul>\n\n<p><strong>Documentation<\/strong><\/p>\n\n<ul>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>5.10.1<\/h3>\n\n<ul>\n<li>Security: restrict insight requests to Matomo reports.<\/li>\n<\/ul>\n\n<h3>5.10.0<\/h3>\n\n<p><strong>Refreshed model list and dark theme support<\/strong><\/p>\n\n<h4>New Features<\/h4>\n\n<ul>\n<li><strong>Refreshed preset model list<\/strong>: Added the latest generations, Mistral Large 3, Mistral Medium 3.5 and Mistral Small 4, plus the new Magistral reasoning model (<code>magistral-medium-latest<\/code>). Default model is still <code>mistral-medium-latest<\/code>, which now points to Mistral Medium 3.5.<\/li>\n<li><strong>Curated for chat<\/strong>: The preset list now only contains models suited for back-and-forth discussion of report data. Code-completion specialists (Codestral, Devstral), audio models (Voxtral) and vision-only models (Pixtral) have been removed because they target one-shot tasks rather than conversation.<\/li>\n<li><strong>Dark theme support<\/strong>: All chat and insight components use Matomo's native CSS theme variables (<code>--theme-color-background-contrast<\/code>, <code>--theme-color-border<\/code>, <code>--theme-color-background-tinyContrast<\/code>), so the UI automatically follows Matomo's light\/dark theme without any extra configuration. Each variable keeps a fallback value for the Matomo releases without them.<\/li>\n<\/ul>\n\n<h4>Notes for Custom Models<\/h4>\n\n<p>The \"Model (Custom)\" field still accepts any model name, including code\/audio\/vision specialists or self-hosted ones (Codestral, Devstral, Voxtral, Pixtral, etc.). Use it whenever you need a model that is no longer in the preset dropdown.<\/p>\n\n<h3>5.9.3<\/h3>\n\n<ul>\n<li>Fix upgrade scenario issue (only when upgrade from v5.8.0)<\/li>\n<\/ul>\n\n<h3>5.9.0<\/h3>\n\n<p><strong>Major Update: Settings Refactoring, Streaming &amp; UI Improvements<\/strong><\/p>\n\n<h4>New Features<\/h4>\n\n<ul>\n<li><strong>Custom Model Support<\/strong>: Added ability to specify custom model names to override presets<\/li>\n<li><strong>Optional API Key<\/strong>: API key is now optional when using custom hosts (self-hosted LLMs)<\/li>\n<li><strong>Unified Streaming<\/strong>: Both Chat and Insights now use the same streaming endpoint with automatic mode detection<\/li>\n<li><strong>Automatic Streaming Fallback<\/strong>: Streaming auto-detects and falls back to non-streaming if unsupported<\/li>\n<li><strong>Escape Key Support<\/strong>: Close Insights offcanvas panel by pressing Escape<\/li>\n<\/ul>\n\n<h4>Improvements<\/h4>\n\n<ul>\n<li>Refactored model selection: split into \"Model (Preset)\" dropdown and \"Model (Custom)\" text field<\/li>\n<li>Centralized model definitions in main plugin file for consistency<\/li>\n<li>Improved settings architecture with shared <code>SettingsBase<\/code> trait for system and measurable settings<\/li>\n<li>Better chat UI layout with proper flexbox sizing<\/li>\n<li>Updated default model to mistral-medium-latest<\/li>\n<li>Added translations for all new settings in 7 languages (EN, DE, ES, FR, IT, NL, SV)<\/li>\n<li>Improved POST parameter parsing for messages and widgetParams<\/li>\n<li>Unified <code>getStreamingResponse<\/code> API handles both chat and insight modes based on widgetParams<\/li>\n<li>Cleaner API with removed unused methods<\/li>\n<\/ul>\n\n<h4>Bug Fixes<\/h4>\n\n<ul>\n<li>Fixed user messages not being sent to AI in streaming mode<\/li>\n<li>Fixed Insights not using correct prompt and report data<\/li>\n<li>Fixed chat messages list height not filling container<\/li>\n<li>Fixed streaming fallback behavior<\/li>\n<li>Fixed TypeScript errors in Vue components<\/li>\n<\/ul>\n\n<h4>Breaking Changes<\/h4>\n\n<ul>\n<li>Removed <code>model<\/code> setting, replaced with <code>modelPreset<\/code> and <code>modelCustom<\/code><\/li>\n<li>Removed <code>enableStreaming<\/code> setting (streaming is now automatic)<\/li>\n<li>Removed <code>getAvailableModels<\/code> API method (now using static model list)<\/li>\n<li>Removed <code>clearModelsCache<\/code> API method<\/li>\n<li>Removed <code>getRateLimitStatus<\/code> API method<\/li>\n<li>Removed <code>getSettings<\/code> API method<\/li>\n<\/ul>\n\n<h3>v5.8.0<\/h3>\n\n<p>Major update:<\/p>\n\n<ul>\n<li>Add streaming support with Server-Sent Events<\/li>\n<li>Add rate limiting (30 requests per hour per user\/site)<\/li>\n<li>Add dynamic model fetching from API with caching<\/li>\n<li>Add translation support (en, fr, de, es, it, nl, sv)<\/li>\n<li>Improve error handling and validation<\/li>\n<li>Add widget params support for insights<\/li>\n<li>Improve security with input sanitization<\/li>\n<li>Add SSL verification for API calls<\/li>\n<\/ul>\n\n<h3>v5.7.0<\/h3>\n\n<p>Update: Support more Mistral AI models.<\/p>\n\n<ul>\n<li>open-mistral-nemo<\/li>\n<li>open-mixtral-8x22b<\/li>\n<li>ministral-3b-latest<\/li>\n<li>ministral-8b-latest<\/li>\n<\/ul>\n\n<h3>v5.6.4<\/h3>\n\n<p>Update: plugin category and _cover.png<\/p>\n\n<h3>v5.6.2<\/h3>\n\n<p>Update: Handle errors to chat UI<\/p>\n\n<h3>v5.6.1<\/h3>\n\n<p>Update: Refactor Chat.vue component with AJAX Helper<\/p>\n\n<h3>v5.6.0<\/h3>\n\n<p>Update : Logger and MeasurableSettings<\/p>\n\n<h3>v5.5.2<\/h3>\n\n<p>Fix Ai label in form placeholder<\/p>\n\n<h3>v5.5.0<\/h3>\n\n<p>Update messages continuity and insight conversation<\/p>\n\n<h3>v5.4.3<\/h3>\n\n<p>Update documentation URL<\/p>\n\n<h3>v5.4.2<\/h3>\n\n<p>Add \"Open\" to Mistral 7B configuration<\/p>\n\n<h3>v5.4.1<\/h3>\n\n<p>Change default model to mistral-medium-latest<\/p>\n\n<h3>v5.4.0<\/h3>\n\n<p>Support multiples models<\/p>\n\n<h3>v5.3.13<\/h3>\n\n<p>Handle API errors and display messages<\/p>\n\n<h3>v5.3.12<\/h3>\n\n<p>Fix security issue in API methods<\/p>\n\n<h3>v5.3.11<\/h3>\n\n<p>Fix security issue about privileges in API<\/p>\n\n<h3>v5.3.10<\/h3>\n\n<p>Update insight trigger positioning<\/p>\n\n<h3>v5.3.9<\/h3>\n\n<p>Add scoped style<\/p>\n\n<h3>v5.3.8<\/h3>\n\n<p>Support base prompts<\/p>\n\n<h3>v5.3.4<\/h3>\n\n<p>Add screenshots for documentation<\/p>\n\n<h3>v5.3.3<\/h3>\n\n<p>Fix report ID in vuejs file<\/p>\n\n<h3>v5.3.2<\/h3>\n\n<p>Enable insight for all reports<\/p>\n\n<h3>v5.3.0<\/h3>\n\n<p>Support insights<\/p>\n\n<h3>v5.2.1<\/h3>\n\n<p>Add style for supported markdown components\nRemove \"embedded\" model in settings pages<\/p>\n\n<h3>v5.2.0<\/h3>\n\n<p>Support Markdown syntax for response<\/p>\n\n<h3>v5.1.4<\/h3>\n\n<p>Fix default messages<\/p>\n\n<h3>v5.1.3<\/h3>\n\n<p>Auto scroll down when in chat responses<\/p>\n\n<h3>v5.1.2<\/h3>\n\n<p>Support VueJS<\/p>\n\n<h3>v5.1.0<\/h3>\n\n<p>Change language to VueJS<\/p>\n\n<h3>v5.0.3<\/h3>\n\n<p>Add settings<\/p>\n\n<h3>v5.0.2<\/h3>\n\n<p>Add documentation<\/p>\n\n<h3>v5.0.1<\/h3>\n\n<p>Edit chat UI<\/p>\n\n<h3>v5.0.0<\/h3>\n\n<p>Create Mistral AI support<\/p>"},"download":"\/api\/2.0\/plugins\/MistralAI\/download\/5.12.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/MistralAI\/changelog"},"consumer":{"license":null}},{"name":"MozWidgetByAmperage","displayName":"Moz Widget","owner":"AMPERAGE-Marketing","description":"Show Moz.com info for the current site as a dashboard widget. Also links to the latest Moz Pro Campaign Custom Report, if available.","homepage":"https:\/\/www.amperagemarketing.com","createdDateTime":"2019-01-24 03:14:05","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/wiki","type":"url"},{"name":"Email","key":"email","value":"kzeni1@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget","type":"url"}],"isTheme":false,"keywords":["widget","search","dashboard","SEO","amperage","moz","seomoz"],"basePrice":0,"authors":[{"name":"Amperage Marketing & Fundraising","email":"digital@amperagemarketing.com","homepage":"http:\/\/www.amperagemarketing.com"},{"name":"Kurt Zenisek","email":"kzeni1@gmail.com","homepage":"http:\/\/kzeni.com"}],"repositoryUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget","lastUpdated":"2023-10-02 22:14:02","latestVersion":"5.0.1","numDownloads":19149,"screenshots":["https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/images\/5.0.1\/measurable-settings.png","https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/images\/5.0.1\/moz-widget-more.png","https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/images\/5.0.1\/moz-widget.png","https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/images\/5.0.1\/user-settings.png","https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/images\/5.0.1\/view-latest-custom-report-button.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"21","numContributors":"1","lastCommitDate":"2023-10-02 22:13:48"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2019-01-24 03:14:05","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":38,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.0.0"},{"name":"1.0.1","release":"2019-01-24 20:50:04","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":41,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.0.1"},{"name":"1.1.0","release":"2019-01-28 23:08:03","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.1.0"},{"name":"1.1.1","release":"2019-01-28 23:20:04","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.1.1"},{"name":"1.1.2","release":"2019-01-28 23:30:05","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1270,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.1.2"},{"name":"1.1.3","release":"2019-12-16 21:46:03","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":969,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.1.3"},{"name":"1.1.4","release":"2020-11-25 04:10:11","requires":{"piwik":">=3.2.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":372,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.1.4"},{"name":"1.1.5","release":"2021-01-29 00:00:05","requires":{"piwik":">=3.2.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1717,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.1.5-Matomo-3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.1.5"},{"name":"1.1.6","release":"2021-01-29 00:10:09","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4713,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/1.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/1.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/1.1.6"},{"name":"5.0.0","release":"2023-10-02 22:04:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/5.0.0"},{"name":"5.0.1","release":"2023-10-02 22:14:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10011,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Moz-Widget\/commits\/5.0.1","readmeHtml":{"description":"\n\n<p>Show Moz.com info for the current site as a dashboard widget. First, you specify your Moz.com API keys in your user settings, and then your dashboard widget will check which site's being viewed and display info for that site. Additionally\/alternatively, you can provide the URL to view your latest Moz Pro Campaign Custom Report, if available, to be shown in the widget for the specified site.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>5.0.1<\/h2>\n\n<ul>\n<li>Updated changelog &amp; other metadata for 5.x releases.<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<ul>\n<li>Prepped release for Matomo 5.x while also version-bumping the plugin to 5.0.0 as a base value per Matomo's recommendation\/convention for Matomo 5.x plugins.<\/li>\n<\/ul>\n\n<h2>1.1.6<\/h2>\n\n<ul>\n<li>Version bump Matomo 4 plugin as that is technically newer.<\/li>\n<\/ul>\n\n<h2>1.1.5<\/h2>\n\n<ul>\n<li>Split Matomo 3 and Matomo 4 versions.<\/li>\n<\/ul>\n\n<h2>1.1.4<\/h2>\n\n<ul>\n<li>Confirmed Matomo 4 compliance.<\/li>\n<\/ul>\n\n<h2>1.1.3<\/h2>\n\n<ul>\n<li>Better scoped the widget styles.<\/li>\n<li>Made more use of existing CSS within Matomo instead of using custom styles.<\/li>\n<\/ul>\n\n<h2>1.1.2<\/h2>\n\n<ul>\n<li>Minor adjustment to plugin metadata.<\/li>\n<\/ul>\n\n<h2>1.1.1<\/h2>\n\n<ul>\n<li>Improved the output of the custom report link in the widget.<\/li>\n<\/ul>\n\n<h2>1.1.0<\/h2>\n\n<ul>\n<li>Added the ability to specify a Moz Pro Custom Report for quickly opening\/viewing from the Dashboard widget (a measurable [website\/app] specific setting.)<\/li>\n<\/ul>\n\n<h2>1.0.1<\/h2>\n\n<ul>\n<li>Added titles\/tooltips describing each result.<\/li>\n<li>Improved formatting of results.<\/li>\n<\/ul>\n\n<h2>1.0<\/h2>\n\n<ul>\n<li>Initial Release.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/MozWidgetByAmperage\/download\/5.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/MozWidgetByAmperage\/changelog"},"consumer":{"license":null}},{"name":"MultiChannelConversionAttribution","displayName":"Multi Channel Conversion Attribution","owner":"matomo-org","description":"Get a clear understanding of how much credit each of your marketing channel is actually responsible for to shift your marketing efforts wisely.","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2017-11-28 01:07:48","donate":{},"support":[],"isTheme":false,"keywords":["referrer","traffic","conversion","Channels","attribution","models","referer","ads"],"basePrice":83,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-12 07:00:03","latestVersion":"6.0.3","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/MultiChannelConversionAttribution\/images\/6.0.3\/0_Attribution_Report_1_Model.png","https:\/\/plugins.matomo.org\/MultiChannelConversionAttribution\/images\/6.0.3\/1_Attribution_Report_2_Models.png","https:\/\/plugins.matomo.org\/MultiChannelConversionAttribution\/images\/6.0.3\/2_Attribution_Report_3_Model.png","https:\/\/plugins.matomo.org\/MultiChannelConversionAttribution\/images\/6.0.3\/3_Channel_Names.png","https:\/\/plugins.matomo.org\/MultiChannelConversionAttribution\/images\/6.0.3\/4_Evolution.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/MultiChannelConversionAttribution.png","previews":[{"type":"demo","provider":"link","url":"https:\/\/demo.matomo.cloud\/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#?idSite=1&period=day&date=yesterday&category=Goals_Goals&subcategory=MultiChannelConversionAttribution_MultiAttribution"},{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/0_f_6sNQMSM","id":"0_f_6sNQMSM"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/MultiChannelConversionAttribution","variations":[{"product_variation_id":130505,"price":"89","prettyPrice":"89EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130505&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130505","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-multichannelconversionattribution\/?attribute_type=1+to+4+users&add-to-cart=6858&variation_id=130505&aelia_cs_currency=EUR"},{"product_variation_id":130505,"price":"99","prettyPrice":"USD99","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130505&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130505","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-multichannelconversionattribution\/?attribute_type=1+to+4+users&add-to-cart=6858&variation_id=130505&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130506,"price":"659","prettyPrice":"659EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130506&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130506","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-multichannelconversionattribution\/?attribute_type=Up+to+20+users&add-to-cart=6858&variation_id=130506&aelia_cs_currency=EUR"},{"product_variation_id":130506,"price":"789","prettyPrice":"USD789","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130506&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130506","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-multichannelconversionattribution\/?attribute_type=Up+to+20+users&add-to-cart=6858&variation_id=130506&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130507,"price":"1309","prettyPrice":"1309EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130507&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130507","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-multichannelconversionattribution\/?attribute_type=Up+to+50+users&add-to-cart=6858&variation_id=130507&aelia_cs_currency=EUR"},{"product_variation_id":130507,"price":"1569","prettyPrice":"USD1569","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130507&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=6858&variation_id=130507","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-multichannelconversionattribution\/?attribute_type=Up+to+50+users&add-to-cart=6858&variation_id=130507&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-multichannelconversionattribution\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":null,"ratingCount":0,"reviewCount":0}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{},"versions":[{"name":"6.0.3","release":"2026-10-12 07:00:03","requires":{"matomo":">=6.0.0-b4,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/MultiChannelConversionAttribution\/6.0.3\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Learn how much each touchpoint and marketing channel is worth to your bottom line. Optimise your budget wisely and refine your strategy with solid data.<\/p>\n\n<p>If you have ever stopped to think about where you put your money for the best return, you know how challenging it can be. The issue isn't just figuring out the last step a visitor took before converting; it's understanding their entire journey.<\/p>\n\n<p>While many analytics tools, Matomo included, focus on last non-direct visits, a conversion story is more intricate. A visitor might engage with your brand multiple times across different channels before taking action. So, why settle for a glimpse when you can see the whole picture?<\/p>\n\n<p>Unlock the power of attribution with the Multi-Channel Conversion Attribution plugin. Try and compare different attribution models to pinpoint the value of each visitor interaction. Clearly identify which channels fuel conversions and revenue and reallocate your budget where it matters most.<\/p>\n\n<h3>How Multi-Channel Conversion Attribution Works<\/h3>\n\n<h4>Compare and Contrast Your Multi-Attribution Models<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Evaluate up to three attribution models side by side for any set goal, spanning date ranges from 7 to 90 days. <\/p>\n<p>Watch as the conversions and revenue data shift across these models and grasp the distinct percentage differences that emerge.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MultiChannelConversionAttribution\/image1.png\" style=\"margin-left:24px;\" alt=\"Compare and Contrast Your Multi-Attribution Models\" \/>\n<\/div>\n<\/div>\n\n<h4>Break Down Each Channel Without Data Limits<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Dissect your channel's contribution to revenue, from social media sites to search engines to referral websites. <\/p>\n<p>Zoom in to view each channel or campaign\u2019s impact and determine which ones lead the pack in conversions and revenue \u2014 all based on your chosen attribution model. Amplify your insights by leveraging segments across endless goals.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MultiChannelConversionAttribution\/image3.jpg\" style=\"margin-left:24px;\" alt=\"Break Down Each Channel Without Data Limits\" \/>\n<\/div>\n<\/div>\n\n<h4>Track Your Site's Performance Over Time Across Each Attribution Model<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Journey through your site's performance with each chosen attribution model. Observe the highs and lows, the growth and plateaus, and anything in between so your performance remains aligned with your benchmarks. <\/p>\n<p>Adapt and refine your strategy to optimise your marketing strategy and budget allocation.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MultiChannelConversionAttribution\/image3.jpg\" style=\"margin-left:24px;\" alt=\"Track Your Site's Performance Over Time Across Each Attribution Model\" \/>\n<\/div>\n<\/div>\n\n<h4>Explore a Spectrum of Attribution Models<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Matomo provides a suite of versatile attribution models to suit your analysis needs:<\/p>\n<ul>\n<li><b>Last Interaction,<\/b> where the full credit of a conversion goes to the last interaction.<\/li>\n<li><b>Last Non-Direct Interaction,<\/b> where the full conversion credit goes to the last interaction that was not a direct entry.<\/li>\n<li><b>First Interaction,<\/b> where the full credit of a conversion goes to the first interaction.<\/li>\n<li><b>Linear,<\/b> where the credit of a conversion is shared equally across all interactions.<\/li>\n<li><b>Position Based,<\/b> where the first and the last interaction get 40% of the credit, and the remaining 20% are shared equally across all remaining interactions.<\/li>\n<li><b>Time Decay,<\/b> where the weight conversion credit is based on recency, with newer interactions earning a greater share.<\/li>\n<\/ul>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MultiChannelConversionAttribution\/image4.jpg\" style=\"margin-left:24px;\" alt=\"Explore a Spectrum of Attribution Models\" \/>\n<\/div>\n<\/div>\n\n<h4>A Painless, Out-of-the-Box Setup Experience<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Right from the start, the plugin ensures that Multi-Attribution reports are instantly accessible for all your goals.  You will also be able to view the attribution for orders in your shop if your website or app has Ecommerce enabled.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/MultiChannelConversionAttribution\/image5.jpg\" style=\"margin-left:24px;\" alt=\"A Painless, Out-of-the-Box Setup Experience\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Multi Channel Conversion Attribution Today<\/h3>\n\n<p>Empower your analytics journey with Matomo's Multi-Attribution plugin. Dive deeper, uncover hidden channels, and allocate resources confidently. Transform data into decisive action and let every click illuminate your path forward.<\/p>\n\n<p>Start your 30-day free trial and harness the full potential of every digital touchpoint.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Apply any of the following attribution models<\/li>\n<li>Last Interaction<\/li>\n<li>Last Non-Direct Interaction<\/li>\n<li>First Interaction<\/li>\n<li>Linear<\/li>\n<li>Position Based<\/li>\n<li>Time Decay<\/li>\n<li>Does not only show the channel category but also individual channel names (such as website URLs, search engines, campaign names, ...)<\/li>\n<li>Configure upto 3 campaign dimension combinations to view campaign reports as per your choice (eg Campaign Names for a 90 days period or Campaign Keyword over a 30 days period)<\/li>\n<li>Compare the conversions and revenue between attribution models<\/li>\n<\/ul>\n\n<h3>Privacy features<\/h3>\n\n<ul>\n<li>The plugin doesn't track any additional data and therefore no personal or sensitive information is recorded. The reports are based on data that is tracked as part of the standard Matomo tracking.<\/li>\n<\/ul>\n\n<h3>Integrates with Matomo Analytics platform<\/h3>\n\n<ul>\n<li>View the evolution of any metric or row with the <a href=\"https:\/\/matomo.org\/docs\/row-evolution\/\">Row Evolution<\/a> feature<\/li>\n<li>Lets you apply over 100 <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">Matomo segments<\/a> to your form reports<\/li>\n<li>View the attribution report for an unlimited number of goals. <a href=\"https:\/\/matomo.org\/docs\/data-limits\/\">No data limit<\/a>.<\/li>\n<li><a href=\"https:\/\/matomo.org\/docs\/embed-piwik-report\/\">Embed<\/a> the form attribution widget directly in your app, dashboard, or even TV screen!<\/li>\n<li>HTTP API to fetch and export all <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#MultiChannelConversionAttribution\">Multi Channel Attribution reports<\/a><\/li>\n<li>Get access to all the raw data via MySQL for 100% data ownership<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/multi-channel-conversion-attribution\/\">Multi Channel Conversion Attribution User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/multi-channel-conversion-attribution\/\">Multi Channel Conversion Attribution FAQ<\/a> cover how to get the most out of this plugin.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.3 - 2026-10-12\n- The Multi Attribution report now always shows all channel types, so Direct Entry no longer disappears with a small row limit\n- Subtables in the Multi Attribution report now have their own row limit selector and previous and next links, so it is clear when more rows are available\n- The flattened Multi Attribution report now shows previous and next links when it has more rows than the row limit<\/p>\n\n<p>6.0.2 - 2026-09-28\n- The notice that attribution data predates the plugin being installed is now decided in the website's timezone, so it no longer appears or disappears a day early for websites whose timezone differs from the server's<\/p>\n\n<p>6.0.1 - 2026-09-14\n- Fixed the \"Days prior to conversion\" label overlapping the dropdown below it on the settings page<\/p>\n\n<p>6.0.0 - 2026-08-11\n- Compatibility with Matomo 6\n- Fixed the report showing \"Multi Channel Attribution is not enabled for the requested goal\" when All Goals was selected<\/p>\n\n<p>5.0.12 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.0.11 - 2026-03-02\n- Updated marketplace screenshots<\/p>\n\n<p>5.0.10 - 2026-02-02\n- Updated API documentation<\/p>\n\n<p>5.0.9 - 2025-01-15\n- Lower campaign values based on event to honor keep campaign parameter capitalisation setting<\/p>\n\n<p>5.0.8 - 2024-12-23\n- Fixes no idSite being passed in mobile app<\/p>\n\n<p>5.0.7 - 2024-12-16\n- Added MultiChannelConversionAttribution to the list of report metatdata<\/p>\n\n<p>5.0.6 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.0.5 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.4\n- Added code to ignore direct entry for non-direct model, If data for non-direct is present<\/p>\n\n<p>5.0.3\n- Added cover image for marketplace\n- Improved no goal created message based on write access<\/p>\n\n<p>5.0.2\n- Updated README.md<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5<\/p>\n\n<p>5.0.0\n- Remove AngularJS use entirely<\/p>\n\n<p>4.3.3\n- Fix regression in row evolution<\/p>\n\n<p>4.3.2\n- Added code to exclude e-commerce conversions from All Goals attribution<\/p>\n\n<p>4.3.1\n- Textual changes for title and description<\/p>\n\n<p>4.3.0\n- Added code to consider Direct conversions for Last non-direct model\n- Fixes No data for All goals and \"Last non-direct\" model<\/p>\n\n<p>4.2.3\n- Fixed bug when switching periods while viewing row evolution reports<\/p>\n\n<p>4.2.2\n- Migration script to migrate record names with _chunk names<\/p>\n\n<p>4.2.1\n- Migration script to migrate campaign dimension combination system setting<\/p>\n\n<p>4.2.0\n- Added option to view report by campaign dimension, which can be configured via system setting and 3 combinations possible\n- Added option to view Multi channel reports by All goals<\/p>\n\n<p>4.1.2\n- Added sorting for goals by name<\/p>\n\n<p>4.1.1\n- Fixed issue where report action icons aren't responding on page load<\/p>\n\n<p>4.1.0\n- Migrate AngularJS code to Vue<\/p>\n\n<p>4.0.5\n- Fix typo in configuration name\n- Add help texts to categories<\/p>\n\n<p>4.0.4\n- Improve memory usage<\/p>\n\n<p>4.0.3\n- Configurable archive datatable limits<\/p>\n\n<p>4.0.2\n- Rearchive reports on plugin activation<\/p>\n\n<p>4.0.1\n- Compatibility with Matomo 4<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4<\/p>\n\n<p>3.0.7\n- Fix conversion percentages are not calculated correctly<\/p>\n\n<p>3.0.6\n- Fix broken ecommerce multi attribution row evolution<\/p>\n\n<p>3.0.5\n- Support usage of a reader DB when configured<\/p>\n\n<p>3.0.4\n- Support more languages<\/p>\n\n<p>3.0.3\n- Internal changes<\/p>\n\n<p>3.0.2\n- Support new \"Write\" role<\/p>\n\n<p>3.0.1\n- Renamed Piwik to Matomo\n- Added events to add custom attribution models<\/p>\n\n<p>3.0.0\n- Initial version<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/MultiChannelConversionAttribution\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"OAuth2","displayName":"OAuth 2.0","owner":"matomo-org","description":"Provide secure access to the Matomo API using scoped permissions. No static credentials.","homepage":null,"createdDateTime":"2026-04-13 09:06:03","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-OAuth2","type":"url"}],"isTheme":false,"keywords":["authorization","oauth2","oauth 2","oauth 2.0","token","bearer token"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2","lastUpdated":"2026-09-07 02:54:05","latestVersion":"6.0.2","numDownloads":11956,"screenshots":["https:\/\/plugins.matomo.org\/OAuth2\/images\/6.0.2\/0_List_Clients.png","https:\/\/plugins.matomo.org\/OAuth2\/images\/6.0.2\/1_Create_Client.png","https:\/\/plugins.matomo.org\/OAuth2\/images\/6.0.2\/2_Edit_Client.png","https:\/\/plugins.matomo.org\/OAuth2\/images\/6.0.2\/3_List_Clients.png","https:\/\/plugins.matomo.org\/OAuth2\/images\/6.0.2\/4_Pause_a_Client.png","https:\/\/plugins.matomo.org\/OAuth2\/images\/6.0.2\/5_Resume_a_client.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/OAuth2.png","previews":[],"activity":{"numCommits":"164","numContributors":"6","lastCommitDate":"2026-10-21 04:19:27"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"security","categories":["security"],"promotions":{},"versions":[{"name":"5.0.0","release":"2026-04-13 09:06:05","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1162,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.0.0"},{"name":"5.0.1","release":"2026-04-16 08:58:05","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":310,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.0.1"},{"name":"5.0.2","release":"2026-04-27 05:00:05","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":611,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.0.2"},{"name":"5.0.3","release":"2026-05-11 04:38:04","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":385,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.0.3"},{"name":"5.0.4","release":"2026-05-25 06:10:11","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":336,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.0.4"},{"name":"5.1.0","release":"2026-06-08 05:14:04","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":354,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.1.0"},{"name":"5.1.1","release":"2026-06-17 01:40:05","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":860,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.1.1"},{"name":"5.2.0","release":"2026-07-06 02:06:10","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":244,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.2.0"},{"name":"5.2.1","release":"2026-07-12 23:28:05","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":177,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.2.1"},{"name":"5.2.2","release":"2026-07-15 22:30:06","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":485,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.2.2"},{"name":"5.2.3","release":"2026-07-20 09:58:05","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":326,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.2.3"},{"name":"5.2.4","release":"2026-07-27 07:58:04","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1665,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.2.4"},{"name":"5.3.0","release":"2026-08-03 05:50:05","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":324,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.3.0"},{"name":"5.3.1","release":"2026-08-10 07:20:06","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1412,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.3.1"},{"name":"6.0.0","release":"2026-08-24 06:00:56","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":53,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/6.0.0"},{"name":"6.0.1","release":"2026-09-07 02:22:05","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/6.0.1"},{"name":"5.3.2","release":"2026-09-07 02:26:06","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.3.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.3.2"},{"name":"5.3.3","release":"2026-09-07 02:52:05","requires":{"php":">=8.1.0","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3116,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/5.3.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/5.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/5.3.3"},{"name":"6.0.2","release":"2026-09-07 02:54:05","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":131,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/OAuth2\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/commits\/6.0.2","readmeHtml":{"description":"\n\n<p>This plugin adds a <strong>first-party OAuth 2.0 Authorization Server<\/strong> to Matomo, allowing external applications to securely access Matomo APIs using OAuth2 access tokens instead of <code>token_auth<\/code>.<\/p>\n\n<p>It supports standard OAuth 2.0 flows including <strong>Authorization Code (PKCE)<\/strong>, <strong>Client Credentials<\/strong>, and <strong>Refresh Token<\/strong>.<\/p>\n\n<p>The OAuth 2.0 plugin replaces static authentication with a token-based flow tied to your existing login system. Each application requests permission, receives scoped access, and operates within defined limits. No need to distribute or manage long-lived credentials across tools and services.<\/p>\n\n<p>Tokens expire by default, can be refreshed when needed, and revoked instantly without affecting other integrations. This reduces exposure and simplifies access management.<\/p>\n\n<p>For teams running multiple integrations, OAuth 2.0 is the practical choice for secure, maintainable access to Matomo data. Every connection is authorised, bounded, and straightforward to control.<\/p>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/faq\/how-to\/set-up-oauth-2-0-authentication-for-the-matomo-api\/\">OAuth 2.0 User Guide<\/a> and the <a href=\"https:\/\/github.com\/matomo-org\/plugin-OAuth2\/blob\/5.x-dev\/README.md#features\">README.md<\/a> cover how to get the most out of this plugin.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.2 - 2026-09-07\n- Deleting a user now removes the OAuth 2.0 clients they own, together with the access tokens, refresh tokens and authorization codes issued for those clients. The credentials the deleted user was granted for clients owned by somebody else are removed as well, while those clients themselves are kept.\n- Clients whose owner no longer exists are no longer accepted in any grant and their tokens no longer authenticate, so credentials left behind by an incomplete cleanup cannot start acting as a different user that is later given the same login.\n- Clients removed because their owner was deleted are now reported in the activity log, and the new <code>OAuth2.deleteClientWithOwner.end<\/code> event reports them to other plugins.\n- The access token and authorization code tables are now indexed by <code>user_login<\/code>, so deleting a user no longer scans them in full.\n- A plugin listening to <code>OAuth2.deleteClientWithOwner.end<\/code> that throws no longer stops the remaining removed clients from being reported. The clients themselves were already deleted before the event was posted, so only their activity log entries were affected.<\/p>\n\n<p>6.0.1 - 2026-09-07\n- Re-designed client authorization screen<\/p>\n\n<p>6.0.0 - 2026-08-11\n- Compatibility with Matomo 6<\/p>\n\n<p>5.3.1 - 2026-08-06\n- Added code to harden authentication checks when a password confirmation is requested for an OAuth2 authenticated request<\/p>\n\n<p>5.3.0 - 2026-08-03\n- Authorize requests may now carry multiple scopes; the consent screen shows a radio group and the user grants exactly one scope (defaulting to the least privileged). Issued tokens still carry a single scope.\n- Scopes offered on the consent screen are limited to those the authorizing user can actually grant. If the user's access level is too low for every requested scope, the error now says so and names the scopes, instead of reporting an invalid client scope mapping.\n- Clients with an empty scope list now fall back to the globally allowed scopes during authorization (previously rejected), matching the token endpoint behaviour.\n- The scope configured for a client is now applied as the maximum access level a user can grant it, as the setting has always been documented. A client configured with <code>matomo:admin<\/code> can therefore be granted <code>matomo:write<\/code> or <code>matomo:read<\/code> as well, which is what lets the user choose a scope on the consent screen. Clients can never be granted more than their configured scope. The client credentials grant is unchanged and still requires the exact configured scope, as no user is involved to choose a lower one.\n- Added code to harden the consent decision handling on the authorize endpoint\n- The <code>OAuth2.authorize.decision.end<\/code> event and the authorize activity keep reporting the granted scope in <code>scopes<\/code>, which is now empty when the request was denied, and add <code>requestedScopes<\/code> with everything the client asked for.\n- The activity log entry for an authorization decision now names the granted scope and the scopes the client requested, instead of only naming the client.\n- The activity log descriptions for OAuth 2.0 clients are now translatable, where they were previously always shown in English.<\/p>\n\n<p>5.2.4 - 2026-07-27\n- Added code to warn users if scope is downgraded<\/p>\n\n<p>5.2.3 - 2026-07-20\n- Added code to harden check and disallow update user action<\/p>\n\n<p>5.2.2 - 2026-07-16\n- Added code to harden check and disallow app specific token action<\/p>\n\n<p>5.2.1 - 2026-07-13\n- Added code to revoke tokens on client downgrade to public<\/p>\n\n<p>5.2.0 - 2026-07-06\n- Added support for the <code>\/.well-known\/oauth-authorization-server<\/code> discovery endpoint (RFC 8414), serving the authorization server metadata as JSON.\n- Added the <code>OAuth2.authorizationServerMetadata<\/code> event so other plugins can extend the discovery document.\n- Added code to improve grant policy check<\/p>\n\n<p>5.1.1 - 2026-06-17\n- Fixes scope-limited OAuth tokens owned by a super user failing all API requests with a \"requires superuser access\" error.\n- Added code to reconcile capability permission based on scope<\/p>\n\n<p>5.1.0 - 2026-06-08\n- Added password confirmation for add, edit, delete and rotate token action.<\/p>\n\n<p>5.0.4 - 2026-05-25\n- Added code to log activity on auth approve and deny\n- Added code to log warning on auth failure\n- Improved isRevoked checked to check for client status also<\/p>\n\n<p>5.0.3 - 2026-05-11\n- Added code to show token and authorize URL at the top of list screen\n- Added better validation check for redirect URL, setting values and show client secret along with success message<\/p>\n\n<p>5.0.2 - 2026-04-27\n- Updated API documentation\n- Added code to show scope in the list view\n- Updated and scoped dependencies to support lower and higher PHP (&gt;=8.1) versions<\/p>\n\n<p>5.0.1 - 2026-04-17\n- Fixes README.md<\/p>\n\n<p>5.0.0 - 2026-04-13\n- Initial release to create OAuth 2.0 clients for token generation and API access<\/p>"},"download":"\/api\/2.0\/plugins\/OAuth2\/download\/6.0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/OAuth2\/changelog"},"consumer":{"license":null}},{"name":"PageColours","displayName":"Page Colours","owner":"orismology","description":"Allows custom icons and colours for pages in the real-time visitor log.","homepage":"https:\/\/github.com\/orismology\/PageColours\/","createdDateTime":"2016-04-26 07:30:02","donate":{},"support":[],"isTheme":false,"keywords":["PageColors","tags","realtime","color","colour","customise"],"basePrice":0,"authors":[{"name":"Dominic Mulligan","email":"pagecolours@dominicmulligan.com","homepage":"http:\/\/dominicmulligan.com"}],"repositoryUrl":"https:\/\/github.com\/orismology\/PageColours","lastUpdated":"2016-04-26 08:10:03","latestVersion":"0.1.2","numDownloads":6716,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"14","numContributors":"1","lastCommitDate":"2016-04-26 08:09:41"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2016-04-26 07:30:03","requires":{"piwik":">=2.8.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/orismology\/PageColours\/commits\/Initial","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PageColours\/download\/0.1.1"},{"name":"0.1.2","release":"2016-04-26 08:10:03","requires":{"piwik":">=2.8.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6706,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/orismology\/PageColours\/commits\/v0.1.2","readmeHtml":{"description":"\n\n<p>Replaces the rainbow of colourful folder icons in Matomo (Piwik)'s \"Visitors in Real-time\" widget with colourful folder icons that match user-defined url patterns.<\/p>\n\n<p>Considered in early beta - not stable, but it hasn't broken anything yet.<\/p>\n\n<p>If you decide to use it, here's some things you need to know:<\/p>\n\n<ul>\n<li>The plugin needs to be installed to \/plugins\/PageColours (if you download as a zip from GitHub it will download as PageColours-master)<\/li>\n<li>You can add additional icons to \/plugins\/PageColours\/assets\/icons<\/li>\n<li>The custom page colours setting should be a JSON encoded string of the following format:<\/li>\n<\/ul>\n\n<pre><code>    {\n    \"string to match\": [ \"match type\", \"colour\" ],\n    \"second string\": [ \"match type\", \"colour\" ]\n    }\n<\/code><\/pre>\n\n<p>So, to colour all blog pages green and all docs pages red...<\/p>\n\n<pre><code>    {\n    \"\/blog\/\": [ \"*\", \"green.png\" ],\n    \"\/docs\/\": [ \"*\", \"red.png\" ]\n    }\n<\/code><\/pre>\n\n<p>The match types are explained on the plugin settings page.<\/p>\n\n<p>This syntax is subject to change - yet another reason why you probably shouldn't use this.<\/p>\n\n","faq":"<p><strong>Should I Use This?<\/strong>\nProbably not, or at least, not yet.<\/p>\n\n<p>It's very experimental, very clobbered together, and probably full of bugs. It doesn't sanitise input, writes directly to the filesystem, and probably has a bunch of security holes.<\/p>\n\n<p>Eventually, this should evolve to the point where it is stable and easy to use, but right now you use it at your own risk. It <em>shouldn't<\/em> break anything, but I can't guarantee that.<\/p>","documentation":"","changelog":"<p>0.1.2 Minor language and style changes<\/p>\n\n<p>0.1.1 Fixed bug: Page colours will no longer overwrite icons for goals, events or downloads. You will need to re-save plugin settings in order to re-generate the override stylesheet.<\/p>\n\n<p>0.1.0 First Version<\/p>"},"download":"\/api\/2.0\/plugins\/PageColours\/download\/0.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/PageColours\/changelog"},"consumer":{"license":null}},{"name":"PageviewUrlLookup","displayName":"Pageview Url Lookup","owner":"Chardonneaur","description":"Instantly count pageviews for any URL by querying the raw visit log \u2014 exact or substring match, timezone-aware date ranges, every result saved to a.","homepage":"https:\/\/github.com\/Chardonneaur\/PageviewUrlLookup","createdDateTime":"2026-03-10 10:06:03","donate":{},"support":[{"name":"Email","key":"email","value":"contact@ronan-chardonneau.fr","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/PageviewUrlLookup\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Chardonneaur\/PageviewUrlLookup","type":"url"}],"isTheme":false,"keywords":["Report","search","admin","log","url","pageviews","lookup"],"basePrice":0,"authors":[{"name":"Ronan Chardonneau","email":"contact@ronan-chardonneau.fr","homepage":"https:\/\/ronan-chardonneau.fr"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/PageviewUrlLookup","lastUpdated":"2026-03-10 10:06:03","latestVersion":"0.1.0","numDownloads":4443,"screenshots":["https:\/\/plugins.matomo.org\/PageviewUrlLookup\/images\/0.1.0\/1-lookup-form.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/customisation.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-03-10 10:05:49"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"0.1.0","release":"2026-03-10 10:06:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4443,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PageviewUrlLookup\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/PageviewUrlLookup\/commits\/0.1.0","readmeHtml":{"description":"\n\n<p><strong>PageviewUrlLookup<\/strong> adds a dedicated admin page under <strong>Administration \u2192 URL Pageview Lookup<\/strong>. Select a site, a date range, a match mode, and a URL \u2014 the plugin queries <code>log_link_visit_action<\/code> in real time and instantly shows how many pageviews matched. Every result is automatically saved to a persistent report table so you can compare lookups over time.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Exact match<\/strong> \u2014 matches the full stored URL (protocol prefix and leading <code>www.<\/code> stripped automatically, so <code>https:\/\/example.com\/page<\/code> and <code>example.com\/page<\/code> both work)<\/li>\n<li><strong>Contains match<\/strong> \u2014 finds every URL whose path or domain includes your search string; LIKE metacharacters (<code>%<\/code>, <code>_<\/code>, <code>\\<\/code>) are escaped so results are always literal<\/li>\n<li><strong>Timezone-aware<\/strong> \u2014 start\/end dates are converted to UTC using the site's configured timezone, so \"yesterday\" means yesterday in the site's local time<\/li>\n<li><strong>Date range guard<\/strong> \u2014 ranges longer than 366 days are rejected to protect database performance<\/li>\n<li><strong>Persistent report table<\/strong> \u2014 the 300 most recent lookups per site are stored and displayed below the search form<\/li>\n<li><strong>Admin-only<\/strong> \u2014 protected by per-site admin permission checks and CSRF nonce validation<\/li>\n<\/ul>\n\n","faq":"<p><strong>Does this replace Matomo's built-in Pages report?<\/strong>\nNo. The Pages report aggregates already-archived data. This tool queries the raw log in real time, which is useful for ad-hoc lookups before archiving runs, or for URLs that fall below the reporting threshold.<\/p>\n\n<p><strong>Why is my exact-match count different from the Pages report?<\/strong>\nThe Pages report counts unique page views within a visit; this tool counts every matching row in <code>log_link_visit_action<\/code>, which is a raw action count. Also confirm the date boundaries: this plugin applies the site timezone, while some Matomo reports operate on UTC.<\/p>\n\n<p><strong>Can I export the saved report table?<\/strong>\nNot from the UI in v1.0.0. The data lives in the <code>matomo_pageview_url_lookup_report<\/code> database table and can be queried directly or exported via a database client.<\/p>\n\n<p><strong>Is the lookup slow on large databases?<\/strong>\nThe query joins <code>log_visit<\/code>, <code>log_link_visit_action<\/code>, and <code>log_action<\/code> filtered by <code>idsite<\/code> and <code>server_time<\/code>. Performance depends on the size of your log tables and the available indexes. Keep date ranges reasonably short for fast results.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>All notable changes to PageviewUrlLookup are documented here.<\/p>\n\n<p>The format follows <a href=\"https:\/\/keepachangelog.com\/en\/1.0.0\/\">Keep a Changelog<\/a>\nand this project adheres to <a href=\"https:\/\/semver.org\/spec\/v2.0.0.html\">Semantic Versioning<\/a>.<\/p>\n\n<h2>[1.0.1] \u2014 2026-03-05<\/h2>\n\n<h3>Security<\/h3>\n\n<ul>\n<li>Added maximum length validation on URL input (2048 characters)<\/li>\n<li>Added semantic date validation using <code>checkdate()<\/code> \u2014 invalid calendar dates such as February 30 are now rejected<\/li>\n<li><code>matchType<\/code> now throws an explicit error on unrecognised values instead of silently defaulting to <code>exact<\/code><\/li>\n<\/ul>\n\n<h2>[1.0.0] \u2014 2026-03-02<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Exact URL match and contains (substring) match against <code>log_link_visit_action<\/code><\/li>\n<li>Date range picker with timezone-aware UTC conversion using the site's configured timezone<\/li>\n<li>366-day maximum date range guard to protect database performance<\/li>\n<li>Persistent report table (<code>matomo_pageview_url_lookup_report<\/code>) storing the 300 most recent lookups per site<\/li>\n<li>Admin menu entry under Administration \u2192 URL Pageview Lookup<\/li>\n<li>CSRF nonce protection on all POST requests<\/li>\n<li>Per-site admin access control (requires site admin permission)<\/li>\n<li>LIKE metacharacter escaping (<code>%<\/code>, <code>_<\/code>, <code>\\<\/code>) for safe contains-mode queries<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/PageviewUrlLookup\/download\/0.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/PageviewUrlLookup\/changelog"},"consumer":{"license":null}},{"name":"PasswordPolicyEnforcer","displayName":"Password Policy Enforcer","owner":"simivar","description":"Adds a possibility to enforce Password Policy test.","homepage":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer","createdDateTime":"2019-04-07 20:08:03","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/wiki","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer","type":"url"}],"isTheme":false,"keywords":["security","password","password policy"],"basePrice":0,"authors":[{"name":"Simivar","email":"simivar@gmail.com","homepage":"https:\/\/github.com\/simivar"}],"repositoryUrl":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer","lastUpdated":"2024-08-21 08:46:02","latestVersion":"2.0.2","numDownloads":15331,"screenshots":["https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/images\/2.0.2\/Plugin_settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"13","numContributors":"3","lastCommitDate":"2024-08-21 08:45:49"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2019-04-07 20:08:03","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":915,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordPolicyEnforcer\/download\/1.0.0"},{"name":"1.1.0","release":"2020-05-10 22:28:04","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":436,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordPolicyEnforcer\/download\/1.1.0"},{"name":"1.2.0","release":"2020-10-11 21:12:03","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/1.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordPolicyEnforcer\/download\/1.2.0"},{"name":"2.0.0","release":"2020-10-11 23:00:06","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/2.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/commits\/2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordPolicyEnforcer\/download\/2.0.0"},{"name":"2.0.1","release":"2020-10-11 23:16:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4966,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/2.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordPolicyEnforcer\/download\/2.0.1"},{"name":"1.2.1","release":"2020-10-11 23:34:03","requires":{"piwik":">=3.6.0-b5,<4.0.0-b1","php":">=5.5.9"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1750,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/1.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/commits\/1.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordPolicyEnforcer\/download\/1.2.1"},{"name":"2.0.2","release":"2024-08-21 08:46:02","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1","php":">=7.2.5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7259,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/2.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/simivar\/matomo-password-policy-enforcer\/commits\/2.1.0","readmeHtml":{"description":"","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/PasswordPolicyEnforcer\/download\/2.0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/PasswordPolicyEnforcer\/changelog"},"consumer":{"license":null}},{"name":"PasswordVerifier","displayName":"Password Verifier","owner":"Findus23","description":"Reject insecure passwords by searching for their hash in the haveibeenpwned.com database.","homepage":"https:\/\/lw1.at","createdDateTime":"2018-11-06 13:30:05","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier","type":"url"}],"isTheme":false,"keywords":["security","passwords","haveibeenpwned"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier","lastUpdated":"2023-07-22 21:20:03","latestVersion":"0.3.0","numDownloads":36275,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"82","numContributors":"23","lastCommitDate":"2024-08-17 11:09:45"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2018-11-06 13:30:05","requires":{"piwik":">=3.6.1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordVerifier\/download\/0.1.0"},{"name":"0.1.1","release":"2018-11-06 13:40:03","requires":{"piwik":">=3.6.1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1680,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordVerifier\/download\/0.1.1"},{"name":"0.1.2","release":"2020-05-11 20:22:03","requires":{"piwik":">=3.6.1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3459,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PasswordVerifier\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordVerifier\/download\/0.1.2"},{"name":"0.2.0","release":"2020-10-10 17:20:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":902,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PasswordVerifier\/0.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordVerifier\/download\/0.2.0"},{"name":"0.2.1","release":"2021-09-04 19:46:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":753,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PasswordVerifier\/0.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordVerifier\/download\/0.2.1"},{"name":"0.2.2","release":"2021-11-19 18:42:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1498,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PasswordVerifier\/0.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordVerifier\/download\/0.2.2"},{"name":"0.2.3","release":"2022-07-27 18:24:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10221,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PasswordVerifier\/0.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PasswordVerifier\/download\/0.2.3"},{"name":"0.3.0","release":"2023-07-22 21:20:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":17755,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PasswordVerifier\/0.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/commits\/0.3.0","readmeHtml":{"description":"\n\n<p>This plugin sends the first 5 characters of the SHA1 hash of the password to the <a href=\"https:\/\/haveibeenpwned.com\/Passwords\">haveibeenpwned.com database<\/a> of over 500 million passwords exposed in data breaches. If the password is found, Matomo rejects it and asks the user to use a more secure password.<\/p>\n\n<p>This plugin only acts on passwords changes and can't access existing passwords as they are stored securely hashed by Matomo.<\/p>\n\n<h3>Disclaimer<\/h3>\n\n<p><strong>Attention<\/strong>: This is a beta plugin. Please don't use it in security critical environments without checking the correctness of <a href=\"https:\/\/github.com\/Findus23\/plugin-PasswordVerifier\/blob\/master\/PasswordVerifier.php\">the source<\/a> yourself.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>This plugin is rejecting too many passwords. Can I set a threshold of occurances required to reject a password?<\/strong><\/p>\n\n<p>Not yet, but it would be very easy to add. If you are interested, just contact me.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.3.0<\/h3>\n\n<p>Matomo 5 compatibility<\/p>\n\n<h3>0.2.3<\/h3>\n\n<p>Translation updates<\/p>\n\n<h3>0.2.2<\/h3>\n\n<p>add French, Japanese, Italian, Portuguese, Portuguese (Brazil) and Ukrainian translations<\/p>\n\n<h3>0.2.1<\/h3>\n\n<p>Add German, Greek and French translations<\/p>\n\n<h3>0.2.0<\/h3>\n\n<p>Matomo 4 compatibility<\/p>\n\n<h3>0.1.2<\/h3>\n\n<p>add French translation (by @darkvodka)<\/p>\n\n<h3>0.1.1<\/h3>\n\n<p>add disclaimer in description<\/p>\n\n<h3>0.1.0<\/h3>\n\n<p>first working version<\/p>"},"download":"\/api\/2.0\/plugins\/PasswordVerifier\/download\/0.3.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/PasswordVerifier\/changelog"},"consumer":{"license":null}},{"name":"PerformanceAudit","displayName":"Performance Audit","owner":"DevDavido","description":"Daily performance audits of all your sites in Matomo.","homepage":"https:\/\/github.com\/DevDavido\/performance-audit-plugin","createdDateTime":"2020-07-20 11:06:03","donate":{},"support":[{"name":"Email","key":"email","value":"github{at}diskoboss{d\u00f8t}de","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/issues","type":"url"}],"isTheme":false,"keywords":["Report","performance","monitor","audit","measure","lighthouse","first contentful paint","speed index","largest contentful paint","interactive","time to interactive","total blocking time","cumulative layout shift","web vitals"],"basePrice":0,"authors":[{"name":"DevDavido","email":null,"homepage":"https:\/\/github.com\/DevDavido"}],"repositoryUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin","lastUpdated":"2024-11-09 17:22:04","latestVersion":"3.2.0","numDownloads":36244,"screenshots":["https:\/\/plugins.matomo.org\/PerformanceAudit\/images\/3.2.0\/Dashboard.png","https:\/\/plugins.matomo.org\/PerformanceAudit\/images\/3.2.0\/FirstContentfulPaint.png","https:\/\/plugins.matomo.org\/PerformanceAudit\/images\/3.2.0\/OverallScores.png","https:\/\/plugins.matomo.org\/PerformanceAudit\/images\/3.2.0\/PerformanceSubcategories.png","https:\/\/plugins.matomo.org\/PerformanceAudit\/images\/3.2.0\/TimelineFirstContentfulPaint.png","https:\/\/plugins.matomo.org\/PerformanceAudit\/images\/3.2.0\/WebsiteSettings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"249","numContributors":"34","lastCommitDate":"2026-07-01 06:16:30"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.3","release":"2020-07-20 11:06:06","requires":{"php":">=7.1.3","matomo":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.0.3"},{"name":"1.0.4","release":"2020-07-20 12:46:06","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":186,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.0.4"},{"name":"1.0.5","release":"2020-08-12 00:06:04","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.0.5"},{"name":"1.0.6","release":"2020-08-12 00:16:05","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":166,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.0.6"},{"name":"1.0.7","release":"2020-08-15 00:52:04","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.0.7"},{"name":"1.0.8","release":"2020-08-15 22:40:05","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":84,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.0.8"},{"name":"2.0.0-b1","release":"2020-08-16 18:04:05","requires":{"php":">=7.2.5","matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/2.0.0-b1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/2.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/2.0.0-b1"},{"name":"1.0.10","release":"2020-08-18 16:46:05","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":139,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.0.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.0.10"},{"name":"2.0.0-b2","release":"2020-08-21 21:32:05","requires":{"php":">=7.2.5","matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":209,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/2.0.0-b2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/2.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/2.0.0-b2"},{"name":"1.0.11","release":"2020-08-28 22:28:03","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":135,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.0.11\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.0.11"},{"name":"1.1.0","release":"2020-09-10 23:18:04","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":228,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.1.0"},{"name":"1.1.1","release":"2020-09-21 23:40:05","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":204,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.1.1"},{"name":"1.1.2","release":"2020-10-10 23:52:03","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.1.2"},{"name":"1.1.3","release":"2020-10-11 17:30:05","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":243,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.1.3"},{"name":"1.1.4","release":"2020-11-05 15:54:04","requires":{"php":">=7.1.3","piwik":">=3.12.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3129,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/1.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/1.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/1.1.4"},{"name":"2.0.0-b3","release":"2020-12-14 12:46:04","requires":{"php":">=7.2.5","matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":44,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/2.0.0-b3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/2.0.0-b3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/2.0.0-b3"},{"name":"2.0.0","release":"2020-12-28 12:10:06","requires":{"php":">=7.2.5","matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9423,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/2.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/2.0.0"},{"name":"2.1.0","release":"2023-12-20 14:16:05","requires":{"php":">=7.2.5","matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6574,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/2.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/2.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/2.1.0"},{"name":"3.0.0-b1","release":"2023-12-20 16:10:04","requires":{"php":">=7.2.5","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/3.0.0-b1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/3.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/3.0.0-b1"},{"name":"3.0.0-b2","release":"2023-12-20 16:40:05","requires":{"php":">=7.2.5","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/3.0.0-b2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/3.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/3.0.0-b2"},{"name":"3.0.0","release":"2023-12-20 23:46:05","requires":{"php":">=7.2.5","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":149,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/3.0.0"},{"name":"3.1.0","release":"2023-12-24 23:10:04","requires":{"php":">=7.2.5","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8180,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/3.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/3.1.0"},{"name":"3.2.0","release":"2024-11-09 17:22:04","requires":{"php":">=7.2.5","matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7084,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/3.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/DevDavido\/performance-audit-plugin\/commits\/3.2.0","readmeHtml":{"description":"\n\n<p>Daily performance audits of all your sites in Matomo for the following metrics based on Google Lighthouse:\n- First Contentful Paint\n- Speed Index\n- Largest Contentful Paint\n- Time To Interactive\n- Total Blocking Time\n- Cumulative Layout Shift\n- Overall Score<\/p>\n\n<p>Continuously monitor those Web Vital metrics over time, allowing detection of underlying problems before they have an adverse effect for users or simply track changes made to the web application, allowing you to establish a baseline for comparison too.<\/p>\n\n<p><strong>Note:<\/strong> Requires minimum NPM v10.x (part of Node.js 20.x LTS) to be installed on your server, otherwise plugin cannot be activated.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How are the audits generated? Are any external services used?<\/strong><\/p>\n\n<p>The audits are generated using Node.js in the background by running Googles Lighthouse tool against all the visited\/tracked pages within the last 30 days. Everything is executed locally on your server, no data is transferred to external services.<\/p>\n\n<p><strong>How do I change to audit only mobile or only desktop environments of my site?<\/strong><\/p>\n\n<p>Under <code>General Settings<\/code> &gt; <code>Websites<\/code> &gt; <code>Manage<\/code> click on the edit button of the site you want to change the setting of and scroll to the setting <code>Performance simulation environment<\/code> selection to change it.<\/p>\n\n<p><strong>I just installed the plugin or I just switched the website settings of the performance simulation environment and I cannot see any performance reports, why is that?<\/strong><\/p>\n\n<p>You need to wait at least 24h until the reports are getting generated in the background with the scheduled tasks of your Matomo cron job.<\/p>\n\n<p><strong>I shutdown\/restarted my server and now the performance reports won't get generated anymore, what can I do?<\/strong><\/p>\n\n<p>If the site audit gets unexpectedly interrupted, so the plugin can't properly finish its code execution it will have a problem to restart. It would be possible to automatically fix this problematic state, but very long running site audits would run into issues then. So in this case you either wait until the next week starts (an internal plugin reset will happen then), or you can run the Matomo console command <code>console performanceaudit:clear-task-running-flag<\/code> which will reset the plugin state, so the audits will be scheduled correctly again at the next possible time.<\/p>\n\n<p><strong>I want to use a custom HTTP header for authentication, so the audit plugin can access my protected pages, how do I do that?<\/strong><\/p>\n\n<p>Under <code>General Settings<\/code> &gt; <code>Websites<\/code> &gt; <code>Manage<\/code> click on the edit button of the site you want to change the setting of and scroll to the checkbox <code>Use Custom HTTP header<\/code> and activate it in order to change the HTTP header key and its value. The audit tool will send then the entered header value paired with the selected header key to the server with every request.<\/p>\n\n<p><strong>The plugin cannot install because Chromium cannot be installed due to a missing library?<\/strong><\/p>\n\n<p>Make sure <a href=\"https:\/\/github.com\/puppeteer\/puppeteer\/blob\/main\/docs\/troubleshooting.md#chrome-doesnt-launch-on-linux\">all necessary dependencies<\/a> for Chromium are installed.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>3.2.0<\/h2>\n\n<ul>\n<li>Security: Bumped <code>symfony\/process<\/code> dependency to a version without security vulnerabilities (affects Windows servers only)<\/li>\n<li>Updated: All composer dependencies to their latest supported versions for PHP &gt;= 7.2.5 (same as Matomo 5 itself)<\/li>\n<\/ul>\n\n<h2>3.1.0<\/h2>\n\n<ul>\n<li>Added: Search for Node executable additionally in paths of <code>PATH<\/code> environment variable<\/li>\n<li>Improved: Provide directory search path in error message if executable cannot be found<\/li>\n<\/ul>\n\n<h2>3.0.0<\/h2>\n\n<ul>\n<li>Release stable version for Matomo 5<\/li>\n<li>Fixed: CORS template issue<\/li>\n<\/ul>\n\n<h2>3.0.0-Beta2<\/h2>\n\n<ul>\n<li>Fixed: Issue with migrated Request handling<\/li>\n<\/ul>\n\n<h2>3.0.0-Beta1<\/h2>\n\n<ul>\n<li>Added: Support for Matomo 5 ?<\/li>\n<li>Updated: Bumped the minimum Node version to 20.x LTS for this new major plugin version<\/li>\n<li>Improved: Migrated some deprecated Matomo Plugin code<\/li>\n<\/ul>\n\n<h2>2.1.0<\/h2>\n\n<ul>\n<li>Added: Site setting to group URLs by anchor which removes auditing duplicates of URLs which only differ in their anchors<\/li>\n<li>Added: Support to find latest Node executable in Plesk environment<\/li>\n<li>Added: Initial (partial) translation available for Albanian, Basque, Bokm\u00e5l, Brazilian Portuguese, Bulgarian, Catalan, Chinese (Traditional), Dutch, French, German, Greek, Indonesian, Italian, Japanese, Portuguese, Spanish, Swedish, Turkish, Ukrainian<\/li>\n<li>Updated: Bumped <code>symfony\/process<\/code>, <code>ducks-project\/spl-types<\/code>, <code>symfony\/polyfill-mbstring<\/code> and <code>friendsofphp\/php-cs-fixer<\/code> dependency version<\/li>\n<li>Updated donation links<\/li>\n<\/ul>\n\n<h2>2.0.0<\/h2>\n\n<ul>\n<li>Release stable version for Matomo 4<\/li>\n<li>Updated: Bumped <code>symfony\/process<\/code> and <code>symfony\/polyfill-mbstring<\/code> dependency version<\/li>\n<\/ul>\n\n<h2>2.0.0-Beta3<\/h2>\n\n<ul>\n<li>Improved: Merged changes from 1.1.4 into 2.0.0-Beta2<\/li>\n<\/ul>\n\n<h2>2.0.0-Beta2<\/h2>\n\n<ul>\n<li>Improved: Merged changes from 1.0.8 into 2.0.0-Beta2<\/li>\n<\/ul>\n\n<h2>2.0.0-Beta1<\/h2>\n\n<ul>\n<li>Added: Support for Matomo 4 ?<\/li>\n<li>Updated: Bumped the minimum PHP version to 7.2.5 for this new major plugin version, just as Matomo 4 itself<\/li>\n<\/ul>\n\n<h2>1.1.4<\/h2>\n\n<ul>\n<li>Improved: Exception handling for failed audit due to too many requests response<\/li>\n<li>Fixed: One performance audit setting has been displayed after disabling audits for the site in settings<\/li>\n<li>Fixed: Disabled performance audits for site renders dashboard empty<\/li>\n<\/ul>\n\n<h2>1.1.3<\/h2>\n\n<ul>\n<li>Added: Possibility to set extended audit timeout for each site<\/li>\n<li>Improved: Minor internal refactoring for site settings<\/li>\n<li>Updated: Bumped <code>symfony\/process<\/code> dependency version<\/li>\n<\/ul>\n\n<h2>1.1.2<\/h2>\n\n<ul>\n<li>Added: Possibility to enable or disable audit for each site<\/li>\n<li>Improved: Set timeout for installation process to 5 minutes<\/li>\n<\/ul>\n\n<h2>1.1.1<\/h2>\n\n<ul>\n<li>Added: Scheduled weekly clearing of task running flag (in case of unexpected audit cancellation)<\/li>\n<li>Added: Console command to clear task running flag<\/li>\n<li>Fixed: Avoid race condition in case of which audit was called multiple times simultaneously<\/li>\n<li>Improved: Garbage collection after each audit<\/li>\n<li>Improved: Certain timeout\/runtime exceptions don't stop following page audits anymore<\/li>\n<li>Improved: Set timeout for (audit) processes to 1 minute<\/li>\n<\/ul>\n\n<h2>1.1.0<\/h2>\n\n<ul>\n<li>Fixed: Regular users cannot login anymore if plugin is activated<\/li>\n<li>Fixed: Renamed and fixed option to remove query strings from audited URLs which is now named group URLs and it doesn't throw SQL warnings anymore in certain (edge) cases<\/li>\n<li>Improved: Added security information for applied no sandbox mode of Chromium<\/li>\n<li>Improved: Increase database connection timeouts for longer running site audits<\/li>\n<li>Improved: Increase timeout for (audit) processes to 5 minutes<\/li>\n<li>Improved: Throw warning instead error for audited pages with HTTP 403 \/ 404 response<\/li>\n<li>Improved: Added FAQ entry for missing Chromium dependencies<\/li>\n<li>Improved: Error message during installation if directory permissions are incorrect<\/li>\n<\/ul>\n\n<h2>1.0.11<\/h2>\n\n<ul>\n<li>Added: Option to remove query strings from audited URLs<\/li>\n<li>Improved: Small refactoring in settings<\/li>\n<\/ul>\n\n<h2>1.0.10<\/h2>\n\n<ul>\n<li>Fixed: Issue with previous release as version number was incompatible with plugin marketplace<\/li>\n<\/ul>\n\n<h2>1.0.9<\/h2>\n\n<ul>\n<li>Fixed: Schedule Reports and mobile app threw exception due to missing name attribute<\/li>\n<\/ul>\n\n<h2>1.0.8<\/h2>\n\n<ul>\n<li>Improved: Refactored plugin base class, additionally removed now unneeded update classes<\/li>\n<li>Fixed: Updates could remove Node dependencies which now get reinstalled (regression bug)<\/li>\n<li>Fixed: Plugin cleanup now removes also symlinked directories<\/li>\n<\/ul>\n\n<h2>1.0.7<\/h2>\n\n<ul>\n<li>Improved: Plugin check is now also running pre-checks first<\/li>\n<li>Improved: Plugin check is now independent of regular audit flow<\/li>\n<li>Improved: Wording in README text regarding tests<\/li>\n<li>Fixed: Updates could remove Node dependencies which now get reinstalled<\/li>\n<\/ul>\n\n<h2>1.0.6<\/h2>\n\n<ul>\n<li>Fixed: Correct file require bug from previous release<\/li>\n<\/ul>\n\n<h2>1.0.5<\/h2>\n\n<ul>\n<li>Added: Possibility to check plugin audit functionality<\/li>\n<\/ul>\n\n<h2>1.0.4<\/h2>\n\n<ul>\n<li>Fixed: Switched to require <code>piwik<\/code> instead <code>matomo<\/code> in <code>plugin.json<\/code> for Matomo 3.x compatibility<\/li>\n<li>Improved: <code>plugin.json<\/code> plugin description<\/li>\n<\/ul>\n\n<h2>1.0.3<\/h2>\n\n<ul>\n<li>Added: PerformanceAudit is live on the Matomo plugin marketplace now ?<\/li>\n<li>Added: Donation information in <code>plugin.json<\/code><\/li>\n<li>Fixed: License name value in <code>plugin.json<\/code> was rewritten to a supported name value by Matomo Marketplace<\/li>\n<\/ul>\n\n<h2>1.0.2<\/h2>\n\n<ul>\n<li>Fixed: Regression bug which made only first website get audited<\/li>\n<li>Improved: Logging of exceptions for audits<\/li>\n<li>Updated: Bumped <code>symfony\/polyfill-mbstring<\/code> dependency version<\/li>\n<\/ul>\n\n<h2>1.0.1<\/h2>\n\n<ul>\n<li>Fixed: Made sure tasks aren't executed concurrently<\/li>\n<li>Fixed: composer.json is compatible with Composer v2 now<\/li>\n<\/ul>\n\n<h2>1.0<\/h2>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/PerformanceAudit\/download\/3.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/PerformanceAudit\/changelog"},"consumer":{"license":null}},{"name":"PerformanceInfo","displayName":"Performance Info","owner":"ThaDafinser","description":"Matomo (Piwik) plugin to check if the settings are good for security\/performance.","homepage":"https:\/\/github.com\/ThaDafinser\/Piwik-PerformanceInfo","createdDateTime":"2015-03-31 10:38:03","donate":{},"support":[],"isTheme":false,"keywords":["security","performance","ThaDafinser","config","configuration","optimization"],"basePrice":0,"authors":[{"name":"Martin Keckeis","email":null,"homepage":"https:\/\/github.com\/thadafinser"}],"repositoryUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-PerformanceInfo","lastUpdated":"2016-09-23 07:08:03","latestVersion":"0.3.1","numDownloads":10601,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"20","numContributors":"1","lastCommitDate":"2018-01-15 08:26:56"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-03-31 10:38:03","requires":{"piwik":">=2.10.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":117,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-PerformanceInfo\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceInfo\/download\/0.1.0"},{"name":"0.1.1","release":"2015-04-07 06:42:03","requires":{"piwik":">=2.14.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":255,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-PerformanceInfo\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceInfo\/download\/0.1.1"},{"name":"0.2.0","release":"2015-04-27 06:04:03","requires":{"piwik":">=2.13.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-PerformanceInfo\/commits\/v0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceInfo\/download\/0.2.0"},{"name":"v0.2.1","release":"2015-04-27 06:06:03","requires":{"piwik":">=2.13.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1374,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-PerformanceInfo\/commits\/v0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceInfo\/download\/v0.2.1"},{"name":"v0.2.2","release":"2015-10-14 07:16:03","requires":{"piwik":"2.13.0","php":"5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2812,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-PerformanceInfo\/commits\/v0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceInfo\/download\/v0.2.2"},{"name":"0.3.1","release":"2016-09-23 07:08:03","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6037,"license":{"name":"GPL v3","url":"https:\/\/plugins.matomo.org\/PerformanceInfo\/0.3.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/ThaDafinser\/Piwik-PerformanceInfo\/commits\/v0.3.1","readmeHtml":{"description":"\n\n<p>This plugin checks your configuration and compare it with some best practice settings.\n- Security\n- Performance\n- other<\/p>\n\n","faq":"<p><strong>Why does this plugin needs PHP 5.5?<\/strong><\/p>\n\n<p>You look at this plugin because you care about security or performance? Then why you dont upgrade to the latest PHP version?<\/p>","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/PerformanceInfo\/download\/0.3.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/PerformanceInfo\/changelog"},"consumer":{"license":null}},{"name":"PerformanceMonitor","displayName":"Performance Monitor","owner":"chanzler","description":"Displays the performance index of a site as a widget and adds an performance overview page to the top navigation. The index is calculated by the numbe.","homepage":"http:\/\/github.com\/chanzler\/piwik-performance-monitor","createdDateTime":"2014-08-16 19:40:04","donate":{"paypal":"paypal@familiekanzler.de","bitcoin":null},"support":[],"isTheme":false,"keywords":["live","widget","performance","monitor"],"basePrice":0,"authors":[{"name":"Frank Kanzler","email":"frank@intersolve.de","homepage":"http:\/\/www.intersolve.de"}],"repositoryUrl":"https:\/\/github.com\/chanzler\/piwik-performance-monitor","lastUpdated":"2014-11-08 20:20:03","latestVersion":"0.2.5","numDownloads":14591,"screenshots":["https:\/\/plugins.matomo.org\/PerformanceMonitor\/images\/0.2.5\/performancemonitor.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"13","numContributors":"1","lastCommitDate":"2014-11-10 16:18:43"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-08-16 19:40:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":900,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-performance-monitor\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceMonitor\/download\/0.1.0"},{"name":"0.2.0","release":"2014-10-12 19:44:03","requires":{"piwik":">=2.7.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":479,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-performance-monitor\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceMonitor\/download\/0.2.0"},{"name":"0.2.1","release":"2014-11-03 10:32:03","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":131,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-performance-monitor\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceMonitor\/download\/0.2.1"},{"name":"0.2.2","release":"2014-11-04 18:18:04","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-performance-monitor\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceMonitor\/download\/0.2.2"},{"name":"0.2.3","release":"2014-11-04 18:54:04","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-performance-monitor\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceMonitor\/download\/0.2.3"},{"name":"0.2.4","release":"2014-11-04 20:32:03","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":137,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-performance-monitor\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PerformanceMonitor\/download\/0.2.4"},{"name":"0.2.5","release":"2014-11-08 20:20:03","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12929,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-performance-monitor\/commits\/0.2.5","readmeHtml":{"description":"\n\n<p>This is a plugin for the Open Source Web Analytics platform Matomo (Piwik). If enabled, it will add a new widget that you can add to your dashboard and a new link in the top navigation.<\/p>\n\n<p>The widget will show the performance index of a site that auto-refreshes every 30 seconds. It shows the number of visitors or visit time in a 30 minute period compared to the maximum number of visitors in any 30 minute period of the last 30 days.<\/p>\n\n<p>This plugin is inspired by the <a href=\"https:\/\/github.com\/halfdan\/piwik-barometer-plugin\">piwik barometer plugin<\/a> and uses a lightly modified jQuery-Dynameter (original by <a href=\"http:\/\/tze1.com\/dynameter\/\">Tzechiu Lei<\/a>.<\/p>\n\n<p><strong>This plugin should run fine with installations with up to 100.000 page impressions per day. If you run a very large piwik installation and have performance issues with this plugin, please contact me - there is a solution for this. I have it up and running in an installation with more than 5 million visits per day.<\/strong><\/p>\n\n<p>(Tested with piwik 2.7.0, but supposed to run with older versions)<\/p>\n\n","faq":"<h3>Features<\/h3>\n\n<p>Here is a list of features that are included in this project:<\/p>\n\n<ul>\n<li>Live widget (\"Performance Monitor\") with key performance indices<\/li>\n<li>Add an item to the top navigation (\"Performance overview\") which displays the performance monitor widget for all your sites (configurable).<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<p><em>Refresh interval<\/em>: Defines how often the widgets will be updated. Every 30 seconds is a good value to choose.<\/p>\n\n<p><em>Measurement period<\/em>: Defines the measurement period in minutes. 5 minutes is a good value to choose.<\/p>\n\n<p><em>Comparison period<\/em>: Defines the period (x * 24h) the last 30 minutes are compared to. A good value for small sites with more or less static content is 30. For sites with peak days on weekends for example 1 will be a good value. 1 is also a good value for very big sites with a lot of traffic. You will have to play around with this value a little bit and figure out whalt will fit your needs.<\/p>\n\n<p><em>Sites in overview<\/em>: Defines which sites are displayed in the overview.<\/p>","documentation":"","changelog":"<h3>0.2.5 Bugfix Release<\/h3>\n\n<ul>\n<li>fixed bug with timezones that match \/^UTC[+-]*\/<\/li>\n<\/ul>\n\n<h3>0.2.4 Bugfix Release<\/h3>\n\n<ul>\n<li>reengineering of scheduled task<\/li>\n<\/ul>\n\n<h3>0.2.3 Bugfix Release<\/h3>\n\n<ul>\n<li>fixed bug in scheduled task<\/li>\n<\/ul>\n\n<h3>0.2.2 Bugfix Release<\/h3>\n\n<ul>\n<li>fixed an installation bug<\/li>\n<\/ul>\n\n<h3>0.2.0 Second Beta<\/h3>\n\n<ul>\n<li>made the plugin configurable by settings<\/li>\n<li>added more key performance indices<\/li>\n<li>performance overview now links to the dashboards<\/li>\n<li>fixed the timezone bug (configure timezone for each site properly)<\/li>\n<li>fixed several minor bugs<\/li>\n<\/ul>\n\n<h3>0.1.0 First Beta<\/h3>\n\n<ul>\n<li>initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/PerformanceMonitor\/download\/0.2.5"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/PerformanceMonitor\/changelog"},"consumer":{"license":null}},{"name":"PkceOIDC","displayName":"Pkce OIDC","owner":"marco-jj","description":"Adds support for OIDC login that uses pkce flow.","homepage":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce","createdDateTime":"2025-04-16 23:42:03","donate":{},"support":[{"name":"Email","key":"email","value":"marco.amedura@innovaway.it","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce","type":"url"}],"isTheme":false,"keywords":["login","authentication","sso","oauth","openid","connect","pkce"],"basePrice":0,"authors":[{"name":"Innovaway S.p.A.","email":"marco.amedura@innovaway.it","homepage":"https:\/\/innovaway.it"}],"repositoryUrl":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce","lastUpdated":"2025-05-30 08:32:02","latestVersion":"5.1.5","numDownloads":7849,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/PkceOIDC\/images\/5.1.5\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2025-05-30 08:31:01"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"5.0.0","release":"2025-04-16 23:42:03","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":397,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PkceOIDC\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PkceOIDC\/download\/5.0.0"},{"name":"5.1.0","release":"2025-05-27 10:48:03","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PkceOIDC\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PkceOIDC\/download\/5.1.0"},{"name":"5.1.2","release":"2025-05-28 13:10:03","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PkceOIDC\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PkceOIDC\/download\/5.1.2"},{"name":"5.1.3","release":"2025-05-28 13:50:03","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PkceOIDC\/5.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PkceOIDC\/download\/5.1.3"},{"name":"5.1.4","release":"2025-05-28 13:52:02","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PkceOIDC\/5.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/PkceOIDC\/download\/5.1.4"},{"name":"5.1.5","release":"2025-05-30 08:32:02","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7432,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/PkceOIDC\/5.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/marco-jj\/matomo-plugin-LoginOIDC-pkce\/commits\/5.1.5","readmeHtml":{"description":"\n\n<p>Login via third party authentication services.<\/p>\n\n<p>Easily add a \"Login with GitHub\" button your Matomo instance. You can also setup any other service to do the authentication for you.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What is the callback url?<\/strong><\/p>\n\n<p><code>http(s):\/\/&lt;YOUR_MATOMO_URL&gt;\/index.php?module=PkceOIDC&amp;action=callback&amp;provider=oidc<\/code><\/p>\n\n<p><strong>Which providers can I use?<\/strong><\/p>\n\n<p>I tested the plugin with Auth0, GitHub and Keycloak, which work fine.\nIf your provider does not seem to work, leave an issue on GitHub.<\/p>\n\n<p><strong>How can I unlink all users?<\/strong><\/p>\n\n<p>The easiest way is to fully uninstall the plugin and reinstall afterwards.\nOtherwise you can delete data from <code>matomo_loginoidc_provider<\/code> in your sql database.<\/p>\n\n<p>If you change the OAuth provider and there could be user id collisions, you should make sure to unlink all users beforehand.<\/p>\n\n<p><strong>Can I embed the Login button on another website?<\/strong><\/p>\n\n<p>You have to uncheck the <code>Disable direct login url<\/code> option in the settings.\nAfterwards you can link to <code>http(s):\/\/&lt;YOUR_MATOMO_URL&gt;\/index.php?module=PkceOIDC&amp;action=signin&amp;provider=oidc<\/code> and Matomo will redirect the client accordingly.<\/p>\n\n<p><strong>Can I setup more than one provider?<\/strong><\/p>\n\n<p>Currently that is <strong>not<\/strong> possible.\nBut you can use services like Auth0, which support multiple providers.<\/p>\n\n<p><strong>I get a <code>Can't create table<\/code> error when installing the plugin<\/strong><\/p>\n\n<p>Most likely you are using a very old Piwik installation, which still uses MyISAM tables.\nLearn here on how to update the database engine:\nhttps:\/\/matomo.org\/faq\/troubleshooting\/faq_25610\/<\/p>\n\n<p><strong>What are the settings for ...?<\/strong><\/p>\n\n<ul>\n<li><p>GitHub:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/github.com\/login\/oauth\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/github.com\/login\/oauth\/access_token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/api.github.com\/user<\/code><\/li>\n<li>Userinfo ID: <code>id<\/code><\/li>\n<li>OAuth Scopes: <code>&lt;EMPTY&gt;<\/code><\/li>\n<\/ul><\/li>\n<li><p>Auth0:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/oauth\/token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Keycloak:<\/p>\n\n<ul>\n<li>Authorize URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/auth<\/code><\/li>\n<li>Token URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/token<\/code><\/li>\n<li>Userinfo URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/userinfo<\/code><\/li>\n<li>Logout URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/logout?redirect_uri=&lt;MATOMO_URL&gt;<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Gitlab (self-hosted Community Edition 12.6.2):<\/p>\n\n<ul>\n<li>Authorize URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/authorize<\/code><\/li>\n<li>Token URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/token<\/code><\/li>\n<li>Userinfo URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Unikname Connect:<\/p>\n\n<ul>\n<li>Name: <code>Connect with your private @unikname<\/code><\/li>\n<li>Authorize URL: <code>https:\/\/connect.unikname.com\/oidc\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/connect.unikname.com\/oidc\/accessToken<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/connect.unikname.com\/oidc\/profile<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Microsoft Azure AD<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/login.microsoftonline.com\/&lt;TENANT_ID&gt;\/oauth2\/v2.0\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/login.microsoftonline.com\/&lt;TENANT_ID&gt;\/oauth2\/v2.0\/token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/graph.microsoft.com\/oidc\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Authentik<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/application\/o\/authorize\/<\/code><\/li>\n<li>Token URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/application\/o\/token\/<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/application\/o\/userinfo\/<\/code><\/li>\n<li>Logout URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/application\/o\/&lt;YOUR_AUTHENTIK_APPLICATION_SLUG&gt;\/end-session\/<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>Client ID + Secret from Authentik Provider<\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul>\n\n<p>In the Authentik Provider:<\/p>\n\n<ul>\n<li>Redirect URIs: <code>.*<\/code> (only that worked for me, don't forget the DOT before!)\nRemaining inputs for provider and application as normal.<\/li>\n<\/ul><\/li>\n<\/ul>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>4.1.2<\/h3>\n\n<ul>\n<li>Fix disabling OIDC for superusers not having any effect (#68).<\/li>\n<\/ul>\n\n<h3>4.1.1<\/h3>\n\n<ul>\n<li>Hotfix warning about session variable not being set when signing in with username\/password.<\/li>\n<\/ul>\n\n<h3>4.1.0<\/h3>\n\n<ul>\n<li>Add option to skip password confirmation requests when user has signed in via PkceOIDC (requires Matomo &gt;4.12.0) (#72).<\/li>\n<li>Add option to automatically link existing users when IdP user id matches Matomos user id (#44).<\/li>\n<li>Fix logout redirect (#64).<\/li>\n<li>Improve db table creation (#31).<\/li>\n<\/ul>\n\n<h3>4.0.0<\/h3>\n\n<ul>\n<li>Prepare plugin for Matomo 4.<\/li>\n<li>Linking accounts has been moved to the users security settings.<\/li>\n<\/ul>\n\n<h3>3.0.1<\/h3>\n\n<ul>\n<li>Hotfix saving plugin system settings with empty domain whitelist (#34).<\/li>\n<\/ul>\n\n<h3>3.0.0<\/h3>\n\n<ul>\n<li>Align version number with Matomo major release version.<\/li>\n<li>Support embedding login button on third-party sites.<\/li>\n<li>Restrict account creation to specified domains.<\/li>\n<li>Support <a href=\"https:\/\/openid.net\/specs\/openid-connect-session-1_0-17.html#RPLogout\">OIDC Logout URLs<\/a>.<\/li>\n<li>Support Matomos regular password verification (currently requires modification of plugins\/Login\/templates\/confirmPassword.twig)<\/li>\n<\/ul>\n\n<h3>0.1.5<\/h3>\n\n<ul>\n<li>Add option to bypass second factor when sign in with OIDC.<\/li>\n<\/ul>\n\n<h3>0.1.4<\/h3>\n\n<ul>\n<li>Add option to automatically create unknown users.<\/li>\n<\/ul>\n\n<h3>0.1.3<\/h3>\n\n<ul>\n<li>Add an option to override the redirect URI.<\/li>\n<\/ul>\n\n<h3>0.1.2<\/h3>\n\n<ul>\n<li>Fix oauth flow for <a href=\"https:\/\/github.com\/keycloak\/keycloak\">Keycloak<\/a>.<\/li>\n<li>Improve FAQ.<\/li>\n<\/ul>\n\n<h3>0.1.1<\/h3>\n\n<ul>\n<li>Lowered the required Matomo version for this plugin.<\/li>\n<\/ul>\n\n<h3>0.1.0<\/h3>\n\n<ul>\n<li>Initial version.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/PkceOIDC\/download\/5.1.5"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/PkceOIDC\/changelog"},"consumer":{"license":null}},{"name":"ProfileAvatar","displayName":"Profile Avatar","owner":"Findus23","description":"Show a random avatar on the Visitor Profile.","homepage":"https:\/\/lw1.at","createdDateTime":"2020-05-20 08:58:04","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar","type":"url"}],"isTheme":false,"keywords":["Visitor Profile","profile picture"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar","lastUpdated":"2023-07-22 21:26:03","latestVersion":"0.2.0","numDownloads":30799,"screenshots":["https:\/\/plugins.matomo.org\/ProfileAvatar\/images\/0.2.0\/Visitor_Profile.png","https:\/\/plugins.matomo.org\/ProfileAvatar\/images\/0.2.0\/avatars.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"103","numContributors":"19","lastCommitDate":"2024-07-10 08:32:13"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2020-05-20 08:58:04","requires":{"piwik":">=3.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":242,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileAvatar\/download\/0.1.1"},{"name":"0.1.2","release":"2020-05-28 09:50:05","requires":{"matomo":">=3.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":733,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileAvatar\/download\/0.1.2"},{"name":"0.1.3","release":"2021-02-14 20:34:03","requires":{"matomo":">=3.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileAvatar\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileAvatar\/download\/0.1.3"},{"name":"0.1.4","release":"2021-02-15 09:24:03","requires":{"matomo":">=3.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1079,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileAvatar\/0.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileAvatar\/download\/0.1.4"},{"name":"0.1.5","release":"2021-09-04 19:52:03","requires":{"matomo":">=3.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":608,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileAvatar\/0.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileAvatar\/download\/0.1.5"},{"name":"0.1.6","release":"2021-11-19 18:36:04","requires":{"matomo":">=3.13.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11993,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileAvatar\/0.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileAvatar\/download\/0.1.6"},{"name":"0.2.0","release":"2023-07-22 21:26:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16128,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileAvatar\/0.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-ProfileAvatar\/commits\/0.2.0","readmeHtml":{"description":"\n\n<p>Are you tired of always seeing the same placeholder profile picture in the Vistitor Profile?<\/p>\n\n<p>This plugin creates randomly generated user avatars based on the visitorID inspired by classical identicons:<\/p>\n\n<ul>\n<li>Cat Avatar (based on <a href=\"https:\/\/framagit.org\/Deevad\/cat-avatar-generator\/\">cat-avatar-generator<\/a> by <a href=\"https:\/\/www.davidrevoy.com\/\">David Revoy<\/a>)<\/li>\n<li>Bird Avatar (the same with birds)<\/li>\n<li>MonsterID (based on <a href=\"https:\/\/www.splitbrain.org\/projects\/monsterid\">MonsterID<\/a> by Andreas Gohr)<\/li>\n<li>Identicon (based on <a href=\"https:\/\/github.com\/stewartlord\/identicon.js\">indenticon.js<\/a> by Stewart Lord)<\/li>\n<li>Blockies (based on <a href=\"https:\/\/github.com\/download13\/blockies\">blockies<\/a> by Erin Dachtler)<\/li>\n<\/ul>\n\n<p>In the Personal Settings every use can choose which avatar type they want to see. \nNo data is shared with other services as all images are generated locally.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.2.0<\/h3>\n\n<p>Matomo 5 compatibility<\/p>\n\n<h3>0.1.6<\/h3>\n\n<p>add French, Japanese, Italian, Portuguese, Portuguese (Brazil) and Ukrainian translations<\/p>\n\n<h3>0.1.5<\/h3>\n\n<p>add German, Greek and Turkish translations<\/p>\n\n<h3>0.1.2<\/h3>\n\n<p>Matomo 4 compatibility<\/p>\n\n<h3>0.1.1<\/h3>\n\n<p>fix invalid plugin.json<\/p>\n\n<h3>0.1.0<\/h3>\n\n<p>initial release<\/p>"},"download":"\/api\/2.0\/plugins\/ProfileAvatar\/download\/0.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ProfileAvatar\/changelog"},"consumer":{"license":null}},{"name":"ProfileGravatar","displayName":"Profile Gravatar","owner":"openmost","description":"Show the Gravatar picture of your identified visitors in the visitor profile and the visits log.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/profile-gravatar","createdDateTime":"2024-02-06 23:52:02","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/ProfileGravatar\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/ProfileGravatar","type":"url"}],"isTheme":false,"keywords":["Avatar","photo","profile","user","gravatar","picture","visitor-profile","visits-log"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/ProfileGravatar","lastUpdated":"2026-10-22 15:34:36","latestVersion":"5.1.0","numDownloads":13740,"screenshots":["https:\/\/plugins.matomo.org\/ProfileGravatar\/images\/5.1.0\/Gravatar_on_the_visitor_profile.png","https:\/\/plugins.matomo.org\/ProfileGravatar\/images\/5.1.0\/Settings_default_image_and_rating.png"],"coverImage":"https:\/\/plugins.matomo.org\/ProfileGravatar\/images\/5.1.0\/_cover.png","previews":[],"activity":{"numCommits":"13","numContributors":"1","lastCommitDate":"2026-10-22 15:32:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"5.0.1","release":"2024-02-06 23:52:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.1"},{"name":"5.0.2","release":"2024-02-06 23:58:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.2"},{"name":"5.0.3","release":"2024-02-08 09:38:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.3"},{"name":"5.0.4","release":"2024-02-08 10:38:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":491,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.4"},{"name":"5.0.5","release":"2024-02-17 15:50:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":398,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.5"},{"name":"5.0.6","release":"2024-03-05 18:08:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":999,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.6"},{"name":"5.0.7","release":"2024-04-28 10:00:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.7"},{"name":"5.0.8","release":"2024-04-28 10:06:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1738,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.8"},{"name":"5.0.9","release":"2024-06-27 12:36:05","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9896,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.9"},{"name":"6.0.1","release":"2026-09-15 19:34:09","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":53,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/6.0.1"},{"name":"6.0.2","release":"2026-10-14 14:34:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/6.0.2"},{"name":"5.0.10","release":"2026-10-14 15:30:05","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":72,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.10"},{"name":"6.0.3","release":"2026-10-21 21:08:12","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/6.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/6.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/6.0.3"},{"name":"5.0.11","release":"2026-10-21 21:22:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.0.11\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.0.11"},{"name":"6.0.4","release":"2026-10-22 15:34:30","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/6.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/6.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/6.0.4"},{"name":"5.1.0","release":"2026-10-22 15:34:36","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/ProfileGravatar\/commits\/5.1.0","readmeHtml":{"description":"\n\n<p>Display the Gravatar profile picture of your identified visitors in the visitor profile and the visits log.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Visitor profile picture<\/strong>: when a visit carries the SHA256 hash of the visitor email address, the visitor profile shows the matching <a href=\"https:\/\/gravatar.com\">Gravatar<\/a> picture instead of the anonymous avatar. The most recent visit with a hash is used.<\/li>\n<li><strong>Visits log<\/strong>: a small profile picture next to the visitor details (can be turned off).<\/li>\n<li><strong>Matomo Tag Manager field<\/strong>: a <strong>Gravatar hash<\/strong> field is added to the Matomo Configuration variable, right after User ID. Select a Data-Layer variable (for example <code>sha256_email_address<\/code>), no Custom HTML tag or code needed.<\/li>\n<li><strong>Other ways to send the hash<\/strong>: <code>_paq.push(['ProfileGravatar.setGravatarHash', hash])<\/code> (and <code>resetGravatarHash<\/code> on logout) with the JavaScript tracker, the <code>gravatar_hash<\/code> parameter of the Tracking HTTP API, or the PHP Tracker. The hash is attached to every tracking request, so it can be set after the page view.<\/li>\n<li><strong>Segment and API<\/strong>: the hash is stored in a dedicated visit dimension, usable as the <code>gravatarHash<\/code> segment. <code>Live.getLastVisitsDetails<\/code> returns <code>gravatar_hash<\/code> and <code>gravatarUrl<\/code>.<\/li>\n<li><strong>Settings<\/strong>: default image when a visitor has no Gravatar (mystery person, identicon, MonsterID, Wavatar, Retro, RoboHash, blank) and maximum picture rating (G, PG, R, X).<\/li>\n<li>Only valid SHA256 or MD5 hashes are tracked, any other value is ignored.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5 (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>)<\/li>\n<li>Matomo Tag Manager is optional, it is only needed for the Gravatar hash field.<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate the plugin from <em>Administration &gt; Platform &gt; Marketplace<\/em>.<\/li>\n<li>Send the hash from your website, with Tag Manager or the tracker (see <a href=\"docs\/index.md\">docs\/index.md<\/a>).<\/li>\n<li>Optionally adjust the default image, the rating and the visits log display in <em>Administration &gt; System &gt; General settings &gt; ProfileGravatar<\/em>.<\/li>\n<\/ol>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>The plugin never needs the email address: only its SHA256 (or MD5) hash is tracked and stored in Matomo, like any other visit dimension.<\/li>\n<li>Pictures are loaded over HTTPS from gravatar.com by the browser of the Matomo users viewing the reports. Visitors themselves never contact Gravatar because of this plugin.<\/li>\n<li>A hash of an email address is still personal data under the GDPR: send it only for visitors who agreed to it, and include it in your data retention and deletion processes.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We design <a href=\"https:\/\/openmost.com\/matomo\/services\/tracking-architecture?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=profilegravatar\">Matomo tracking plans<\/a>, including User ID and cross-device identification where your legal basis allows it, and implement them so your team can maintain them.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How to install this plugin<\/strong><\/p>\n\n<p>This plugin is available in the official marketplace of Matomo. You have to install it the same way as other plugins:<\/p>\n\n<ul>\n<li>Go to the administration panel<\/li>\n<li>Look for the Marketplace section and select \"Plugins\" in the dropdown<\/li>\n<li>Then search for \"<strong>ProfileGravatar<\/strong>\", install and activate the plugin.<\/li>\n<li>Follow the documentation to send the Gravatar hash with your tracking code or your Tag Manager configuration.<\/li>\n<\/ul>\n\n<p><strong>Which versions of Matomo are supported ?<\/strong><\/p>\n\n<p>Version 5.x of the plugin supports Matomo 5. Use version 6.x of the plugin for Matomo 6 (PHP 8.1+, MySQL 8.0+ or MariaDB 10.6+).<\/p>\n\n<p><strong>Does the plugin need the email address of my visitors ?<\/strong><\/p>\n\n<p>No, never. Your website provides the SHA256 hash of the email address (for example in the data layer with the\n<code>sha256_email_address<\/code> key) and only this hash is sent to Matomo. Never push the email address in clear text in the\ndata layer or in the tracking code.<\/p>\n\n<p><strong>Where is the \"Gravatar hash\" field in Matomo Tag Manager ?<\/strong><\/p>\n\n<p>In the <strong>Matomo Configuration<\/strong> variable, right after the <strong>User ID<\/strong> field. Select a Data-Layer variable containing the\nhash, then publish a new version of your container. The field is only displayed while the ProfileGravatar plugin is\nactivated.<\/p>\n\n<p><strong>Why is the anonymous avatar still displayed in the visitor profile ?<\/strong><\/p>\n\n<p>The picture is only displayed when at least one visit of the visitor has a valid hash. Check that:<\/p>\n\n<ul>\n<li>the hash is available before the page view is tracked (or sent with a later tracking request),<\/li>\n<li>the hash is a SHA256 (64 characters) or MD5 (32 characters) hexadecimal string, other values are ignored,<\/li>\n<li>the email address was trimmed and lowercased before hashing, otherwise Gravatar does not find the profile and displays the default image.<\/li>\n<\/ul>\n\n<p><strong>Is a hash of an email address personal data ?<\/strong><\/p>\n\n<p>Yes. A hash of an email address is a pseudonymous identifier under the GDPR: only send it for visitors who agreed to it,\nas you would do for a User ID. The hash is stored in the <code>gravatar_hash<\/code> column of the visits and is deleted with the raw\ndata of the visits.<\/p>\n\n<p><strong>Does Gravatar receive data from my Matomo instance ?<\/strong><\/p>\n\n<p>When a Matomo user opens a visitor profile or the visits log, the browser loads the pictures from <code>gravatar.com<\/code>, so\nGravatar receives the hash and the IP address of the Matomo user. No request is made to Gravatar from the tracked website.<\/p>\n\n<p><strong>Why do I see \"false\" values in the gravatarHash segment ?<\/strong><\/p>\n\n<p>Versions prior to 6.0.0 stored <code>false<\/code> (or <code>0<\/code>) for visits without a hash. These values are now ignored everywhere in\nthe plugin and are no longer tracked. They remain in the raw data of old visits, until your raw data is deleted.<\/p>\n\n<p><strong>Is the plugin active for all Matomo users in my instance ?<\/strong><\/p>\n\n<p>Yes, if you choose this plugin for your Matomo instance, all users will be able to use it.<\/p>\n\n<p><strong>How can I contribute to this plugin ?<\/strong><\/p>\n\n<p>You can help us develop this plugin by contacting us, or open an issue or a pull request on\n<a href=\"https:\/\/github.com\/openmost\/ProfileGravatar\">GitHub<\/a>. Any way you consider legitimate to contribute is welcome.<\/p>\n\n<p><strong>How long will this plugin be maintained ?<\/strong><\/p>\n\n<p>As long as possible. We use Matomo on many projects and are the first users of this plugin: if we see errors, we patch it as fast as possible!<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>1 - Install the plugin from the marketplace or via GitHub and enable it<\/h3>\n\n<p>Install this plugin from the Marketplace as superuser or download the plugin and install it on your server from FTP in\nthe <code>\/plugins<\/code> folder, then activate it.<\/p>\n\n<p>Requirements: Matomo 5.x.<\/p>\n\n<h3>2 - Provide the hash of the visitor email address<\/h3>\n\n<p>The plugin never needs the email address of your visitors: your website provides the <strong>SHA256 hash<\/strong> of the email\naddress, for example in the data layer with the <code>sha256_email_address<\/code> key (the same key as Google enhanced conversions).<\/p>\n\n<pre><code>window._mtm = window._mtm || [];\n_mtm.push({'sha256_email_address': 'a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da'});\n<\/code><\/pre>\n\n<p>Gravatar finds the profile when the email address was trimmed and lowercased before hashing. MD5 hashes are also\naccepted, any other value is ignored by the plugin.<\/p>\n\n<h3>3 - Send the hash to Matomo<\/h3>\n\n<h4>With Matomo Tag Manager (recommended)<\/h4>\n\n<p>No Custom HTML tag and no code are needed:<\/p>\n\n<ol>\n<li>Create a <strong>Data-Layer<\/strong> variable reading the key that contains the hash, for example <code>sha256_email_address<\/code> (or <code>user_data.sha256_email_address<\/code> if you use the Google enhanced conversions structure).<\/li>\n<li>Edit your <strong>Matomo Configuration<\/strong> variable and select this variable in the <strong>Gravatar hash<\/strong> field, right after the User ID field.<\/li>\n<li>Publish a new version of your container.<\/li>\n<\/ol>\n\n<p>The hash is sent with the requests of your Matomo tags, for the site of the configuration.<\/p>\n\n<h4>With the JavaScript tracker<\/h4>\n\n<p>Add this line to your tracking code, before <code>_paq.push(['trackPageView']);<\/code>:<\/p>\n\n<pre><code>_paq.push(['ProfileGravatar.setGravatarHash', 'a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da']);\n<\/code><\/pre>\n\n<p>The hash is sent with every following tracking request (page views, events, goals, downloads, outlinks, ecommerce,\ncontent tracking and heartbeat), so you can also set it later, for example after a login in a single page application.\nCall <code>_paq.push(['ProfileGravatar.resetGravatarHash']);<\/code> on logout.<\/p>\n\n<h4>With the Tracking HTTP API or the PHP Tracker<\/h4>\n\n<p>Add the <code>gravatar_hash<\/code> parameter to your request:<\/p>\n\n<pre><code>https:\/\/matomo.example.com\/matomo.php?idsite=1&amp;rec=1&amp;url=https:\/\/example.com&amp;gravatar_hash=XXXXXXXXX\n<\/code><\/pre>\n\n<pre><code>$tracker-&gt;setCustomTrackingParameter('gravatar_hash', $sha256EmailAddress);\n$tracker-&gt;doTrackPageView('Home');\n<\/code><\/pre>\n\n<h3>Where is the picture displayed ?<\/h3>\n\n<ul>\n<li><strong>Visitor profile<\/strong>: the picture of the most recent visit with a hash replaces the anonymous avatar.<\/li>\n<li><strong>Visits log<\/strong>: a small round picture is displayed next to the visitor details. You can hide it in the system settings.<\/li>\n<li><strong>Live API<\/strong>: <code>Live.getLastVisitsDetails<\/code> returns <code>gravatar_hash<\/code> and <code>gravatarUrl<\/code> for each visit.<\/li>\n<li><strong>Segments<\/strong>: filter your reports on the <code>gravatarHash<\/code> segment.<\/li>\n<\/ul>\n\n<h3>Settings<\/h3>\n\n<p>Go to <em>Administration &gt; System &gt; General settings &gt; ProfileGravatar<\/em>:<\/p>\n\n<ul>\n<li><strong>Default image<\/strong>: picture displayed when no Gravatar is associated with the hash (mystery person, identicon, retro...).<\/li>\n<li><strong>Maximum rating<\/strong>: pictures rated above this level (G, PG, R, X) are replaced by the default image.<\/li>\n<li><strong>Show the Gravatar picture in the visits log<\/strong>: enabled by default.<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.1.0<\/h3>\n\n<p>Backport of the 6.x features to Matomo 5, both versions now share the same code.<\/p>\n\n<ul>\n<li>The anonymous Matomo avatar is kept for visitors without a hash, so another avatar plugin can provide it (<a href=\"https:\/\/github.com\/openmost\/ProfileGravatar\/issues\/2\">#2<\/a>). Previously a Gravatar default image was displayed for every visitor.<\/li>\n<li>The visitor profile uses the most recent visit with a valid hash, instead of only the last visit. Only valid SHA256 or MD5 hashes are used.<\/li>\n<li>Matomo Tag Manager: new \"Gravatar hash\" field in the Matomo Configuration variable, right after User ID, to send the hash from a Data-Layer variable (e.g. <code>sha256_email_address<\/code>) without Custom HTML tag or code. The field extends the variable instead of replacing it, so it works together with the other plugins extending it, such as Ecommerce Enhanced.<\/li>\n<li>Display the Gravatar picture in the visits log, next to the visitor details (can be disabled in the system settings).<\/li>\n<li><code>Live.getLastVisitsDetails<\/code> returns a <code>gravatarUrl<\/code> for each visit with a hash.<\/li>\n<li><code>ProfileGravatar.resetGravatarHash<\/code> tracker method, for logouts.<\/li>\n<li>The hash is sent with every tracking request (events, goals, downloads, outlinks, ecommerce, content tracking, heartbeat), so it can be set after the page view.<\/li>\n<li>Settings and dimension translated into 12 languages.<\/li>\n<li>Documentation: Tag Manager setup, data layer <code>sha256_email_address<\/code>, HTTP API and PHP Tracker examples, privacy FAQ.<\/li>\n<\/ul>\n\n<h3>v5.0.11<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v5.0.10<\/h3>\n\n<ul>\n<li>Plugin translated into 12 languages (Arabic, Chinese simplified and traditional, Dutch, English, French, German, Italian, Japanese, Polish, Portuguese, Spanish).<\/li>\n<li>Plugin homepage moved to https:\/\/openmost.com\/matomo\/extensions\/profile-gravatar, support on openmost.com.<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<li>Requires Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.0.9<\/h3>\n\n<p>update: marketplace category and cover<\/p>\n\n<h3>v5.0.8<\/h3>\n\n<p>Update screenshot<\/p>\n\n<h3>v5.0.7<\/h3>\n\n<p>Update documentation<\/p>\n\n<h3>v5.0.6<\/h3>\n\n<p>Update documentation URL<\/p>\n\n<h3>v5.0.5<\/h3>\n\n<p>Add system settings<\/p>\n\n<h3>v5.0.4<\/h3>\n\n<p>Add extendVisitorDetails in VisitorDetails.php<\/p>\n\n<h3>v5.0.3<\/h3>\n\n<p>Add archiver<\/p>\n\n<h3>v5.0.1<\/h3>\n\n<p>Plugin setup<\/p>"},"download":"\/api\/2.0\/plugins\/ProfileGravatar\/download\/5.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ProfileGravatar\/changelog"},"consumer":{"license":null}},{"name":"ProtectTrackID","displayName":"Protect Track ID","owner":"joubertredrat","description":"Provides a option to protect idSite using hash instead default numeric.","homepage":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID","createdDateTime":"2016-06-30 14:56:04","donate":{},"support":[],"isTheme":false,"keywords":["hashid","protectid"],"basePrice":0,"authors":[{"name":"Joubert RedRat","email":"eu+matomo@redrat.com.br","homepage":null}],"repositoryUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID","lastUpdated":"2026-10-17 17:32:03","latestVersion":"3.3.0","numDownloads":181831,"screenshots":["https:\/\/plugins.matomo.org\/ProtectTrackID\/images\/3.3.0\/01_settings.png","https:\/\/plugins.matomo.org\/ProtectTrackID\/images\/3.3.0\/02_javascript-tracking-code.png","https:\/\/plugins.matomo.org\/ProtectTrackID\/images\/3.3.0\/03_image-tracking-code.png","https:\/\/plugins.matomo.org\/ProtectTrackID\/images\/3.3.0\/04_api-request-javascript-tracking-code.png","https:\/\/plugins.matomo.org\/ProtectTrackID\/images\/3.3.0\/05_api-request-image-tracking-code.png","https:\/\/plugins.matomo.org\/ProtectTrackID\/images\/3.3.0\/06_api-request-get-hashed-id.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"191","numContributors":"19","lastCommitDate":"2026-10-17 17:33:34"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2016-06-30 14:56:05","requires":{"piwik":">=2.16.2","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":441,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/0.1.0"},{"name":"0.2.0","release":"2016-08-17 17:26:05","requires":{"piwik":">=2.16.2","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":657,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/0.2.0"},{"name":"0.2.2","release":"2016-10-20 16:02:05","requires":{"piwik":">=2.16.2,<3.0.0-b1","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":703,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/0.2.2"},{"name":"1.0.0","release":"2016-10-28 16:18:05","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6712,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/1.0.0"},{"name":"1.1.0","release":"2021-03-05 00:04:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2819,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/1.1.0"},{"name":"2.0.0","release":"2021-03-06 21:46:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":118219,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/ProtectTrackID\/2.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.0.0"},{"name":"2.0.1","release":"2022-12-16 22:38:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/ProtectTrackID\/2.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.0.1"},{"name":"2.1.0","release":"2022-12-17 00:08:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":101,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/ProtectTrackID\/2.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.1.0"},{"name":"2.1.1","release":"2022-12-22 11:50:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":67,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/ProtectTrackID\/2.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.1.1"},{"name":"2.2.0","release":"2022-12-26 15:10:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":91,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.2.0"},{"name":"2.3.0","release":"2022-12-30 19:48:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":315,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.3.0"},{"name":"2.4.0","release":"2023-01-26 12:54:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":302,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.4.0"},{"name":"2.5.0","release":"2023-02-15 01:12:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":421,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.5.0"},{"name":"2.6.0","release":"2023-03-27 13:46:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":540,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.6.0"},{"name":"2.7.0","release":"2023-05-20 21:34:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1242,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.7.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.7.0"},{"name":"2.8.0","release":"2023-08-22 19:04:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":776,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.8.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.8.0"},{"name":"2.9.0","release":"2023-10-30 12:22:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":31034,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/2.9.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/2.9.0"},{"name":"3.0.0","release":"2023-10-30 14:44:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5104,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/3.0.0"},{"name":"3.1.0","release":"2024-04-10 19:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":140,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/3.1.0"},{"name":"3.2.0","release":"2024-04-18 23:40:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11994,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/3.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/3.2.0"},{"name":"3.3.0","release":"2026-10-17 17:32:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.3.5"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":150,"license":{"name":"MIT","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/commits\/3.3.0","readmeHtml":{"description":"\n\n<p>Provides a option to protect idSite using hash instead default numeric. This plugin was formerly Matomo (Piwik) Protect TrackID.<\/p>\n\n","faq":"<p><strong>Why isn't good to change configuration more times?<\/strong><\/p>\n\n<p>Because if you change configurations (<code>base string<\/code>, <code>salt<\/code> and <code>length<\/code>), hashed string will change too, then old hashes will not work. ONLY change salt if you will change all JavaScript Tracking Code or Image Tracking Link after change configuration. Then is <strong>HIGHT RECOMMENDED to set configurations ONLY ONE TIME<\/strong>.<\/p>\n\n<p><strong>How to I config plugin?<\/strong><\/p>\n\n<p>On Administration &gt; Plugin Settings. For plugin work, is required all configurations defined, if only one or two defined, plugin will not work.<\/p>\n\n<p>Plugin need 3 configurations, <code>base string<\/code>, <code>salt<\/code> and <code>length<\/code>.<\/p>\n\n<p><code>base string<\/code> is string used to generate hash. Example, if you set <code>ABCDEFGHIJKLMNOPQRSTUVXWYZ<\/code>, plugin will use only this characters for build hash.<\/p>\n\n<p><code>salt<\/code> is a radom string key for generate hash with <code>base string<\/code> and <code>length<\/code> configurations.<\/p>\n\n<p><code>length<\/code> is a hash string size. If you set <code>10<\/code> as example, plugin will generete hash with 10 characters defined on <code>base string<\/code>.<\/p>\n\n<p><strong>Why JavaScript Tracking Code and Image Tracking Link is blank?<\/strong><\/p>\n\n<p>This plugin will hash siteId by configurations, but if you define small <code>base string<\/code>, <code>salt<\/code> or <code>length<\/code>, plugin wont haven't combinations enough for create hash string. Then you need incresease <code>base string<\/code>, <code>salt<\/code> and\/or <code>length<\/code>.<\/p>\n\n<p><strong>If I install this plugin I need to change track code for all sites or old track code still will work?<\/strong> Thanks <a href=\"https:\/\/github.com\/yurgon\">@yurgon<\/a> for the question.<\/p>\n\n<p>You can install and set plugin configuration, old tracking code will work without problems because plugin validates tracking <code>siteId<\/code> with plugin settings to set if <code>siteId<\/code> is hashed id or normal numeric id. But is necessary attention, because although old tracking code will continue work, Matomo will display only new tracking code.<\/p>","documentation":"","changelog":"<p>See <a href=\"https:\/\/github.com\/joubertredrat\/Matomo-ProtectTrackID\/releases\">releases<\/a>. This project follows the guidelines of <a href=\"http:\/\/semver.org\">semantic versioning<\/a>.<\/p>"},"download":"\/api\/2.0\/plugins\/ProtectTrackID\/download\/3.3.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ProtectTrackID\/changelog"},"consumer":{"license":null}},{"name":"Provider","displayName":"Provider","owner":"matomo-org","description":"Reports the Internet Service Provider of the visitors.","homepage":"https:\/\/matomo.org","createdDateTime":"2020-07-31 00:36:02","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-Provider\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-Provider","type":"url"}],"isTheme":false,"keywords":["Report","provider","internet","service"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider","lastUpdated":"2026-08-24 07:58:03","latestVersion":"6.0.1","numDownloads":253343,"screenshots":["https:\/\/plugins.matomo.org\/Provider\/images\/6.0.1\/Report.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/Provider.png","previews":[],"activity":{"numCommits":"131","numContributors":"18","lastCommitDate":"2026-10-21 04:27:12"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"4.0.0","release":"2020-07-31 00:36:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5031,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:24:08","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4015,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/4.0.1"},{"name":"4.0.2","release":"2021-01-14 22:02:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7192,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/4.0.2"},{"name":"4.0.3","release":"2021-05-26 09:36:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":26301,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/4.0.3"},{"name":"4.0.4","release":"2022-08-01 08:04:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":19585,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/4.0.4"},{"name":"4.0.5","release":"2022-09-26 05:28:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":51415,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/4.0.5"},{"name":"5.0.0","release":"2023-05-04 02:36:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":163,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/5.0.0"},{"name":"5.0.1","release":"2023-08-10 21:32:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":131,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/5.0.1"},{"name":"5.0.2","release":"2023-08-28 05:42:03","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25387,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/5.0.0-b3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/5.0.2"},{"name":"5.0.3","release":"2024-04-22 07:10:03","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":30821,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/5.0.3"},{"name":"5.0.4","release":"2025-01-20 07:42:03","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":34424,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Provider\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/5.0.4"},{"name":"5.0.5","release":"2026-03-02 04:40:03","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13468,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Provider\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/5.0.5"},{"name":"5.0.6","release":"2026-04-27 06:36:02","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21011,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Provider\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/5.0.6"},{"name":"5.1.0","release":"2026-08-24 05:40:03","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14147,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Provider\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/5.1.0"},{"name":"6.0.0","release":"2026-08-24 06:01:01","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Provider\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Provider\/download\/6.0.0"},{"name":"6.0.1","release":"2026-08-24 07:58:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":250,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Provider\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Provider\/commits\/6.0.1","readmeHtml":{"description":"\n\n<p>This plugin adds a new report to your Matomo showing which Internet Service Providers your visitors used to access your website. \nYou can click on a provider name for more details. If Matomo can't determine a visitor's provider, it is listed as IP.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>6.0.1<\/h3>\n\n<ul>\n<li>Updated the German and Chinese (Traditional) translations<\/li>\n<\/ul>\n\n<h3>6.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<li>Added code to skip_reverse_dns_lookup based on config value<\/li>\n<\/ul>\n\n<h3>5.0.6 - 2026-04-27<\/h3>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h3>5.0.5 - 2026-03-02<\/h3>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h3>5.0.4<\/h3>\n\n<ul>\n<li>Added missing license file<\/li>\n<\/ul>\n\n<h3>5.0.3<\/h3>\n\n<ul>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h3>5.0.2<\/h3>\n\n<ul>\n<li>Fixes empty label causing archiving to fail<\/li>\n<\/ul>\n\n<h3>5.0.1<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 5.0.0-b4<\/li>\n<\/ul>\n\n<h3>5.0.0<\/h3>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<h3>4.0.5<\/h3>\n\n<ul>\n<li>Remove code for event that does no longer exist<\/li>\n<\/ul>\n\n<h3>4.0.4<\/h3>\n\n<ul>\n<li>Translation updates<\/li>\n<\/ul>\n\n<h3>4.0.3<\/h3>\n\n<ul>\n<li>Translation updates<\/li>\n<li>Do GeoIP lookup even if param dp=1 is given (only used in log analytics)<\/li>\n<\/ul>\n\n<h3>4.0.2<\/h3>\n\n<ul>\n<li>Fix plugin not working in WordPress or On-Premise when using custom plugin directories<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Provider\/download\/6.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Provider\/changelog"},"consumer":{"license":null}},{"name":"QueuedTracking","displayName":"Queued Tracking","owner":"matomo-org","description":"Scale your large traffic Matomo service by queuing tracking requests in Redis or MySQL for better performance and reliability when experiencing peaks.","homepage":"https:\/\/matomo.org","createdDateTime":"2015-01-05 23:28:04","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking","type":"url"}],"isTheme":false,"keywords":["tracker","tracking","queue","redis"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking","lastUpdated":"2026-10-20 08:22:05","latestVersion":"5.2.1","numDownloads":890260,"screenshots":["https:\/\/plugins.matomo.org\/QueuedTracking\/images\/5.2.1\/Settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/QueuedTracking.png","previews":[],"activity":{"numCommits":"455","numContributors":"50","lastCommitDate":"2026-10-21 06:00:22"},"featured":true,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["database"],"promotions":{"featured":4},"versions":[{"name":"0.1.0","release":"2015-01-05 23:28:05","requires":{"piwik":">=2.10.0-b10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":640,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.0"},{"name":"0.1.1","release":"2015-01-06 00:48:04","requires":{"piwik":">=2.10.0-b10"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":33842,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.1"},{"name":"0.1.2","release":"2015-03-09 05:56:04","requires":{"piwik":">=2.10.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":231,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.2"},{"name":"0.1.3","release":"2015-03-31 21:44:04","requires":{"piwik":">=2.10.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":660,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.3"},{"name":"0.1.4","release":"2015-06-09 21:38:04","requires":{"piwik":">=2.13.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":88,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.4"},{"name":"0.1.5","release":"2015-06-11 21:56:04","requires":{"piwik":">=2.13.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":210,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.5"},{"name":"0.1.6","release":"2015-06-22 01:00:05","requires":{"piwik":">=2.13.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":344,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.6"},{"name":"0.1.7","release":"2015-07-24 12:44:05","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":35,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.7"},{"name":"0.1.8","release":"2015-07-25 08:08:04","requires":{"piwik":">=2.14.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":795,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.1.8"},{"name":"0.2.0","release":"2015-10-21 22:36:04","requires":{"piwik":">=2.15.0-b15"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":548,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.2.0"},{"name":"0.2.1","release":"2015-12-14 20:46:04","requires":{"piwik":">=2.15.0-b15"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.2.1"},{"name":"0.2.2","release":"2015-12-14 21:02:04","requires":{"piwik":">=2.15.0-b15"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":40,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.2.2"},{"name":"0.2.3","release":"2015-12-15 21:06:05","requires":{"piwik":">=2.15.0-b15"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.2.3"},{"name":"0.2.4","release":"2015-12-15 21:58:04","requires":{"piwik":">=2.15.0-b15"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":390,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.2.4"},{"name":"0.2.5","release":"2016-01-13 19:58:04","requires":{"piwik":">=2.15.0-b15"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":564,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.2.5"},{"name":"0.2.6","release":"2016-02-16 16:06:04","requires":{"piwik":">=2.15.0-b15"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":445,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.2.6"},{"name":"0.3.0","release":"2016-03-14 19:00:04","requires":{"piwik":">=2.15.0-b15"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":444,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.3.0"},{"name":"0.3.1","release":"2016-04-19 02:26:04","requires":{"piwik":">=2.16.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1439,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.3.1"},{"name":"0.3.2","release":"2016-08-31 01:00:06","requires":{"piwik":">=2.16.0,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1329,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/0.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/0.3.2"},{"name":"3.0.0","release":"2016-09-13 22:16:08","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":623,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.0.0"},{"name":"3.0.1","release":"2016-11-15 22:36:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5560,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.0.1"},{"name":"3.1.0","release":"2017-11-20 09:08:05","requires":{"piwik":">=3.2.1-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4436,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.1.0"},{"name":"3.2.0","release":"2018-04-16 02:42:04","requires":{"piwik":">=3.2.1-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1191,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.2.0"},{"name":"3.2.1","release":"2018-05-30 21:18:04","requires":{"piwik":">=3.2.1-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1322,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.2.1"},{"name":"3.3.1","release":"2018-08-15 04:16:04","requires":{"piwik":">=3.5.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5438,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.3.1"},{"name":"3.3.2","release":"2019-01-07 00:58:14","requires":{"piwik":">=3.8.0-rc2,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2668,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.3.2"},{"name":"3.3.3","release":"2019-01-31 22:16:05","requires":{"piwik":">=3.8.0-rc2,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3737,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.3.3"},{"name":"3.3.4","release":"2019-04-26 00:06:04","requires":{"piwik":">=3.8.0-rc2,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":318,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/3.3.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.3.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.3.4"},{"name":"3.3.5","release":"2019-04-30 04:04:05","requires":{"piwik":">=3.8.0-rc2,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2798,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/3.3.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.3.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.3.5"},{"name":"3.3.6","release":"2020-01-01 22:44:05","requires":{"piwik":">=3.12.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9766,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/3.3.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/3.3.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/3.3.6"},{"name":"4.0.0","release":"2020-07-31 03:32:07","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":317,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/4.0.0"},{"name":"4.0.1","release":"2020-08-26 21:38:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1065,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/4.0.1"},{"name":"4.0.2","release":"2020-11-02 20:04:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":39506,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/4.0.2"},{"name":"4.0.3","release":"2022-04-26 03:20:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":732,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/4.0.3"},{"name":"4.0.4","release":"2022-05-09 05:18:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2540,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/4.0.4"},{"name":"4.0.5","release":"2022-08-01 08:06:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":160435,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/4.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/4.0.5"},{"name":"4.0.6","release":"2023-01-02 07:12:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":42688,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/4.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/4.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/4.0.6"},{"name":"5.0.0","release":"2023-05-05 05:36:06","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2241,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.0.0"},{"name":"4.0.7","release":"2023-05-22 10:14:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":298769,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/4.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/4.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/4.0.7"},{"name":"5.0.1","release":"2023-08-08 22:40:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.0.1"},{"name":"5.0.2","release":"2023-08-09 02:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":107287,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.0.0-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.0.2"},{"name":"5.0.3","release":"2024-03-11 04:08:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2652,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.0.3"},{"name":"5.0.4","release":"2024-04-22 07:14:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3824,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.0.4"},{"name":"5.0.5","release":"2024-06-27 06:50:49","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1406,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.0.5"},{"name":"5.0.6","release":"2024-07-31 02:46:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2992,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.0.6"},{"name":"5.0.7","release":"2024-08-26 04:30:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3184,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.0.7"},{"name":"5.1.0","release":"2024-10-21 07:58:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1003,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.1.0"},{"name":"5.1.1","release":"2024-10-23 01:42:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":103778,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.1.1"},{"name":"5.1.2","release":"2025-07-07 10:20:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2075,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.1.2"},{"name":"5.1.3","release":"2025-09-01 08:10:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8310,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.1.3"},{"name":"5.2.0","release":"2025-11-25 07:34:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":24280,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.2.0"},{"name":"6.0.0","release":"2026-08-24 06:28:34","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":181,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/6.0.0"},{"name":"6.0.1","release":"2026-10-05 04:00:06","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":70,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/6.0.1"},{"name":"6.0.2","release":"2026-10-20 07:26:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":30,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/6.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/6.0.2"},{"name":"5.2.1","release":"2026-10-20 08:22:05","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":977,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/QueuedTracking\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-QueuedTracking\/commits\/5.2.1","readmeHtml":{"description":"\n\n<p>This plugin writes all tracking requests into a <a href=\"http:\/\/redis.io\/\">Redis<\/a> instance or a MySQL queue instead of directly into the database.\nThis is useful if you have too many requests per second and your server cannot handle all of them directly (eg too many connections in nginx or MySQL).\nIt is also useful if you experience peaks sometimes. Those peaks can be handled much better by using this queue.\nWriting a tracking request into the queue is very fast (a tracking request takes in total a few milliseconds) compared to a regular tracking request (that takes multiple hundreds of milliseconds). The queue makes sure to process the tracking requests whenever possible even if it takes a while to process all requests after there was a peak.<\/p>\n\n<p>Have a look at the FAQ for more information.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What are the requirements for this plugin?<\/strong><\/p>\n\n<p>We recommend to use the plugin with Redis, but it may work just as well by using the MySQL database which is already used\nfor Matomo anyway.<\/p>\n\n<ul>\n<li>Recommended <a href=\"http:\/\/redis.io\/\">Redis server 2.8+<\/a> - <a href=\"http:\/\/redis.io\/topics\/quickstart\">Redis quickstart<\/a><\/li>\n<li>Recommended <a href=\"https:\/\/github.com\/nicolasff\/phpredis\">phpredis PHP extension<\/a> - <a href=\"https:\/\/github.com\/nicolasff\/phpredis#installingconfiguring\">Install<\/a><\/li>\n<li>Instead of Redis it is possible to use MySQL<\/li>\n<li>Transactions are used and must be supported by the SQL database.<\/li>\n<\/ul>\n\n<p><strong>Where can I configure and enable the queue?<\/strong><\/p>\n\n<p>In your Matomo instance go to \"Administration =&gt; General Settings\". There is a config section for this plugin.<\/p>\n\n<p><strong>When will a queued tracking request be processed?<\/strong><\/p>\n\n<p>First you should know that multiple tracking requests will be inserted into the database at once using\n<a href=\"http:\/\/developer.matomo.org\/api-reference\/tracking-api#bulk-tracking\">bulk tracking<\/a> as soon as a configurable number\nof requests is queued. By default we will check whether enough requests are queued during a regular tracking request\nand start processing them right after sending a response to the browser to make sure a user won't have to wait until\nthe queue has finished to process all requests. Have a look at this graph to see how it works:<\/p>\n\n<p><img src=\"https:\/\/raw.githubusercontent.com\/matomo-org\/plugin-QueuedTracking\/master\/docs\/How_it_works.png\" alt=\"How it works\" \/><\/p>\n\n<p><strong>I do not want to process queued requests within a tracking request, what shall I do?<\/strong><\/p>\n\n<p>Don't worry, if this solution doesn't work out for you for some reason you can disable it and process all queued\nrequests using the <a href=\"http:\/\/developer.matomo.org\/guides\/piwik-on-the-command-line\">Matomo console<\/a>. Just follow these steps:<\/p>\n\n<ul>\n<li>Disable the setting \"Process during tracking request\" in the Matomo UI under \"Settings =&gt; Plugin Settings\"<\/li>\n<li>Setup a cronjob that executes the command <code>.\/console queuedtracking:process<\/code> for instance every minute<\/li>\n<li>That's it<\/li>\n<li>Or, if you have <strong>\"non WINDOWS OS\"<\/strong> you can use the <a href=\"http:\/\/supervisord.org\/\">Supervisor<\/a> as a cron alternative.<\/li>\n<\/ul>\n\n<p>The <code>queuedtracking:process<\/code> command will make sure to process all queued tracking requests whenever possible and the\ncommand will exit as soon as there are not enough requests queued anymore. That's why you should setup a cronjob to start\nthe command every minute as it will just start processing again as soon as there are enough requests. Be aware that it won't\nspeed up processing queued requests when starting this command multiple times. Only one process will actually replay\nqueued requests at a time.<\/p>\n\n<p>Example crontab entry that starts the processor every minute:<\/p>\n\n<p><code>* * * * * cd \/matomo &amp;&amp; .\/console queuedtracking:process &gt;\/dev\/null 2&gt;&amp;1<\/code><\/p>\n\n<p>Example Supervisor entry that will start 16 processors\/workers with 10 loop cycle times and auto restart:<\/p>\n\n<pre><code class=\"ini\">[program:matomo]\ndirectory=\/path\/to\/your\/matomo\ncommand=\/path\/to\/your\/php \/path\/to\/your\/matomo\/console queuedtracking:process --queue-id=%(process_num)s -c 10 -s 2 -d 5\nprocess_name=queuedtracking-%(process_num)s\n\n#change the number according to how many worker(s) you have\nnumprocs=16\n\nnumprocs_start=0\nstopsignal=TERM\nautostart=true\nautorestart=true\nstopwaitsecs=120\n#priority=1000\nstdout_logfile=\/dev\/null\nstdout_logfile_maxbytes=0\nredirect_stderr=true\n<\/code><\/pre>\n\n<p><strong>Can I keep track of the state of the queue?<\/strong><\/p>\n\n<p>Yes, you can. Just execute the command <code>.\/console queuedtracking:monitor<\/code>. This will show the current state of the queue. To exit this command you can for example press <code>CTRL + C<\/code> key at the same time.<\/p>\n\n<p><strong>Can I improve the speed of inserting requests from the Redis queue to the database?<\/strong><\/p>\n\n<p>Yes, you can by adding more workers. By default only one worker is activated at a time and only one worker processes tracking requests from Redis to the database. When inserting tracking requests into the database, at time of writing this, about 80% of the time is spent in PHP and the database might be rather bored. If you have multiple CPUs available on your server you can add more workers. You can do this by going in the Matomo Admin interface to \"Plugin Settings\". There will be a setting \"Number of queue workers\". Increase this number to the number of CPUs you want to dedeciate for processing requests. Best practice is to add more workers step by step. So first increase this number to 2 and check if the tracking request insertions is fast enough for you. If not and you have more CPUs available, increase the number again.<\/p>\n\n<p>When using multiple workers it might be worth to lower the number of \"Number of requests to process\" to eg 15 in \"Plugin Settings\". By default 25 requests are inserted in one step by using transactions. This means different workers might have to wait for each other. By lowering that number each worker will block the DB for less time.<\/p>\n\n<p>If you process requests from the command line via <code>.\/console queuedtracking:process<\/code> make sure to always start enough workers. Each time you execute this command one worker will be started. If already enough workers are in process no new worker will be started and the command just finishes immediately.<\/p>\n\n<p><strong>How fast are the requests inserted from Redis to the Database?<\/strong><\/p>\n\n<p>This very much depends on your setup and hardware. With fast CPUs you can achieve up to 250req\/s with 1 worker, 400req\/s with 2 workers and 1500req\/s with 8 workers (tested on a AWS c3.x2large instance).<\/p>\n\n<p><strong>How should the redis server be configured?<\/strong><\/p>\n\n<p>Make sure to have enough memory to save all tracking requests in the queue. One tracking request in the queue takes about 2KB,\n20.000 tracking requests take about 50MB. All tracking requests of all websites are stored in the same queue.\nThere should be only one Redis server to make sure the data will be replayed in the same order as they were recorded.\nIf you want to configure Redis HA (High Availability) it is possible to use Redis Sentinel see further down.\nWe currently write into the Redis default database by default but you can configure to use a different one.<\/p>\n\n<p>You can also use a \"Redis Cluster\" to distribute all tracking requests data across multiple Redis masters\/shards, complete with the HA feature.<\/p>\n\n<p><strong>Why do some tests fail on my local Matomo instance?<\/strong><\/p>\n\n<p>Make sure the requirements mentioned above are met and Redis needs to run on 127.0.0.1:6379 with no password for the\nintegration tests to work. It will use the database \"15\" and the tests may flush all data it contains. Make sure\nit does not contain any important data.<\/p>\n\n<p><strong>What if I want to disable the queue?<\/strong><\/p>\n\n<p>You might want to disable the queue at some point but there are still some pending requests in the queue. We recommend to\nchange the \"Number of requests to process\" in plugin settings to \"1\" and process all requests using the command\n<code>.\/console queuedtracking:process<\/code> shortly before disabling the queue and directly afterwards. It is still possible to\nprocess remaining request once the queue is disabled but new tracking requests won't be written into the queue.<\/p>\n\n<p><strong>How can I access the queued data?<\/strong><\/p>\n\n<p><strong>Redis<\/strong>\nYou can either access data on the command line via <code>redis-cli<\/code> or use a Redis monitor like <a href=\"https:\/\/github.com\/ErikDubbelboer\/phpRedisAdmin\">phpRedisAdmin<\/a>.\nIn case you are using something like a Redis monitor make sure it is not accessible by everyone.<\/p>\n\n<p><strong>MySQL<\/strong>\nThere will be some DB tables in regular Matomo DB containing <code>queuedtracking_list_*<\/code>. Depending on your DB prefix, the name\nof the tables might be for example <code>matomo_queuedtracking_list_*<\/code>. Locks are stored in <code>queuedtracking_queue<\/code>.<\/p>\n\n<p><strong>The processor won't start processing again as it thinks another processor is processing the data already, what can I do?<\/strong><\/p>\n\n<p>First make sure there is actually no processor processing any requests. For example by executing the command\n<code>.\/console queuedtracking:monitor<\/code>. In case you are using the command line to process tracking requests make sure there\nis no processer running using the Linux command <code>ps<\/code>. If you are sure there is no process running you can release the lock\nby executing the command <code>.\/console queuedtracking:lock-status<\/code>. This will output more information which locks are in use and how to unlock them. Afterwards everything should work as normal again.\nYou should actually never have to do this as a lock automatically expires after a while. It just may take a while depending\non the amount of requests you are importing.<\/p>\n\n<p><strong>How can I test my Redis \/ MySQL \/ QueuedTracking setup in case I'm getting errors?<\/strong><\/p>\n\n<p>There is a command to test some the connection to Redis as well as some needed features: <code>.\/console queuedtracking:test<\/code>.<\/p>\n\n<p>It might directly give you an error message if something goes wrong that helps you to resolve the issue. If your queue\nis always locked you might be as well interested in executing <code>.console queuedtracking:lock-status<\/code>.<\/p>\n\n<p><strong>How can I debug in case something goes wrong?<\/strong><\/p>\n\n<ul>\n<li>Use the command <code>.\/console queuedtracking:monitor<\/code> to view the current state of all workers<\/li>\n<li>Use the command <code>.\/console queuedtracking:lock-status<\/code> to view the current state of all locks<\/li>\n<li>Set the option <code>-vvv<\/code> when processing via <code>.\/console queuedtracking:process -vvv<\/code> to enable the tracker debug mode for this run. This will print detailed information to screen.<\/li>\n<li>Enable tracker debug mode in <code>config.ini.php<\/code> via <code>[Tracker] debug=1<\/code> if processing requests during tracking is enabled.<\/li>\n<li>Use the command <code>.\/console queuedtracking:print-queued-requests<\/code> to view the next requests to process in each queue. If you execute this command twice within 1-10 minutes, and it outputs the same, the queue is not being processed most likely indicating a problem.<\/li>\n<li>You can add the tracking parameter <code>&amp;queuedtracking=0<\/code> to the tracking request to insert a tracking request directly into the database instead of into the queued tracking handler<\/li>\n<li>Plugin version 4.0.7 and greater logs a warning level message containing the error and has a new <code>log_failed_tracking_request_body<\/code> configuration. The new config is only for debugging purposes as always recording the request body for failed requests could be a privacy concern and considerably increase the size of the log file. To use the config, you would edit your <code>config\/config.ini.php<\/code> to look something like the following:<\/li>\n<\/ul>\n\n<pre><code>[QueuedTracking]\nlog_failed_tracking_request_body = 1\n<\/code><\/pre>\n\n<p><strong>I am using the Log Importer in combination with Queued Tracking, is there something to consider?<\/strong><\/p>\n\n<p>Yes, we recommend to set the \"Number of requests to process\" to <code>1<\/code> as the log importer usually sends multiple requests at once using bulk tracking already.<\/p>\n\n<p><strong>How can I configure the QueuedTracking plugin to use Redis Sentinel?<\/strong><\/p>\n\n<p>You can enable the Sentinel in the plugin settings. Make sure to specify the correct Sentinel \"master\" name.<\/p>\n\n<p>When using Sentinel, the <code>phpredis<\/code> extension is not needed as it uses a PHP class to connect to your Redis. Please note that calls to Redis might be a little bit slower.<\/p>\n\n<p><strong>Can I configure multiple Sentinel servers?<\/strong><\/p>\n\n<p>Yes, once Sentinel is enabled you can configure multiple servers by specifying multiple hosts and ports comma separated via the UI.<\/p>\n\n<p><strong>Can I be notified when a queue reaches a certain threshold?<\/strong><\/p>\n\n<p>Yes, you can optionally receive an email when the number of requests queued in a single queue reaches a configured\nthreshold. You can configure this in your <code>config\/config.ini.php<\/code> config file using the following configuration:<\/p>\n\n<pre><code>[QueuedTracking]\nnotify_queue_threshold_emails[] = example@example.org\nnotify_queue_threshold_single_queue = 250000\n<\/code><\/pre>\n\n<p><strong>Are there any known issues?<\/strong><\/p>\n\n<ul>\n<li>In case you are using bulk tracking the bulk tracking response varies compared to the regular one. We will always return\neither an image or a 204 HTTP response code in case the parameter <code>send_image=0<\/code> is sent.<\/li>\n<li>By design this plugin can delay the insertion of tracking requests causing real time plugins to not show the actual data since\nunder load tracking requests may take a while until they are replayed.<\/li>\n<\/ul>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>5.2.1 - 2026-10-20\n- Fixed queue processing failing with a fatal error, and some hits being counted twice, after a database deadlock or a MariaDB snapshot isolation conflict; requests hit by a snapshot isolation conflict are now retried\n- Fixed requests being lost when the retry after a database deadlock or snapshot isolation conflict failed because of a different request<\/p>\n\n<p>5.2.0 - 2025-11-25\n- No longer disable Provider plugin automatically. If performance issues occur, please disable it manually or install an ASN geolocation database (https:\/\/matomo.org\/faq\/how-to\/setting-up-accurate-visitors-geolocation\/).<\/p>\n\n<p>5.1.3 - 2025-09-01\n- Add support for Sentinel password\n- Security hardening<\/p>\n\n<p>5.1.2 - 2025-07-07\n- Textual changes<\/p>\n\n<p>5.1.1 - 2024-10-23\n- Fixed fatal error when running queuedtracking:monitor command on Windows<\/p>\n\n<p>5.1.0 - 2024-10-21\n- Increased number of queue tracking workers to 4096\n- Enhance queue monitor and process commands\n- Added Redis cluster option<\/p>\n\n<p>5.0.7 - 2024-08-26\n- Fixed old redis sentinel config issue<\/p>\n\n<p>5.0.6\n- Fixed unable to configure redis socket with port 0<\/p>\n\n<p>5.0.5\n- Improved plugin reliability\n- Added system settings to list of text that can be translated<\/p>\n\n<p>5.0.4\n- Added plugin category for Marketplace<\/p>\n\n<p>5.0.3\n- Added code to skip maxmemory config check when --skip-max-memory-config-check=1<\/p>\n\n<p>5.0.2\n- Fix merge issue in previous release<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5.0<\/p>\n\n<p>4.0.7\n- Improved error handling for tracking requests<\/p>\n\n<p>4.0.6\n- Started using flushDB instead of flushAll for Redis<\/p>\n\n<p>4.0.5\n- Translation changes<\/p>\n\n<p>4.0.4\n- Clarify inline help for \"Queue enabled\" config setting<\/p>\n\n<p>4.0.3\n- Replace Redis::delete() with Redis::del() and fix a warning<\/p>\n\n<p>4.0.2\n- Support new option <code>--force-num-requests-process-at-once<\/code> to the process command<\/p>\n\n<p>4.0.1\n- Improve compatibility with PHP 7.4<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4.0<\/p>\n\n<p>3.3.5\n- Improve update script to first add primary key and then remove index<\/p>\n\n<p>3.3.4\n- Use primary key instead of a unique index for mysql backend for better replication<\/p>\n\n<p>3.3.3\n- Add possibility to ignore queued tracking handler and track request directly into the database<\/p>\n\n<p>3.3.2\n- Send branded HTML email<\/p>\n\n<p>3.3.1\n- Support MySQLi adapter<\/p>\n\n<p>3.3.0 \n- When using 3rd party cookies, the 3rd party cookie value will not be overwritten by local site visitor id values<\/p>\n\n<p>3.2.1\n- Faster queue locking\n- More debug output while processing<\/p>\n\n<p>3.2.0\n- Added possibility to use a MySQL backend instead of redis\n- New option <code>queue-id<\/code> for the <code>queuedtracking:process<\/code> command which may improve processing speed as the command would only focus on one queue instead of trying to get the lock for a random queue.\n- Various other minor performance improvements\n- New feature: Get notified by email when a single queue reaches a specific threshold<\/p>\n\n<p>3.0.2<\/p>\n\n<ul>\n<li>Ensure do not track cookie works<\/li>\n<\/ul>\n\n<p>3.0.1<\/p>\n\n<ul>\n<li>Added possibility to define a unix socket instead of a host and path.<\/li>\n<\/ul>\n\n<p>3.0.0<\/p>\n\n<ul>\n<li>Compatibility with Piwik 3.0<\/li>\n<\/ul>\n\n<p>0.3.2<\/p>\n\n<ul>\n<li>Fixes a bug in the lock-status command where it may report a queue as locked while it was not<\/li>\n<\/ul>\n\n<p>0.3.1<\/p>\n\n<ul>\n<li>Fixed Redis Sentinel was not working properly. Sentinel can be now configured via the UI and not via config. Also\nmultiple servers can be configured now.<\/li>\n<\/ul>\n\n<p>0.3.0<\/p>\n\n<ul>\n<li>Added support to use Redis Sentinel for automatic failover<\/li>\n<\/ul>\n\n<p>0.2.6<\/p>\n\n<ul>\n<li>When a request takes more than 2 seconds and debug tracker mode is enabled, log information about the request.<\/li>\n<\/ul>\n\n<p>0.2.5<\/p>\n\n<ul>\n<li>Use a better random number generator if available on the system to more evenly process queues.<\/li>\n<\/ul>\n\n<p>0.2.4<\/p>\n\n<ul>\n<li>The command <code>queuedtracking:monitor<\/code> will now work even when the queue is disabled<\/li>\n<\/ul>\n\n<p>0.2.3<\/p>\n\n<ul>\n<li>Added more tests and information to the <code>queuedtracking:test<\/code> command<\/li>\n<li>It is now possible to configure up to 16 workers<\/li>\n<\/ul>\n\n<p>0.2.2<\/p>\n\n<ul>\n<li>Improved output for the new <code>test<\/code> command<\/li>\n<li>New FAQ entries<\/li>\n<\/ul>\n\n<p>0.2.1<\/p>\n\n<ul>\n<li>Added a new command to test the connection to Redis. To test yor connection use <code>.\/console queuedtracking:test<\/code><\/li>\n<\/ul>\n\n<p>0.2.0<\/p>\n\n<ul>\n<li>Compatibility w\/ Piwik 2.15.<\/li>\n<\/ul>\n\n<p>0.1.6<\/p>\n\n<ul>\n<li>For bulk requests we do no longer skip all tracking requests after a tracking request that has an invalid <code>idSite<\/code> set. The same behaviour was changed in Piwik 2.14 for regular bulk requests.<\/li>\n<\/ul>\n\n<p>0.1.5<\/p>\n\n<ul>\n<li>Fixed a notice in case an incompatible Redis version is used.<\/li>\n<\/ul>\n\n<p>0.1.4<\/p>\n\n<ul>\n<li>It is now possible to start multiple workers for faster insertion from Redis to the database. This can be configured in the \"Plugin Settings\"<\/li>\n<li>Monitor does now output information whether a processor is currently processing the queue.<\/li>\n<li>Added a new command <code>queuedtracking:lock-status<\/code> that outputs the status of each queue lock. This command can also unlock a queue by using the option <code>--unlock<\/code>.<\/li>\n<li>Added a new command <code>queuedtracking:print-queued-requests<\/code> that outputs the next requests to process in each queue.<\/li>\n<li>If someone passes the option <code>-vvv<\/code> to <code>.\/console queuedtracking:process<\/code> the Tracker debug mode will be enabled and additional information will be printed to the screen.<\/li>\n<\/ul>\n\n<p>0.1.2<\/p>\n\n<ul>\n<li>Updated description on Marketplace<\/li>\n<\/ul>\n\n<p>0.1.0<\/p>\n\n<ul>\n<li>Initial Release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/QueuedTracking\/download\/5.2.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/QueuedTracking\/changelog"},"consumer":{"license":null}},{"name":"QuickExcludeVisitorIP","displayName":"Quick Exclude Visitor IP","owner":"Findus23","description":"Adds a button to Visitor Profile to quickly add them to the list of ignored IPs.","homepage":"https:\/\/lw1.at","createdDateTime":"2020-05-22 14:44:03","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-QuickExcludeVisitorIP\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-QuickExcludeVisitorIP","type":"url"}],"isTheme":false,"keywords":["ip","ignore"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-QuickExcludeVisitorIP","lastUpdated":"2023-07-22 21:32:02","latestVersion":"0.2.0","numDownloads":16854,"screenshots":["https:\/\/plugins.matomo.org\/QuickExcludeVisitorIP\/images\/0.2.0\/Visitor_Log.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"4","numContributors":"1","lastCommitDate":"2023-07-22 21:30:40"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2020-05-22 14:44:03","requires":{"piwik":">=3.10.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7482,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-QuickExcludeVisitorIP\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/QuickExcludeVisitorIP\/download\/0.1.1"},{"name":"0.2.0","release":"2023-07-22 21:32:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9372,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-QuickExcludeVisitorIP\/commits\/0.2.0","readmeHtml":{"description":"\n\n<p>You want to ignore the visits of your colleagues with static IP addresses, but don't copy all of them manually?<\/p>\n\n<p>This plugin adds a <code>ignore<\/code> button to the visitor log that immediately adds the IP Address of the visitor to the global Matomo IP ignore list.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>0.2.0<\/h3>\n\n<p>Matomo 5 compatibility<\/p>\n\n<p>release version<\/p>\n\n<h3>0.1.1<\/h3>\n\n<p>release version<\/p>\n\n<h3>0.1.0<\/h3>\n\n<p>first beta version<\/p>"},"download":"\/api\/2.0\/plugins\/QuickExcludeVisitorIP\/download\/0.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/QuickExcludeVisitorIP\/changelog"},"consumer":{"license":null}},{"name":"RebelNotifications","displayName":"Rebel Notifications","owner":"Digitalist-Open-Cloud","description":"Show Notifications to your users.","homepage":"https:\/\/digitalist.cloud","createdDateTime":"2025-01-02 17:22:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/issues","type":"url"}],"isTheme":false,"keywords":["Notifications"],"basePrice":0,"authors":[{"name":"Digitalist Open Cloud","email":"cloud@digitalist.com","homepage":"https:\/\/digitalist.cloud"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications","lastUpdated":"2026-03-02 08:18:03","latestVersion":"5.0.8","numDownloads":9606,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/RebelNotifications\/images\/5.0.8\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-03-02 08:17:58"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"5.0.0","release":"2025-01-02 17:22:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelNotifications\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelNotifications\/download\/5.0.0"},{"name":"5.0.1","release":"2025-01-02 17:38:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelNotifications\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelNotifications\/download\/5.0.1"},{"name":"5.0.2","release":"2025-01-02 22:06:04","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelNotifications\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelNotifications\/download\/5.0.2"},{"name":"5.0.3","release":"2025-01-02 22:16:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelNotifications\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelNotifications\/download\/5.0.3"},{"name":"5.0.4","release":"2025-01-03 11:12:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":57,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelNotifications\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelNotifications\/download\/5.0.4"},{"name":"5.0.5","release":"2025-01-09 09:56:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2304,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelNotifications\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelNotifications\/download\/5.0.5"},{"name":"5.0.6","release":"2026-02-27 13:52:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelNotifications\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelNotifications\/download\/5.0.6"},{"name":"5.0.8","release":"2026-03-02 08:18:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7203,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelNotifications\/5.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/commits\/5.0.8","readmeHtml":{"description":"\n\n<p>With Rebel Notifications you can add notifications to your users, with a range of settings:<\/p>\n\n<ul>\n<li>Type of notification<\/li>\n<li>Use HTML (links, images etc.)<\/li>\n<li>Priority<\/li>\n<li>Etc.<\/li>\n<\/ul>\n\n<p>Rebel Notifications are using the built in Notifications in Matomo and adds a UI to it to create custom notifications.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What does Rebel in the name of the plugin stand for?<\/strong><\/p>\n\n<p>RebelMetrics, Rebel for short, is Matomo on super charged batteries from Digitalist Open Cloud, with pre-configured dashboards, SQL-lab and much more. We offer 1 month free trial for organizations and companies. If you are interested, email us at <a href=\"mailto:cloud@digitalist.com\">cloud@digitalist.com<\/a> to book a demo.<\/p>\n\n<p><strong>What does this plugin do?<\/strong><\/p>\n\n<p>Notifications are built into Matomo, and is used by Matomo core to display notifications to the users. With Notifications as a base we have built Rebel Notifications which is custom notifications you set yourself to display messages to the users of the Matomo instance.<\/p>\n\n<p><strong>What is Digitalist Open Cloud?<\/strong><\/p>\n\n<p>Digitalist Open Cloud is a Swedish Open SaaS-provider. We build SaaS-services of open source and make sure to contribute back to the projects we are building our services upon. We always use green-hosting for our SaaS-services, and provide GDPR-safe services to our customers.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li><strong>Requires<\/strong>: Matomo &gt;= 5.0.0<\/li>\n<li><strong>License<\/strong>: GPL v3+<\/li>\n<\/ul>\n\n<p>With an API-first approach with Rebel Notifications you could easily automate notifications in your Matomo-instances. You could also display many notifications at once, use HTML with notifications, etc.<\/p>\n\n<h2>Status for tests<\/h2>\n\n<p><img src=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/actions\/workflows\/matomo.yaml\/badge.svg\" alt=\"badge.svg\" \/> <img src=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/actions\/workflows\/semgrep.yaml\/badge.svg\" alt=\"badge.svg\" \/> <img src=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelNotifications\/actions\/workflows\/phpcs.yaml\/badge.svg\" alt=\"badge.svg\" \/><\/p>\n\n<p>Tests is done with <a href=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-github-action-tests\">Matomo GitHub Action Tests<\/a>, which tests the plugin with Integration-tests against the least (8.3) and highest (8.5) supported PHP-version together with the least (5.0.0) and highest available version of Matomo.<\/p>\n\n<h2>What is Rebel?<\/h2>\n\n<p>Rebel is short for RebelMetrics. RebelMetrics is Matomo on super charged batteries from Digitalist Open Cloud, with pre-configured dashboards, SQL-lab and more. We offer 1 month free trial for organizations and companies. If you are interested, email us at <a href=\"mailto:cloud@digitalist.com\">cloud@digitalist.com<\/a> to book a demo.<\/p>\n\n<h2>Description<\/h2>\n\n<p>With Rebel Notifications you can add notifications to your users, with a range of settings:<\/p>\n\n<ul>\n<li>Type of notification<\/li>\n<li>Use HTML (links, images etc.)<\/li>\n<li>Priority<\/li>\n<li>Etc.<\/li>\n<\/ul>\n\n<p>Rebel Notifications are using the built in Notifications in Matomo and adds a UI to it to create custom notifications.<\/p>\n\n<h2>Inspiration<\/h2>\n\n<p>This plugin was inspired by the <a href=\"https:\/\/plugins.matomo.org\/AdminNotification\">Admin Notification<\/a> plugin by <a href=\"https:\/\/github.com\/jbrule\">Josh Brule<\/a>.<\/p>\n\n<h2>Installation<\/h2>\n\n<p>Install the plugin as you normally install any Matomo plugin.<\/p>\n\n<h2>Usage<\/h2>\n\n<p>After installation, a new menu item is visible in the admin part of Matomo - \"Rebel Notifications\".\nAt \"Manage\" you can add, edit and delete notifications.<\/p>\n\n<p>When you add or change a notification, nothing is changed until you logout and login. The triggering event for the notifications is <code>Login.authenticate.successful<\/code> - which means that nothing updates until you login.<\/p>\n\n<h2>Using Rebel Notifications with the console<\/h2>\n\n<h3>Create a notification<\/h3>\n\n<pre><code>.\/console rebelnotifications:create --enabled --raw --title=\"My title\" --message=\"This is the message in &lt;strong&gt;bold&lt;\/strong&gt;\" --context=warning --priority=50 --type=persistent\n<\/code><\/pre>\n\n<h4>Options<\/h4>\n\n<ul>\n<li><code>--enabled<\/code> - Set notification as enabled<\/li>\n<li><code>--raw<\/code> - Allow limited HTML input in message (see allowed tags below)<\/li>\n<li><code>--title<\/code> - Notification title (required)<\/li>\n<li><code>--message<\/code> - Notification message (required)<\/li>\n<li><code>--context<\/code> - Context: warning, info, success, error (required)<\/li>\n<li><code>--priority<\/code> - Priority number (required)<\/li>\n<li><code>--type<\/code> - Type: persistent, transitory (required)<\/li>\n<\/ul>\n\n<h3>List notifications<\/h3>\n\n<h4>All notifications<\/h4>\n\n<pre><code>.\/console rebelnotifications:list\n<\/code><\/pre>\n\n<h4>Enabled notifications<\/h4>\n\n<pre><code>.\/console rebelnotifications:list --enabled\n<\/code><\/pre>\n\n<h2>Using RebelNotifications with Matomo API<\/h2>\n\n<p>Examples with curl.<\/p>\n\n<h3>Create a notification<\/h3>\n\n<pre><code>curl -X POST \"https:\/\/MATOMO.URL\/index.php\" \\\n     -d \"module=API\" \\\n     -d \"method=RebelNotifications.insertNotification\" \\\n     -d \"enabled=1\" \\\n     -d \"title=bar\" \\\n     -d \"message=foo is bar\" \\\n     -d \"context=warning\" \\\n     -d \"priority=25\" \\\n     -d \"type=persistent\" \\\n     -d \"raw=0\" \\\n     -d \"token_auth=A_SECURE_TOKEN\" \\\n     -d \"format=JSON\"\n<\/code><\/pre>\n\n<h3>Edit a notification<\/h3>\n\n<pre><code>curl -X POST \"https:\/\/MATOMO.URL\/index.php\" \\\n     -d \"module=API\" \\\n     -d \"method=RebelNotifications.updateNotification\" \\\n     -d \"id=24\" \\\n     -d \"enabled=1\" \\\n     -d \"title=bar\" \\\n     -d \"message=Changing the message\" \\\n     -d \"context=warning\" \\\n     -d \"priority=25\" \\\n     -d \"type=persistent\" \\\n     -d \"raw=0\" \\\n     -d \"token_auth=A_SECURE_TOKEN\" \\\n     -d \"format=JSON\"\n<\/code><\/pre>\n\n<h3>Delete a notification<\/h3>\n\n<pre><code>curl -X POST \"https:\/\/MATOMO.URL\/index.php\" \\\n     -d \"module=API\" \\\n     -d \"method=RebelNotifications.deleteNotification\" \\\n     -d \"id=24\" \\\n     -d \"token_auth=A_SECURE_TOKEN\" \\\n     -d \"format=JSON\"\n<\/code><\/pre>\n\n<h3>List enabled notifications<\/h3>\n\n<pre><code>curl -X POST \"https:\/\/MATOMO.URL\/index.php\" \\\n     -d \"module=API\" \\\n     -d \"method=RebelNotifications.getEnabledNotifications\" \\\n     -d \"token_auth=A_SECURE_TOKEN\" \\\n     -d \"format=JSON\"\n<\/code><\/pre>\n\n<h3>List disabled notifications<\/h3>\n\n<pre><code>curl -X POST \"https:\/\/MATOMO.URL\/index.php\" \\\n     -d \"module=API\" \\\n     -d \"method=RebelNotifications.getDisabledNotifications\" \\\n     -d \"token_auth=A_SECURE_TOKEN\" \\\n     -d \"format=JSON\"\n<\/code><\/pre>\n\n<h3>List all notifications<\/h3>\n\n<pre><code>curl -X POST \"https:\/\/MATOMO.URL\/index.php\" \\\n     -d \"module=API\" \\\n     -d \"method=RebelNotifications.getAllNotifications\" \\\n     -d \"token_auth=A_SECURE_TOKEN\" \\\n     -d \"format=JSON\"\n<\/code><\/pre>\n\n<h2>API Methods<\/h2>\n\n<p>The plugin provides the following API methods:<\/p>\n\n\n\n\n  Method\n  Description\n\n\n\n\n  <code>RebelNotifications.insertNotification<\/code>\n  Create a new notification\n\n\n  <code>RebelNotifications.updateNotification<\/code>\n  Update an existing notification\n\n\n  <code>RebelNotifications.deleteNotification<\/code>\n  Delete a notification\n\n\n  <code>RebelNotifications.getEnabledNotifications<\/code>\n  Get all enabled notifications\n\n\n  <code>RebelNotifications.getDisabledNotifications<\/code>\n  Get all disabled notifications\n\n\n  <code>RebelNotifications.getAllNotifications<\/code>\n  Get all notifications\n\n\n\n\n<h3>Parameter Reference<\/h3>\n\n\n\n\n  Parameter\n  Type\n  Description\n\n\n\n\n  <code>enabled<\/code>\n  int\n  1 = enabled, 0 = disabled\n\n\n  <code>title<\/code>\n  string\n  Notification title\n\n\n  <code>message<\/code>\n  string\n  Notification message (supports HTML if raw=1)\n\n\n  <code>context<\/code>\n  string\n  warning, info, success, error\n\n\n  <code>priority<\/code>\n  int\n  Priority number (higher = more important)\n\n\n  <code>type<\/code>\n  string\n  persistent or transitory\n\n\n  <code>raw<\/code>\n  int\n  1 = allow HTML (see allowed tags below), 0 = strip all HTML\n\n\n\n\n<h3>Allowed HTML tags when using raw input<\/h3>\n\n<p>When <code>raw=1<\/code> (or <code>--raw<\/code> flag), the following HTML tags are allowed in the message:<\/p>\n\n<ul>\n<li><code>&lt;b&gt;<\/code>, <code>&lt;strong&gt;<\/code> - Bold text<\/li>\n<li><code>&lt;i&gt;<\/code>, <code>&lt;em&gt;<\/code> - Italic text<\/li>\n<li><code>&lt;a&gt;<\/code> - Links<\/li>\n<li><code>&lt;h1&gt;<\/code>, <code>&lt;h2&gt;<\/code>, <code>&lt;h3&gt;<\/code>, <code>&lt;h4&gt;<\/code>, <code>&lt;h5&gt;<\/code>, <code>&lt;h6&gt;<\/code> - Headings<\/li>\n<\/ul>\n\n<p>All other HTML tags (including <code>&lt;script&gt;<\/code>, <code>&lt;iframe&gt;<\/code>, <code>&lt;object&gt;<\/code>, etc.) will be stripped for security.<\/p>\n\n<h2>License<\/h2>\n\n<p>Copyright (C) Digitalist Open Cloud <a href=\"mailto:cloud@digitalist.com\">cloud@digitalist.com<\/a><\/p>\n\n<p>This program is free software: you can redistribute it and\/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.<\/p>\n\n<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.<\/p>\n\n<p>You should have received a copy of the GNU General Public License along with this program.  If not, see <a href=\"https:\/\/www.gnu.org\/licenses\/\">https:\/\/www.gnu.org\/licenses\/<\/a>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[5.0.8] - 2026-03-02<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Make sure integer values really are integers.<\/li>\n<\/ul>\n\n<h2>[5.0.7] - 2026-03-01<\/h2>\n\n<h3>Security<\/h3>\n\n<ul>\n<li>Added CSRF nonce protection<\/li>\n<\/ul>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>More tests, to check for nonce.<\/li>\n<li>Added nonce field to create form, converted delete link to POST form<\/li>\n<li>Added nonce field to update form<\/li>\n<\/ul>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Code improvements for <code>API.php<\/code><\/li>\n<li>Removed duplicate option in <code>Commands\/CreateNotification.php<\/code><\/li>\n<\/ul>\n\n<h2>[5.0.6] - 2026-02-27<\/h2>\n\n<h3>Security<\/h3>\n\n<ul>\n<li>Added filter for HTML - setting allowed tags, so a user with Super admin access can not inject scripts.<\/li>\n<\/ul>\n\n<h2>[5.0.4] - 2025-01-03<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Console commands to create and list notifications.<\/li>\n<li>Improved usability on the manage page for notifications.<\/li>\n<\/ul>\n\n<h2>[5.0.3] - 2025-01-02<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Changelog :)<\/li>\n<li>Copied README.md to docs\/index.md<\/li>\n<\/ul>\n\n<h2>[5.0.2] - 2025-01-02<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Missing translation for menu.<\/li>\n<\/ul>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>More code adjustment to make both code and test work as designed.<\/li>\n<\/ul>\n\n<h2>[5.0.1] - 2025-01-02<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Some code fixes for tests.<\/li>\n<\/ul>\n\n<h2>[5.0.0] - 2025-01-02<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>First release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/RebelNotifications\/download\/5.0.8"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/RebelNotifications\/changelog"},"consumer":{"license":null}},{"name":"RebelOIDC","displayName":"Rebel OIDC","owner":"Digitalist-Open-Cloud","description":"Adds OIDC login to your Matomo instance.","homepage":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC","createdDateTime":"2025-01-17 14:46:02","donate":{},"support":[{"name":"Email","key":"email","value":"cloud@digitalist.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC","type":"url"}],"isTheme":false,"keywords":["login","authentication","sso","oauth","openid","connect"],"basePrice":0,"authors":[{"name":"Digitalist Open Cloud","email":"cloud@digitalist.com","homepage":"https:\/\/digitalist.cloud"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC","lastUpdated":"2026-02-03 23:14:02","latestVersion":"5.1.6","numDownloads":179169,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/RebelOIDC\/images\/5.1.6\/_cover.png","previews":[],"activity":{"numCommits":"149","numContributors":"10","lastCommitDate":"2026-10-19 08:19:35"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"5.1.0","release":"2025-01-17 14:46:02","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":73,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelOIDC\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelOIDC\/download\/5.1.0"},{"name":"5.1.1","release":"2025-01-18 11:38:03","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":44438,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelOIDC\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelOIDC\/download\/5.1.1"},{"name":"5.1.2","release":"2026-02-01 17:08:03","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":282,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelOIDC\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelOIDC\/download\/5.1.2"},{"name":"5.1.3","release":"2026-02-02 10:46:03","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":601,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelOIDC\/5.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelOIDC\/download\/5.1.3"},{"name":"5.1.4","release":"2026-02-03 18:00:03","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":53,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelOIDC\/5.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelOIDC\/download\/5.1.4"},{"name":"5.1.5","release":"2026-02-03 22:52:03","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelOIDC\/5.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/commits\/5.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RebelOIDC\/download\/5.1.5"},{"name":"5.1.6","release":"2026-02-03 23:14:02","requires":{"php":">=8.0.0","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":133705,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RebelOIDC\/5.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/commits\/5.1.6","readmeHtml":{"description":"\n\n<p>Login to Matomo with third party authentication services that provides Open ID Connect (OIDC). Check in <a href=\"docs\/faq.md\">FAQ<\/a> for details on how to connect with your provider.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What is the callback url?<\/strong><\/p>\n\n<p><code>http(s):\/\/&lt;YOUR_MATOMO_URL&gt;\/index.php?module=RebelOIDC&amp;action=callback&amp;provider=oidc<\/code><\/p>\n\n<p><strong>If I have existing users in Matomo, and adding RebelOIDC - how would I handle the existing users?<\/strong><\/p>\n\n<p>In the system settings there is a checkbox to auto link users - activating this, would keep your existing users with the user in the OIDC-provider if they have the same email.<\/p>\n\n<p><strong>Which providers can I use?<\/strong><\/p>\n\n<p>I tested the plugin with Auth0, GitHub and Keycloak, which work fine.\nIf your provider does not seem to work, leave an issue on GitHub.<\/p>\n\n<p><strong>How can I unlink all users?<\/strong><\/p>\n\n<p>The easiest way is to fully uninstall the plugin and reinstall afterwards.\nOtherwise you can delete data from <code>matomo_rebeloidc_provider<\/code> in your sql database.<\/p>\n\n<p>If you change the OAuth provider and there could be user id collisions, you should make sure to unlink all users beforehand.<\/p>\n\n<p><strong>Can I embed the Login button on another website?<\/strong><\/p>\n\n<p>You have to uncheck the <code>Disable direct login url<\/code> option in the settings.\nAfterwards you can link to <code>http(s):\/\/&lt;YOUR_MATOMO_URL&gt;\/index.php?module=RebelOIDC&amp;action=signIn&amp;provider=oidc<\/code> and Matomo will redirect the client accordingly.<\/p>\n\n<p><strong>Can I setup more than one provider?<\/strong><\/p>\n\n<p>Currently that is <strong>not<\/strong> possible.\nBut you can use services like Auth0, which support multiple providers.<\/p>\n\n<p><strong>I get a <code>Can't create table<\/code> error when installing the plugin<\/strong><\/p>\n\n<p>Most likely you are using a very old Piwik installation, which still uses MyISAM tables.\nLearn here on how to update the database engine:\nhttps:\/\/matomo.org\/faq\/troubleshooting\/faq_25610\/<\/p>\n\n<p><strong>What are the settings for ...?<\/strong><\/p>\n\n<ul>\n<li><p>GitHub:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/github.com\/login\/oauth\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/github.com\/login\/oauth\/access_token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/api.github.com\/user<\/code><\/li>\n<li>Userinfo ID: <code>id<\/code><\/li>\n<li>OAuth Scopes: <code>&lt;EMPTY&gt;<\/code><\/li>\n<\/ul><\/li>\n<li><p>Auth0:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/oauth\/token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/&lt;USERNAME&gt;.eu.auth0.com\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Keycloak (after 17.x):<\/p>\n\n<ul>\n<li>Authorize URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/auth<\/code><\/li>\n<li>Token URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/token<\/code><\/li>\n<li>Userinfo URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/userinfo<\/code><\/li>\n<li>Logout URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/logout?redirect_uri=&lt;MATOMO_URL&gt;<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Keycloak (before 17.x):<\/p>\n\n<ul>\n<li>Authorize URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/auth<\/code><\/li>\n<li>Token URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/token<\/code><\/li>\n<li>Userinfo URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/userinfo<\/code><\/li>\n<li>Logout URL: <code>http(s):\/\/&lt;YOUR_KEYCLOAK_URL&gt;\/auth\/realms\/&lt;REALM&gt;\/protocol\/openid-connect\/logout?redirect_uri=&lt;MATOMO_URL&gt;<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Gitlab (self-hosted Community Edition 12.6.2):<\/p>\n\n<ul>\n<li>Authorize URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/authorize<\/code><\/li>\n<li>Token URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/token<\/code><\/li>\n<li>Userinfo URL: <code>http(s):\/\/&lt;YOUR_GITLAB_URL&gt;\/oauth\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Unikname Connect:<\/p>\n\n<ul>\n<li>Name: <code>Connect with your private @unikname<\/code><\/li>\n<li>Authorize URL: <code>https:\/\/connect.unikname.com\/oidc\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/connect.unikname.com\/oidc\/accessToken<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/connect.unikname.com\/oidc\/profile<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Microsoft Entra ID:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/login.microsoftonline.com\/&lt;TENANT_ID&gt;\/oauth2\/v2.0\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/login.microsoftonline.com\/&lt;TENANT_ID&gt;\/oauth2\/v2.0\/token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/graph.microsoft.com\/oidc\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Authentik:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/application\/o\/authorize\/<\/code><\/li>\n<li>Token URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/application\/o\/token\/<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/application\/o\/userinfo\/<\/code><\/li>\n<li>Logout URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/application\/o\/&lt;YOUR_AUTHENTIK_APPLICATION_SLUG&gt;\/end-session\/<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>Client ID + Secret from Authentik Provider<\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul>\n\n<p>In the Authentik Provider:<\/p>\n\n<ul>\n<li>Redirect URIs: <code>.*<\/code> (only that worked for me, don't forget the DOT before!)\nRemaining inputs for provider and application as normal.<\/li>\n<\/ul><\/li>\n<li><p>Okta:<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/${yourOktaDomain}\/oauth2\/v1\/authorize<\/code><\/li>\n<li>Token URL: <code>https:\/\/${yourOktaDomain}\/oauth2\/v1\/token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/${yourOktaDomain}\/oauth2\/v1\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>email<\/code><\/li>\n<li>OAuth Scopes: <code>openid email<\/code><\/li>\n<\/ul><\/li>\n<li><p>Authelia<\/p>\n\n<ul>\n<li>Authorize URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/api\/oidc\/authorization<\/code><\/li>\n<li>Token URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/api\/oidc\/token<\/code><\/li>\n<li>Userinfo URL: <code>https:\/\/&lt;YOUR_AUTHENTIK_URL&gt;\/api\/oidc\/userinfo<\/code><\/li>\n<li>Userinfo ID: <code>sub<\/code><\/li>\n<li>OAuth Scopes: <code>openid profile email groups<\/code><\/li>\n<\/ul><\/li>\n<\/ul>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[5.1.4] - 2026-02-03<\/h2>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>#35 Extract Roles from MS Entra ID tokens. Thanks to @acassaro-traf for this contribution.<\/li>\n<li>#39 Add decodedToken variable. Thanks to @acassaro-traf for this contribution.<\/li>\n<\/ul>\n\n<h2>[5.1.3] - 2026-02-02<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Fine-Grained permissions for users based on claim - <a href=\"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/pull\/32\">https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-RebelOIDC\/pull\/32<\/a>. Thanks to @daniellienert for this contribution.<\/li>\n<\/ul>\n\n<h2>[5.1.2] - 2026-02-01<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>If token is encrypted, it should now succeed. Thanks to @ fpellet for this contribution.<\/li>\n<\/ul>\n\n<h2>[5.1.1] - 2025-01-18<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Possibility to configure which claim to use for user name in Matomo - like id, email, preferred_username etc.<\/li>\n<\/ul>\n\n<h2>[5.1.0] - 2025-01-17<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>This plugin was released, with several fixes from the pull request queue from the original plugin <a href=\"https:\/\/github.com\/dominik-th\/matomo-plugin-LoginOIDC\">LoginOIDC<\/a>. Changes will from now be documented in the Change Log. Also some new functions were added, that were not in the LoginOIDC pull request queue. Also, this plugin is not a drop in replacement for LoginOIDC, you need to remove LoginOIDC and add and install this plugin instead.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/RebelOIDC\/download\/5.1.6"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/RebelOIDC\/changelog"},"consumer":{"license":null}},{"name":"ReferrersManager","displayName":"Referrers Manager","owner":"sgiehl","description":"Allows to view and manage the search engines, social networks, and AI assistants that Matomo is able to detect.","homepage":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager","createdDateTime":"2014-02-01 21:48:04","donate":{"paypal":"stefangiehl@web.de","flattr":"https:\/\/flattr.com\/thing\/3787742\/sgiehlpiwik-plugin-ReferrersManager-on-GitHub","bitcoin":null},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/issues","type":"url"},{"name":"Email","key":"email","value":"stefan@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/issues","type":"url"}],"isTheme":false,"keywords":["referrer","search","engine","social"],"basePrice":0,"authors":[{"name":"Stefan Giehl","email":"stefan@matomo.org","homepage":"https:\/\/github.com\/sgiehl"}],"repositoryUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager","lastUpdated":"2026-08-09 16:14:04","latestVersion":"6.0.0","numDownloads":96075,"screenshots":["https:\/\/plugins.matomo.org\/ReferrersManager\/images\/6.0.0\/aiassistants.png","https:\/\/plugins.matomo.org\/ReferrersManager\/images\/6.0.0\/check_url.png","https:\/\/plugins.matomo.org\/ReferrersManager\/images\/6.0.0\/search_engines.png","https:\/\/plugins.matomo.org\/ReferrersManager\/images\/6.0.0\/socials.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"284","numContributors":"29","lastCommitDate":"2026-10-14 13:26:45"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0","release":"2014-02-01 21:48:04","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/v1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.0"},{"name":"1.1","release":"2014-02-01 22:08:04","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":181,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/v1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.1"},{"name":"1.2","release":"2014-03-04 08:30:05","requires":{"piwik":">=2.0.4","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1755,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/v1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.2"},{"name":"1.3","release":"2014-06-08 16:50:04","requires":{"piwik":">=2.4.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5157,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/v1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.3"},{"name":"1.4","release":"2015-06-01 07:08:03","requires":{"piwik":">=2.4.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1833,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.4"},{"name":"1.5","release":"2015-08-15 17:12:03","requires":{"piwik":">=2.4.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2347,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.5"},{"name":"1.6","release":"2015-11-09 21:06:03","requires":{"piwik":">=2.4.0","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3814,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.6"},{"name":"1.7","release":"2016-04-08 22:28:05","requires":{"piwik":">=2.4.0","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1272,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.7"},{"name":"1.8","release":"2016-05-08 22:06:04","requires":{"piwik":">=2.4.0","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3643,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.8"},{"name":"1.9","release":"2016-09-09 09:40:05","requires":{"piwik":">=2.4.0,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2922,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/1.9"},{"name":"3.0","release":"2016-09-11 13:22:04","requires":{"piwik":">=3.0.0-b1,<4.0.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/3.0"},{"name":"3.0.1","release":"2016-09-11 13:34:04","requires":{"piwik":">=3.0.0-b1,<4.0.0","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3447,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/3.0.1"},{"name":"3.0.2","release":"2017-02-11 20:12:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2724,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/3.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/3.0.2"},{"name":"3.0.3","release":"2017-05-09 07:16:05","requires":{"piwik":">=3.0.3,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4683,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/3.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/3.0.3"},{"name":"3.0.4","release":"2018-01-27 22:16:04","requires":{"piwik":">=3.0.3,<4.0.0-b1","php":">=5.5.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11761,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/3.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/3.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/3.0.4"},{"name":"4.0.0","release":"2020-07-09 09:02:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1907,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/4.0.0"},{"name":"4.0.1","release":"2021-01-19 15:32:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4765,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/4.0.1"},{"name":"4.0.2","release":"2022-03-11 10:00:02","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3224,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/4.0.2"},{"name":"4.0.3","release":"2022-07-25 19:14:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5186,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/4.0.3"},{"name":"4.0.4","release":"2023-06-05 09:08:03","requires":{"piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12419,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/4.0.4"},{"name":"5.0.0","release":"2023-06-06 12:06:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":55,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/5.0.0"},{"name":"5.0.1","release":"2023-08-21 13:48:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14204,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/5.0.1"},{"name":"5.1.0","release":"2025-12-26 22:38:03","requires":{"matomo":">=5.5.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8663,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/5.1.0"},{"name":"6.0.0","release":"2026-08-09 16:14:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":99,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReferrersManager\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-ReferrersManager\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugin allows to view and manage custom search engines, social networks, and AI assistants that are recognized with Matomo.\nNote: You can find the configuration panel for this plugin within the global administration. There are no changes done to the Matomo frontend\/dashboard.<\/p>\n\n<h3>Requirements<\/h3>\n\n<p><a href=\"https:\/\/github.com\/matomo-org\/matomo\">Matomo<\/a> 5.0.0-b1 or higher is required.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Shows a list of all search engines, social networks, and AI assistants defined in Matomo core.<\/li>\n<li>Ability to manage custom search engines, social networks, and AI assistants<\/li>\n<li>Ability to disable\/enable Matomo's default social network list<\/li>\n<li>Ability to disable\/enable Matomo's default AI assistants list<\/li>\n<\/ul>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>6.0.0<\/strong><\/p>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<\/ul>\n\n<p><strong>5.1.0<\/strong><\/p>\n\n<ul>\n<li>Add AI assistant management alongside search engines and social networks<\/li>\n<li>Extend URL checker to detect AI assistants<\/li>\n<\/ul>\n\n<p><strong>5.0.0<\/strong><\/p>\n\n<ul>\n<li>Migrate AngularJS components to Vue.js<\/li>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<p><strong>4.0.4<\/strong><\/p>\n\n<ul>\n<li>Minor code improvements<\/li>\n<li>Translation updates<\/li>\n<\/ul>\n\n<p><strong>4.0.3<\/strong><\/p>\n\n<ul>\n<li>Small UI\/UX improvements<\/li>\n<li>Translation updates<\/li>\n<\/ul>\n\n<p><strong>4.0.2<\/strong><\/p>\n\n<ul>\n<li>Translation updates<\/li>\n<li>Small UI improvements<\/li>\n<\/ul>\n\n<p><strong>4.0.1<\/strong><\/p>\n\n<ul>\n<li>Translation updates<\/li>\n<\/ul>\n\n<p><strong>4.0.0<\/strong><\/p>\n\n<ul>\n<li>Compatibility for Piwik 4.x<\/li>\n<\/ul>\n\n<p><strong>3.0.4<\/strong><\/p>\n\n<ul>\n<li>Piwik ist now Matomo<\/li>\n<\/ul>\n\n<p><strong>3.0<\/strong><\/p>\n\n<ul>\n<li>Compatibility for Piwik 3.x<\/li>\n<li>Rewrote UI using angular JS<\/li>\n<li>Materialised UI\/UX<\/li>\n<li>Searchable lists for search engines \/ social networks<\/li>\n<\/ul>\n\n<p><strong>1.9<\/strong><\/p>\n\n<ul>\n<li>Mark plugin as incompatible with 3.x<\/li>\n<li>Translation updates<\/li>\n<\/ul>\n\n<p><strong>1.8<\/strong><\/p>\n\n<ul>\n<li>fixes minor bugs<\/li>\n<li>adds possibility to refresh lists (clears caches)<\/li>\n<\/ul>\n\n<p><strong>1.7<\/strong><\/p>\n\n<ul>\n<li>Fix Compatibility with Piwik 2.16<\/li>\n<\/ul>\n\n<p><strong>1.6<\/strong><\/p>\n\n<ul>\n<li>Compatibility for Piwik &gt; 2.15 \/ translation updates<\/li>\n<\/ul>\n\n<p><strong>1.5<\/strong><\/p>\n\n<ul>\n<li>Compatibility issues for older Piwik versions<\/li>\n<\/ul>\n\n<p><strong>1.4<\/strong><\/p>\n\n<ul>\n<li>Translation updates<\/li>\n<\/ul>\n\n<p><strong>1.3<\/strong><\/p>\n\n<ul>\n<li>Adjustments for new Piwik menu api<\/li>\n<\/ul>\n\n<p><strong>1.2<\/strong><\/p>\n\n<ul>\n<li>Compatibility fix for PHP &lt; 5.4<\/li>\n<\/ul>\n\n<p><strong>1.1<\/strong><\/p>\n\n<ul>\n<li>Minor Changes<\/li>\n<\/ul>\n\n<p><strong>1.0<\/strong><\/p>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ReferrersManager\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ReferrersManager\/changelog"},"consumer":{"license":null}},{"name":"ReportPublisher","displayName":"Report Publisher","owner":"JulienMoumne","description":"Publish Matomo (Piwik) reports to external systems using various protocols. Please consult the changelog for available protocols.","homepage":"https:\/\/github.com\/JulienMoumne\/piwik-report-publisher","createdDateTime":"2013-12-20 13:42:04","donate":{"paypal":"julien@piwik.org","bitcoin":null},"support":[],"isTheme":false,"keywords":["Report","Publish","FTP"],"basePrice":0,"authors":[{"name":"Julien Moumn\u00e9","email":"julien@piwik.org","homepage":"http:\/\/moumne.com"}],"repositoryUrl":"https:\/\/github.com\/JulienMoumne\/piwik-report-publisher","lastUpdated":"2014-03-16 21:32:04","latestVersion":"0.2.2","numDownloads":12097,"screenshots":["https:\/\/plugins.matomo.org\/ReportPublisher\/images\/0.2.2\/configure-report-to-ftp.png","https:\/\/plugins.matomo.org\/ReportPublisher\/images\/0.2.2\/report-configured-to-ftp.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"6","numContributors":"1","lastCommitDate":"2014-03-16 21:30:40"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.2.0","release":"2013-12-20 13:42:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":599,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JulienMoumne\/piwik-report-publisher\/commits\/v0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ReportPublisher\/download\/0.2.0"},{"name":"0.2.2","release":"2014-03-16 21:32:04","requires":{"piwik":">=2.0.1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11498,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/JulienMoumne\/piwik-report-publisher\/commits\/v0.2.2","readmeHtml":{"description":"\n\n<p>By using standard protocols (FTP, Web-services, ..) the Report Publisher plugin can automatically and periodically send reports to third-party systems such as :<\/p>\n\n<ul>\n<li>CMS<\/li>\n<li>Websites, Blogs<\/li>\n<li>FTP servers<\/li>\n<li>Cloud repositories<\/li>\n<\/ul>\n\n<p>Currently supported protocols are listed in the changelog.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>ScheduledReports plugin<\/li>\n<\/ul>\n\n<h3>Copyright and license<\/h3>\n\n<p>Released under the GPL v3 (or later) license, see <a href=\"misc\/gpl-3.0.txt\">misc\/gpl-3.0.txt<\/a><\/p>\n\n","faq":"","documentation":"","changelog":"<h3>0.2.1 &amp; 0.2.2 (Mar 16, 2014)<\/h3>\n\n<p>Improved Piwik Marketplace Integration<\/p>\n\n<h3>0.2.0 (Dec 20, 2013)<\/h3>\n\n<p>Piwik Marketplace Release<\/p>\n\n<ul>\n<li><strong>Supported Piwik Versions:<\/strong>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/piwik\/piwik\/tree\/2.0.1\">Piwik 2.0.1<\/a><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h3>0.1.0 (June 15, 2012)<\/h3>\n\n<p>Initial release<\/p>\n\n<ul>\n<li><p><strong>Supported Protocols:<\/strong><\/p>\n\n<ul>\n<li>vanilla FTP<\/li>\n<\/ul><\/li>\n<li><p><strong>Supported Piwik Versions:<\/strong><\/p>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/piwik\/piwik\/tree\/1.8.3\">Piwik 1.8.3<\/a><\/li>\n<\/ul><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ReportPublisher\/download\/0.2.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ReportPublisher\/changelog"},"consumer":{"license":null}},{"name":"ReportSorter","displayName":"Report Sorter","owner":"Chardonneaur","description":"Drag and drop to reorder reports on any Matomo report page. Each user saves their own custom layout, independently of other users. Works on all standa.","homepage":"https:\/\/github.com\/chardonneaur\/ReportSorter","createdDateTime":"2026-03-05 10:16:02","donate":{},"support":[{"name":"Email","key":"email","value":"contact@ronan-chardonneau.fr","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/chardonneaur\/ReportSorter\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/chardonneaur\/ReportSorter","type":"url"}],"isTheme":false,"keywords":["dashboard","reports","ui","sort","reorder"],"basePrice":0,"authors":[{"name":"Ronan Chardonneau","email":"contact@ronan-chardonneau.fr","homepage":"https:\/\/ronan-chardonneau.fr"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/ReportSorter","lastUpdated":"2026-03-05 10:16:02","latestVersion":"1.0.0","numDownloads":4489,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/customisation.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-03-05 10:15:41"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"customisation","categories":["customisation"],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-03-05 10:16:02","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4489,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/ReportSorter\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/ReportSorter\/commits\/1.0.0","readmeHtml":{"description":"\n\n<p>ReportSorter lets every Matomo user arrange the reports on any standard subcategory page in whatever order works best for them \u2014 without touching Matomo configuration or affecting other users.<\/p>\n\n<p>A <strong>\u2195 Sort reports<\/strong> button appears on every standard report page (e.g. Visitors \u2192 Locations, Acquisition \u2192 Channels, Behaviour \u2192 Pages). Click it, drag the reports into your preferred order in the pop-up dialog, then click <strong>Save order<\/strong>. The page reloads with your custom layout. Each user has a completely independent ordering, so your preferences never interfere with a colleague's view.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Drag-and-drop interface<\/strong> \u2014 native HTML5 drag, no third-party libraries required<\/li>\n<li><strong>Per-user persistence<\/strong> \u2014 saved in the database, survives logout and browser restarts<\/li>\n<li><strong>Per-page granularity<\/strong> \u2014 each subcategory page has its own independent order<\/li>\n<li><strong>One-click reset<\/strong> \u2014 restore the default Matomo report order for any page at any time<\/li>\n<li><strong>Zero configuration<\/strong> \u2014 works immediately after activation, no settings to configure<\/li>\n<li><strong>Lightweight<\/strong> \u2014 one small JS file, one small CSS file, one database table<\/li>\n<\/ul>\n\n<h3>How It Works<\/h3>\n\n<ol>\n<li>Navigate to any standard Matomo report page (e.g. Visitors \u2192 Locations).<\/li>\n<li>Click the <strong>\u2195 Sort reports<\/strong> button that appears at the top of the report area.<\/li>\n<li>In the dialog, drag reports up or down to your preferred order.<\/li>\n<li>Click <strong>Save order<\/strong>. The page reloads with your custom layout applied.<\/li>\n<li>To revert, open the dialog again and click <strong>Reset to default<\/strong>.<\/li>\n<\/ol>\n\n<p>Custom ordering is stored per user and per subcategory page. It is applied at page render time by adjusting widget display order, so it is fully compatible with all standard Matomo report pages.<\/p>\n\n","faq":"<p><strong>Does this affect other users?<\/strong>\nNo. Each user's report ordering is stored and applied independently. Activating or deactivating the plugin has no effect on other users' views beyond whether the Sort button is shown.<\/p>\n\n<p><strong>Does it work on dashboard pages?<\/strong>\nNo. ReportSorter targets standard subcategory report pages (the ones with <code>.reporting-page<\/code> in the DOM). Dashboards have their own separate widget management interface built into Matomo.<\/p>\n\n<p><strong>What happens if I deactivate the plugin?<\/strong>\nReports return to Matomo's default ordering immediately. Saved preferences are kept in the database. If you reactivate the plugin, all users' saved orderings are restored.<\/p>\n\n<p><strong>What happens if I uninstall the plugin?<\/strong>\nThe plugin's database table (<code>matomo_report_sorter_order<\/code>) is dropped and all saved orderings are permanently deleted.<\/p>\n\n<p><strong>Is there a limit on how many pages I can customise?<\/strong>\nYes \u2014 500 subcategory pages per user, which is far more than the number of report pages that exist in a standard Matomo installation. This limit exists as a safeguard against runaway data growth.<\/p>\n\n<p><strong>Does this work with custom plugins that add reports?<\/strong>\nYes, as long as the custom plugin renders standard Matomo widgets (<code>.matomo-widget<\/code> elements with a unique ID) on a standard report subcategory page.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>1.0.0 \u2014 2026-03-04<\/h2>\n\n<p>Initial release.<\/p>\n\n<ul>\n<li>Drag-and-drop modal to reorder reports on any standard Matomo subcategory page<\/li>\n<li>Per-user, per-page persistence stored in a dedicated database table<\/li>\n<li>Reset-to-default button to restore Matomo's original report order<\/li>\n<li>CSRF-protected Controller endpoints with token validation<\/li>\n<li>Input validation on all API and Controller parameters<\/li>\n<li>DoS safeguards: 100 KB payload cap, 200 widget IDs per page, 500 pages per user<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ReportSorter\/download\/1.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ReportSorter\/changelog"},"consumer":{"license":null}},{"name":"RerIntranetSubnetwork","displayName":"Rer Intranet Subnetwork","owner":"RegioneER","description":"Measure your intranet visitors with a new Subnetwork dimension and related report.","homepage":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork","createdDateTime":"2020-06-10 10:18:04","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork","type":"url"}],"isTheme":false,"keywords":["Report","Intranet","subnetwork"],"basePrice":0,"authors":[{"name":"Regione Emilia-Romagna","email":"webmaster@regione.emilia-romagna.it","homepage":"https:\/\/github.com\/RegioneER"}],"repositoryUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork","lastUpdated":"2023-12-22 17:04:03","latestVersion":"4.1.11","numDownloads":14989,"screenshots":["https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/images\/4.1.11\/report.png","https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/images\/4.1.11\/settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"124","numContributors":"20","lastCommitDate":"2025-10-10 14:31:46"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"3.0.0","release":"2020-06-10 10:18:04","requires":{"php":">=7.3.0","piwik":">=3.2.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":788,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/v3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/3.0.0"},{"name":"4.0.0","release":"2021-09-28 08:54:03","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.0.0"},{"name":"4.0.1","release":"2021-09-28 09:06:03","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.0.1"},{"name":"4.1.0","release":"2021-09-28 10:50:03","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.0"},{"name":"4.1.1","release":"2021-09-29 15:28:03","requires":{"php":">=7.3.0","matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":222,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.1"},{"name":"4.1.2","release":"2021-11-24 10:48:03","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":65,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.2"},{"name":"4.1.3","release":"2021-12-06 16:26:03","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":323,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.3"},{"name":"4.1.4","release":"2022-01-28 13:46:04","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.4"},{"name":"4.1.6","release":"2022-01-28 14:22:02","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":153,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.6"},{"name":"4.1.7","release":"2022-03-02 17:44:02","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":249,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.7"},{"name":"3.1.0","release":"2022-03-02 17:56:02","requires":{"php":">=7.3.0","piwik":">=3.2.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1765,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/3.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/3.1.0"},{"name":"4.1.8","release":"2022-04-27 09:48:03","requires":{"php":">=7.3.0","piwik":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1307,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.8"},{"name":"4.1.9","release":"2023-04-04 08:12:03","requires":{"php":">=7.3.0","matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":601,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.9"},{"name":"4.1.10","release":"2023-11-13 17:12:03","requires":{"php":">=7.3.0","matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":186,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.10"},{"name":"5.0.1","release":"2023-12-22 16:58:03","requires":{"php":">=7.3.0","matomo":">=5.0.0-rc1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8139,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/5.0.1"},{"name":"4.1.11","release":"2023-12-22 17:04:03","requires":{"php":">=7.3.0","matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1165,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/4.1.11\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/commits\/4.1.11","readmeHtml":{"description":"\n\n<p>This <a href=\"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\">Matomo plugin<\/a> adds to your installation a new <em>dimension<\/em> called <strong>visit_subnetwork<\/strong> then reports visitor counts coming from private networks.<\/p>\n\n<p>Settings are easily configurable by Matomo's General Settings administration page. You have two choices.<\/p>\n\n<ul>\n<li><p><a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc1918#section-3\">Private Address Space from RCF 1918<\/a>, such as localhost 127.0.0.1, and IANA pre-defined networks 192.168.x.x, 172.16.x.x, 10.x.x.x.<\/p><\/li>\n<li><p>Configure your custom subnet rule by writing a regular expression matching the IPv4 addresses of your other intanet mapped on the web (called <a href=\"https:\/\/en.wikipedia.org\/wiki\/Extranet\">extranet<\/a>).<\/p><\/li>\n<\/ul>\n\n<p>This plugin is a complete refactoring adapted and mantained for actual Matomo, of the first <a href=\"https:\/\/github.com\/kwasib\/IntranetSubNetwork\">IntranetSubnetwork<\/a> that was published for Piwik 2.x.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Can I define my own intranet space?<\/strong><\/p>\n\n<p>Yes, you have a settings field inside General Administration page. You can choose pre defined IANA standard RCF Private Space and you can define your personal regular expression matching your custom network.<\/p>\n\n<p><strong>What is a regular expression?<\/strong><\/p>\n\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Regular_expression\">Regex<\/a> Are a sequence of characters that specifies a pattern.<\/p>\n\n<p><strong>How do I can test my regular expression rules?<\/strong><\/p>\n\n<p>There are useful tools online, such as <a href=\"https:\/\/regex101.com\/\">Regex101<\/a><\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Installation<\/h3>\n\n<p>Just install by Matomo's Marketplace, or grab latest code from the Github repository.<\/p>\n\n<h3>Translations<\/h3>\n\n<p><a href=\"https:\/\/hosted.weblate.org\/engage\/matomo\/\"><img src=\"https:\/\/hosted.weblate.org\/widgets\/matomo\/-\/communityplugin-rerintranetsubnetwork\/horizontal-auto.svg\" alt=\"horizontal-auto.svg\" \/><\/a><\/p>\n\n<h3>License<\/h3>\n\n<p>This free software is licensed under GNU General Public License v3+<\/p>\n\n<h3>Support<\/h3>\n\n<p>You can ask for support and your feedback is appreciated at plugin's <a href=\"https:\/\/github.com\/RegioneER\/RerIntranetSubnetwork\/issues\">issue center on Github<\/a>.<\/p>\n\n<h3>Changelog<\/h3>\n\n<h4>Version 4.x<\/h4>\n\n<ul>\n<li>fixing #10<\/li>\n<li>Merging of community translations<\/li>\n<li>Added Weblate support for community powered translations<\/li>\n<li>Updated regular expression rule matching <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc1918#section-3\">RCF 1918 Private Address Space<\/a><\/li>\n<li>Added support for Matomo 4.x<\/li>\n<\/ul>\n\n<h4>Version 3.x<\/h4>\n\n<ul>\n<li>Supporting Matomo 3.x<\/li>\n<\/ul>\n\n<h4>Version 2.x<\/h4>\n\n<ul>\n<li>Added Default Subnetworks configuration field. It's a checkbox you can use to include sandard networks measurement.<\/li>\n<li>Added Web Administration configuration field. You can use it writing your custom Regular Expression for catching Subnetworks IPs.<\/li>\n<li>Features imported from IntranetSubNetwork old plugin.<\/li>\n<li>Mayor bug fixing.<\/li>\n<li>Rewrite from scratch using console generator helpers.<\/li>\n<\/ul>","changelog":""},"download":"\/api\/2.0\/plugins\/RerIntranetSubnetwork\/download\/4.1.11"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/RerIntranetSubnetwork\/changelog"},"consumer":{"license":null}},{"name":"RerUserDates","displayName":"Rer User Dates","owner":"RegioneER","description":"Limit report generation by hiding custom period date ranges selection in the calendar, also avoid users to set custom ranges in their profile.","homepage":"https:\/\/github.com\/RegioneER\/RerUserDates","createdDateTime":"2014-05-13 11:40:04","donate":{},"support":[],"isTheme":false,"keywords":["users","range","calendar","date","profiles","admin","performance"],"basePrice":0,"authors":[{"name":"Regione Emilia-Romagna","email":"webmaster@regione.emilia-romagna.it","homepage":"https:\/\/github.com\/RegioneER\/"}],"repositoryUrl":"https:\/\/github.com\/RegioneER\/RerUserDates","lastUpdated":"2023-11-13 17:20:03","latestVersion":"4.2.2","numDownloads":20950,"screenshots":["https:\/\/plugins.matomo.org\/RerUserDates\/images\/4.2.2\/RerUserDates-cal.png","https:\/\/plugins.matomo.org\/RerUserDates\/images\/4.2.2\/RerUserDates-settings.png","https:\/\/plugins.matomo.org\/RerUserDates\/images\/4.2.2\/RerUserDates.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"145","numContributors":"28","lastCommitDate":"2025-12-03 00:59:52"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.1","release":"2014-05-13 11:40:04","requires":{"piwik":">=2.2.3b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":39,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.0.1"},{"name":"1.0.2","release":"2014-05-14 14:14:07","requires":{"piwik":">=2.2.3b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":59,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.0.2"},{"name":"1.1.0","release":"2014-05-16 13:12:05","requires":{"piwik":">=2.2.3b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":81,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.1.0"},{"name":"1.1.1a","release":"2014-05-19 07:32:03","requires":{"piwik":">=2.2.3b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":134,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.1.1a","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.1.1a"},{"name":"1.2.0","release":"2014-05-29 15:46:04","requires":{"piwik":">=2.2.3-b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.2.0"},{"name":"1.2.1","release":"2014-05-29 16:00:04","requires":{"piwik":">=2.2.3-b4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":159,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.2.1"},{"name":"1.2.2","release":"2014-06-17 14:28:05","requires":{"piwik":">=2.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.2.2"},{"name":"1.2.3","release":"2014-06-17 14:50:05","requires":{"piwik":">=2.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":23,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.2.3"},{"name":"1.2.4","release":"2014-06-18 14:36:05","requires":{"piwik":">=2.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":180,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.2.4"},{"name":"1.2.5","release":"2014-07-08 07:20:05","requires":{"piwik":">=2.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1677,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.2.5"},{"name":"1.2.6","release":"2015-01-29 13:50:04","requires":{"piwik":">=2.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":86,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.2.6"},{"name":"1.3.0","release":"2015-02-05 09:36:03","requires":{"piwik":">=2.8.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5515,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/1.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/1.3.0"},{"name":"2.0.3","release":"2018-02-09 14:44:03","requires":{"piwik":">=3.0.0, <4.0.0-b1","php":">5.6.1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3085,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/2.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/2.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/2.0.3"},{"name":"3.0.3","release":"2020-10-27 08:34:03","requires":{"piwik":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.23"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1079,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/3.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/3.0.3"},{"name":"2.0.4","release":"2020-10-27 08:48:03","requires":{"piwik":">=3.0.0, <4.0.0-b1","php":">5.6.1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2511,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/2.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/2.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/2.0.4"},{"name":"4.0.0","release":"2021-09-27 07:04:02","requires":{"piwik":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":34,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.0.0"},{"name":"4.0.1","release":"2021-09-29 15:40:03","requires":{"matomo":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":107,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.0.1"},{"name":"4.0.2","release":"2021-10-25 15:50:02","requires":{"piwik":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":335,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.0.2"},{"name":"4.0.3","release":"2021-11-24 10:58:03","requires":{"piwik":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":209,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.0.3"},{"name":"4.0.4","release":"2022-03-02 18:28:03","requires":{"piwik":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":194,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.0.4"},{"name":"4.1.0","release":"2022-04-28 13:30:03","requires":{"matomo":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.1.0"},{"name":"4.1.1","release":"2022-04-28 14:20:04","requires":{"matomo":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1301,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.1.1"},{"name":"4.1.3","release":"2023-02-24 14:58:02","requires":{"matomo":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.1.3"},{"name":"4.2.0","release":"2023-02-28 16:14:02","requires":{"matomo":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":159,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.2.0"},{"name":"4.2.1","release":"2023-04-04 09:10:03","requires":{"matomo":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1744,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.2.1"},{"name":"4.2.2","release":"2023-11-13 17:20:03","requires":{"matomo":">=4.0.0-b1, <5.0.0-b1","php":">=7.3.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2196,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RerUserDates\/4.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/RegioneER\/RerUserDates\/commits\/4.2.2","readmeHtml":{"description":"\n\n<p>This <a href=\"https:\/\/matomo.org\">Matomo<\/a> Plugin hides custom date range selection from calendar for regular users and avoids users setting dynamic ranges as default value in their personal profile.<\/p>\n\n<p>When a user asks for a ranged date report, Matomo stats building it on the fly during browsing. This may slow down Matomo installation in case is loaded by visits and you have a large number of tracked websites.<\/p>\n\n<p>Activity is resource intensive so that live tracking may become slow or inaccurate.<\/p>\n\n<p>The main feature is regular users can't select any custom range in the calendar, only users having <em>Superadmins<\/em> privilege still can.<\/p>\n\n<p>Second feature is removing dynamic choices in the field <em>\"Report date to load by default\"<\/em> in <em>User Settings page<\/em> for all regular users.<\/p>\n\n<p>Users profiles with <em>Superadmin<\/em> privilege still untouched and user profiles of <em>Website Administrators<\/em> will only display a notification about plugin's behavior.<\/p>\n\n<p><em>Superadmin<\/em> can enable or disable the two features independently by clicking checkboxes in the plugin's configuration page in the web interface.<\/p>\n\n<p>This plugin came translated in every language available in the <a href=\"https:\/\/hosted.weblate.org\/projects\/matomo\/communityplugin-reruserdates\/\">Weblate app<\/a>.<\/p>\n\n<p>Using that application, can officially contribute easily by adding your mothertongue language, or by editing missing strings.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>I would like to see a demonstration...<\/strong>\nJust take a look at <em>screenshots<\/em> .<\/p>\n\n<p><strong>Can I donate to you?<\/strong>\nThanks but we can't accept money donations because we're a Government Organization.\nJust feel free to contribute the source code.<\/p>\n\n<p><strong>Can I contribute on development?<\/strong>\nSure, you can, just file a <a href=\"https:\/\/github.com\/RegioneER\/RerUserDates\/pull\">pull request on Github<\/a><\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Installation<\/h3>\n\n<p>You can easily install the plugin by Matomo's Marketplace web interface.<\/p>\n\n<p>Or please, read official <a href=\"https:\/\/matomo.org\/faq\/plugins\/#faq_21\">Matomo's documentation<\/a> about plugins installation.<\/p>\n\n<h3>Translations<\/h3>\n\n<p><a href=\"https:\/\/hosted.weblate.org\/engage\/matomo\/\"><img src=\"https:\/\/hosted.weblate.org\/widgets\/matomo\/-\/communityplugin-reruserdates\/horizontal-auto.svg\" alt=\"horizontal-auto.svg\" \/><\/a><\/p>\n\n<h3>Changelog<\/h3>\n\n<h4>v4.x<\/h4>\n\n<ul>\n<li>Adding Weblate translations and Weblate repository syncronization.<\/li>\n<li>Bumping mayor version to match Matomo's.<\/li>\n<li>Refactoring PHP\/DI<\/li>\n<li>Refactoring UI modification, by css not js<\/li>\n<\/ul>\n\n<h4>v3.x<\/h4>\n\n<p>Since this version, this plugin is Matomo 4 compatible<\/p>\n\n<ul>\n<li>Project's refactoring for Matomo 4.x-dev environment<\/li>\n<li>AGID's Publiccode inclusion for <a href=\"https:\/\/developers.italia.it\/it\/search?type=reuse_software\">\u00abCatalogo del Riuso\u00bb<\/a> (<a href=\"https:\/\/developers.italia.it\/en\/search?type=reuse_software\">\u00abReuse Catalog\u00bb in english<\/a>) inclusion<\/li>\n<\/ul>\n\n<h4>v.2.x<\/h4>\n\n<p>Adding Matomo 3.x plugin compatibility, Piwik 2.x is deprecated and no more supported. Please download v.1.x for older versions.<\/p>\n\n<h4>v.1.x<\/h4>\n\n<ul>\n<li>Settings environment breaks compatibility with Matomo versions &lt; 2.8.0, thanks to @ThaDafinser.<\/li>\n<li>New plugin settings user interface for super admins, some better improvement and few bugs solved.<\/li>\n<li>Solved a regression due to a lack of Settings Feature in Matomo's versions below 2.4.0<\/li>\n<li>Merged French translation<\/li>\n<li>Fixed Matomo compatibility with 2.10 from 2.7 by @ThaDafinser in PR #6<\/li>\n<li>Custom date range selection is disabled in the calendar only for regular users. A shorts jQuery snippet hides radio input and submit button.<\/li>\n<li>Regular users who chose a range date as their default are now forced to <em>yesterday<\/em> report just visiting the index page with a warning notification.<\/li>\n<li>New French translation by @gaumondp<\/li>\n<li>First release and Marketplace integration<\/li>\n<li>User Manager screen shot and better readme documentation<\/li>\n<\/ul>","changelog":""},"download":"\/api\/2.0\/plugins\/RerUserDates\/download\/4.2.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/RerUserDates\/changelog"},"consumer":{"license":null}},{"name":"RestrictLanguageSelection","displayName":"Restrict Language Selection","owner":"sgiehl","description":"Allows you to modify the list of available languages in language selector.","homepage":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection","createdDateTime":"2016-11-01 21:24:03","donate":{"paypal":"stefangiehl@web.de","flattr":"https:\/\/flattr.com\/thing\/3787742\/sgiehlpiwik-plugin-RestrictLanguageSelection-on-GitHub","bitcoin":null},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/issues","type":"url"},{"name":"Email","key":"email","value":"stefan@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/issues","type":"url"}],"isTheme":false,"keywords":["language","i18n"],"basePrice":0,"authors":[{"name":"Stefan Giehl","email":"stefan@matomo.org","homepage":"https:\/\/github.com\/sgiehl"}],"repositoryUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection","lastUpdated":"2026-08-31 07:08:03","latestVersion":"6.0.0","numDownloads":22606,"screenshots":["https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/images\/6.0.0\/language_restriction.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"177","numContributors":"18","lastCommitDate":"2026-10-08 13:58:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"3.0.0","release":"2016-11-01 21:24:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3652,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RestrictLanguageSelection\/download\/3.0.0"},{"name":"2.0.0","release":"2016-11-01 21:56:03","requires":{"piwik":">=2.16.0,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4855,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/2.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/commits\/2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RestrictLanguageSelection\/download\/2.0.0"},{"name":"4.0.0","release":"2020-08-31 12:12:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1860,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RestrictLanguageSelection\/download\/4.0.0"},{"name":"4.0.1","release":"2022-08-01 07:36:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":821,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RestrictLanguageSelection\/download\/4.0.1"},{"name":"4.0.2","release":"2023-01-20 09:28:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2974,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RestrictLanguageSelection\/download\/4.0.2"},{"name":"5.0.0","release":"2023-08-21 14:18:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8376,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/RestrictLanguageSelection\/download\/5.0.0"},{"name":"6.0.0","release":"2026-08-31 07:08:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":68,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/sgiehl\/piwik-plugin-RestrictLanguageSelection\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>This plugin allows you to restrict the languages available in language selectors.<\/p>\n\n<h3>Requirements<\/h3>\n\n<p><a href=\"https:\/\/github.com\/matomo-org\/matomo\">Matomo<\/a> 5.0.0-b1 or higher is required.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>6.0<\/strong><\/p>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<\/ul>\n\n<p><strong>5.0<\/strong><\/p>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<p><strong>4.0<\/strong><\/p>\n\n<ul>\n<li>Compatibility with Matomo 4<\/li>\n<\/ul>\n\n<p><strong>3.0<\/strong><\/p>\n\n<ul>\n<li>Initial version for Piwik 3<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/RestrictLanguageSelection\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/RestrictLanguageSelection\/changelog"},"consumer":{"license":null}},{"name":"RollUpReporting","displayName":"Roll-Up Reporting","owner":"matomo-org","description":"At a glance, see how several of your websites, mobile apps & shops are performing overall. Get new insights into your business & save time every day.","homepage":"https:\/\/plugins.matomo.org\/RollUpReporting","createdDateTime":"2016-12-22 08:41:57","donate":{},"support":[],"isTheme":false,"keywords":["websites","roll-up","roll","up","group","aggregate","sites","property","meta","parent"],"basePrice":220,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-12 07:04:45","latestVersion":"6.0.1","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/RollUpReporting\/images\/6.0.1\/1_Roll-Up.jpg","https:\/\/plugins.matomo.org\/RollUpReporting\/images\/6.0.1\/2_Manage.png","https:\/\/plugins.matomo.org\/RollUpReporting\/images\/6.0.1\/3_All_Websites_Dashboard.png","https:\/\/plugins.matomo.org\/RollUpReporting\/images\/6.0.1\/4_Real-time_Widget.png","https:\/\/plugins.matomo.org\/RollUpReporting\/images\/6.0.1\/5_Visitor_Log.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/RollUpReporting.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/RollUpReporting","variations":[{"product_variation_id":130479,"price":"219","prettyPrice":"219EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130479&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130479","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/rollupreporting\/?attribute_type=1+to+4+users&add-to-cart=2716&variation_id=130479&aelia_cs_currency=EUR"},{"product_variation_id":130479,"price":"269","prettyPrice":"USD269","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130479&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130479","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/rollupreporting\/?attribute_type=1+to+4+users&add-to-cart=2716&variation_id=130479&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130480,"price":"1739","prettyPrice":"1739EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130480&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130480","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/rollupreporting\/?attribute_type=Up+to+20+users&add-to-cart=2716&variation_id=130480&aelia_cs_currency=EUR"},{"product_variation_id":130480,"price":"2089","prettyPrice":"USD2089","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130480&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130480","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/rollupreporting\/?attribute_type=Up+to+20+users&add-to-cart=2716&variation_id=130480&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130481,"price":"3459","prettyPrice":"3459EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130481&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130481","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/rollupreporting\/?attribute_type=Up+to+50+users&add-to-cart=2716&variation_id=130481&aelia_cs_currency=EUR"},{"product_variation_id":130481,"price":"4149","prettyPrice":"USD4149","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130481&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2716&variation_id=130481","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/rollupreporting\/?attribute_type=Up+to+50+users&add-to-cart=2716&variation_id=130481&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/rollupreporting\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"4.75","ratingCount":4,"reviewCount":4}},"bundle":{"plugins":[]},"specialOffer":"","category":"database","categories":["insights"],"promotions":{"bestselling":6},"versions":[{"name":"6.0.1","release":"2026-10-12 07:04:45","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/RollUpReporting\/6.0.1\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Centralise your analytics data and get comprehensive insights across all your websites, apps, and stores in one consolidated dashboard.<\/p>\n\n<p>Managing data from multiple websites and apps can feel like juggling too many balls at once. Each platform has its metrics, dashboards, and insights, leading to a messy and fragmented view. Worse yet, compiling all the data to get a clear picture of their situation takes too much time.<\/p>\n\n<p>The Roll-Up Reporting plugin lets you aggregate data from multiple websites and apps into one single place. Access, analyse, and compare the data of multiple digital properties in one report, helping you instantly gain the insights you need, error-free.<\/p>\n\n<h3>How Roll-Up Reporting Works<\/h3>\n\n<h4>Merge Data from All Your Web Properties Effortlessly<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Operating multiple websites or apps for different brands or departments demands seamless data consolidation. <\/p>\n<p>The Roll-Up Reporting plugin offers a one-stop solution that makes data analysis more streamlined and reduces the chances of oversight.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/RollUpReporting\/image1.jpg\" style=\"margin-left:24px;\" alt=\"Merge Data from All Your Web Properties Effortlessly\" \/>\n<\/div>\n<\/div>\n\n<h4>Simplify Your Analytics Workflow<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Roll-Up Reporting is designed for simplicity. Whether you need to aggregate data from all your websites, focus on specific shops, or even group by country, the tool allows unlimited configurations. Set up as many Roll-Ups as required without any limitations.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/RollUpReporting\/image2.png\" style=\"margin-left:24px;\" alt=\"Simplify Your Analytics Workflow\" \/>\n<\/div>\n<\/div>\n\n<h4>Get a Bird's-Eye View of Every Property<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Dive into a detailed performance breakdown for each property within your roll-ups. From visits and pageviews to revenue insights, get a grasp of your key metrics.<\/p>\n<p>Identify trends and tackle potential issues proactively, ensuring consistent growth across all your digital touchpoints.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/RollUpReporting\/image3.png\" style=\"margin-left:24px;\" alt=\"Get a Bird's-Eye View of Every Property\" \/>\n<\/div>\n<\/div>\n\n<h4>Witness Real-Time Engagement on Your Properties<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Monitor the journey of every visitor across your digital properties as it unfolds. With Roll-Up Reporting's real-time tracking, you can observe actions, clicks, and behaviours, ensuring you're always in the loop and can respond to user trends instantly.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/RollUpReporting\/image4.png\" style=\"margin-left:24px;\" alt=\"Witness Real-Time Engagement on Your Properties\" \/>\n<\/div>\n<\/div>\n\n<h4>Understand Your Audience Inside-Out<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Delve into detailed insights for each visitor across your entire digital ecosystem without juggling multiple windows. View their location, browser preference, and meticulously track every move they make post-entry, all in one consolidated view.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/RollUpReporting\/image5.png\" style=\"margin-left:24px;\" alt=\"Understand Your Audience Inside-Out\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Roll-Up Reporting Today<\/h3>\n\n<p>Transform the way you manage your analytics with Roll-Up Reporting. Consolidate your data, gain sharp insights, and make decisions with confidence. It's your digital realm, simplified and empowered\u2014all in one dashboard.<\/p>\n\n<p>Start your 30-day free trial and enjoy the power of consolidated analytics.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Lets you easily assign all websites and apps to a Roll-Up<\/li>\n<li>Optionally, give users only access to a Roll-Up without having to give them access to individual websites.<\/li>\n<li>View your Roll-Up reports on the go with the <a href=\"https:\/\/plugins.matomo.org\">Matomo Mobile<\/a> app.<\/li>\n<li>All reports including real time reports are available via the <a href=\"https:\/\/developer.matomo.org\/api-reference\/tracking-api\">Matomo HTTP Reporting API<\/a>, and support <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">Matomo segments<\/a>.<\/li>\n<li>Manage Roll-Up properties via the <a href=\"https:\/\/developer.matomo.org\/api-reference\/tracking-api\">Matomo HTTP Reporting API<\/a>.<\/li>\n<li>Export any report directly in your app, dashboard, or even TV screen! Even your real time reports can be <a href=\"https:\/\/matomo.org\/docs\/embed-piwik-report\/\">embedded<\/a> anywhere.<\/li>\n<li>Get automatic <a href=\"https:\/\/matomo.org\/docs\/email-reports\/\">email and sms reports<\/a> for your Roll-Up properties, or send them to your colleagues or customers.<\/li>\n<\/ul>\n\n<h3>Access &amp; data model<\/h3>\n\n<p>A Roll-Up is an aggregate property: its whole purpose is to combine the data of the child\nwebsites and apps it groups together. Because of this, <strong>granting a user view access to a\nRoll-Up is what gives them the aggregated reporting of its child sites<\/strong> \u2014 even when that user\nhas not been granted access to the child sites individually. This is by design and is the\nbehaviour described by the in-app notice <em>\"your other reports include data from all websites\nwithin this Roll-up\"<\/em>.<\/p>\n\n<p>What this means in practice:<\/p>\n\n<ul>\n<li><strong>Aggregated and segmented reports include child data by design.<\/strong> When a Roll-Up viewer\nruns a standard report on the Roll-Up \u2014 including a <a href=\"https:\/\/matomo.org\/docs\/segmentation\/\">segmented<\/a>\nreport \u2014 Matomo archives and returns the combined data of the child sites belonging to the\nRoll-Up. Applying a narrow segment (e.g. a single visitor or IP) can therefore surface that\nindividual's data from a child site, even if the user cannot open that child site directly.\nThis is expected: a Roll-Up report is only meaningful if it can see the data it aggregates.<\/li>\n<li><strong>Real-time visitor-log detail is still access-checked per child.<\/strong> The detailed visitor log\n(<code>Live.getLastVisitsDetails<\/code>) and visitor profile (<code>Live.getVisitorProfile<\/code>) only return data\nfor child sites the user can access.<\/li>\n<\/ul>\n\n<p>If you do not want a user to see a given site's data at all, <strong>do not add that site to a\nRoll-Up the user can view<\/strong>, and grant access at the individual-site level instead. Treat view\naccess on a Roll-Up as equivalent to view access on the aggregate of everything it contains.<\/p>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/roll-up-reporting\/\">Roll-Up Reporting User Guide<\/a> and the \n<a href=\"https:\/\/matomo.org\/faq\/roll-up-reporting\/\">Roll-Up Reporting FAQ<\/a> cover how to get the most out of this plugin.<\/p>\n\n<p>For any other question feel free to <a href=\"#support\">contact us<\/a>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.1 - 2026-10-12\n- Page URLs in Roll-Up page reports now link to the page when all its pageviews came from the same domain, for reports archived after updating\n- The Overlay row action is no longer shown on Roll-Up sites, where it could not work<\/p>\n\n<p>6.0.0 - 2026-08-24\n- Compatibility with Matomo 6\n- Added code to improve check to determine sites for all websites rollup<\/p>\n\n<p>5.0.15 - 2026-08-10\n- Updated marketplace images<\/p>\n\n<p>5.0.14 - 2026-08-03\n- Removed the source site assignment of a Roll-Up when it is changed to another measurable type<\/p>\n\n<p>5.0.13 - 2026-07-20\n- Added code to extend idSites with no access to all the live queries<\/p>\n\n<p>5.0.12 - 2026-07-13\n- Added code to fix dashboard not working for roll-up websites with no data<\/p>\n\n<p>5.0.11 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.0.10 - 2026-03-16\n- Removed AIAssistant and BotTracking widgets<\/p>\n\n<p>5.0.9 - 2026-02-02\n- Updated API documentation<\/p>\n\n<p>5.0.8 - 2025-05-28\n- Added description about roll-up in measurable create modal<\/p>\n\n<p>5.0.7 - 2025-04-14\n- Started hiding FormAnalytics section<\/p>\n\n<p>5.0.6 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.0.5 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.4\n- Added plugin category for Marketplace<\/p>\n\n<p>5.0.3\n- Updated README.md<\/p>\n\n<p>5.0.2\n- Added code to disable setGoalFunnel for rollup sites\n- Added code to invalidate cache on privacy data delete<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5\n- Updated condition to add sites for invalidation based on new parameters from <code>Archiving.getIdSitesToMarkArchivesAsInvalidated<\/code> event<\/p>\n\n<p>4.1.3\n- Added code to show notification when users doesn't have access to all the child sites of a rollup<\/p>\n\n<p>4.1.2\n- Added code to not add site for invalidation if config set for force aggregaion, #PG-820\n- Created migration script to delete unwanted archives, #PG-820<\/p>\n\n<p>4.1.1\n- Stopped adding sites for invalidation if <code>force_aggregate_raw_data_for_day<\/code> and <code>force_aggregate_raw_data_for_day_segment<\/code> enabled in config<\/p>\n\n<p>4.1.0\n- Migrate AngularJS code to Vue<\/p>\n\n<p>4.0.3\n- Removed unique visitors from visit summary for weeks and month if config values not present<\/p>\n\n<p>4.0.2\n- Fix Transitions for Page Titles report did not work correctly for a roll up.<\/p>\n\n<p>4.0.1\n- Compatibility with Matomo 4.0<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4.0<\/p>\n\n<p>3.2.7\n- Add new option to disable archiving of unique visitors\/users for roll up segments<\/p>\n\n<p>3.2.6\n- Support enable_processing_unique_visitors_multiple_sites setting from Matomo core<\/p>\n\n<p>3.2.5\n- Add primary key to table for better replication<\/p>\n\n<p>3.2.4\n- Add config setting for more efficient archiving of roll ups<\/p>\n\n<p>3.2.3\n- Support more languages<\/p>\n\n<p>3.2.2\n- When a Matomo user requests the invalidation of reporting data for a specific site, the reporting data for all parent roll-ups will now be invalidated as well<\/p>\n\n<p>3.2.1\n- Support Custom Reports<\/p>\n\n<p>3.2.0\n- Add possibility to add several sites add once to a roll-up<\/p>\n\n<p>3.1.1\n - Renamed Piwik to Matomo\n - Hide some non-compatible plugins when viewing a Roll-Up<\/p>\n\n<p>3.1.0\n - Possiblity to assign Roll-Ups to another Roll-Up in order to nest Roll-Ups<\/p>\n\n<p>3.0.3\n - Remove line break in visitor log when site is not a Roll-Up<\/p>\n\n<p>3.0.2\n - Added new feature to assign all websites to a Roll-Up with just one click<\/p>\n\n<p>3.0.1\n - In All-Websites-Dashboard do not sum Roll-Ups to total value<\/p>\n\n<p>3.0.0\n - Initial version<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/RollUpReporting\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"SDG","displayName":"SDG","owner":"Digitalist-Open-Cloud","description":"Single Digital Gateway (SDG) for Your Europe portal.","homepage":"https:\/\/digitalist.cloud\/services\/eu\/sdg-plugin-for-matomo","createdDateTime":"2024-09-05 07:34:02","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/digitalist.cloud\/services\/eu\/sdg-plugin-for-matomo","type":"url"},{"name":"Email","key":"email","value":"cloud@digitalist.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-SDG\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-SDG","type":"url"}],"isTheme":false,"keywords":["SDG","Your Europe"],"basePrice":0,"authors":[{"name":"Digitalist Open Cloud","email":"cloud@digitalist.com","homepage":"https:\/\/digitalist.cloud"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-SDG","lastUpdated":"2024-09-05 10:44:03","latestVersion":"5.1.1","numDownloads":8666,"screenshots":["https:\/\/plugins.matomo.org\/SDG\/images\/5.1.1\/general_settings.png","https:\/\/plugins.matomo.org\/SDG\/images\/5.1.1\/manage.png","https:\/\/plugins.matomo.org\/SDG\/images\/5.1.1\/manage_settings.png","https:\/\/plugins.matomo.org\/SDG\/images\/5.1.1\/statistics.png"],"coverImage":"https:\/\/plugins.matomo.org\/SDG\/images\/5.1.1\/_cover.png","previews":[],"activity":{"numCommits":"7","numContributors":"1","lastCommitDate":"2024-09-05 10:43:30"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"5.1.0","release":"2024-09-05 07:34:03","requires":{"matomo":">=5.0.0-rc1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SDG\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-SDG\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SDG\/download\/5.1.0"},{"name":"5.1.1","release":"2024-09-05 10:44:03","requires":{"matomo":">=5.0.0-rc1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8650,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SDG\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-SDG\/commits\/5.1.1","readmeHtml":{"description":"","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>How do I \u2026 ?<\/h2>\n\n<h3>Send historical data<\/h3>\n\n<p>Use the console. As SDG-plugin uses archived data, you need to  invalidate reports historically for the SDG plugin, like (for site id 1):<\/p>\n\n<pre><code>.\/console core:invalidate-report-data --dates=2024-08-01,2024-08-31 --sites=1 --plugin=SDG\n<\/code><\/pre>\n\n<p>After that you can wait until Matomo has archived your data, or you could archive manually:<\/p>\n\n<pre><code>.\/console core:archive --force-date-range=2024-08-01,2024-08-31 --force-idsites=1\n<\/code><\/pre>\n\n<p>The next step is to create the report to be sent (this is normally done automatically), the recommendation is to send in one report per month:<\/p>\n\n<pre><code>.\/console sdg:send-statistics-on-information-services --idsite=1 --from=2024-08-01 --to=2024-08-31\n<\/code><\/pre>\n\n<p>This will output in the terminal what would be sent, to send it for real, add the send flag.<\/p>\n\n<pre><code>.\/console sdg:send-statistics-on-information-services --idsite=1 --from=2024-08-01 --to=2024-08-31 --send\n<\/code><\/pre>\n\n<p>You should get a successful output when this is done.<\/p>\n\n<h3>List sent reports?<\/h3>\n\n<p>In the Administration section, go to Single Digital Gateway -&gt; Send status.<\/p>\n\n<p>Successfully sent reports should have a response \u201c200\u201d, if not, you can try to resend them by pushing the resend icon. Though, we recommend to use the console to send the reports, for better debugging output if something is wrong. A new uuid for identifying the reports will  be created.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>.\/console sdg:send-statistics-on-information-services --idsite=1 --from=2024-08-01 --to=2024-08-31 --send\n<\/code><\/pre>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>SDG - Matomo plugin to use for sending data to Single Digital Gateway.<\/p>\n\n<h2>Installation<\/h2>\n\n<p><a href=\"https:\/\/matomo.org\/faq\/plugins\/faq_21\/\">Download and install the plugin as you normally do<\/a>.<\/p>\n\n<h2>Settings<\/h2>\n\n<p><img src=\"..\/screenshots\/general_settings.png\" alt=\"general_settings.png\" \/><\/p>\n\n<h3>Set SDG environment<\/h3>\n\n<p>Here you can set Testing (acceptance) or Production environment. Testing is if you would like to test the setup, or if you are running a test instance.<\/p>\n\n<h3>Date to send SDG from the previous month<\/h3>\n\n<p>We recommend using the second of the month (default), as the plugin uses archived data, and the plugin try to send your data as soon as possible on the date you set, you should send at least the second, as all your data may be not be archived yet.<\/p>\n\n<h3>Add API settings to a measurable (website etc.)<\/h3>\n\n<p>Every website uses separate settings for SDG, as you could have different API keys for sites, so we need to add them. Go to the website you want to add URL:s and API-keys for. Website -&gt; Manage.<\/p>\n\n<p><img src=\"..\/screenshots\/manage.png\" alt=\"manage.png\" \/><\/p>\n\n<p>Add the needed information in the fields:<\/p>\n\n<p><img src=\"..\/screenshots\/manage_settings.png\" alt=\"manage_settings.png\" \/><\/p>\n\n<p>You must at least provide an API-token and one report URL.\nNow you are all set to start sending data to the Single Digital Gateway.<\/p>\n\n<h2>Report data<\/h2>\n\n<p>Information about what is going to be sent, or have been sent, to the gateway you can see in the SDG report (you can use the monthly view in the Matomo UI to see the report per month).<\/p>\n\n<p><img src=\"..\/screenshots\/statistics.png\" alt=\"statistics.png\" \/><\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[5.1.1] - 2024-09-05<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Improve documentation<\/li>\n<\/ul>\n\n<h2>[5.1.0] - 2024-09-05<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Plugins first release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/SDG\/download\/5.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SDG\/changelog"},"consumer":{"license":null}},{"name":"SearchEngineKeywordsPerformance","displayName":"Search Engine Keywords Performance","owner":"matomo-org","description":"Discover which search keywords drive traffic, engagement, and conversions. Get the keyword insights behind \"Keyword not defined\" with data from Google Search Console, Bing Webmaster Tools, Yandex Webm.","homepage":"https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance","createdDateTime":"2017-03-14 11:24:34","donate":{},"support":[],"isTheme":false,"keywords":["search","google","Bing","Keyword","SEO","Yahoo","Crawling","Yandex"],"basePrice":154,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-19 04:55:07","latestVersion":"6.0.6","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/images\/6.0.6\/0_Search_Keywords_combined_across_Search_Engines.png","https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/images\/6.0.6\/1_Keywords_on_Google_Search_Clicks_-_Impressions_-_Clickthrough_-_Position_in_results_page.png","https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/images\/6.0.6\/2_Keywords_on_Bing_and_Yahoo_Search.png","https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/images\/6.0.6\/3_Google_Images_Keywords.png","https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/images\/6.0.6\/4_Keywords_used_on_Google_Videos.png","https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/images\/6.0.6\/6_Crawl_Overview.png","https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/images\/6.0.6\/7_Keyword_ranking_position_in_search_results_evolution_over_time.png","https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/images\/6.0.6\/9_Page_crawling_issues_on_Bing.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/SearchEngineKeywordsPerformance.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance","variations":[{"product_variation_id":130485,"price":"153","prettyPrice":"153EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130485&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130485","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/searchenginekeywordsperformance\/?attribute_type=1+to+4+users&add-to-cart=3221&variation_id=130485&aelia_cs_currency=EUR"},{"product_variation_id":130485,"price":"189","prettyPrice":"USD189","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130485&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130485","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/searchenginekeywordsperformance\/?attribute_type=1+to+4+users&add-to-cart=3221&variation_id=130485&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130486,"price":"1209","prettyPrice":"1209EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130486&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130486","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/searchenginekeywordsperformance\/?attribute_type=Up+to+20+users&add-to-cart=3221&variation_id=130486&aelia_cs_currency=EUR"},{"product_variation_id":130486,"price":"1449","prettyPrice":"USD1449","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130486&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130486","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/searchenginekeywordsperformance\/?attribute_type=Up+to+20+users&add-to-cart=3221&variation_id=130486&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130487,"price":"2409","prettyPrice":"2409EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130487&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130487","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/searchenginekeywordsperformance\/?attribute_type=Up+to+50+users&add-to-cart=3221&variation_id=130487&aelia_cs_currency=EUR"},{"product_variation_id":130487,"price":"2889","prettyPrice":"USD2889","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130487&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=3221&variation_id=130487","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/searchenginekeywordsperformance\/?attribute_type=Up+to+50+users&add-to-cart=3221&variation_id=130487&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/searchenginekeywordsperformance\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"5.00","ratingCount":6,"reviewCount":6}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{"bestselling":3},"versions":[{"name":"6.0.6","release":"2026-10-19 04:55:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/6.0.6\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Analyse search queries alongside visits, goals, sales activity, campaigns, and user behaviour to understand which keywords attract valuable visitors and contribute to business outcomes. Instead of reviewing search performance in separate tools, bring keyword data into Matomo and connect it with the analytics reports you already use.<\/p>\n\n<p>Monitor the keywords people use to find your website, the search engines they come from, and the results they generate. Track impressions, clicks, click-through rates, and average positions without switching between platforms, and identify opportunities to improve your search visibility and organic performance.<\/p>\n\n<h3>How Search Engine Keywords Performance Works<\/h3>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Search traffic is not limited to standard web results. Image and video results can also bring visitors to your website.<\/p>\n<p>Review the <a href=\"https:\/\/matomo.org\/faq\/reports\/analyse-search-keywords-reports\/\">keywords<\/a> connected to web results and visual search traffic to understand how these assets contribute to search visibility, visits, and <a href=\"https:\/\/matomo.org\/faq\/reports\/analyse-goal-reports-and-conversion-rates\/\">conversions<\/a>.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SearchEngineKeywordsPerformance\/image3.png\" style=\"margin-left:24px;\" alt=\"Web, image and video search keywords\" \/>\n<\/div>\n<\/div>\n\n<h4>Connect SEO data with conversions<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Search Console and webmaster tools show how your content performs in search results. Matomo helps connect that data with what happens after visitors arrive.<\/p>\n<p>Compare keywords with visits, goal conversions, <a href=\"https:\/\/matomo.org\/faq\/reports\/data-measured-and-reported-by-ecommerce-tracking\/\">sales revenue<\/a>, <a href=\"https:\/\/matomo.org\/faq\/reports\/common-event-tracking-use-cases\/\">events<\/a>, and other Matomo metrics to understand which search queries drive engagement, conversions, and revenue.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SearchEngineKeywordsPerformance\/image1.png\" style=\"margin-left:24px;\" alt=\"Connect SEO data with conversions\" \/>\n<\/div>\n<\/div>\n\n<h4>Segment keyword performance<\/h4>\n\n<p>Analyse keyword data with Matomo dimensions and segments to answer more specific SEO questions.<\/p>\n\n<p>Explore keyword performance by landing page, device type, country, <a href=\"https:\/\/matomo.org\/faq\/reports\/what-is-campaign-tracking-and-why-it-is-important\/\">campaign<\/a>, or visitor type. Identify search queries that generate conversions, countries that drive valuable traffic, devices that perform best, and landing pages that attract visitors who take action.<\/p>\n\n<h4>Collect keyword data from multiple sources<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Search Engine Keywords Performance retrieves keyword performance data from Google Search Console, Bing Webmaster Tools, and Yandex Webmaster, and keyword information available through search engine referrers.<\/p>\n<p>Gain greater visibility into the search keywords that drive visitors to your website and uncover keyword data that is often unavailable in standard analytics reports and hidden behind \u201cKeyword not defined\u201d.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SearchEngineKeywordsPerformance\/image4.png\" style=\"margin-left:24px;\" alt=\"Collect keyword data from multiple sources\" \/>\n<\/div>\n<\/div>\n\n<h4>Monitor technical search performance<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Track <a href=\"https:\/\/matomo.org\/faq\/search-engine-keywords-performance\/faq_23857\/\">crawling<\/a> and indexing information from supported search engines. Review crawled pages, indexed pages, crawl errors, and other issues that may affect search visibility.<\/p>\n<p>Use these reports to identify pages that search engines cannot access and prioritise fixes that improve content discoverability across search engines and AI-powered search experiences.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SearchEngineKeywordsPerformance\/image2.png\" style=\"margin-left:24px;\" alt=\"Monitor technical search performance\" \/>\n<\/div>\n<\/div>\n\n<h3>Try Search Engine Keywords Performance Today<\/h3>\n\n<p>Search Engine Keywords Performance brings search query data into Matomo, where marketing teams can analyse website, goal, and Ecommerce data. Understand which keywords create visibility, which ones drive valuable visits, and where to focus your SEO efforts next.<\/p>\n\n<p>Start your 30-day free trial today.<\/p>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/search-engine-keywords-performance\/\">Search Engine Keywords Performance User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/search-engine-keywords-performance\/\">Search Engine Keywords Performance FAQ<\/a> cover how to get the most out of this plugin.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>6.0.6<\/strong> - 2026-10-19\n- Fixed the website picker on the Configure websites form overlapping the next column when a website has a long name, and its list being cut off at the bottom of the table\n- Updated guzzle to 7.15.5, phpseclib to 3.0.57 and the Google API client to v2.20.1<\/p>\n\n<p><strong>6.0.5<\/strong> - 2026-10-12\n- Access control improvement<\/p>\n\n<p><strong>6.0.4<\/strong> - 2026-10-05\n- Support rotating the encryption key of the stored Google, Bing and Yandex credentials and Bing website URLs with the <code>core:rotate-encryption-keys<\/code> console command (available from the Matomo release that introduces it). If a stored credential or Bing website URL can no longer be decrypted with the current key, the rotation stops without changing anything. Restore the previous encryption key if possible; otherwise, under Administration &gt; System &gt; Search Performance, use \"Remove stored credentials\" for the affected search engine, reconnect the account and configure the Bing website again for each affected Matomo website before rotating<\/p>\n\n<p><strong>6.0.3<\/strong> - 2026-09-28\n- Relative report dates such as \"today\" or \"last 7 days\" now use the website's timezone where supported, and Bing range checks use the same period as archiving, so keyword data availability messages and Bing period checks no longer disagree with the archived data\n- Bing keyword API requests now check website view access before validating the requested period\n- Avoid a possible error in the Search Engines report when imported keywords are merged into a result that has no single table to take the sort order from<\/p>\n\n<p><strong>6.0.2<\/strong> - 2026-09-14\n- Say why a website's configured Google Search Console, Bing Webmaster Tools or Yandex Webmaster Tools URL cannot be used, and how to recover, in place of the generic \"value is not allowed\" error\n- Stop treating a search engine's API being unreachable as a broken website mapping: the measurable's other settings can still be saved, and the mapping stays selected instead of showing \"Not available\"\n- Name the same cause on the measurable's settings, on the website's configuration screen and in the system check, rather than a different message on each\n- Stop reporting a temporary search engine API error as an authentication failure on the website's configuration screen\n- Tell the user to reconnect, rather than to wait and retry, when a search engine rejects the stored credentials\n- Report a Google Search Console account whose access has been revoked as an authentication failure on the website's configuration screen, instead of leaving it marked active\n- Access control improvement<\/p>\n\n<p><strong>6.0.1<\/strong> - 2026-09-07\n- Various security improvements<\/p>\n\n<p><strong>6.0.0<\/strong> - 2026-08-24\n- Compatibility with Matomo 6\n- Updated dependencies to address security advisories\n- Offer a way to remove stored search engine credentials that can no longer be decrypted, so a changed or lost encryption key no longer needs the option table to be edited by hand\n- Allow the Yandex OAuth client configuration to be removed again, so an unusable client id and secret can be replaced without editing the database\n- Log decryption failures to matomo.log instead of only showing them as a notification\n- Keep the system check page working when the stored credentials cannot be decrypted<\/p>\n\n<p><strong>5.2.2<\/strong> - 2026-08-17\n- Upgraded packages to pick up published security fixes: guzzle to 7.15.3, psr7 to 2.13.0, promises to 2.5.2 &amp; phpseclib to 3.0.56\n- Upgraded the Google API client to v2.19.4, along with google\/apiclient-services to v0.454.0, google\/auth to v1.53.0, php-jwt to v7.1.0 and psr\/cache to 3.0.0\n- Upgraded constant_time_encoding to v3.1.3, pulled in by the phpseclib upgrade\n- Fixed the scoping of phpseclib's BigInteger engine classes, which were resolved under an unprefixed namespace<\/p>\n\n<p><strong>5.2.1<\/strong> - 2026-08-03\n- Hide the OAuth client configuration on Matomo Cloud, where Google Search Console connects through the Matomo Cloud app<\/p>\n\n<p><strong>5.2.0<\/strong> - 2026-07-27\n- UX redesign of SearchEngineKeywordsPerformance plugin\n- Updated Marketplace description<\/p>\n\n<p><strong>5.1.0<\/strong> - 2026-07-06\n- Encrypt sensitive values in database to improve security<\/p>\n\n<p><strong>5.0.30<\/strong> - 2026-06-22\n- Upgrade packages: guzzle to 7.10.1, psr7 to 2.10.4 &amp; promises to ^2.3<\/p>\n\n<p><strong>5.0.29<\/strong> - 2026-04-27\n- Updated API documentation<\/p>\n\n<p><strong>5.0.28<\/strong> - 2026-03-30\n- Updated phpseclib to 3.0.50<\/p>\n\n<p><strong>5.0.27<\/strong> - 2026-02-04\n- Updated permission check for Google config upload\n- Redact sensitive values for low privileged user<\/p>\n\n<p><strong>5.0.26<\/strong> - 2026-02-02\n- Updated API documentation<\/p>\n\n<p><strong>5.0.25<\/strong> - 2026-01-05\n- Added code to not update the last_run on any error<\/p>\n\n<p><strong>5.0.24<\/strong> - 2025-10-27\n- Improved API glossary entries.<\/p>\n\n<p><strong>5.0.23<\/strong> - 2025-08-04\n- Disabled autocomplete for sensitive form inputs.<\/p>\n\n<p><strong>5.0.22<\/strong> - 2025-05-28\n- Added fallback URI for valid redirect URI check to solve issues with some Matomo for WordPress install<\/p>\n\n<p><strong>5.0.21<\/strong> - 2025-05-12\n- Added auto-scroll for long lists of available websites<\/p>\n\n<p><strong>5.0.20<\/strong> - 2025-03-20\n- Added nonce check for add and remove actions<\/p>\n\n<p><strong>5.0.19<\/strong> - 2025-03-12\n- Improved redirect URI handling logic<\/p>\n\n<p><strong>5.0.18<\/strong> - 2024-11-05\n- Updated README.md<\/p>\n\n<p><strong>5.0.17<\/strong> - 2024-10-08\n- Improved access check for managing accounts<\/p>\n\n<p><strong>5.0.16<\/strong> - 2024-09-23\n- Made adjustments to improve code performance<\/p>\n\n<p><strong>5.0.15<\/strong> - 2024-08-26\n- Pricing updated<\/p>\n\n<p><strong>5.0.14<\/strong>\n* Added isReportEnabled check in API methods to prevent creating empty archives with done flag<\/p>\n\n<p><strong>5.0.13<\/strong>\n* Added cover image for marketplace<\/p>\n\n<p><strong>5.0.12<\/strong>\n* Upgraded phpseclib to 3.0.36<\/p>\n\n<p><strong>5.0.11<\/strong>\n*  Prefixed Monolog library<\/p>\n\n<p><strong>5.0.10<\/strong>\n*  Updating dependencies to work with PHP 7.2-8.3<\/p>\n\n<p><strong>5.0.9<\/strong>\n* Added code to fix redirect error exception when executing via misc cron<\/p>\n\n<p><strong>5.0.8<\/strong>\n* Added code to not set Related reports if not enabled<\/p>\n\n<p><strong>5.0.7<\/strong>\n* Updated README.md\n* Upgraded phpseclib to 3.0.34<\/p>\n\n<p><strong>5.0.6<\/strong>\n* Fix IP rate limit issue with Bing integration<\/p>\n\n<p><strong>5.0.5<\/strong>\n* Scope vendored libraries to improve compatibility with other plugins\n* Fix missing translation<\/p>\n\n<p><strong>5.0.4<\/strong>\n* Updated dependency (Guzzle)<\/p>\n\n<p><strong>5.0.3<\/strong>\n* Fix regression in unlink Cloud config<\/p>\n\n<p><strong>5.0.2<\/strong>\n* Fix compatibility issue<\/p>\n\n<p><strong>5.0.1<\/strong>\n* Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p><strong>5.0.0<\/strong>\n* Compatibility with Matomo 5<\/p>\n\n<p><strong>4.5.5<\/strong>\n* Updated dependency (Guzzle)<\/p>\n\n<p><strong>4.5.4<\/strong>\n* Added additional check for redirect URL<\/p>\n\n<p><strong>4.5.3<\/strong>\n* Removed unwanted icons from index view<\/p>\n\n<p><strong>4.5.2<\/strong>\n* Fixed regression is UI for Admin users<\/p>\n\n<p><strong>4.5.1<\/strong>\n* Improvements to handle bad oauth configs\n* Improved nonce check after authorization<\/p>\n\n<p><strong>4.5.0<\/strong>\n* Updated dependencies to improve PHP 8.2 compatability\n* Redesigned UI to simplify connecting to Google Search Console\n* Added metric semantic types\n* Adjusted log level for error messages during the archiving process\n* Updated language translations<\/p>\n\n<p><strong>4.4.2<\/strong>\n* Improved API error logging and started showing a notification of API error on the UI<\/p>\n\n<p><strong>4.4.1<\/strong>\n* Started getting measurable setting as superuser for rollup sites<\/p>\n\n<p><strong>4.4.0<\/strong>\n* Added code to show configuration to superusers only\n* Added option to show websites during configuration based on access\n* Added created by column in configure website iew\n* Added option to delete add\/delete website configuration based on access\n* Added example URLs to easily configure OAuth for Google and Yandex<\/p>\n\n<p><strong>4.3.10<\/strong>\n* Fixed guide link url.<\/p>\n\n<p><strong>4.3.9<\/strong>\n* Upgraded guzzleHTTP version to 7.5.0<\/p>\n\n<p><strong>4.3.8<\/strong>\n* Started setting idSite after auth process for Google and Yandex to make menu visible<\/p>\n\n<p><strong>4.3.7<\/strong>\n* Disabled report metadata for GetCrawlingErrorExamplesBing report<\/p>\n\n<p><strong>4.3.6<\/strong>\n* Made securityPolicy adding optional only if it is available<\/p>\n\n<p><strong>4.3.5<\/strong>\n* Fixed Google and Yandex avatar not loading due to CSP changes\n* Fixed positioning of icons on configuration page\n* Upgraded google-apiclient to v2.11 to make it compatible with PHP 8.1<\/p>\n\n<p><strong>4.3.4<\/strong>\n* Started logging additional exception messages when not triggered via archiving process<\/p>\n\n<p><strong>4.3.3<\/strong>\n* Fixed bug where footer message might have been shown more than once in row evolution\n* Improved error handling of Yandex import<\/p>\n\n<p><strong>4.3.2<\/strong>\n* Various improvements &amp; fixes for Yandex crawl stats import<\/p>\n\n<p><strong>4.3.1<\/strong>\n* Improve handling of ThrottleUser error for Bing API\n* Translation updates<\/p>\n\n<p><strong>4.3.0<\/strong>\n* Adjustments in Google import:\n    * Added support for import of news keywords\n    * Import of keywords that are not yet final (Google now provides not finalized reports of the last 2 days)\n    * Import of keywords that are older than 30 days (Google now provides up to ~500 days)\n* Fix possible notice in Yandex reports<\/p>\n\n<p><strong>4.2.2<\/strong>\n* Fix bug where adding a new site was impossible\n* Translation updates<\/p>\n\n<p><strong>4.2.1<\/strong>\n* Improve Google oauth handling.\n* Add category help texts.<\/p>\n\n<p><strong>4.2.0<\/strong>\n* Implement import of Yandex keywords and crawl stats\n* fixed a bug, occurring when updating from &lt; 3.3.0 to 4.1.0+<\/p>\n\n<p><strong>4.1.2<\/strong>\n* Improved handling of failing Bing API requests\n* Avoid unneeded Google API requests<\/p>\n\n<p><strong>4.1.1<\/strong>\n* Various tweaks<\/p>\n\n<p><strong>4.1.0<\/strong>\n* Fully removed Google Crawl stats &amp; errors reports (deprecated since 3.3.0)<\/p>\n\n<p><strong>4.0.0<\/strong>\n* Compatibility with Matomo 4<\/p>\n\n<p><strong>3.6.0<\/strong>\n* Updated dependencies to fix possible compatibility issues with other plugins\n* Translation updates<\/p>\n\n<p><strong>3.5.1<\/strong>\n* Fix image path for WordPress installation<\/p>\n\n<p><strong>3.5.0<\/strong>\n* Update database table definitions to work with <code>utf8mb4<\/code> without <code>innodb_large_prefix<\/code><\/p>\n\n<p><strong>3.4.2<\/strong>\n* Translation updates\n* Tiny code improvements\n* Lower positions will now be shown as better (requires Matomo 3.13)<\/p>\n\n<p><strong>3.4.1<\/strong>\n* Compatibility with upcoming Matomo 3.12.0\n* Removed obsolete Code for importing Google Crawl Stats &amp; Errors\n* Translation updates<\/p>\n\n<p><strong>3.4.0<\/strong>\n* Use imported keywords for (subtable) reports of more reports:\n    * <em>Acquisition &gt; All channels &gt; Channel type<\/em>\n    * <em>Acquisition &gt; All channels &gt; Referrers<\/em>\n    * <em>Acquisition &gt; Search Engines<\/em>\n* Show related reports for reports showing imported keywords to show originally tracked keywords instead\n* Translations for German and Albanian<\/p>\n\n<p><strong>3.3.2<\/strong>\n* Fix sorting for keyword tables\n* Improved compatibility with Roll-Up Reporting plugin\n* Translation updates<\/p>\n\n<p><strong>3.3.1<\/strong>\n* Ensure at least one keyword type is configured for Google imports\n* Deprecated Property Set and Android App imports\n* Improve sorting of keyword reports by adding a secondary sort column\n* Added proper handling for new Domain properties on Google Search Console<\/p>\n\n<p><strong>3.3.0<\/strong>\n* Fixed bug with incorrect numbers for reports including day stats for Bing\n* Improved validation of uploaded Google client configs\n* Updated dependencies\n* Deprecated Google Crawl Errors reports (due to Google API deprecation).\n  Old reports will still be available, but no new data can be imported after end of March '19.\n  New installs won't show those reports at all.\n* Translation updates<\/p>\n\n<p><strong>3.2.7<\/strong>\n* Fixed notice occurring if search import is force enabled<\/p>\n\n<p><strong>3.2.6<\/strong>\n* Allow force enabling crawling error reports.\n* Improve handling of Google import (avoid importing property set data since it does not exist)<\/p>\n\n<p><strong>3.2.5<\/strong>\n* Security improvements\n* Theme updates<\/p>\n\n<p><strong>3.2.4<\/strong>\n* Improve handling of Bing Crawl Errors (fixes a notice while import)\n* Improve Google import handling of empty results\n* Security improvements\n* UI improvements\n* Translations for Polish<\/p>\n\n<p><strong>3.2.3<\/strong>\n* Various code improvements\n* Translations for Chinese (Taiwan) and Italian<\/p>\n\n<p><strong>3.2.0<\/strong>\n* Changes the <em>Combined Keywords<\/em> report to also include keywords reported by Referrers.getKeywords\n* Adds new reports <em>Combined imported keywords<\/em> (which is what the combined keywords was before)\n* Replaces Referrers.getKeywords reports in order to change name and show it as related report\n* Move all reports to the Search Engines &amp; Keywords category (showing Search Engines last)<\/p>\n\n<p><strong>3.1.0<\/strong>\n* New crawl errors reports und Pages &gt; crawl errors showing pages having crawl issues on Google and Bing\/Yahoo!<\/p>\n\n<p><strong>3.0.10<\/strong>\n* Improved error handling\n* Row evolution for combined keywords reports\n* Fixed error when generating scheduled reports with evolution charts<\/p>\n\n<p><strong>3.0.9<\/strong>\n* Renamed Piwik to Matomo<\/p>\n\n<p><strong>3.0.8<\/strong>\n* Possibility to show keyword position as float instead of integer<\/p>\n\n<p><strong>3.0.7<\/strong>\n* Added commands to trigger import using console command\n* Various UI\/UX improvements<\/p>\n\n<p><strong>3.0.6<\/strong>\n* Now uses Piwik proxy config if defined<\/p>\n\n<p><strong>3.0<\/strong>\n* Possibility to import keyords &amp; crawl stats from Google Search Console\n* Setting per website if web, image and\/or video keywords should be imported\n* Possibility to import keywords &amp; crawl stats from Bing\/Yahoo! Webmaster API<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/SearchEngineKeywordsPerformance\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"SearchMonitor","displayName":"Search Monitor","owner":"TWConnect","description":"Some custom reports which are related with search performance for MyThoughtWorks.","homepage":null,"createdDateTime":"2017-03-16 02:52:03","donate":{},"support":[{"name":"Email","key":"email","value":"htao@thoughtworks.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/TWConnect\/piwikPlugin\/issues","type":"url"}],"isTheme":false,"keywords":["SearchMonitor"],"basePrice":0,"authors":[{"name":"ThoughtWorks","email":"htao@thoughtworks.com","homepage":null}],"repositoryUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin","lastUpdated":"2017-04-17 10:18:04","latestVersion":"1.3.2","numDownloads":7815,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"92","numContributors":"3","lastCommitDate":"2017-09-29 03:05:36"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.2.2","release":"2017-03-16 03:04:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.2.2"},{"name":"0.2.4","release":"2017-03-16 10:54:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.2.4"},{"name":"0.2.5","release":"2017-03-16 11:30:04","requires":{"piwik":">=3.0.0,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.2.5"},{"name":"0.2.6","release":"2017-03-16 13:32:04","requires":{"piwik":">=3.0.0,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.2.6"},{"name":"0.2.7","release":"2017-03-16 13:36:04","requires":{"piwik":">=3.0.0,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":27,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.2.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.2.7"},{"name":"0.8.1","release":"2017-03-17 02:08:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.1"},{"name":"0.8.2","release":"2017-03-17 02:28:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.2"},{"name":"0.8.3","release":"2017-03-17 04:30:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.3"},{"name":"0.8.4","release":"2017-03-17 07:00:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.4"},{"name":"0.8.5","release":"2017-03-17 07:20:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":29,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.5"},{"name":"0.8.6","release":"2017-03-20 03:16:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":26,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.6"},{"name":"0.8.7","release":"2017-03-20 10:28:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":92,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.7"},{"name":"0.8.8","release":"2017-03-24 10:46:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.8"},{"name":"0.8.9","release":"2017-03-25 12:10:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.8.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.8.9"},{"name":"0.9.0","release":"2017-03-25 13:04:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":164,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.0"},{"name":"0.9.1","release":"2017-04-01 09:56:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.1"},{"name":"0.9.2","release":"2017-04-01 11:18:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.2"},{"name":"0.9.3","release":"2017-04-01 14:02:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":20,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.3"},{"name":"0.9.4","release":"2017-04-02 12:50:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.4"},{"name":"0.9.5","release":"2017-04-03 01:38:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.5"},{"name":"0.9.6","release":"2017-04-03 01:54:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.6"},{"name":"0.9.7","release":"2017-04-03 02:30:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.7"},{"name":"0.9.8","release":"2017-04-03 06:32:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.8"},{"name":"0.9.9","release":"2017-04-03 12:38:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/0.9.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/0.9.9"},{"name":"1.0.0","release":"2017-04-03 13:00:05","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.0"},{"name":"1.0.1","release":"2017-04-04 03:00:05","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.1"},{"name":"1.0.2","release":"2017-04-04 03:18:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":48,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.2"},{"name":"1.0.3","release":"2017-04-05 01:42:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.3"},{"name":"1.0.4","release":"2017-04-05 02:54:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.4"},{"name":"1.0.5","release":"2017-04-05 03:36:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.5"},{"name":"1.0.6","release":"2017-04-05 06:56:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.6"},{"name":"1.0.7","release":"2017-04-05 07:42:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.7"},{"name":"1.0.8","release":"2017-04-05 08:16:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.8"},{"name":"1.0.9","release":"2017-04-05 09:28:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.0.9"},{"name":"1.1.0","release":"2017-04-05 09:46:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.1.0"},{"name":"1.1.2","release":"2017-04-05 10:18:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.1.2"},{"name":"1.1.3","release":"2017-04-05 10:52:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.1.3"},{"name":"1.1.4","release":"2017-04-05 11:08:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":30,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.1.4"},{"name":"1.1.6","release":"2017-04-06 09:54:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.1.6"},{"name":"1.1.7","release":"2017-04-06 10:34:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.1.7"},{"name":"1.1.8","release":"2017-04-07 02:54:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.1.8"},{"name":"1.1.9","release":"2017-04-07 12:02:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":57,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.1.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.1.9"},{"name":"1.2.0","release":"2017-04-10 06:00:05","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":54,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.0"},{"name":"1.2.1","release":"2017-04-12 05:22:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.1"},{"name":"1.2.2","release":"2017-04-12 11:02:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.2"},{"name":"1.2.3","release":"2017-04-12 13:40:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.3"},{"name":"1.2.4","release":"2017-04-12 13:58:05","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":32,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.4"},{"name":"1.2.5","release":"2017-04-13 02:56:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.5"},{"name":"1.2.6","release":"2017-04-13 03:48:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.6"},{"name":"1.2.7","release":"2017-04-13 07:50:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":50,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.7"},{"name":"1.2.8","release":"2017-04-14 08:48:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":97,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.8"},{"name":"1.2.9","release":"2017-04-17 01:28:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.2.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.2.9"},{"name":"1.3.0","release":"2017-04-17 03:02:03","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.3.0"},{"name":"1.3.1","release":"2017-04-17 03:44:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.3.1"},{"name":"1.3.2","release":"2017-04-17 10:18:04","requires":{"piwik":">=3.0.1-stable,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6803,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/TWConnect\/piwikPlugin\/commits\/1.3.2","readmeHtml":{"description":"\n\n<p>This plugin is customized for MyThoughtWorks. We want to track user search action and generate some custom reports.<\/p>\n\n<p>This plugin will include reports:\nget search result by role and region\nget pace time on search result page for tendency and distribution<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Document<\/h2>\n\n<h1>Matomo (Piwik) SearchMonitor Plugin<\/h1>\n\n<h2>Description<\/h2>\n\n<p>This plugin is customized for MyThoughtWorks. We want to track user search action and generate some custom reports.<\/p>\n\n<p>This plugin will include reports:\nget pace time on search result page for tendency and distribution.<\/p>\n\n<h2>Graphic \u201cPace Time on Search Result Content\u201d<\/h2>\n\n<h2>Time of Reading Search Result Content<\/h2>\n\n<p>When user click on a search result, how long did he\/she spend on reading the content. From click the link until user leaves the page. If user click more than one link, then calculate the total reading time as one search result time.\nGraphics contain two parts: \u201cTendency\u201d and \u201cDistribution\u201d<\/p>\n\n<h2>Tendency<\/h2>\n\n<p>a graphic shows the average of \u201cPace Time on Search Result Content\u201d on every date in a dateRange. When mouse hovers on the curve, it will show the value of the average page time on a single day.<\/p>\n\n<h2>Distribution<\/h2>\n\n<p>a graphic shows the distribution of time sections. When mouse hovers on the bar, it will show the value of percentage and times of search. Time section: 1-5s, 5-10s, 10-30s, 30-60s, 60s above<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/SearchMonitor\/download\/1.3.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SearchMonitor\/changelog"},"consumer":{"license":null}},{"name":"SecurityInfo","displayName":"Security Info","owner":"matomo-org","description":"Provides security information about your PHP environment and offers suggestions based on PhpSecInfo from the PHP Security Consortium.","homepage":"https:\/\/matomo.org","createdDateTime":"2013-10-31 22:12:08","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo","type":"url"}],"isTheme":false,"keywords":["security","phpsec"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo","lastUpdated":"2026-08-24 06:01:07","latestVersion":"6.0.0","numDownloads":165226,"screenshots":["https:\/\/plugins.matomo.org\/SecurityInfo\/images\/6.0.0\/Security_Info.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/SecurityInfo.png","previews":[],"activity":{"numCommits":"351","numContributors":"43","lastCommitDate":"2026-10-21 04:24:32"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"security","categories":["security"],"promotions":{},"versions":[{"name":"1.0","release":"2013-10-31 22:12:09","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/1.0"},{"name":"1.0.1","release":"2013-11-01 01:18:06","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/1.0.1"},{"name":"1.0.2","release":"2013-11-01 01:24:06","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3236,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/1.0.2"},{"name":"1.0.3","release":"2014-02-18 05:12:07","requires":{"piwik":">=2.0.4-b5","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":91,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/1.0.3"},{"name":"1.0.4","release":"2014-02-23 22:36:07","requires":{"piwik":">=2.0.4-b5","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4553,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/1.0.4"},{"name":"1.0.5","release":"2014-06-09 05:16:08","requires":{"piwik":">=2.4.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":21640,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/1.0.5"},{"name":"3.0.0","release":"2016-09-13 22:04:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":406,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/3.0.0"},{"name":"1.0.6","release":"2016-10-06 02:06:04","requires":{"piwik":">=2.4.0-b1,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3554,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/1.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/1.0.6"},{"name":"3.0.1","release":"2016-11-01 20:46:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":258,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/3.0.1"},{"name":"1.0.7","release":"2016-11-13 23:46:04","requires":{"piwik":">=2.4.0-b1,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4336,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/1.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/1.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/1.0.7"},{"name":"3.0.2","release":"2016-11-13 23:50:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2989,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/3.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/3.0.2"},{"name":"3.0.3","release":"2016-12-27 05:46:04","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4706,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/3.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/3.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/3.0.3"},{"name":"3.0.4","release":"2017-02-22 20:32:05","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7717,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/3.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/3.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/3.0.4"},{"name":"3.0.5","release":"2017-11-01 21:58:05","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7696,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/3.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/3.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/3.0.5"},{"name":"3.0.6","release":"2018-06-18 10:12:05","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8441,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/3.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/3.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/3.0.6"},{"name":"3.0.7","release":"2019-06-19 07:06:05","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11326,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/3.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/3.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/3.0.7"},{"name":"4.0.0","release":"2020-07-29 09:10:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":632,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:18:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2575,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/4.0.1"},{"name":"4.0.2","release":"2021-01-15 20:14:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":27469,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/4.0.2"},{"name":"5.0.0","release":"2023-05-05 05:26:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":457,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/5.0.0"},{"name":"5.0.1","release":"2023-11-20 05:24:03","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4682,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/5.0.1"},{"name":"5.0.2","release":"2024-02-12 06:16:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4758,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/5.0.2"},{"name":"5.0.3","release":"2024-04-22 07:24:03","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13350,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/5.0.3"},{"name":"5.0.4","release":"2025-01-20 07:40:08","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25130,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/5.0.4"},{"name":"5.0.5","release":"2026-08-06 14:52:04","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4963,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/5.0.5"},{"name":"6.0.0","release":"2026-08-24 06:01:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":242,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SecurityInfo\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-SecurityInfo\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>We highly recommend that all Matomo administrators enable the SecurityInfo plugin, and then view the Settings. The plugin is a tool in a multilayered security approach.<\/p>\n\n<p>Performed checks include for instance usage of the latest PHP version, usage of the latest Matomo version, usage of PHP ini settings like <code>magic_quotes_gpc<\/code> and more.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Does the plugin replace secure development practices or audit the code\/application?<\/strong><\/p>\n\n<p>No, it doesn't. It just gives you some information based on PhpSecInfo from the PHP Security Consortium.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.0 - 2026-08-09\n- Compatibility with Matomo 6<\/p>\n\n<p>5.0.5 - 2026-08-06\n- Added code to load test files only via an allowlist<\/p>\n\n<p>5.0.4 - 2025-01-20\n- Added missing license file<\/p>\n\n<p>5.0.3\n- Added plugin category for Marketplace<\/p>"},"download":"\/api\/2.0\/plugins\/SecurityInfo\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SecurityInfo\/changelog"},"consumer":{"license":null}},{"name":"Sentry","displayName":"Sentry","owner":"Digitalist-Open-Cloud","description":"Log Matomo errors to Sentry.","homepage":"https:\/\/www.digitalist.se\/","createdDateTime":"2024-01-31 12:52:02","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/digitalist-se\/MatomoPlugin-Sentry\/issues","type":"url"}],"isTheme":false,"keywords":["sentry","error"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"},{"name":"Mikke Schir\u00e9n","email":"mikke.schiren@digitalist.com","homepage":"https:\/\/www.digitalist.se\/"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry","lastUpdated":"2024-08-30 13:52:02","latestVersion":"5.0.16","numDownloads":13480,"screenshots":["https:\/\/plugins.matomo.org\/Sentry\/images\/5.0.16\/sentry_interface.png"],"coverImage":"https:\/\/plugins.matomo.org\/Sentry\/images\/5.0.16\/_cover.png","previews":[],"activity":{"numCommits":"40","numContributors":"2","lastCommitDate":"2024-08-30 13:51:39"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"5.0.3","release":"2024-01-31 12:52:02","requires":{"matomo":">=5.0.1-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.3"},{"name":"5.0.4","release":"2024-01-31 13:00:02","requires":{"matomo":">=5.0.1-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.4"},{"name":"5.0.5","release":"2024-01-31 15:06:03","requires":{"matomo":">=5.0.1-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":42,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.5"},{"name":"5.0.6","release":"2024-02-05 15:38:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.6"},{"name":"5.0.7","release":"2024-02-06 09:46:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":46,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.7"},{"name":"5.0.8","release":"2024-02-09 12:22:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":243,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.8"},{"name":"5.0.10","release":"2024-02-13 15:26:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":65,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.10"},{"name":"5.0.11","release":"2024-02-14 11:46:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":704,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.11\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.11"},{"name":"5.0.12","release":"2024-03-10 10:20:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.12\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.12"},{"name":"5.0.13","release":"2024-03-10 15:12:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1034,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.13\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.13","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.13"},{"name":"5.0.14","release":"2024-05-06 07:18:03","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1647,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.14\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.14","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.14"},{"name":"5.0.15","release":"2024-06-27 06:50:44","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":767,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.15\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.15","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.15"},{"name":"5.0.16","release":"2024-08-30 13:52:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1","php":">=7.4.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8894,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sentry\/5.0.16\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-Sentry\/commits\/5.0.16","readmeHtml":{"description":"\n\n<p>Log errors from Matomo to a <a href=\"https:\/\/sentry.io\/\">Sentry<\/a> instance, or Sentry compatible setup like <a href=\"https:\/\/glitchtip.com\/\">GlitchTip<\/a>. <a href=\"https:\/\/guides.lw1.at\/how-to-install-glitchtip-without-docker\/\">Here is a guide<\/a> by <a href=\"https:\/\/github.com\/Findus23\">@Findus23<\/a> on how to setup GlitchTip if you are not using Docker.<\/p>\n\n<blockquote>\n  <p>[!WARNING]\n  With this plugin activated, the data of the logged in user could be logged in Sentry, handle all user data with care, and make sure you are using settings that anonymize the data.<\/p>\n<\/blockquote>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>For information about the plugin, see README.md.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Description<\/h2>\n\n<p>Log errors from Matomo to a <a href=\"https:\/\/sentry.io\/\">Sentry<\/a> instance, or Sentry compatible setup like <a href=\"https:\/\/glitchtip.com\/\">GlitchTip<\/a>. <a href=\"https:\/\/guides.lw1.at\/how-to-install-glitchtip-without-docker\/\">Here is a guide<\/a> by <a href=\"https:\/\/github.com\/Findus23\">@Findus23<\/a> on how to setup GlitchTip if you are not using Docker.<\/p>\n\n<blockquote>\n  <p>[!WARNING]\n  With this plugin activated, the data of the logged in user could be logged in Sentry, handle all user data with care, and make sure you are using settings that anonymize the data.<\/p>\n<\/blockquote>\n\n<h2>Installation<\/h2>\n\n<ul>\n<li>Clone GitHub repo into plugins\/Sentry.<\/li>\n<li>Go into plugins\/Sentry.<\/li>\n<li>Run composer install --no-dev for productions use.<\/li>\n<li>Install Sentry plugin in Matomo.<\/li>\n<li>Go to settings page for adding the adding the Sentry Data Source Name (DSN).<\/li>\n<li>Adjust Error tracking sample rate and Tracing sample rate to you preferred values.<\/li>\n<li>Save settings.<\/li>\n<\/ul>\n\n<h2>Settings<\/h2>\n\n<p>System -&gt; General settings -&gt; Sentry<\/p>\n\n<h3>DSN<\/h3>\n\n<p>The unique DSN for the project. Without, Sentry will not track errors in PHP.<\/p>\n\n<h3>Sample rate<\/h3>\n\n<p>Default value is 1, that means all PHP errors will be tracked that the Sentry plugin discovers. To have a lower sample rate, use as an example 0.25 to catch 25% of the errors. 0 disables the error tracking.<\/p>\n\n<h3>DSN (JS)<\/h3>\n\n<p>For Javascript error tracking. Without it, no JavaScript errors will be tracked.<\/p>\n\n<h2>Local testing<\/h2>\n\n<p>For local testing see <a href=\"TESTS.md\">test documentation<\/a>.<\/p>\n\n<h2>Update Sentry PHP SDK<\/h2>\n\n<p>Sentry PHP SDK is added in composer, and should be installed and updated by composer.<\/p>\n\n<h2>Update Sentry js<\/h2>\n\n<p>Releases are published in <a href=\"https:\/\/github.com\/getsentry\/sentry-javascript\/releases\">GitHub<\/a>.<\/p>\n\n<p>When a new release is out, get the latest one from <a href=\"https:\/\/browser.sentry-cdn.com\/VERSION\/bundle.tracing.min.js\">https:\/\/browser.sentry-cdn.com\/VERSION\/bundle.tracing.min.js<\/a>, where VERSION is the latest release. Replace libs\/bundle.min.js in the repo with that. Tracing is not supported yet in the plugin, but will be.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[5.0.16] - 2024-08-30<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Cover image for Marketplace<\/li>\n<\/ul>\n\n<h2>[5.0.15] - 2024-05-06<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Sentry Javascript library updated to version 8.9.2<\/li>\n<\/ul>\n\n<h2>[5.0.14] - 2024-05-06<\/h2>\n\n<h3>Changed<\/h3>\n\n<ul>\n<li>Install instructions in <code>README.md<\/code> - mirrored in <code>docs\/index.md<\/code><\/li>\n<\/ul>\n\n<h2>5.0.9<\/h2>\n\n<ul>\n<li>Fix bug in 5.0.8 that broke Matomo.<\/li>\n<\/ul>\n\n<h2>5.0.1<\/h2>\n\n<ul>\n<li>updated to JavaScript SDK 7.99.0<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<ul>\n<li>updates for Matomo 5.<\/li>\n<\/ul>\n\n<h2>0.3.1<\/h2>\n\n<ul>\n<li>use same version of guzzle as SearchEngineKeywordsPerformance<\/li>\n<\/ul>\n\n<h2>0.3.0<\/h2>\n\n<ul>\n<li>don't ship whole node_modules directory<\/li>\n<li>update sentry SDKs<\/li>\n<\/ul>\n\n<h2>0.2.3<\/h2>\n\n<p>don't load current plugin<\/p>\n\n<h2>0.2.2<\/h2>\n\n<p>fix typo in saving username<\/p>\n\n<h2>0.2.1<\/h2>\n\n<p>require PHP 7.1<\/p>\n\n<h2>0.2.0<\/h2>\n\n<ul>\n<li>update @sentry\/browser to 5.0.5<\/li>\n<li>use new PHP sentry SDK<\/li>\n<li>add Matomo metadata to requests<\/li>\n<\/ul>\n\n<h2>0.1.0<\/h2>\n\n<p>first release<\/p>"},"download":"\/api\/2.0\/plugins\/Sentry\/download\/5.0.16"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Sentry\/changelog"},"consumer":{"license":null}},{"name":"SentryLogger","displayName":"Sentry Logger","owner":"Findus23","description":"Log all Matomo errors to a Sentry server.","homepage":"https:\/\/lw1.at","createdDateTime":"2018-09-30 12:34:03","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"lukas@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Findus23\/plugin-SentryLogger\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Findus23\/plugin-SentryLogger","type":"url"}],"isTheme":false,"keywords":["sentry","error"],"basePrice":0,"authors":[{"name":"Lukas Winkler","email":"lukas@matomo.org","homepage":"https:\/\/lw1.at"}],"repositoryUrl":"https:\/\/github.com\/Findus23\/plugin-SentryLogger","lastUpdated":"2020-02-08 20:42:11","latestVersion":"0.3.1","numDownloads":4205,"screenshots":["https:\/\/plugins.matomo.org\/SentryLogger\/images\/0.3.1\/sentry_interface.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"24","numContributors":"2","lastCommitDate":"2024-08-30 13:51:39"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2018-09-30 12:34:04","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1031,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-SentryLogger\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SentryLogger\/download\/0.1.0"},{"name":"0.2.0","release":"2019-04-04 19:56:11","requires":{"piwik":">=3.6.0,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-SentryLogger\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SentryLogger\/download\/0.2.0"},{"name":"0.2.1","release":"2019-04-04 20:06:12","requires":{"piwik":">=3.6.0,<4.0.0-b1","php":">=7.1.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-SentryLogger\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SentryLogger\/download\/0.2.1"},{"name":"0.2.2","release":"2019-04-04 20:40:12","requires":{"piwik":">=3.6.0,<4.0.0-b1","php":">=7.1.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-SentryLogger\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SentryLogger\/download\/0.2.2"},{"name":"0.2.3","release":"2019-04-04 21:16:11","requires":{"piwik":">=3.6.0,<4.0.0-b1","php":">=7.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":867,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-SentryLogger\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SentryLogger\/download\/0.2.3"},{"name":"0.3.0","release":"2020-02-08 20:16:10","requires":{"piwik":">=3.6.0,<4.0.0-b1","php":">=7.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-SentryLogger\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SentryLogger\/download\/0.3.0"},{"name":"0.3.1","release":"2020-02-08 20:42:11","requires":{"piwik":">=3.6.0,<4.0.0-b1","php":">=7.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2296,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Findus23\/plugin-SentryLogger\/commits\/0.3.1","readmeHtml":{"description":"\n\n<p>Log all errors happening in your Matomo instance to a <a href=\"https:\/\/sentry.io\/welcome\/\">Sentry<\/a> server for easier viewing and aggregation.<\/p>\n\n<p><strong>This plugin is experimental and should only be used if one understands how Sentry works.<\/strong><\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Why didn't you integrate sentry into the existing monolog logging?<\/strong><\/p>\n\n<p>Using the default Sentry PHP error tracking shows more error details and is easier to build.\nIt remains to be seen if all Matomo errors get't recorded this way.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h4>0.3.1<\/h4>\n\n<ul>\n<li>use same version of guzzle as SearchEngineKeywordsPerformance<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>don't ship whole node_modules directory<\/li>\n<li>update sentry SDKs<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<p>don't load current plugin<\/p>\n\n<h4>0.2.2<\/h4>\n\n<p>fix typo in saving username<\/p>\n\n<h4>0.2.1<\/h4>\n\n<p>require PHP 7.1<\/p>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>update @sentry\/browser to 5.0.5<\/li>\n<li>use new PHP sentry SDK<\/li>\n<li>add Matomo metadata to requests<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<p>first release<\/p>"},"download":"\/api\/2.0\/plugins\/SentryLogger\/download\/0.3.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SentryLogger\/changelog"},"consumer":{"license":null}},{"name":"SEOWebVitals","displayName":"SEO Web Vitals","owner":"matomo-org","description":"Improve your website performance, rank higher in search results and optimise your visitor experience with SEO Web Vitals.","homepage":"https:\/\/matomo.org","createdDateTime":"2021-09-07 21:26:29","donate":{},"support":[],"isTheme":false,"keywords":["search","engine","performance","optimization","google","SEO","web vitals","vitals","optimisation"],"basePrice":83,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-05 01:14:11","latestVersion":"6.0.1","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/SEOWebVitals\/images\/6.0.1\/0_Overview.png","https:\/\/plugins.matomo.org\/SEOWebVitals\/images\/6.0.1\/1_Audit_Data.png","https:\/\/plugins.matomo.org\/SEOWebVitals\/images\/6.0.1\/2_Row_Evolution.png","https:\/\/plugins.matomo.org\/SEOWebVitals\/images\/6.0.1\/3_Audit_Row_Evolution.png","https:\/\/plugins.matomo.org\/SEOWebVitals\/images\/6.0.1\/4_Custom_Alert.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/SEOWebVitals.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/SEOWebVitals","variations":[{"product_variation_id":130517,"price":"89","prettyPrice":"89EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130517&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130517","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-seowebvitals\/?attribute_type=1+to+4+users&add-to-cart=58506&variation_id=130517&aelia_cs_currency=EUR"},{"product_variation_id":130517,"price":"99","prettyPrice":"USD99","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130517&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130517","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-seowebvitals\/?attribute_type=1+to+4+users&add-to-cart=58506&variation_id=130517&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130518,"price":"679","prettyPrice":"679EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130518&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130518","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-seowebvitals\/?attribute_type=Up+to+20+users&add-to-cart=58506&variation_id=130518&aelia_cs_currency=EUR"},{"product_variation_id":130518,"price":"819","prettyPrice":"USD819","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130518&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130518","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-seowebvitals\/?attribute_type=Up+to+20+users&add-to-cart=58506&variation_id=130518&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130519,"price":"1359","prettyPrice":"1359EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130519&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130519","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-seowebvitals\/?attribute_type=Up+to+50+users&add-to-cart=58506&variation_id=130519&aelia_cs_currency=EUR"},{"product_variation_id":130519,"price":"1629","prettyPrice":"USD1629","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130519&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=58506&variation_id=130519","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-seowebvitals\/?attribute_type=Up+to+50+users&add-to-cart=58506&variation_id=130519&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-seowebvitals\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":null,"ratingCount":0,"reviewCount":0}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{},"versions":[{"name":"6.0.1","release":"2026-10-05 01:14:11","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/SEOWebVitals\/6.0.1\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Discover how fast and user-friendly your website truly is based on Google's Web Vitals. Optimise your visitor experience and boost your search rankings.<\/p>\n\n<p>Web Vitals is Google's initiative to measure the health of a website, focusing on the Core Web Vitals: loading, interactivity, and visual stability. According to Google, the faster a page loads and the easier and more visually stable one is, the better the user experience.<\/p>\n\n<p>There's a strong correlation between a website\u2019s Core Web Vitals performance and its search engine rankings. So by optimising the Core Web Vitals, you won't just improve user experience but also your site's rankings.<\/p>\n\n<p>With the SEO Web Vitals plugin, you can track your site's Web Vitals performance, find issues related to the key metrics, and remediate them to enhance your user experience and search engine rankings.<\/p>\n\n<h3>How SEO Web Vitals Works<\/h3>\n\n<h4>Get a Quick View of Your Pages' Performance<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Gain an immediate understanding of your site's performance with detailed breakdowns of Core Web Vitals for each page, available for both desktop and mobile. Use the Page Speed Score as your guide to pinpoint and improve weak areas.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SEOWebVitals\/image1.png\" style=\"margin-left:24px;\" alt=\"Get a Quick View of Your Pages' Performance\" \/>\n<\/div>\n<\/div>\n\n<h4>Audit Your Pages In Unparalleled Detail<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Perform thorough audits on your pages to understand the root causes of any performance hiccups. Receive a comprehensive analysis of potential issues affecting scores across desktop and mobile devices.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SEOWebVitals\/image2.png\" style=\"margin-left:24px;\" alt=\"Audit Your Pages In Unparalleled Detail\" \/>\n<\/div>\n<\/div>\n\n<h4>Track Web Vitals' Metrics Over Time<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Get a detailed perspective on your pages' speed performance by tracking their Page Speed Score through time. Dig deeper into any Core Web Vitals metrics on desktop and mobile devices and gain a better understanding of their changes.<\/p>\n<p>Compare any Core Web Vital metric and use the row evolution graph for visual analysis.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SEOWebVitals\/image3.png\" style=\"margin-left:24px;\" alt=\"Track Web Vitals' Metrics Over Time\" \/>\n<\/div>\n<\/div>\n\n<h4>Monitor Your Web Vitals Score<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Continuously monitor the trajectory of your Web Vitals metrics, an indispensable tool for assessing the effectiveness of recent changes made to any page.<\/p>\n<p>Whether you\u2019ve tweaked the design or content, this feature helps confirm if those changes are positively impacting the user experience and boosting your Web Vitals scores.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SEOWebVitals\/image4.png\" style=\"margin-left:24px;\" alt=\"Monitor Your Web Vitals Score\" \/>\n<\/div>\n<\/div>\n\n<h4>Receive Custom Alerts for Fast Problem Resolution<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Set up custom alerts for specific pages and stay informed about any significant shifts in Core Web Vitals metrics.<\/p>\n<p>Be the first to know when any Core Web Vitals metric hits or misses your target score, allowing you to swiftly address issues or share achievements with your team.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/SEOWebVitals\/image5.png\" style=\"margin-left:24px;\" alt=\"Receive Custom Alerts for Fast Problem Resolution\" \/>\n<\/div>\n<\/div>\n\n<h3>Try SEO Web Vitals Today<\/h3>\n\n<p>Unlock your website's true potential with the SEO Web Vitals plugin. Effortlessly monitor, analyse, and enhance your site's performance, paving the way for better user experiences and higher search rankings.<\/p>\n\n<p>Start your 30-day free trial and propel your website to the forefront of search rankings and user satisfaction.<\/p>\n\n<h3>Privacy features<\/h3>\n\n<ul>\n<li>This plugin does not store any personal or sensitive data.<\/li>\n<\/ul>\n\n<h3>Integrates with Matomo Analytics platform<\/h3>\n\n<ul>\n<li>Create <a href=\"https:\/\/plugins.matomo.org\/CustomAlerts\">custom alerts<\/a> and be notified when specific web vital metrics change.<\/li>\n<li>View the evolution over time of any web vital metrics to see when certain changes happened with <a href=\"https:\/\/matomo.org\/docs\/row-evolution\/\">Row Evolution<\/a>.<\/li>\n<li>View your web vital reports on the <a href=\"https:\/\/matomo.org\/mobile\/\">Matomo Mobile App<\/a>.<\/li>\n<li>Get your web vital reports by <a href=\"https:\/\/matomo.org\/docs\/email-reports\/\">email<\/a> to you, your colleagues or customers.<\/li>\n<li>Export the web vital reports directly in your app, dashboard, or even TV screen! Even your real time reports can be <a href=\"https:\/\/matomo.org\/docs\/embed-piwik-report\/\">embedded<\/a> anywhere.<\/li>\n<li>Change the visualisation to view for example only mobile or only desktop web vital metrics.<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/guide\/reports\/seo-web-vitals\/\">SEO Web Vitals User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/seo-web-vitals\/\">SEO Web Vitals FAQ<\/a> cover how to get the most out of this plugin.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.1 - 2026-10-05\n- Support rotating the encryption key of the stored Google PageSpeed API token with the <code>core:rotate-encryption-keys<\/code> console command (available from the Matomo release that introduces it)<\/p>\n\n<p>6.0.0 - 2026-08-11\n- Compatibility with Matomo 6<\/p>\n\n<p>5.0.12 - 2026-07-13\n- Added code to encrypt sensitive values in database to improve security<\/p>\n\n<p>5.0.11 - 2026-04-27\n- Updated API documentation<\/p>\n\n<p>5.0.10 - 2026-02-02\n- Updated API documentation<\/p>\n\n<p>5.0.9 - 2024-11-18\n- Removed FID metric and INP banner<\/p>\n\n<p>5.0.8 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.0.7 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.6\n- Added cover image for marketplace<\/p>\n\n<p>5.0.5\n- Added code to handle case where FID metric is no more returned by pagespeed API<\/p>\n\n<p>5.0.4\n- Added code to handle site not exists 400 error<\/p>\n\n<p>5.0.3\n- Updated README.md.\n- Added new metric - Interaction to Next Paint<\/p>\n\n<p>5.0.2\n- Fixes deprecation warning<\/p>\n\n<p>5.0.1\n- Compatibility with Matomo 5.0.0-b4<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.0.4\n- Fixed unsupported operands exception<\/p>\n\n<p>4.0.3\n- Fixed exception for 403 errors<\/p>\n\n<p>4.0.2\n- Fixed error when generating a widget<\/p>\n\n<p>4.0.1\n- Release for Matomo for WordPress<\/p>\n\n<p>4.0.0\n- Initial release<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/SEOWebVitals\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"ServerMonitor","displayName":"Server Monitor","owner":"Invision-Technology-Soultions","description":"Use Matomo (Piwik) as a front-end application to the Munin server monitoring tool. This is a Matomo plugin that reads the raw RRD data files from your Munin mas.","homepage":"https:\/\/github.com\/Invision-Technology-Soultions\/ServerMonitor","createdDateTime":"2015-07-13 06:44:04","donate":{"paypal":"support@invisionit.com.au","bitcoin":null},"support":[],"isTheme":false,"keywords":["Munin","Server Monitor"],"basePrice":0,"authors":[{"name":"Invision Technology Solutions","email":"support@invisionit.com.au","homepage":"https:\/\/github.com\/Invision-Technology-Soultions\/ServerMonitor"}],"repositoryUrl":"https:\/\/github.com\/Invision-Technology-Soultions\/ServerMonitor","lastUpdated":"2015-08-08 07:10:03","latestVersion":"0.1.1","numDownloads":9942,"screenshots":["https:\/\/plugins.matomo.org\/ServerMonitor\/images\/0.1.1\/bind.png","https:\/\/plugins.matomo.org\/ServerMonitor\/images\/0.1.1\/cpu.png","https:\/\/plugins.matomo.org\/ServerMonitor\/images\/0.1.1\/dashboard.png","https:\/\/plugins.matomo.org\/ServerMonitor\/images\/0.1.1\/memory.png","https:\/\/plugins.matomo.org\/ServerMonitor\/images\/0.1.1\/menu.png","https:\/\/plugins.matomo.org\/ServerMonitor\/images\/0.1.1\/nginx.png","https:\/\/plugins.matomo.org\/ServerMonitor\/images\/0.1.1\/serverfilter.png","https:\/\/plugins.matomo.org\/ServerMonitor\/images\/0.1.1\/widgets.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"12","numContributors":"1","lastCommitDate":"2015-08-08 07:09:13"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-07-13 06:44:04","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":324,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Invision-Technology-Soultions\/ServerMonitor\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ServerMonitor\/download\/0.1.0"},{"name":"0.1.1","release":"2015-08-08 07:10:03","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9618,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Invision-Technology-Soultions\/ServerMonitor\/commits\/0.1.5","readmeHtml":{"description":"\n\n<p>Use <a href=\"http:\/\/piwik.org\/\">Piwik<\/a> as your analytics platform for statistics collected by <a href=\"http:\/\/munin-monitoring.org\/\">Munin server monitoring<\/a> tool.<\/p>\n\n<p>This is a <a href=\"http:\/\/piwik.org\/\">Piwik<\/a> plugin that reads the raw RRD files from your Munin master server.<\/p>\n\n<p>This enhances the Munin functionality by providing all the great benefits of Matomo (Piwik), such as<\/p>\n\n<ul>\n<li>Real time data<\/li>\n<li>Customizable Dashboards<\/li>\n<li>Enhanced Graphing<\/li>\n<li>Access Munin data using Matomo API<\/li>\n<li>TODO: Access Munin data using Matomo Mobile<\/li>\n<li>TODO: Scheduled reports<\/li>\n<li>TODO: Custom alerts for Server Monitoring - using <a href=\"https:\/\/github.com\/piwik\/plugin-CustomAlerts\">Matomo CustomAlerts plugin<\/a><\/li>\n<\/ul>\n\n","faq":"","documentation":"","changelog":"<ul>\n<li>0.1.0 - First beta<\/li>\n<li>0.1.5 - Tested Munin v2.25, Support Piwik Periods: Week, Month, Year<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/ServerMonitor\/download\/0.1.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ServerMonitor\/changelog"},"consumer":{"license":null}},{"name":"Seven","displayName":"Seven","owner":"seven-io","description":"Send SMS via seven.io.","homepage":"https:\/\/www.seven.io","createdDateTime":"2023-11-23 08:30:03","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/www.seven.io\/en\/docs\/gateway\/http-api\/sms-disptach\/","type":"url"},{"name":"Email","key":"email","value":"support@seven.io","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/seven-io\/matomo\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/seven-io\/matomo","type":"url"},{"name":"RSS","key":"rss","value":"https:\/\/www.seven.io\/en\/feed\/","type":"url"}],"isTheme":false,"keywords":["SMS"],"basePrice":0,"authors":[{"name":"seven communications GmbH & Co. KG","email":"support@seven.io","homepage":"https:\/\/www.seven.io"}],"repositoryUrl":"https:\/\/github.com\/seven-io\/matomo","lastUpdated":"2023-11-23 08:30:03","latestVersion":"2.0.0","numDownloads":13927,"screenshots":["https:\/\/plugins.matomo.org\/Seven\/images\/2.0.0\/add_phone_number.png","https:\/\/plugins.matomo.org\/Seven\/images\/2.0.0\/add_sms_provider.png","https:\/\/plugins.matomo.org\/Seven\/images\/2.0.0\/create_report.png","https:\/\/plugins.matomo.org\/Seven\/images\/2.0.0\/reports_overview.png","https:\/\/plugins.matomo.org\/Seven\/images\/2.0.0\/validate_phone_number.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"13","numContributors":"2","lastCommitDate":"2026-04-28 12:14:53"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"2.0.0","release":"2023-11-23 08:30:03","requires":{"matomo":">=4.1.1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13927,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/Seven\/2.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/seven-io\/matomo\/commits\/v2.0.0","readmeHtml":{"description":"\n\n<p>Send SMS Reports from Matomo via <a href=\"https:\/\/www.seven.io\">seven<\/a>.<\/p>\n\n<h3>Installation<\/h3>\n\n<p>You can install this plugin via the <a href=\"https:\/\/plugins.matomo.org\/\">marketplace<\/a> or manually by\ngoing through the following steps:<\/p>\n\n<ol>\n<li>Download\nthe <a href=\"https:\/\/github.com\/seven-io\/matomo\/releases\/latest\/download\/seven-matomo-latest.zip\">latest release<\/a><\/li>\n<li>Extract the archive contents to \/plugins relative to your Matomo installation path<\/li>\n<li>Go to <code>Settings -&gt; System -&gt; Plugins<\/code> and activate the plugin named <code>Seven<\/code><\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/seven-io\/matomo\/master\/screenshots\/add_sms_provider.png\">Add a new SMS provider<\/a><\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/seven-io\/matomo\/master\/screenshots\/add_phone_number.png\">Add a new phone number<\/a><\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/seven-io\/matomo\/master\/screenshots\/validate_phone_number.png\">Validate the phone number<\/a><\/li>\n<li><a href=\"https:\/\/raw.githubusercontent.com\/seven-io\/matomo\/master\/screenshots\/create_report.png\">Create a report<\/a><\/li>\n<li>Test the workflow by clicking <code>Send Report now<\/code> in\nthe <a href=\"https:\/\/raw.githubusercontent.com\/seven-io\/matomo\/master\/screenshots\/reports_overview.png\">Personal Email Reports<\/a><\/li>\n<\/ol>\n\n<h4>Support<\/h4>\n\n<p>Need help? Feel free to <a href=\"https:\/\/www.seven.io\/en\/company\/contact\">contact us<\/a>.<\/p>\n\n<h5>License<\/h5>\n\n<p><a href=\"LICENSE\"><img src=\"https:\/\/img.shields.io\/badge\/License-MIT-teal.svg\" alt=\"License-MIT-teal.svg\" \/><\/a><\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What do I need to start sending SMS?<\/strong><\/p>\n\n<p>All you need is an account from seven.io with sufficient balance.<\/p>\n\n<p><strong>Where can I register a new account?<\/strong><\/p>\n\n<p>Visit https:\/\/app.seven.io\/signup for registering.<\/p>\n\n<p><strong>Where can I find my API key?<\/strong><\/p>\n\n<p>Check out our <a href=\"https:\/\/help.seven.io\/en\/api-key-access\">helpdesk article<\/a>.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>v2.0.0<\/p>\n\n<ul>\n<li>Support v5<\/li>\n<li>Rebranding<\/li>\n<\/ul>\n\n<p>v1.1.1<\/p>\n\n<ul>\n<li>fixed typo in README<\/li>\n<\/ul>\n\n<p>v1.1.0<\/p>\n\n<ul>\n<li>getCreditLeft return balance with currency sign<\/li>\n<li>verifyCredential now respects cases like non-whitelisted IP<\/li>\n<\/ul>\n\n<p>v1.0.0<\/p>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Seven\/download\/2.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Seven\/changelog"},"consumer":{"license":null}},{"name":"SharpSpringWidgetByAmperage","displayName":"Sharp Spring Widget","owner":"AMPERAGE-Marketing","description":"Show SharpSpring info as a widget.","homepage":"http:\/\/www.amperagemarketing.com","createdDateTime":"2018-01-16 00:36:04","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/wiki","type":"url"},{"name":"Email","key":"email","value":"kzeni1@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget","type":"url"}],"isTheme":false,"keywords":["widget","amperage","sharpspring","Sharp Spring","CRM","leads"],"basePrice":0,"authors":[{"name":"Amperage Marketing & Fundraising","email":"digital@amperagemarketing.com","homepage":"http:\/\/www.amperagemarketing.com"},{"name":"Kurt Zenisek","email":"kzeni1@gmail.com","homepage":"http:\/\/kzeni.com"}],"repositoryUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget","lastUpdated":"2023-10-02 22:16:10","latestVersion":"5.0.1","numDownloads":25805,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"17","numContributors":"1","lastCommitDate":"2023-10-02 22:14:34"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2018-01-16 00:36:04","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/0.1.0"},{"name":"0.1.1","release":"2018-01-16 00:40:04","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/0.1.1"},{"name":"0.2.0","release":"2018-01-16 01:32:04","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9021,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/0.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/0.2.0"},{"name":"0.2.1","release":"2019-12-16 21:48:06","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":571,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/0.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/0.2.1"},{"name":"0.2.2","release":"2020-11-25 04:08:03","requires":{"piwik":">=3.3.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":683,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/0.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/0.2.2"},{"name":"0.2.3","release":"2021-01-29 00:04:10","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2196,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/0.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/0.2.3-Matomo-3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/0.2.3"},{"name":"0.2.4","release":"2021-01-29 00:12:07","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3998,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/0.2.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/0.2.4"},{"name":"5.0.0","release":"2023-10-02 22:04:14","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/5.0.0"},{"name":"5.0.1","release":"2023-10-02 22:16:10","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9327,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-SharpSpring-Widget\/commits\/5.0.1","readmeHtml":{"description":"\n\n<p>Show SharpSpring info as a widget.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>5.0.1<\/h2>\n\n<ul>\n<li>Updated changelog &amp; other metadata for 5.x releases.<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<ul>\n<li>Prepped release for Matomo 5.x while also version-bumping the plugin to 5.0.0 as a base value per Matomo's recommendation\/convention for Matomo 5.x plugins.<\/li>\n<\/ul>\n\n<h2>0.2.4<\/h2>\n\n<ul>\n<li>Version bump Matomo 4 plugin as that is technically newer.<\/li>\n<\/ul>\n\n<h2>0.2.3<\/h2>\n\n<ul>\n<li>Split Matomo 3 and Matomo 4 versions.<\/li>\n<\/ul>\n\n<h2>0.2.2<\/h2>\n\n<ul>\n<li>Confirmed Matomo 4 compliance.<\/li>\n<\/ul>\n\n<h2>0.2.1<\/h2>\n\n<ul>\n<li>Better scoped the widget styles.<\/li>\n<li>Made more use of existing CSS within Matomo instead of using custom styles.<\/li>\n<\/ul>\n\n<h2>0.2.0<\/h2>\n\n<ul>\n<li>Formatted the lead output.<\/li>\n<\/ul>\n\n<h2>0.1.1<\/h2>\n\n<ul>\n<li>Updated some plugin metadata.<\/li>\n<\/ul>\n\n<h2>0.1.0<\/h2>\n\n<ul>\n<li>Added API keys as a user-specific setting.<\/li>\n<\/ul>\n\n<h2>0.0.1<\/h2>\n\n<ul>\n<li>Initial Release.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/SharpSpringWidgetByAmperage\/download\/5.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SharpSpringWidgetByAmperage\/changelog"},"consumer":{"license":null}},{"name":"ShortcodeTracker","displayName":"Shortcode Tracker","owner":"mgazdzik","description":"Plugin allowing user to create shortcodes and track their usage within Matomo (Piwik). Also integrates with UI to deliver user-friendly interaction.","homepage":"http:\/\/mgazdzik.pl\/shortcodetracker","createdDateTime":"2015-11-11 12:46:02","donate":{},"support":[],"isTheme":false,"keywords":["shortcode","shortener","redirect"],"basePrice":0,"authors":[{"name":"Micha\u0142 Ga\u017adzik","email":"michal.gazdzik@gmail.com","homepage":"http:\/\/mgazdzik.pl"}],"repositoryUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker","lastUpdated":"2024-01-20 11:08:08","latestVersion":"2.0.3","numDownloads":41163,"screenshots":["https:\/\/plugins.matomo.org\/ShortcodeTracker\/images\/2.0.3\/screenshot1.png","https:\/\/plugins.matomo.org\/ShortcodeTracker\/images\/2.0.3\/screenshot2.png","https:\/\/plugins.matomo.org\/ShortcodeTracker\/images\/2.0.3\/screenshot3.png","https:\/\/plugins.matomo.org\/ShortcodeTracker\/images\/2.0.3\/screenshot4.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"7","numContributors":"1","lastCommitDate":"2025-11-25 13:30:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.4.3","release":"2015-11-11 12:46:03","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPLv3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/0.4.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/0.4.3"},{"name":"0.4.5","release":"2015-11-11 12:52:03","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":252,"license":{"name":"GPLv3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/0.4.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/0.4.5"},{"name":"0.5.0","release":"2015-12-10 21:22:03","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":85,"license":{"name":"GPLv3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/0.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/0.5.0"},{"name":"0.6.0","release":"2015-12-12 16:48:03","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPLv3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/0.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/0.6.0"},{"name":"0.6.2","release":"2015-12-12 16:54:03","requires":{"piwik":">=2.14.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2751,"license":{"name":"GPLv3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/0.6.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/0.6.2"},{"name":"0.7.0","release":"2016-12-03 13:18:04","requires":{"piwik":">=2.16.1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4133,"license":{"name":"GPLv3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/0.7.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/0.7.0"},{"name":"1.0.0-RC1","release":"2017-12-21 13:42:04","requires":{"piwik":">=3.2.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1231,"license":{"name":"GPLv3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/1.0.0-RC1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/1.0.0-RC1"},{"name":"1.1.2","release":"2019-06-18 17:32:03","requires":{"piwik":">=3.2.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL-3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/1.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/1.1.2"},{"name":"1.1.4","release":"2019-06-18 17:34:07","requires":{"piwik":">=3.2.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL-3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/1.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/1.1.4"},{"name":"1.1.5","release":"2019-06-19 05:56:04","requires":{"piwik":">=3.2.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL-3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/1.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/1.1.5"},{"name":"1.1.6","release":"2019-06-19 08:32:05","requires":{"piwik":">=3.2.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL-3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/1.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/1.1.6"},{"name":"1.1.7","release":"2019-06-19 12:30:04","requires":{"piwik":">=3.2.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL-3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/1.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/1.1.7"},{"name":"1.1.8","release":"2019-06-19 17:32:04","requires":{"piwik":">=3.2.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":20,"license":{"name":"GPL-3.0","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/1.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/1.1.8"},{"name":"1.2.0","release":"2019-06-21 13:14:04","requires":{"piwik":">=3.2.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5050,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/ShortcodeTracker\/1.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/1.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/1.2.0"},{"name":"2.0.0","release":"2020-12-23 14:52:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":400,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/ShortcodeTracker\/2.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/2.0.0"},{"name":"2.0.1","release":"2021-03-17 17:48:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3618,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/ShortcodeTracker\/2.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/2.0.1"},{"name":"2.0.2","release":"2022-11-22 14:58:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3705,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/ShortcodeTracker\/2.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/2.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/2.0.2"},{"name":"3.0.0","release":"2024-01-20 11:08:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14329,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/ShortcodeTracker\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/3.0.0"},{"name":"2.0.3","release":"2024-01-20 11:08:08","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5538,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/ShortcodeTracker\/2.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/commits\/2.0.3","readmeHtml":{"description":"\n\n<p>Plugin allows to turn Matomo (Piwik) instance into URL Shortener.<\/p>\n\n<p>Basic features:<\/p>\n\n<ul>\n<li>easily create shortcode from any page you track in Matomo (integration with Actions report UI),<\/li>\n<li>create shortcode for any custom URL you want,<\/li>\n<li>perform redirects using your Matomo instance,<\/li>\n<li>get usage statistics for shortcodes handled by your instance\n\n<ul>\n<li>get best performing URL's on websites you track,<\/li>\n<li>external URLs redirect statistics,<\/li>\n<\/ul><\/li>\n<li>see which URLs are being shortened and visited most often - also for external URLs not tracked in your Matomo.<\/li>\n<\/ul>\n\n<p>Goodness coming:<\/p>\n\n<ul>\n<li>for redirect performance improvement, store your shortcodes in storage like Memcache or Redis,<\/li>\n<li>attributing shortcode redirects with actual visits on your page,<\/li>\n<li>more advanced reports,<\/li>\n<\/ul>\n\n<p>Before using, please read content in <a href=\"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker#setup\"><code>Setup<\/code><\/a> section \nas it contains steps required to make plugin work with your Matomo instance!<\/p>\n\n<h3>Usage<\/h3>\n\n<p>After correctly setting up this plugin (please see section below), you are ready for shortening your Urls.<\/p>\n\n<p>There is one new section in top reporting menu called \"Shortcodes\".<\/p>\n\n<p>This view gives you possibility to shorten any URL you want and operate with shortcode retrieved.<\/p>\n\n<p>Additionally this plugin integrates with Page URL's report - hover over URL you want to shorten and click scissors icon.<\/p>\n\n<p>This will call popup with appropriate shortcode, so you don't need to manually shorten any URL you already track with your\nMatomo instance.<\/p>\n\n<p>Enjoy!<\/p>\n\n<h3>Setup<\/h3>\n\n<h4>Webserver<\/h4>\n\n<p>Besides of functional Matomo instance with this plugin enabled you will also need special configuration for your webserver.<\/p>\n\n<p>It's purpose is to redirect any short url hitting your server to proper API method doing the magic.<\/p>\n\n<p>Below you can find example configurations<\/p>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/blob\/master\/docs\/nginx_config.txt\">for NGINX webserver vhost<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/blob\/master\/docs\/apache_config.txt\">for Apache2 webserver .htaccess file<\/a><\/li>\n<\/ul>\n\n<p><strong>Please be aware that in your case this configuration may be different, so please contact your system\/webserver\nadmin for advisory!<\/strong><\/p>\n\n<h4>Plugin<\/h4>\n\n<p>Before you can start shortening your URLs you need to perform following steps:<\/p>\n\n<ul>\n<li>go to Administration -&gt; Plugins,<\/li>\n<li>find \"ShortcodeTracker\" plugin and click <code>enable<\/code>,<\/li>\n<\/ul>\n\n<p>After you confirm that plugin has been enabled:\n* go to Administration -&gt; Plugin Settings,\n* go to ShortcodeTracker section,\n* fill in Shortener URL input,\n* if you want to track external sites, you need to decide to which Matomo page those actions will be attributed (see\nExternal redirects tracking section below),\n* click 'save',\n* <strong>additionally you have to make Shortener URL a trusted host for Matomo by entering it in settings section<\/strong>,<\/p>\n\n<p>This is necessary to perform, as otherwise you will not be able to generate shortened URLs or use them with Matomo.<\/p>\n\n<h4>External redirects tracking<\/h4>\n\n<p>It is possible to also track redirect actions for external URLs (i.e. which URL doesn't match any page tracked within\nyour Matomo instance). However, it is required to decide to which site this traffic will be attributed to.<\/p>\n\n<p>It is recommended to create a separate Website in Matomo instance only dedicated to this traffic, so that other websites\nreports won't be affected by redirect events.<\/p>\n\n<p>To select which site should collect redirects:<\/p>\n\n<ul>\n<li>go to <code>Plugin Settings<\/code> section,<\/li>\n<li>from dropdown you can select site for external redirects,<\/li>\n<li>alternatively you can select not to track external redirects by setting <code>Do not collect external shortcode redirects<\/code>,<\/li>\n<li>click save<\/li>\n<\/ul>\n\n<h3>Backlog<\/h3>\n\n<ul>\n<li>Add advanced report for each shortcode\n\n<ul>\n<li>stitch every redirect event with following action,<\/li>\n<li>add new referrer type (shortcode),<\/li>\n<li>aggregate statistics,<\/li>\n<li>add segment for referrer,<\/li>\n<\/ul><\/li>\n<li>Refactor plugin so it's possible to cover Model.php with tests,<\/li>\n<li>Add queue system for tracking redirect events to improve performance of redirect feature,<\/li>\n<li>Add integration test for redirect tracking,<\/li>\n<li>Add support for at least one caching system (redis\/memcache),<\/li>\n<li>Improve HTML elements designs\/styles,<\/li>\n<li>Throw exception\/signal in UI in case Shortener URL is not changed,<\/li>\n<li>Introduce Shortener base URL validation (in Settings section),<\/li>\n<li>introduce value object to store Shortcode,<\/li>\n<li>handle case when given idsite has multiple domains assigned (currently it's only for main domain URL),<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>Please direct any feedback regarding plugin to Github repository issue tracker available at\n<a href=\"https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/issues\">https:\/\/github.com\/mgazdzik\/plugin-ShortcodeTracker\/issues<\/a>.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Scissors icon visible in Actions report is originating from\n<a href=\"https:\/\/icons8.com\/\">https:\/\/icons8.com\/<\/a>.<\/p>","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/ShortcodeTracker\/download\/2.0.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/ShortcodeTracker\/changelog"},"consumer":{"license":null}},{"name":"Signup","displayName":"Signup","owner":"alcalyn","description":"Let new users signup on your Matomo instance to track their own website.","homepage":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup","createdDateTime":"2019-04-20 13:04:03","donate":{"paypal":"","flattr":"","bitcoin":null},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup","type":"url"},{"name":"Email","key":"email","value":"julien.maulny@protonmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup","type":"url"},{"name":"RSS","key":"rss","value":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/releases.atom","type":"url"}],"isTheme":false,"keywords":["login","authentication","user","permission","connect","signup"],"basePrice":0,"authors":[{"name":"Julien Maulny","email":"julien.maulny@protonmail.com","homepage":"https:\/\/alcalyn.github.io\/"}],"repositoryUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup","lastUpdated":"2024-02-28 11:40:02","latestVersion":"5.0.1","numDownloads":29570,"screenshots":["https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/0-login.png","https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/1-signup-user.png","https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/2-signup-site.png","https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/3-signup-site-bottom.png","https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/4-account-created.png","https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/5-new-user-logged-in.png","https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/6-new-user-dashboard-with-visits.png","https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/7-new-user-admin.png","https:\/\/plugins.matomo.org\/Signup\/images\/5.0.1\/8-new-user-manage-sites.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"167","numContributors":"27","lastCommitDate":"2024-07-10 08:33:47"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2019-04-20 13:04:03","requires":{"piwik":">=3.6.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":336,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/0.1.0"},{"name":"0.1.2","release":"2019-06-05 15:08:06","requires":{"piwik":">=3.6.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4054,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/0.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/0.1.2"},{"name":"4.0.0","release":"2020-12-04 20:54:03","requires":{"piwik":">=4.0.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":898,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.0.0"},{"name":"4.0.2","release":"2021-09-24 12:32:03","requires":{"piwik":">=4.0.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":272,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.0.2"},{"name":"4.0.3","release":"2021-10-26 08:04:02","requires":{"piwik":">=4.0.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":140,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.0.3"},{"name":"4.0.4","release":"2021-11-22 14:36:03","requires":{"piwik":">=4.0.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":299,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.0.4"},{"name":"4.0.5","release":"2022-02-19 14:24:03","requires":{"piwik":">=4.0.0-stable,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2065,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.0.5"},{"name":"4.1.1","release":"2022-11-25 11:48:03","requires":{"piwik":">=4.8.0,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.1.1"},{"name":"4.1.2","release":"2022-11-25 14:20:03","requires":{"piwik":">=4.8.0,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":101,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.1.2"},{"name":"4.2.0","release":"2022-12-02 09:00:02","requires":{"piwik":">=4.8.0,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":515,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.2.0"},{"name":"4.2.1","release":"2023-03-22 14:44:03","requires":{"piwik":">=4.8.0,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1422,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.2.1"},{"name":"4.2.2","release":"2023-09-11 08:04:03","requires":{"piwik":">=4.8.0,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7724,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/4.2.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/4.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/4.2.2"},{"name":"5.0.0","release":"2024-02-28 11:28:03","requires":{"piwik":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Signup\/download\/5.0.0"},{"name":"5.0.1","release":"2024-02-28 11:40:02","requires":{"piwik":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11738,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/Signup\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/alcalyn\/matomo-plugin-signup\/commits\/5.0.1","readmeHtml":{"description":"\n\n<p>Let new users signup on your <a href=\"https:\/\/github.com\/matomo-org\/matomo\">Matomo<\/a> instance to track their own website.<\/p>\n\n<p>This plugin has been built in the aim to share your Matomo instance with other users.\nIt let them automatically create an account and a website in order to have\na tracking code and track their own website.<\/p>\n\n<p><img src=\"screenshots\/1-signup-user.png\" alt=\"1-signup-user.png\" \/><\/p>\n\n<p>This plugin also solves uses cases described in\n<a href=\"https:\/\/github.com\/matomo-org\/matomo\/issues\/8358\">#8358<\/a> and\n<a href=\"https:\/\/github.com\/matomo-org\/matomo\/issues\/7622\">#7622<\/a>.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How I can prevent too many users to sign up?<\/strong><\/p>\n\n<p>The plugin allows to disable new users to sign up at any moment.\nGo to General settings &gt; Signup section,\nuncheck the \"Allow new users to signup\" checkbox.\nNew users won't be able to signup to your instance until you enable it again.<\/p>\n\n<p><strong>Does signup users access to my admin or personal data?<\/strong><\/p>\n\n<p>No.<\/p>\n\n<p>Users create an account and a site and the plugin give the user an <code>admin<\/code> access to his site. They are not superadmin like you.\nThus, he will be able to fully manage his site (edit site, his user data, add new users to manage his site...), <strong>without<\/strong> accessing your user data, general settings, plugins, or others users site.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Version 5.0.1<\/h3>\n\n<ul>\n<li>Adds translations<\/li>\n<\/ul>\n\n<h3>Version 5.0.0<\/h3>\n\n<ul>\n<li>[Fixes #24] Matomo 5 compatibility<\/li>\n<\/ul>\n\n<h3>Version 4.2.0<\/h3>\n\n<ul>\n<li>[Fixes #7] Allow to restrict users signup by email domain<\/li>\n<\/ul>\n\n<h3>Version 4.1.0<\/h3>\n\n<ul>\n<li>[Fixes #16] Supports Matomo 4.8: fix signup and website creation (VueJS)<\/li>\n<\/ul>\n\n<h3>Version 4.0.0<\/h3>\n\n<ul>\n<li>[Fixes #4] Supports Matomo 4<\/li>\n<\/ul>\n\n<h3>Version 0.1.1<\/h3>\n\n<ul>\n<li>[Fixes #1] XSS - Cross Site Scripting on Sign Up plugin (thanks to @asamamax)<\/li>\n<\/ul>\n\n<h3>Version 0.1.0<\/h3>\n\n<ul>\n<li>Allows users to signup and create a site.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Signup\/download\/5.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Signup\/changelog"},"consumer":{"license":null}},{"name":"SimpleABTesting","displayName":"Simple ABTesting","owner":"nofrillsplugins","description":"A free and simple A\/B testing plugin. Insert custom CSS \/ JS for your variant and you are done.","homepage":"https:\/\/www.nofrillsplugins.com\/matomo-simple-ab-testing","createdDateTime":"2024-07-13 17:56:03","donate":{},"support":[],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"No Frills Plugins","email":null,"homepage":"https:\/\/www.nofrillsplugins.com"}],"repositoryUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing","lastUpdated":"2025-01-13 11:06:03","latestVersion":"0.1.95","numDownloads":9246,"screenshots":["https:\/\/plugins.matomo.org\/SimpleABTesting\/images\/0.1.95\/How_it_works.png","https:\/\/plugins.matomo.org\/SimpleABTesting\/images\/0.1.95\/Screenshot.png"],"coverImage":"https:\/\/plugins.matomo.org\/SimpleABTesting\/images\/0.1.95\/_cover.png","previews":[],"activity":{"numCommits":"7","numContributors":"2","lastCommitDate":"2025-01-13 11:05:58"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2024-07-13 17:56:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.0"},{"name":"0.1.4","release":"2024-07-13 21:10:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.4"},{"name":"0.1.5","release":"2024-07-13 21:14:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.5"},{"name":"0.1.6","release":"2024-07-15 10:34:02","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.6"},{"name":"0.1.7","release":"2024-07-15 11:10:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.7"},{"name":"0.1.8","release":"2024-07-15 13:08:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.8"},{"name":"0.1.91","release":"2024-07-15 13:40:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.91\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.91","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.91"},{"name":"0.1.93","release":"2024-07-15 14:20:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":40,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.93\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.93","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.93"},{"name":"0.1.94","release":"2024-07-18 11:30:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1507,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.94\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.94","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.94"},{"name":"0.1.95","release":"2025-01-13 11:06:03","requires":{"matomo":">=5.0.0-alpha,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7644,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/0.1.95\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/nofrillsplugins\/matomo-simple-ab-testing\/commits\/0.1.95","readmeHtml":{"description":"\n\n<p>Free A\/B Testing plugin for Matomo.<\/p>\n\n<p>I created this as an alternative to Google Optimize, which was a free A\/B testing tool, but ended end 2023.<\/p>\n\n<p>Unfortunately, barely any tools are free, let alone affordable.<\/p>\n\n<p>Want to start with A\/B testing? You previously needed a big corporate contract for A\/B testing software, making this out of reach for many small entrepreneurs and site owners.<\/p>\n\n<p>That is why I built Matomo Simple A\/B Testing.<\/p>\n\n<ol>\n<li>Insert the custom A\/B testing JS script once per domain.<\/li>\n<li>Give a name for the experiment.<\/li>\n<li>Insert custom CSS for the variant.<\/li>\n<li>And\/or insert custom JS for the variant.<\/li>\n<li>Specify a regex for the page URLs where the experiment should be running.<\/li>\n<\/ol>\n\n<p>Want more functionality? Of course, test the paid version of Matomo themselves.<\/p>\n\n<p>View at the Matomo plugin store:\n<a href=\"https:\/\/plugins.matomo.org\/SimpleABTesting\">Matomo Plugin Page<\/a><\/p>\n\n<p>Read more at the plugin page:\n<a href=\"https:\/\/www.nofrillsplugins.com\/matomo-simple-ab-testing\">Matomo Simple A\/B Testing<\/a><\/p>\n\n<p>Need more functionality?\n<a href=\"https:\/\/www.nofrillsplugins.com\/blog\/favorite-ab-testing-tools\">Favorite (Paid) A\/B Testing Tools<\/a><\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h1>Documentation<\/h1>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[0.1.95] - 2025-01-03<\/h2>\n\n<h3>Added<\/h3>\n\n<p>-<\/p>\n\n<h3>Changed<\/h3>\n\n<h3>Deprecated<\/h3>\n\n<h3>Removed<\/h3>\n\n<h3>Fixed<\/h3>\n\n<ul>\n<li>Coding standard<\/li>\n<\/ul>\n\n<h3>Security<\/h3>"},"download":"\/api\/2.0\/plugins\/SimpleABTesting\/download\/0.1.95"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SimpleABTesting\/changelog"},"consumer":{"license":null}},{"name":"SimpleSysMon","displayName":"Simple Sys Mon","owner":"job963","description":"Simple System Monitor for visualizing system data like cpu load, memory use or network traffic.","homepage":"https:\/\/github.com\/job963\/SimpleSysMon","createdDateTime":"2014-09-16 07:38:04","donate":{},"support":[],"isTheme":false,"keywords":["live","monitor","system","load","memory","cpu","disk","space","network","traffic"],"basePrice":0,"authors":[{"name":"Joachim Barthel","email":"jobarthel@gmail.com","homepage":"https:\/\/github.com\/job963"}],"repositoryUrl":"https:\/\/github.com\/job963\/SimpleSysMon","lastUpdated":"2015-03-15 14:34:04","latestVersion":"0.3.1","numDownloads":12604,"screenshots":["https:\/\/plugins.matomo.org\/SimpleSysMon\/images\/0.3.1\/settingLiveSysLoad-EN.png","https:\/\/plugins.matomo.org\/SimpleSysMon\/images\/0.3.1\/settingSystemLiveSysLoad-EN.png","https:\/\/plugins.matomo.org\/SimpleSysMon\/images\/0.3.1\/widgetLiveSysLoad-EN.png","https:\/\/plugins.matomo.org\/SimpleSysMon\/images\/0.3.1\/widgetLiveSysLoad.png","https:\/\/plugins.matomo.org\/SimpleSysMon\/images\/0.3.1\/widgetLiveSysLoadBars-EN.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"25","numContributors":"2","lastCommitDate":"2015-03-15 14:33:05"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-09-16 07:38:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":61,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/SimpleSysMon\/commits\/v0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleSysMon\/download\/0.1.0"},{"name":"0.1.1","release":"2014-09-17 18:30:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/SimpleSysMon\/commits\/v0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleSysMon\/download\/0.1.1"},{"name":"0.1.3","release":"2014-09-17 18:50:03","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1118,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/SimpleSysMon\/commits\/v0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleSysMon\/download\/0.1.3"},{"name":"0.2","release":"2014-12-09 20:36:03","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/SimpleSysMon\/commits\/v0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleSysMon\/download\/0.2"},{"name":"0.2.1","release":"2014-12-09 20:40:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":946,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/SimpleSysMon\/commits\/v0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleSysMon\/download\/0.2.1"},{"name":"0.3","release":"2015-03-01 11:36:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":346,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/SimpleSysMon\/commits\/v0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SimpleSysMon\/download\/0.3"},{"name":"0.3.1","release":"2015-03-15 14:34:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10124,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/SimpleSysMon\/commits\/v0.3.1","readmeHtml":{"description":"\n\n<p>This plugin shows how much load your webserver does have, where Matomo (Piwik) (and maybe your main website) is running. Additionally the free or the used memory will be displayed.<\/p>\n\n<p>The display will be refreshed automatically as often as you like. This can be setup by yourself in the plugin settings.<\/p>\n\n","faq":"<p><strong>How is the CPU load calculated?<\/strong>\nFor the CPU load the PHP function sys_getloadavg() is used and divided by the number of cores.<\/p>\n\n<p><strong>Why is there a difference between free and used memory?<\/strong>\nThere are three \"memory parts\" under Linux:<\/p>\n\n<ul>\n<li>Used memory<\/li>\n<li>Cache<\/li>\n<li>Free memory<\/li>\n<\/ul>\n\n<p>The sum of these three parts will be equal to the total memory. But only <code>used memory<\/code> and <code>free memory<\/code> are available as options (in settings).<\/p>\n\n<p><strong>What is the value for 100% network traffic<\/strong>\nYou can setup the value for the maximum network traffic in the plugin system settings. The value there must be specified in kB\/s (kilobyte per second). This value is used as 100% network traffic.<\/p>\n\n<p><strong>Does the plugin work on a shared webspace?<\/strong>\nIn the most cases a shared webspace doesn't have access to system information. Therefore in these cases, the plugin cannot be used. The pseudo file system \/proc must be accessible.<\/p>\n\n<p><strong>Does the plugin work on Windows system?<\/strong>\nIf the server where Matomo (Piwik) is running is using Windows as OS, the plugin doesn't work yet.\nIf just your browser is running under Windows (and the server runs under Linux) this plugin works well.<\/p>","documentation":"","changelog":"<ul>\n<li><p><strong>0.1.0 Initial release<\/strong><\/p>\n\n<ul>\n<li>Display of CPU load<\/li>\n<li>Display of free or used memory<\/li>\n<\/ul><\/li>\n<li><p><strong>0.1.1 Initial release<\/strong><\/p>\n\n<ul>\n<li>Corrections and error trapping for shared websites where the some values aren't accessible<\/li>\n<\/ul><\/li>\n<li><p><strong>0.2.0 Graphical display<\/strong><\/p>\n\n<ul>\n<li>Display as bar chart for system load and memory use added<\/li>\n<\/ul><\/li>\n<li><p><strong>0.2.1 Hungarian language<\/strong><\/p>\n\n<ul>\n<li>Hungarian language added<\/li>\n<\/ul><\/li>\n<li><p><strong>0.3.0 Bar charts for network and disk<\/strong><\/p>\n\n<ul>\n<li>Two new bars for displaying network traffic (upload and download) and disk usage added<\/li>\n<li>Additional to the percentage values, the real values are display on hover<\/li>\n<\/ul><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/SimpleSysMon\/download\/0.3.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SimpleSysMon\/changelog"},"consumer":{"license":null}},{"name":"SiteAccessProvisioner","displayName":"Site Access Provisioner","owner":"jbrule","description":"Provides a simple method to provision access to site analytics. Integration with Content Management System is highly advised.","homepage":"https:\/\/github.com\/jbrule\/matomoplugin-SiteAccessProvisioner","createdDateTime":"2019-02-12 17:40:04","donate":{},"support":[],"isTheme":false,"keywords":["integration","access","authorization"],"basePrice":0,"authors":[{"name":"Josh Brule","email":null,"homepage":"https:\/\/github.com\/jbrule"}],"repositoryUrl":"https:\/\/github.com\/jbrule\/matomoplugin-SiteAccessProvisioner","lastUpdated":"2023-11-24 04:10:02","latestVersion":"5.0.0","numDownloads":15105,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"3","numContributors":"1","lastCommitDate":"2023-11-24 04:08:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"3.0.0","release":"2019-02-12 17:40:04","requires":{"piwik":">=3.6.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SiteAccessProvisioner\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-SiteAccessProvisioner\/commits\/v3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteAccessProvisioner\/download\/3.0.0"},{"name":"3.0.1","release":"2019-02-12 18:22:04","requires":{"piwik":">=3.6.0,<4.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3176,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SiteAccessProvisioner\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-SiteAccessProvisioner\/commits\/v3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteAccessProvisioner\/download\/3.0.1"},{"name":"4.0.1","release":"2020-09-22 18:06:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4535,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SiteAccessProvisioner\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-SiteAccessProvisioner\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteAccessProvisioner\/download\/4.0.1"},{"name":"5.0.0","release":"2023-11-24 04:10:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=7.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7388,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SiteAccessProvisioner\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/matomoplugin-SiteAccessProvisioner\/commits\/5.0.0","readmeHtml":{"description":"\n\n<p>Plugin for the Matomo Web Analytics software package that facilitates an easy process to grant users access to site reports. A companion access provider is required, usually in the form of a website CMS plugin\/module (you may need to build this if one does not exist).<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Why are accounts not being created?<\/strong><\/p>\n\n<p>This plugin does not create user accounts. It just authorizes already existing accounts to view site tracking reports. If automatic account creation is desired I would suggest looking at the LdapLogin plugin in the Marketplace.\nYou would need access to an Ldap directory for it to work however.<\/p>\n\n<p><strong>We are always seeing token expired error?<\/strong><\/p>\n\n<p>If your access provider code and Matomo are on seprate servers this could be a symptom of the clocks on either server being incorrect. Using a service such as ntpd on Linux is highly recommended. If you have full control of your server lookup how to setup ntpd for your distribution.\nIf you are using a hosting service and your system time is incorrect contact your hosting company to find out how to use the Network Time Protocol with your server. Timezone settings should not be a factor as we are using a UNIX TIMESTAMP for calculation.<\/p>\n\n<p><strong>I built an access provider for xxxx CMS. Would you like to be informed?<\/strong><\/p>\n\n<p>Please let me know by <a href=\"https:\/\/github.com\/jbrule\/matomoplugin-SiteAccessProvisioner\/issues\">reporting as an issue<\/a>. Maintaining a directory can be a demanding job so I do not have plans to maintain an access provider directory at this time.\nIf you create an access provider as a companion to this plugin please reference this plugin in your plugin\/module documentation.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The easiest way to install is to find the plugin in the <a href=\"https:\/\/plugins.matomo.org\/\">Matomo Marketplace<\/a>.\nAfter activation go to General Settings and set a SharedSecret. You will then need to implement an access provider (example code available in README) which will generate a link for users to use to access Matomo.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>5.0.0 Matomo 5 Compatible.<\/li>\n<li>4.0.1 Matomo 4 Compatible. Fixed generator documentation link in Plugin Settings<\/li>\n<li>3.0.0 Initial Version<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/SiteAccessProvisioner\/download\/5.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SiteAccessProvisioner\/changelog"},"consumer":{"license":null}},{"name":"SiteGroups","displayName":"Site Groups","owner":"openmost","description":"Organize your websites into groups and browse them by group in the website selector and All Websites.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/site-groups","createdDateTime":"2024-02-27 20:24:02","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/SiteGroups\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/SiteGroups","type":"url"}],"isTheme":false,"keywords":["groups","group","sites","site","measurable","measurables","site-selector","all-websites"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/SiteGroups","lastUpdated":"2026-10-22 14:58:04","latestVersion":"5.2.0","numDownloads":12353,"screenshots":["https:\/\/plugins.matomo.org\/SiteGroups\/images\/5.2.0\/Browse_websites_by_group_in_the_selector.png","https:\/\/plugins.matomo.org\/SiteGroups\/images\/5.2.0\/Group_totals_in_All_Websites_dashboard.png","https:\/\/plugins.matomo.org\/SiteGroups\/images\/5.2.0\/Set_the_group_in_website_settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/SiteGroups\/images\/5.2.0\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-22 14:57:22"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"database","categories":["database"],"promotions":{},"versions":[{"name":"5.0.1","release":"2024-02-27 20:24:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2989,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.0.1"},{"name":"5.0.2","release":"2024-06-27 08:04:04","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.0.2"},{"name":"5.0.3","release":"2024-06-27 08:08:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.0.3"},{"name":"5.0.4","release":"2024-06-27 12:42:01","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.0.4"},{"name":"5.0.5","release":"2024-06-27 19:02:10","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9164,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.0.5"},{"name":"6.0.0","release":"2026-09-15 19:38:03","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":42,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/6.0.0"},{"name":"6.0.1","release":"2026-10-14 14:34:10","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/6.0.1"},{"name":"5.1.0","release":"2026-10-14 15:30:13","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":62,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.1.0"},{"name":"6.0.2","release":"2026-10-21 21:10:04","requires":{"php":">=8.1.0","matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/6.0.2"},{"name":"5.1.1","release":"2026-10-21 21:22:11","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.1.1"},{"name":"5.1.2","release":"2026-10-21 22:00:05","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":25,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.1.2"},{"name":"5.2.0","release":"2026-10-22 14:58:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":38,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/SiteGroups\/commits\/5.2.0","readmeHtml":{"description":"\n\n<p>Organize your websites into groups, and browse them by group in the website selector and in the All Websites dashboard.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Group field on every website<\/strong>: set the group in <em>Administration &gt; Websites &gt; Manage<\/em>. Existing groups are suggested while typing, and a group typed with a different case joins the existing one (\"clients\" joins \"Clients\").<\/li>\n<li><strong>Grouped website selector<\/strong>: websites are listed under collapsible group headers, sorted by group then by name, with the website id before each name. Websites without a group are listed last under \"Ungrouped\".<\/li>\n<li><strong>Smart defaults<\/strong>: with 10 websites or more, groups start collapsed. While searching, all groups are open and the search also matches group names.<\/li>\n<li><strong>All Websites dashboard by group<\/strong>: groups are stored as native Matomo website groups, so the All Websites dashboard lists your websites by group, with totals per group.<\/li>\n<li><strong>SitesManager API<\/strong>: the <code>group<\/code> parameter of <code>SitesManager.addSite<\/code> and <code>SitesManager.updateSite<\/code> sets the group shown by the plugin.<\/li>\n<li><strong>Website cards<\/strong>: the group is shown on the <em>Websites &gt; Manage<\/em> cards.<\/li>\n<li><strong>Permissions<\/strong>: any user with admin access on a website can change its group.<\/li>\n<li><strong>API<\/strong>: <code>SiteGroups.getSiteGroups<\/code> returns the group of every website the current user can view.<\/li>\n<li>Keyboard accessible group headers.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>)<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate the plugin from <em>Administration &gt; Platform &gt; Marketplace<\/em>.<\/li>\n<li>Edit a website in <em>Administration &gt; Websites &gt; Manage<\/em> and fill in the <strong>Group<\/strong> field. Leave it empty to remove the website from its group.<\/li>\n<\/ol>\n\n<p>Groups saved with SiteGroups 5.1 and older are moved automatically to the Matomo website groups during the update to 5.2. Groups are kept if the plugin is uninstalled, and when you update to Matomo 6 and SiteGroups 6.x. See <a href=\"docs\/index.md\">docs\/index.md<\/a>.<\/p>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. For instances with many websites, we build <a href=\"https:\/\/openmost.com\/matomo\/services\/dashboard-build?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=sitegroups\">custom Matomo dashboards and KPI reports<\/a> that give each team the view it needs, including aggregated reporting across sites.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How to install this plugin<\/strong><\/p>\n\n<p>This plugin is available in the official marketplace of Matomo. You have to install it the same way as other plugins:<\/p>\n\n<ul>\n<li>Go to the administration panel<\/li>\n<li>Look for the Marketplace section and select \"Plugins\" in the dropdown<\/li>\n<li>Then search for \"<strong>SiteGroups<\/strong>\", install and activate the plugin.<\/li>\n<\/ul>\n\n<p><strong>Who can change the group of a website?<\/strong><\/p>\n\n<p>Any user with admin access on the website, in <em>Administration &gt; Websites &gt; Manage<\/em>. A super user can also set it with the <code>group<\/code> parameter of <code>SitesManager.addSite<\/code> and <code>SitesManager.updateSite<\/code>.<\/p>\n\n<p><strong>Why are my groups not visible in the website selector?<\/strong><\/p>\n\n<p>Group headers are only displayed when at least one of your websites has a group. If you just changed a group, reload the page.<\/p>\n\n<p><strong>Why are all the groups collapsed?<\/strong><\/p>\n\n<p>When you can access 10 websites or more, groups start collapsed to keep the list short. While searching, all groups are open.<\/p>\n\n<p><strong>Are my groups kept when I update to Matomo 6?<\/strong><\/p>\n\n<p>Yes, SiteGroups 5.2 and 6.x both store them as native Matomo website groups.<\/p>\n\n<p><strong>Is the plugin active for all Matomo users in my instance?<\/strong><\/p>\n\n<p>Yes, if you choose this plugin for your Matomo instance, all users will be able to use it.<\/p>\n\n<p><strong>How can I contribute to this plugin?<\/strong><\/p>\n\n<p>You can help us develop this plugin by contacting us, or open an issue or a pull request on <a href=\"https:\/\/github.com\/openmost\/SiteGroups\">GitHub<\/a>. Any way you consider legitimate to contribute is welcome.<\/p>\n\n<p><strong>How long will this plugin be maintained?<\/strong><\/p>\n\n<p>As long as possible. We use Matomo on many projects and are the first users of this plugin: if we see errors, we patch it as fast as possible!<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>SiteGroups organizes your websites into groups, and lists them by group in the website selector and in the All Websites dashboard.<\/p>\n\n<h3>Set the group of a website<\/h3>\n\n<ol>\n<li>Go to <em>Administration &gt; Websites &gt; Manage<\/em>.<\/li>\n<li>Edit a website and fill in the <strong>Group<\/strong> field.<\/li>\n<li>Save. Leave the field empty to remove the website from its group.<\/li>\n<\/ol>\n\n<p>Existing groups are suggested while typing, and a group typed with a different case joins the existing one, for example \"clients\" joins \"Clients\". The group is also shown on the website card of the <em>Websites &gt; Manage<\/em> page.<\/p>\n\n<p>Groups are stored as native Matomo website groups (the <code>group<\/code> of the website), so the <code>group<\/code> parameter of <code>SitesManager.addSite<\/code> and <code>SitesManager.updateSite<\/code> also sets them:<\/p>\n\n<pre><code>curl -X POST \"https:\/\/matomo.example.com\/index.php\" \\n  -d \"module=API&amp;method=SitesManager.addSite&amp;format=json\" \\n  -d \"siteName=My website&amp;group=Clients&amp;token_auth=YOUR_TOKEN\"\n<\/code><\/pre>\n\n<p><code>SiteGroups.getSiteGroups<\/code> returns the group of every website the current user can view.<\/p>\n\n<h3>Website selector<\/h3>\n\n<p>As soon as one website has a group, the website selector lists your websites under group headers:<\/p>\n\n<ul>\n<li>groups are sorted by name, websites without a group are listed last under \"Ungrouped\",<\/li>\n<li>click a header (or press Enter or Space) to open or close the group,<\/li>\n<li>the website id is displayed before each website name,<\/li>\n<li>with 10 websites or more, groups start collapsed,<\/li>\n<li>while searching, all groups are open and the search also matches group names.<\/li>\n<\/ul>\n\n<h3>Updating to Matomo 6<\/h3>\n\n<p>SiteGroups 6.x stores the groups the same way, nothing changes for your groups. Coming from SiteGroups 5.1 or older? Your groups are moved automatically during the update.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.2.0<\/h3>\n\n<ul>\n<li>Fix: the <code>group<\/code> parameter of <code>SitesManager.addSite<\/code> and <code>SitesManager.updateSite<\/code> is now taken into account (<a href=\"https:\/\/github.com\/openmost\/SiteGroups\/issues\/1\">#1<\/a>).<\/li>\n<li>Groups are now stored in the Matomo website group (<code>site.group<\/code>), like SiteGroups 6.x, so the <strong>All Websites dashboard<\/strong> lists your websites by group, with totals per group, and the website selector search also finds websites by group name.<\/li>\n<li>Existing groups are migrated automatically during the update.<\/li>\n<li>The \"Group\" field suggests the existing groups, and a group typed with a different case joins the existing one (\"clients\" joins \"Clients\").<\/li>\n<li>Any user with admin access on a website can change its group, groups longer than 250 characters are rejected.<\/li>\n<li>The group is updated on the <em>Websites &gt; Manage<\/em> card right after saving a website.<\/li>\n<li>New API method <code>SiteGroups.getSiteGroups<\/code>, a light request replacing the full websites list the selector used to load.<\/li>\n<li>The <code>site_group<\/code> property of the SitesManager API responses is deprecated, use the core <code>group<\/code> property.<\/li>\n<li>Translated group labels in the website selector and on the website cards.<\/li>\n<li>PHP integration tests (storage, permissions, migration, API).<\/li>\n<li>Requires Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<\/ul>\n\n<h3>v5.1.2<\/h3>\n\n<ul>\n<li>Fix: the site groups styles no longer remove the padding of the period selector and the other Matomo dropdowns, they only apply to the site selector.<\/li>\n<\/ul>\n\n<h3>v5.1.1<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v5.1.0<\/h3>\n\n<ul>\n<li>Collapsible groups in the website selector: websites sorted by group then by name, \"Ungrouped\" listed last, groups start collapsed with 10 websites or more, all groups open while searching.<\/li>\n<li>Website id shown before each website name in the selector, group shown on the <em>Websites &gt; Manage<\/em> cards.<\/li>\n<li>Groups typed with a different case are listed together.<\/li>\n<li>Plugin translated into 12 languages (Arabic, Chinese simplified and traditional, Dutch, English, French, German, Italian, Japanese, Polish, Portuguese, Spanish).<\/li>\n<li>Plugin homepage moved to https:\/\/openmost.com\/matomo\/extensions\/site-groups.<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<li>Requires Matomo 5.0.0 or later (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>).<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.0.5<\/h3>\n\n<p>update: marketplace cover<\/p>\n\n<h3>v5.0.4<\/h3>\n\n<p>update: marketplace category and cover<\/p>\n\n<h3>v5.0.1<\/h3>\n\n<p>Publishing plugin<\/p>\n\n<h3>v5.0.0<\/h3>\n\n<p>Plugin setup<\/p>"},"download":"\/api\/2.0\/plugins\/SiteGroups\/download\/5.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SiteGroups\/changelog"},"consumer":{"license":null}},{"name":"SiteInfoWidget","displayName":"Site Info Widget","owner":"iMarkus","description":"Displays properties of the current selected site in a widget.","homepage":"https:\/\/github.com\/iMarkus\/Piwik-SiteInfoWidget","createdDateTime":"2017-10-24 13:10:04","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/iMarkus\/Piwik-SiteInfoWidget\/issues","type":"url"}],"isTheme":false,"keywords":["widget","site"],"basePrice":0,"authors":[{"name":"iMarkus","email":"iMarkus@users.noreply.github.com","homepage":"https:\/\/github.com\/iMarkus"},{"name":"hagor","email":"hagor@users.noreply.github.com","homepage":"https:\/\/github.com\/hagor"}],"repositoryUrl":"https:\/\/github.com\/iMarkus\/Piwik-SiteInfoWidget","lastUpdated":"2017-10-25 10:50:12","latestVersion":"0.3.0","numDownloads":6290,"screenshots":["https:\/\/plugins.matomo.org\/SiteInfoWidget\/images\/0.3.0\/SiteInfoWidget.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"5","numContributors":"1","lastCommitDate":"2017-10-25 10:49:06"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2017-10-24 13:10:04","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SiteInfoWidget\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-SiteInfoWidget\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteInfoWidget\/download\/0.1.0"},{"name":"0.2.0","release":"2017-10-24 13:16:03","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":26,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SiteInfoWidget\/0.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-SiteInfoWidget\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SiteInfoWidget\/download\/0.2.0"},{"name":"0.3.0","release":"2017-10-25 10:50:12","requires":{"piwik":">=3.0.0,<4.0.0","php":">=5.6.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6260,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/SiteInfoWidget\/0.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/iMarkus\/Piwik-SiteInfoWidget\/commits\/0.3.0","readmeHtml":{"description":"\n\n<p>This plugin allows to display properties of the current selected site in a widget.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>0.3.0<\/strong>\n* Added API<\/p>\n\n<p><strong>0.2.0<\/strong>\n* Added screenshot<\/p>\n\n<p><strong>0.1.0<\/strong>\n* Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/SiteInfoWidget\/download\/0.3.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SiteInfoWidget\/changelog"},"consumer":{"license":null}},{"name":"Slack","displayName":"Slack","owner":"matomo-org","description":"Send Matomo reports and alerts to Slack channels, keeping your team informed and ready to act in real time.","homepage":null,"createdDateTime":"2025-10-07 04:04:03","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/matomo-org\/plugin-Slack\/wiki","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-Slack\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-Slack","type":"url"}],"isTheme":false,"keywords":["Slack","ScheduledReports","CustomAlerts"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-Slack","lastUpdated":"2026-10-05 04:00:13","latestVersion":"6.0.1","numDownloads":11180,"screenshots":["https:\/\/plugins.matomo.org\/Slack\/images\/6.0.1\/0_Create_and_Schedule_Report.png","https:\/\/plugins.matomo.org\/Slack\/images\/6.0.1\/1_List_Schedule_Reports.png","https:\/\/plugins.matomo.org\/Slack\/images\/6.0.1\/2_Create_Slack_Alert.png","https:\/\/plugins.matomo.org\/Slack\/images\/6.0.1\/4_List_Custom_Alerts.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/Slack.png","previews":[],"activity":{"numCommits":"95","numContributors":"15","lastCommitDate":"2026-10-21 04:38:17"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"5.0.1","release":"2025-10-10 06:44:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":380,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Slack\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Slack\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Slack\/download\/5.0.1"},{"name":"5.0.2","release":"2025-10-28 06:18:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":238,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Slack\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Slack\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Slack\/download\/5.0.2"},{"name":"5.0.3","release":"2025-11-10 04:30:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1425,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Slack\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Slack\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Slack\/download\/5.0.3"},{"name":"5.0.4","release":"2026-01-05 04:02:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5235,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Slack\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Slack\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Slack\/download\/5.0.4"},{"name":"5.1.0","release":"2026-07-12 23:32:03","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3729,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Slack\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Slack\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Slack\/download\/5.1.0"},{"name":"6.0.0","release":"2026-08-24 06:01:12","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":123,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Slack\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Slack\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Slack\/download\/6.0.0"},{"name":"6.0.1","release":"2026-10-05 04:00:13","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":50,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Slack\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-Slack\/commits\/6.0.1","readmeHtml":{"description":"\n\n<p>Standard dashboard reports sometimes aren\u2019t enough to keep stakeholders informed. If you need to share insights quickly and make analytics more actionable, <strong>scheduled report delivery<\/strong> and <strong>custom alerts<\/strong> ensures no one misses the data that matters most.<\/p>\n\n<p>With the <strong>Matomo Slack<\/strong> plugin, you can set up automated reports and tailored alerts directly in Slack. This keeps your team updated, saves time, and makes it easier to monitor changes and respond promptly.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.1 - 2026-10-05\n- Support rotating the encryption key of the stored Slack OAuth token with the <code>core:rotate-encryption-keys<\/code> console command (available from the Matomo release that introduces it)<\/p>\n\n<p>6.0.0 - 2026-08-10\n- Compatibility with Matomo 6<\/p>\n\n<p>5.1.0 - 2026-07-13\n- Added code to encrypt sensitive values in database to improve security<\/p>\n\n<p>5.0.4 - 2026-01-05\n- Updated Api timeout to 5 seconds and changed log levels<\/p>\n\n<p>5.0.3 - 2025-11-10\n- Updated cover image for marketplace\n- Updated screenshot to not include extra plugins<\/p>\n\n<p>5.0.2 - 2025-10-27\n- Update Slack alert message to mention Matomo instance along with idSite<\/p>\n\n<p>5.0.1 - 2025-10-10\n- Fix markReportAsSent method was missing<\/p>\n\n<p>5.0.0 - 2025-09-29\n- Initial release to send scheduled reports and Custom Alerts to a Slack channel<\/p>"},"download":"\/api\/2.0\/plugins\/Slack\/download\/6.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Slack\/changelog"},"consumer":{"license":null}},{"name":"Sms77","displayName":"Sms 77","owner":"seven-io","description":"Send SMS via sms77.io.","homepage":"https:\/\/www.sms77.io","createdDateTime":"2021-02-19 11:04:03","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/www.sms77.io\/en\/docs\/gateway\/http-api\/sms-disptach\/","type":"url"},{"name":"Email","key":"email","value":"support@sms77.io","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/seven-io\/matomo\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/seven-io\/matomo","type":"url"},{"name":"RSS","key":"rss","value":"https:\/\/www.sms77.io\/de\/feed\/","type":"url"}],"isTheme":false,"keywords":["SMS"],"basePrice":0,"authors":[{"name":"sms77 e.K.","email":"support@sms77.io","homepage":"https:\/\/www.sms77.io"}],"repositoryUrl":"https:\/\/github.com\/seven-io\/matomo","lastUpdated":"2022-11-14 12:26:03","latestVersion":"1.3.0","numDownloads":3179,"screenshots":["https:\/\/plugins.matomo.org\/Sms77\/images\/1.3.0\/add_phone_number.png","https:\/\/plugins.matomo.org\/Sms77\/images\/1.3.0\/add_sms_provider.png","https:\/\/plugins.matomo.org\/Sms77\/images\/1.3.0\/create_report.png","https:\/\/plugins.matomo.org\/Sms77\/images\/1.3.0\/reports_overview.png","https:\/\/plugins.matomo.org\/Sms77\/images\/1.3.0\/validate_phone_number.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"13","numContributors":"2","lastCommitDate":"2026-04-28 12:14:53"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.1.0","release":"2021-02-19 11:04:03","requires":{"matomo":">=4.1.1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1483,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sms77\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/seven-io\/matomo\/commits\/v1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Sms77\/download\/1.1.0"},{"name":"1.3.0","release":"2022-11-14 12:26:03","requires":{"matomo":">=4.1.1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1696,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Sms77\/1.3.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/seven-io\/matomo\/commits\/v1.3.0","readmeHtml":{"description":"\n\n<p>Send SMS Reports from Matomo via Sms77.io<\/p>\n\n<h3>Installation<\/h3>\n\n<p>You can install this plugin via the <a href=\"https:\/\/plugins.matomo.org\/\">marketplace<\/a> or manually by\ngoing through the following steps:<\/p>\n\n<ol>\n<li>Download\nthe <a href=\"https:\/\/github.com\/sms77io\/matomo\/releases\/latest\/download\/sms77-matomo-latest.zip\">latest release<\/a><\/li>\n<li>Extract the archive contents to \/plugins relative to your Matomo installation path<\/li>\n<li>Go to <code>Settings -&gt; System -&gt; Plugins<\/code> and activate the plugin named <code>Sms77<\/code><\/li>\n<li><a href=\"screenshots\/add_sms_provider.png\">Add a new SMS provider<\/a><\/li>\n<li><a href=\"screenshots\/add_phone_number.png\">Add a new phone number<\/a><\/li>\n<li><a href=\"screenshots\/validate_phone_number.png\">Validate the phone number<\/a><\/li>\n<li><a href=\"screenshots\/create_report.png\">Create a report<\/a><\/li>\n<li>Test the workflow by clicking <code>Send Report now<\/code> in\nthe <a href=\"screenshots\/reports_overview.png\">Personal Email Reports<\/a><\/li>\n<\/ol>\n\n<h4>Support<\/h4>\n\n<p>Need help? Feel free to <a href=\"https:\/\/www.sms77.io\/en\/company\/contact\">contact us<\/a>.<\/p>\n\n<h5>License<\/h5>\n\n<p><a href=\"LICENSE\"><img src=\"https:\/\/img.shields.io\/badge\/License-MIT-teal.svg\" alt=\"License-MIT-teal.svg\" \/><\/a><\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>What do I need to start sending SMS?<\/strong><\/p>\n\n<p>All you need is an account from sms77.io with sufficient balance.<\/p>\n\n<p><strong>Where can I register a new account?<\/strong><\/p>\n\n<p>Visit https:\/\/app.sms77.io\/anmelden for registering.<\/p>\n\n<p><strong>Where can I find my API key?<\/strong><\/p>\n\n<p>Go to https:\/\/app.sms77.io\/settings#httpapi and copy it from there.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>v1.1.1<\/p>\n\n<ul>\n<li>fixed typo in README<\/li>\n<\/ul>\n\n<p>v1.1.0<\/p>\n\n<ul>\n<li>getCreditLeft return balance with currency sign<\/li>\n<li>verifyCredential now respects cases like non-whitelisted IP<\/li>\n<\/ul>\n\n<p>v1.0.0<\/p>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Sms77\/download\/1.3.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Sms77\/changelog"},"consumer":{"license":null}},{"name":"SMSalert","displayName":"SMSalert","owner":"SMSAlert","description":"Mobile Messaging Plugin: www.smsalert.co.in.","homepage":"https:\/\/www.smsalert.co.in","createdDateTime":"2020-03-31 13:42:04","donate":{},"support":[{"name":"Email","key":"email","value":"support@cozyvision.com","type":"email"}],"isTheme":false,"keywords":["SMS","smsalert","mobile messaging","sms integration","sms report"],"basePrice":0,"authors":[{"name":"SMS Alert","email":"support@cozyvision.com","homepage":"https:\/\/www.smsalert.co.in"}],"repositoryUrl":"https:\/\/github.com\/SMSAlert\/matomo-integration","lastUpdated":"2020-05-05 05:14:03","latestVersion":"1.0.4","numDownloads":2338,"screenshots":["https:\/\/plugins.matomo.org\/SMSalert\/images\/1.0.4\/Set_Parameters.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"37","numContributors":"3","lastCommitDate":"2020-05-05 05:13:25"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2020-03-31 13:42:04","requires":{"piwik":">=3.0.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/SMSalert\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SMSAlert\/matomo-integration\/commits\/0.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SMSalert\/download\/1.0.0"},{"name":"1.0.1","release":"2020-03-31 14:10:06","requires":{"piwik":">=3.0.2"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1061,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/SMSalert\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SMSAlert\/matomo-integration\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SMSalert\/download\/1.0.1"},{"name":"1.0.3","release":"2020-05-05 04:54:04","requires":{"piwik":">=2.0.0,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/SMSalert\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SMSAlert\/matomo-integration\/commits\/1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SMSalert\/download\/1.0.3"},{"name":"1.0.4","release":"2020-05-05 05:14:03","requires":{"piwik":">=2.0.0,<4.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1270,"license":{"name":"GPL-3.0","url":"https:\/\/plugins.matomo.org\/SMSalert\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SMSAlert\/matomo-integration\/commits\/1.0.4","readmeHtml":{"description":"\n\n<p>This is a plugin for the Open Source Web Analytics platform <a href=\"http:\/\/piwik.org\">Piwik<\/a>. It \nadd SMS Alert support to MobileMessaging plugin.<\/p>\n\n","faq":"","documentation":"","changelog":"<p><strong>1.0.1<\/strong>\n* Adapt to new Piwik API interface (&gt;= 3.02)<\/p>\n\n<p><strong>1.0.0<\/strong>\n* Initial release<\/p>"},"download":"\/api\/2.0\/plugins\/SMSalert\/download\/1.0.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SMSalert\/changelog"},"consumer":{"license":null}},{"name":"SnoopyBehavioralScoring","displayName":"Snoopy Behavioral Scoring","owner":"spletnik","description":"User behaviour scoring plugin for piwik. It allows you to score your visitors depending on goals reached, pages visited, email campaigns opened and ot.","homepage":"http:\/\/spletnik.si\/","createdDateTime":"2015-12-08 20:52:03","donate":{"paypal":"srle@spletnik.si","bitcoin":null},"support":[],"isTheme":false,"keywords":["Report","behaviour score","behavior score","behaviour","behavior","snoopy","score","lead scorinng","behaviour scoring","behavior scoring","behavioral scoring"],"basePrice":0,"authors":[{"name":"Spletnik Ltd","email":"info@spletnik.si","homepage":"http:\/\/spletnik.si\/"}],"repositoryUrl":"https:\/\/github.com\/spletnik\/snoopy-behavioral-scoring","lastUpdated":"2016-01-27 08:50:04","latestVersion":"0.1.2","numDownloads":6434,"screenshots":["https:\/\/plugins.matomo.org\/SnoopyBehavioralScoring\/images\/0.1.2\/snoopy_scores.png","https:\/\/plugins.matomo.org\/SnoopyBehavioralScoring\/images\/0.1.2\/snoopy_settings.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"18","numContributors":"1","lastCommitDate":"2016-01-27 08:49:31"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-12-08 20:52:03","requires":{"piwik":">=2.15.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":475,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/spletnik\/snoopy-behavioral-scoring\/commits\/0.1.1-republish","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/SnoopyBehavioralScoring\/download\/0.1.0"},{"name":"0.1.2","release":"2016-01-27 08:50:04","requires":{"piwik":">=2.15.0","php":">=5.4.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5959,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/spletnik\/snoopy-behavioral-scoring\/commits\/0.1.2","readmeHtml":{"description":"\n\n<p>Snoopy is a User behaviour scoring plugin for piwik. It allows you to score your visitors depending on goals reached, pages visited, email campaigns opened and other factors. In other words this plugin enables you to score your visitors based on actions they do on your website. It has a robust scoring methodology for heating and cooling visitor score.<\/p>\n\n<p>Snoopy also provides some basic API functions to integrate it with third party applications souch as your CRM or lead management system. More information about the API can be found on <a href=\"https:\/\/github.com\/spletnik\/snoopy-behavioral-scoring\/wiki\/API\">github wiki<\/a>.<\/p>\n\n","faq":"<p><strong>When does my visitors gets scored.<\/strong><\/p>\n\n<p>When they reach specified goal in plugin settings.<\/p>","documentation":"","changelog":"<p>0.1.2 - Bugfix for settings + Fixed fatal error on first calculation + Fixed permissions problems\n0.1.1 - Readme changes + minor fixes\n0.1.0 - Initial version<\/p>"},"download":"\/api\/2.0\/plugins\/SnoopyBehavioralScoring\/download\/0.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/SnoopyBehavioralScoring\/changelog"},"consumer":{"license":null}},{"name":"Swagger","displayName":"Swagger","owner":"openmost","description":"Explore and try every Matomo API method in Swagger UI, from an OpenAPI 3.1 spec of your plugins.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/swagger","createdDateTime":"2024-05-14 16:14:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/Swagger\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/Swagger","type":"url"}],"isTheme":false,"keywords":["api","Reporting","swagger","openapi","rest"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/Swagger","lastUpdated":"2026-10-21 21:24:04","latestVersion":"5.3.2","numDownloads":16766,"screenshots":["https:\/\/plugins.matomo.org\/Swagger\/images\/5.3.2\/API_explorer_generated_from_your_plugins.png","https:\/\/plugins.matomo.org\/Swagger\/images\/5.3.2\/Authorize_with_a_Bearer_API_token.png","https:\/\/plugins.matomo.org\/Swagger\/images\/5.3.2\/Typed_parameters_with_Matomo_documentation.png"],"coverImage":"https:\/\/plugins.matomo.org\/Swagger\/images\/5.3.2\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/3M1a4jgxHcU","id":"3M1a4jgxHcU"}],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-21 21:22:14"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["development"],"promotions":{},"versions":[{"name":"0.1.1","release":"2024-05-14 16:14:04","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/0.1.1"},{"name":"0.1.2","release":"2024-05-14 16:16:04","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1591,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/0.1.2"},{"name":"5.1.3","release":"2024-06-27 12:40:06","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.1.3"},{"name":"5.1.4","release":"2024-06-27 19:02:05","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5713,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.1.4"},{"name":"5.2.0","release":"2025-11-24 15:58:04","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.2.0"},{"name":"5.2.1","release":"2025-11-24 17:42:05","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.2.1"},{"name":"5.2.2","release":"2025-11-24 17:48:04","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":199,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.2.2"},{"name":"5.2.3","release":"2025-12-07 21:04:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5178,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.2.3"},{"name":"5.2.5","release":"2026-05-06 17:56:05","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":39,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.2.5"},{"name":"5.3.0","release":"2026-05-06 18:08:04","requires":{"matomo":">=5.10.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3900,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.3.0"},{"name":"6.0.0","release":"2026-09-15 19:14:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":48,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/6.0.0"},{"name":"6.0.1","release":"2026-10-14 14:36:04","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/6.0.1"},{"name":"6.0.2","release":"2026-10-21 21:10:12","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/6.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Swagger\/download\/6.0.2"},{"name":"5.3.2","release":"2026-10-21 21:24:04","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":52,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/Swagger\/commits\/5.3.2","readmeHtml":{"description":"\n\n<p>Explore and try every Matomo API method from your admin panel, with Swagger UI and an OpenAPI 3.1 specification generated live from your activated plugins.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Interactive API explorer<\/strong> under <strong>Administration &gt; Platform &gt; Swagger<\/strong>, powered by Swagger UI and displayed in a same-origin frame.<\/li>\n<li><strong>Always in sync<\/strong>: the OpenAPI 3.1 document is generated on demand from the plugins activated on your Matomo, so installing or removing a plugin updates it immediately. No static file to maintain.<\/li>\n<li><strong>Bearer token authentication<\/strong>: click <strong>Authorize<\/strong> and paste a Matomo API token, it is sent as an <code>Authorization: Bearer<\/code> header, never as a <code>token_auth<\/code> query parameter.<\/li>\n<li><strong>Accurate documentation<\/strong>: modules described with each plugin's own description and homepage link, parameters typed from the PHP signatures (<code>int<\/code>, <code>bool<\/code>, <code>float<\/code>, <code>array<\/code>) with required flags and defaults, and request examples from Matomo's own API documentation generator.<\/li>\n<li><strong>Matomo-aware parameters<\/strong>: <code>period<\/code>, <code>idSite<\/code> \/ <code>idSites<\/code> (<code>1<\/code>, <code>1,2,3<\/code> or <code>all<\/code>), <code>date<\/code> keywords and ranges, <code>segment<\/code> and <code>language<\/code> are documented.<\/li>\n<li><strong>Works with POST-only tokens<\/strong>: every method is described as a POST request, and every response format Matomo can return is documented (<code>json<\/code>, <code>xml<\/code>, <code>csv<\/code>, <code>tsv<\/code>, <code>html<\/code>, <code>rss<\/code>, <code>original<\/code>).<\/li>\n<li><strong>Importable OpenAPI document<\/strong>, served by the <code>Swagger.getOpenApi<\/code> API method (<code>?module=API&amp;format=json&amp;method=Swagger.getOpenApi<\/code>) with a Super User token, for Postman, Insomnia or an SDK generator.<\/li>\n<li><strong>Works from a subdirectory<\/strong>: the server URL and the Swagger UI assets keep the path Matomo is installed in.<\/li>\n<\/ul>\n\n<p>The session-based \"Try it out\", the search field, the one-click download, the widget, dark mode and the translations are only available in Swagger 6.x, for Matomo 6.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or higher (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>)<\/li>\n<li>A Super User account<\/li>\n<li>A Matomo API token with the permissions matching the calls you want to make<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install the plugin from the Matomo Marketplace (<strong>Administration &gt; Marketplace<\/strong>), or copy it to <code>plugins\/Swagger<\/code> and activate it under <strong>Administration &gt; System &gt; Plugins<\/strong>. The plugin creates no database table and leaves no data behind when deactivated.<\/li>\n<li>Open <strong>Administration &gt; Platform &gt; Swagger<\/strong>.<\/li>\n<li>Click <strong>Authorize<\/strong> and paste a token created under <strong>Administration &gt; Personal &gt; Security<\/strong>.<\/li>\n<li>Expand an API module, open a method, click <strong>Try it out<\/strong>, fill in the parameters and click <strong>Execute<\/strong>.<\/li>\n<\/ol>\n\n<p>There is no setting. The plugin only relaxes the Content Security Policy of its own two pages (<code>frame-src 'self'<\/code> for the frame, <code>img-src validator.swagger.io<\/code> for the Swagger UI validator badge).<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>The Swagger page and the <code>Swagger.getOpenApi<\/code> method require Super User access.<\/li>\n<li>The plugin never stores tokens: a token entered with <strong>Authorize<\/strong> only lives in the browser tab.<\/li>\n<li>The OpenAPI document describes the API methods only. It contains no credentials, configuration values or website data.<\/li>\n<li>\"Try it out\" requests go to your own Matomo server. The document also lists the public demo.matomo.cloud server as an alternative target, and the Swagger UI validator badge is loaded from validator.swagger.io.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. When you are ready to connect Matomo to your CMS, CRM, BI tools or data warehouse, we build <a href=\"https:\/\/openmost.com\/matomo\/services\/integration?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=swagger\">Matomo integrations<\/a> on the official APIs, with documented data flows your team can take over.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Which Matomo versions are supported?<\/strong><\/p>\n\n<p>Version 5.x of the plugin supports Matomo 5.0.0 or higher. For Matomo 6, install version 6.x of the plugin, which also lets you try the API with your Matomo session, without a token.<\/p>\n\n<p><strong>Who can use the API explorer?<\/strong><\/p>\n\n<p>Only Super Users. The explorer gives access to every API method, including administration methods, so it is restricted like the other platform tools.<\/p>\n\n<p><strong>Do I need an API token to try the API?<\/strong><\/p>\n\n<p>Yes. Click <strong>Authorize<\/strong> and paste a token created under <strong>Administration &gt; Personal &gt; Security<\/strong>.<\/p>\n\n<p><strong>Can I use a token restricted to POST requests?<\/strong><\/p>\n\n<p>Yes. Every method is called with a POST request and the token is sent in the <code>Authorization: Bearer<\/code> header.<\/p>\n\n<p><strong>Do I need to update anything when I install a new plugin?<\/strong><\/p>\n\n<p>No. The specification is generated from the activated plugins each time the explorer is opened.<\/p>\n\n<p><strong>Which OpenAPI version is generated?<\/strong><\/p>\n\n<p>OpenAPI 3.1.0.<\/p>\n\n<p><strong>Can I import the specification in Postman or generate an SDK?<\/strong><\/p>\n\n<p>Yes. Request the <code>Swagger.getOpenApi<\/code> API method with a Super User token. See the documentation for an example.<\/p>\n\n<p><strong>Why should I not send a JSON request body?<\/strong><\/p>\n\n<p>The Matomo API reads its parameters from the query string and form fields only. Keep the <code>application\/x-www-form-urlencoded<\/code> request body in Swagger UI.<\/p>\n\n<p><strong>Does the plugin work when Matomo is installed in a subfolder?<\/strong><\/p>\n\n<p>Yes. The server URL and the Swagger UI assets keep the path Matomo is installed in.<\/p>\n\n<p><strong>Does the plugin slow down Matomo?<\/strong><\/p>\n\n<p>No. Swagger UI is only loaded on the explorer page, and the specification is only generated when the explorer is opened.<\/p>\n\n<p><strong>Does the plugin store data?<\/strong><\/p>\n\n<p>No. It creates no database table and never stores tokens.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>1 - Install the plugin<\/h3>\n\n<p>Install this plugin from the Marketplace as a Super User, or download it and copy it to the <code>\/plugins<\/code> folder of your Matomo.<\/p>\n\n<p>Then activate the plugin under <strong>Administration &gt; System &gt; Plugins<\/strong>.<\/p>\n\n<h3>2 - Open the API explorer<\/h3>\n\n<p>As a Super User, go to <strong>Administration &gt; Platform &gt; Swagger<\/strong>.<\/p>\n\n<p>The page lists every Reporting API module of your Matomo, each with the description of its plugin. Expand a module to see its methods. The specification is generated from the activated plugins each time the page is opened: when you activate or deactivate a plugin, its methods appear or disappear automatically.<\/p>\n\n<h3>3 - Authorize an API token<\/h3>\n\n<ol>\n<li>Click <strong>Authorize<\/strong>.<\/li>\n<li>Paste an API token. Tokens are created under <strong>Administration &gt; Personal &gt; Security<\/strong>, and can be restricted to POST requests.<\/li>\n<li>Click <strong>Authorize<\/strong>, then <strong>Close<\/strong>.<\/li>\n<\/ol>\n\n<p>The token is sent in the <code>Authorization: Bearer<\/code> header and is never stored by the plugin.<\/p>\n\n<h3>4 - Try an API method<\/h3>\n\n<ol>\n<li>Expand a method, for example <code>VisitsSummary.get<\/code>.<\/li>\n<li>Click <strong>Try it out<\/strong>.<\/li>\n<li>Fill in the required parameters, marked with a red asterisk. Examples are suggested for <code>idSite<\/code>, <code>period<\/code> and <code>date<\/code>.<\/li>\n<li>Keep the <code>application\/x-www-form-urlencoded<\/code> request body: the Matomo API reads its parameters from form fields, not from a JSON body.<\/li>\n<li>Click <strong>Execute<\/strong> to send the request and read the response.<\/li>\n<\/ol>\n\n<h3>5 - Export the OpenAPI specification<\/h3>\n\n<p>The specification is returned by the <code>Swagger.getOpenApi<\/code> API method, which requires a Super User token. Import it in Postman, Insomnia, an API gateway or an SDK generator such as OpenAPI Generator:<\/p>\n\n<pre><code>curl -X POST \"https:\/\/matomo.example.com\/index.php\" \\\n  -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n  -d \"module=API\" \\\n  -d \"method=Swagger.getOpenApi\" \\\n  -d \"format=json\"\n<\/code><\/pre>\n\n<h3>How the specification is built<\/h3>\n\n<ul>\n<li>Every API method is described as a POST request on <code>index.php<\/code>, with the method name in the path.<\/li>\n<li>Parameter types come from the PHP signature of each method. Parameters without a default value are required. Internal parameters (starting with <code>_<\/code>) are hidden.<\/li>\n<li><code>period<\/code>, <code>idSite<\/code> \/ <code>idSites<\/code>, <code>date<\/code>, <code>segment<\/code> and <code>language<\/code> get Matomo-specific schemas and descriptions.<\/li>\n<li>Request examples come from Matomo's own API documentation generator.<\/li>\n<li>The server URL is the URL you use to open Matomo, so the explorer also works when Matomo is installed in a subfolder.<\/li>\n<li>The response documents every format Matomo can return: <code>json<\/code>, <code>xml<\/code>, <code>csv<\/code>, <code>tsv<\/code>, <code>html<\/code>, <code>rss<\/code> and <code>original<\/code>.<\/li>\n<\/ul>\n\n<h3>Troubleshooting<\/h3>\n\n<p><strong>The page shows \"You can't access this resource\"<\/strong><\/p>\n\n<p>The Swagger page requires Super User access.<\/p>\n\n<p><strong>The page stays blank<\/strong><\/p>\n\n<p>Another plugin or a custom Content Security Policy may override <code>frame-src<\/code>. The plugin only allows <code>frame-src 'self'<\/code> on its own page, to display Swagger UI in a same-origin frame.<\/p>\n\n<p><strong>A plugin's methods are missing<\/strong><\/p>\n\n<p>Check that the plugin is activated. Only the API methods of activated plugins are listed.<\/p>\n\n<p><strong>A request returns \"token_auth is not valid\"<\/strong><\/p>\n\n<p>The token entered with <strong>Authorize<\/strong> is invalid, revoked, or lacks access to the requested site.<\/p>\n\n<p><strong>A request is slow or times out<\/strong><\/p>\n\n<p>Heavy reports can take time to process. Try a shorter <code>period<\/code> and <code>date<\/code> first, or lower <code>filter_limit<\/code>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.3.2<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v5.3.1<\/h3>\n\n<ul>\n<li>Requires Matomo 5.0.0 or higher again (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>), instead of 5.10.0: nothing in the plugin needs Matomo 5.10.<\/li>\n<li>\"Try it out\" now works when Matomo is installed in a subdirectory: the server URL keeps the installation path, and the Swagger UI assets no longer use root-absolute paths.<\/li>\n<li>Security: <code>Swagger.getOpenApi<\/code> is restricted to super users again, as in v6. The Swagger page loads the document with the session of the logged in user.<\/li>\n<li>The OpenAPI document contact points to openmost.com and ronan@openmost.com.<\/li>\n<li>Smaller package: only the Swagger UI files that the explorer loads are shipped (bundle, standalone preset and stylesheet), without the unused alternate bundles, demo page and source maps.<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.3.0<\/h3>\n\n<p><strong>Richer OpenAPI document<\/strong><\/p>\n\n<ul>\n<li>Tags now carry the module description from each plugin's API class and an <code>externalDocs<\/code> link to the plugin homepage when available.<\/li>\n<li>Parameter schemas use real PHP types (<code>int \u2192 integer<\/code>, <code>bool \u2192 boolean<\/code>, <code>float \u2192 number<\/code>, <code>array \u2192 array<\/code>) instead of treating every input as a string. Nullable parameters are flagged with <code>nullable: true<\/code>.<\/li>\n<li>Per-method request body examples are generated from Matomo's own <code>DocumentationGenerator::getExampleUrl()<\/code>, so \"Try it out\" comes prefilled with sensible values.<\/li>\n<li>Well-known Matomo parameters get domain-aware schemas: <code>period<\/code> is an <code>enum<\/code> (day\/week\/month\/year\/range), <code>idSite<\/code>\/<code>idSites<\/code> get a regex matching integer \/ comma-separated list \/ \"all\", <code>date<\/code> and <code>segment<\/code> get human-readable descriptions of their accepted shapes, and <code>language<\/code> gets a locale pattern.<\/li>\n<li>The 200 response now lists every format Matomo can return (<code>json<\/code>, <code>xml<\/code>, <code>csv<\/code>, <code>tsv<\/code>, <code>html<\/code>, <code>rss<\/code>, <code>original<\/code>) instead of only <code>application\/json<\/code>, with a description noting that the concrete content type is selected via the <code>format<\/code> parameter.<\/li>\n<li><code>info.contact<\/code> and <code>info.license<\/code> populated from the plugin manifest.<\/li>\n<li>Internal parameters (names starting with <code>_<\/code>) are now hidden, matching Matomo's reference doc generator.<\/li>\n<li>Required parameter detection fixed (the previous check always evaluated to false because of an <code>is_object()<\/code> on a class-name string).<\/li>\n<\/ul>\n\n<h3>v5.2.5<\/h3>\n\n<p>fix: scope CSP <code>frame-src 'self'<\/code> and <code>img-src validator.swagger.io<\/code> to the Swagger pages only. The previous global decoration applied them to every Matomo page and broke the Overlay feature, which iframes cross-origin tracked sites.<\/p>\n\n<h3>v5.2.3<\/h3>\n\n<p>fix: Authorization modal position in iframe view<\/p>\n\n<h3>v5.2.2<\/h3>\n\n<p>update: Swagger admin page title<\/p>\n\n<h3>v5.2.1<\/h3>\n\n<p>fix: CSP issue<\/p>\n\n<h3>v5.2.0<\/h3>\n\n<p><strong>Major Release: Full OpenAPI 3.1.0 Compliance &amp; Dynamic API Discovery<\/strong><\/p>\n\n<p><strong>New Features:<\/strong>\n- Dynamic version detection from Matomo installation\n- Dynamic protocol detection (HTTP\/HTTPS) based on server configuration\n- Bearer token authentication (replaces deprecated token_auth query parameter)\n- POST method support for all API endpoints (required for POST-only token restrictions)\n- Mandatory <code>module<\/code> and <code>format<\/code> parameters for all API calls\n- Clean tag generation without descriptions for better UI experience<\/p>\n\n<p><strong>Improvements:<\/strong>\n- 100% dynamic module discovery from installed and activated plugins\n- Enhanced OpenAPI 3.1.0 specification compliance\n- Proper parameter definitions with required flags and default values\n- Support for both <code>application\/x-www-form-urlencoded<\/code> and <code>application\/json<\/code> content types\n- Method names visible in endpoint paths for better comprehensibility\n- Lazy plugin registration to avoid container initialization errors\n- Performance optimization: metadata loaded once instead of per-method<\/p>\n\n<p><strong>Bug Fixes:<\/strong>\n- Fixed NoDefaultValue object handling preventing fatal conversion errors\n- Fixed type checking before get_class() calls\n- Filtered out translation key placeholders from descriptions\n- Filtered out literal \"string\" placeholder values\n- Set empty string defaults for optional parameters<\/p>\n\n<p><strong>Breaking Changes:<\/strong>\n- API calls now use POST method instead of GET\n- Authentication now uses Bearer token in Authorization header\n- Tags no longer include plugin descriptions (names only)<\/p>\n\n<p><strong>Technical Details:<\/strong>\n- All enhancements maintain backward compatibility with existing API endpoints\n- No database migrations required\n- Comprehensive error handling with graceful fallbacks<\/p>\n\n<h3>v5.1.4<\/h3>\n\n<p>update: marketplace cover<\/p>\n\n<h3>v5.1.3<\/h3>\n\n<p>update: marketplace category and cover<\/p>\n\n<h3>v5.1.2<\/h3>\n\n<p>update: Swagger logo<\/p>\n\n<h3>v5.1.1<\/h3>\n\n<p>Publish the plugin<\/p>\n\n<h3>v5.1.0<\/h3>\n\n<p>setup: Plugin base<\/p>"},"download":"\/api\/2.0\/plugins\/Swagger\/download\/5.3.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Swagger\/changelog"},"consumer":{"license":null}},{"name":"TagManagerExtended","displayName":"Tag Manager Extended","owner":"openmost","description":"36 tag templates, more triggers and variables, bulk actions and a Custom HTML editor for Tag Manager.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/tag-manager-extended","createdDateTime":"2023-10-02 21:20:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/TagManagerExtended\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/TagManagerExtended","type":"url"}],"isTheme":false,"keywords":["manager","tags","tag","TagManager","Extended","Enhance","Consent","Mode","CMP"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/TagManagerExtended","lastUpdated":"2026-10-21 21:24:15","latestVersion":"5.8.2","numDownloads":33698,"screenshots":["https:\/\/plugins.matomo.org\/TagManagerExtended\/images\/5.8.2\/Bulk_actions_on_selected_tags.png","https:\/\/plugins.matomo.org\/TagManagerExtended\/images\/5.8.2\/Custom_HTML_editor_with_live_syntax_validation.png","https:\/\/plugins.matomo.org\/TagManagerExtended\/images\/5.8.2\/More_tag_templates_ads_and_consent.png","https:\/\/plugins.matomo.org\/TagManagerExtended\/images\/5.8.2\/More_trigger_templates.png","https:\/\/plugins.matomo.org\/TagManagerExtended\/images\/5.8.2\/More_variable_templates.png"],"coverImage":"https:\/\/plugins.matomo.org\/TagManagerExtended\/images\/5.8.2\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/ABLd8Zyjt1M","id":"ABLd8Zyjt1M"}],"activity":{"numCommits":"38","numContributors":"2","lastCommitDate":"2026-10-21 21:22:49"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"4.0.1","release":"2023-10-02 21:20:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.0.1"},{"name":"4.0.2","release":"2023-10-02 21:24:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":36,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.0.2"},{"name":"4.0.3","release":"2023-10-06 16:08:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.0.3"},{"name":"4.1.0","release":"2023-10-06 19:00:04","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.1.0"},{"name":"4.2.0","release":"2023-10-06 20:36:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":34,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.2.0"},{"name":"4.3.0","release":"2023-10-09 18:22:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.0"},{"name":"4.3.1","release":"2023-10-09 19:38:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":205,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.1"},{"name":"4.3.3","release":"2023-11-02 16:34:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":167,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.3"},{"name":"5.0.0","release":"2023-11-22 16:32:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.0"},{"name":"4.3.4","release":"2023-11-22 16:32:08","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":160,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.4"},{"name":"5.0.1","release":"2023-12-07 15:38:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.1"},{"name":"4.3.5","release":"2023-12-07 15:42:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.5"},{"name":"4.3.6","release":"2023-12-07 15:46:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":168,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.6"},{"name":"4.3.7","release":"2023-12-18 20:24:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":90,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.7"},{"name":"5.0.2","release":"2023-12-18 20:28:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":200,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.2"},{"name":"5.0.3","release":"2024-01-05 12:04:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":157,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.3"},{"name":"5.0.4","release":"2024-01-12 16:34:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":112,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.4"},{"name":"4.3.8","release":"2024-01-12 16:36:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":33,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.8"},{"name":"5.0.5","release":"2024-01-19 14:52:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":108,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.5"},{"name":"4.3.9","release":"2024-01-19 14:54:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.9"},{"name":"5.0.6","release":"2024-01-25 09:52:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":464,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.6"},{"name":"4.3.10","release":"2024-01-25 09:54:03","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":69,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.10"},{"name":"5.0.8","release":"2024-03-05 17:58:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2112,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.8"},{"name":"4.3.11","release":"2024-03-05 18:00:04","requires":{"matomo":">=4.0.0,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1211,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/4.3.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/4.3.11"},{"name":"5.0.9","release":"2024-06-27 06:51:02","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":21,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.9"},{"name":"5.0.10","release":"2024-06-27 12:30:04","requires":{"matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3223,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.0.10"},{"name":"5.1.0","release":"2024-11-08 18:58:04","requires":{"matomo":">=5.1.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":214,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.1.0"},{"name":"5.1.1","release":"2024-11-15 13:04:03","requires":{"matomo":">=5.1.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.1.1"},{"name":"5.1.2","release":"2024-11-15 13:08:03","requires":{"matomo":">=5.1.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.1.2"},{"name":"5.1.3","release":"2024-11-15 17:44:04","requires":{"matomo":">=5.1.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":807,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.1.3"},{"name":"5.2.1","release":"2024-12-13 20:16:04","requires":{"matomo":">=5.2.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":200,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.2.1"},{"name":"5.2.2","release":"2024-12-18 11:56:04","requires":{"matomo":">=5.2.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2444,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.2.2"},{"name":"5.2.3","release":"2025-06-04 20:28:04","requires":{"matomo":">=5.2.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3510,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.2.3"},{"name":"5.3.0","release":"2025-11-24 19:24:04","requires":{"matomo":">=5.2.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4864,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.3.0"},{"name":"5.4.0","release":"2026-01-29 23:38:04","requires":{"matomo":">=5.2.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":519,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.4.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.4.0"},{"name":"5.5.0","release":"2026-02-03 17:34:05","requires":{"matomo":">=5.2.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":192,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.5.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.5.0"},{"name":"5.5.1","release":"2026-02-04 11:24:04","requires":{"matomo":">=5.2.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6415,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.5.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.5.1"},{"name":"5.6.0","release":"2026-05-05 22:10:06","requires":{"matomo":">=5.10.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":139,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.6.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.6.0"},{"name":"5.6.1","release":"2026-05-06 15:36:04","requires":{"matomo":">=5.10.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":22,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.6.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.6.1"},{"name":"5.6.2","release":"2026-05-06 20:16:05","requires":{"matomo":">=5.10.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1257,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.6.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.6.2"},{"name":"5.7.0","release":"2026-06-09 15:34:05","requires":{"matomo":">=5.10.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.7.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.7.0"},{"name":"5.7.1","release":"2026-06-09 15:36:06","requires":{"matomo":">=5.10.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3869,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.7.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.7.1"},{"name":"6.0.0","release":"2026-09-15 17:46:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/6.0.0"},{"name":"6.0.1","release":"2026-09-15 17:50:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":57,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/6.0.1"},{"name":"6.1.0","release":"2026-10-14 14:16:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/6.1.0"},{"name":"5.8.0","release":"2026-10-14 15:32:09","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":84,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.8.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.8.0"},{"name":"6.1.1","release":"2026-10-16 07:28:07","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":13,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/6.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/6.1.1"},{"name":"5.8.1","release":"2026-10-16 07:28:36","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":179,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.8.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.8.1"},{"name":"6.1.2","release":"2026-10-21 20:56:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/6.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/6.1.2"},{"name":"5.8.2","release":"2026-10-21 21:24:15","requires":{"matomo":">=5.2.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":256,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/TagManagerExtended\/commits\/5.8.2","readmeHtml":{"description":"\n\n<p>Extend the Matomo Tag Manager with 36 ready-to-use tag templates, extra triggers and variables, bulk actions and a Custom HTML code editor with syntax validation.<\/p>\n\n<h3>Features<\/h3>\n\n<h4>Tag templates<\/h4>\n\n<p>Each advertising and social pixel is a complete tag: it loads the base library, initialises the pixel and sends the selected event (page view by default, standard conversion events or a custom event). Where the platform supports it, an event ID can be sent for server-side (Conversions API) deduplication. Every field accepts Matomo variables (<code>{&#8291;{...}}<\/code>). Each tag and variable template comes with a help text explaining what it does and how to set it up, in the 12 languages of the interface.<\/p>\n\n<ul>\n<li><strong>Ads<\/strong>: ChatGPT Ads Pixel (OpenAI), Google Ads : Conversion, LinkedIn Ads : Conversion, Microsoft Ads : Conversion<\/li>\n<li><strong>Social<\/strong>: Meta Pixel, TikTok Pixel, Pinterest Tag, Snapchat Pixel, X (Twitter) Pixel, Reddit Pixel<\/li>\n<li><strong>Analytics<\/strong>: Google Tag (gtag.js), Google Analytics 4 : Event, Google User-Provided Data, Matomo Analytics : Ecommerce, Matomo Analytics : Search, Hotjar, Microsoft Clarity, Simple Analytics, ListenLayer<\/li>\n<li><strong>Consent management<\/strong>: Google Consent Mode (v2), Microsoft Consent Mode, Axeptio (with Google Consent Mode v2 support), Cookiebot, CookieYes, OneTrust<\/li>\n<li><strong>Remarketing and support<\/strong>: Criteo OneTag, Crisp, Intercom<\/li>\n<li><strong>Email<\/strong>: Brevo, Klaviyo<\/li>\n<li><strong>Affiliates<\/strong>: Affilae<\/li>\n<li><strong>Others<\/strong>: HubSpot, Slack, Alert, Console, DataLayer Synchronisation (deprecated since Matomo 5.2)<\/li>\n<\/ul>\n\n<p>When a template replaces a built-in Tag Manager template (Google Tag, Google Ads, Google Analytics 4 event, Google Consent Mode, Hotjar and some consent platforms), the built-in one is hidden so only one version is listed.<\/p>\n\n<h4>Triggers<\/h4>\n\n<ul>\n<li><strong>Custom Event<\/strong>, with regular expression matching<\/li>\n<li><strong>Custom Event Group<\/strong>: fires only when all the required events have occurred<\/li>\n<li><strong>Form Input<\/strong>: fires when a form field changes (input, select, checkbox, radio, textarea)<\/li>\n<\/ul>\n\n<h4>Variables<\/h4>\n\n<ul>\n<li><strong>LocalStorage<\/strong> and <strong>SessionStorage<\/strong> values<\/li>\n<li><strong>Date<\/strong> with a custom format<\/li>\n<li><strong>Click data-attribute<\/strong>: any <code>data-*<\/code> attribute of the clicked element<\/li>\n<li><strong>Form Input<\/strong> values: Value, Name, ID, Type, Element, Checked, Classes, Selected Text<\/li>\n<\/ul>\n\n<h4>Custom HTML code editor<\/h4>\n\n<p>The Custom HTML tag gets a code editor:<\/p>\n\n<ul>\n<li>HTML, JavaScript and CSS syntax highlighting, in a light or dark palette that follows the Matomo theme, with line numbers, auto-indentation, auto-closing tags and autocompletion<\/li>\n<li>Live validation of the JavaScript and JSON-LD (<code>&lt;script type=\"application\/ld+json\"&gt;<\/code>) blocks: errors are underlined as you type, and a \"Valid syntax\" \/ \"Code may contain errors\" indicator lists them<\/li>\n<li>Matomo variables (<code>{&#8291;{...}}<\/code>) are supported by the validator and the variable picker still inserts them at the cursor position<\/li>\n<li>The validator never blocks saving<\/li>\n<\/ul>\n\n<h4>Bulk actions<\/h4>\n\n<ul>\n<li>Select several tags, triggers or variables in a container<\/li>\n<li>Delete them in one action, or pause and resume several tags at once<\/li>\n<li>Available to every user with write access to the container<\/li>\n<\/ul>\n\n<h4>Safer lists<\/h4>\n\n<p>Tags, triggers and variables whose type is no longer available (for example after a plugin was removed) are shown as \"Unavailable type (...)\" instead of breaking the Tag Manager list, so they can be edited or deleted.<\/p>\n\n<p>This protection only works while TagManagerExtended is active. Before you deactivate or uninstall it, delete the tags, triggers and variables created from its templates: Matomo Tag Manager cannot display an entity whose template is not available, its list then stays on \"Loading data\".<\/p>\n\n<p>The interface is translated into 12 languages.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.2.0 or higher, below 6.0.0 (the bulk Pause and Resume actions use the tag pausing of the Tag Manager bundled since Matomo 5.2)<\/li>\n<li>The Matomo <strong>TagManager<\/strong> plugin, activated<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install and activate the plugin from the Matomo Marketplace (<strong>Administration &gt; Platform &gt; Marketplace<\/strong>).<\/li>\n<li>Open <strong>Tag Manager<\/strong> for a website: the new templates are listed when you create a tag, trigger or variable, and the bulk actions are available on the tags, triggers and variables lists.<\/li>\n<\/ol>\n\n<p>There is nothing else to configure. The plugin is available to every Tag Manager user of the instance.<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<p>The plugin does not send any data by itself. The tags you publish load the scripts of the third-party platforms you choose (Meta, TikTok, Google, LinkedIn...) in your visitors' browsers, and those platforms receive the data you configure in each tag. Use a consent management tag and triggers to respect your visitors' consent.<\/p>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We design <a href=\"https:\/\/openmost.com\/matomo\/services\/tracking-architecture?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=tagmanagerextended\">Matomo tracking plans<\/a> and implement them in Matomo Tag Manager, with tags, triggers, variables and a data layer where needed, documented so your team can maintain them.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How to install this plugin?<\/strong><\/p>\n\n<p>This plugin is available in the official Matomo Marketplace. Install it the same way as other plugins:<\/p>\n\n<ul>\n<li>Go to the administration panel<\/li>\n<li>Look for the Marketplace section and select \"Plugins\" in the dropdown<\/li>\n<li>Then search for \"<strong>Tag Manager Extended<\/strong>\", install and activate the plugin.<\/li>\n<\/ul>\n\n<p><strong>Is the plugin active for all Matomo users in my instance?<\/strong><\/p>\n\n<p>Yes, if you choose this plugin for your Matomo instance, all users will be able to use it.<\/p>\n\n<p><strong>How can I contribute to this plugin?<\/strong><\/p>\n\n<p>Open an issue or a pull request on <a href=\"https:\/\/github.com\/openmost\/TagManagerExtended\">GitHub<\/a>, or contact us at ronan@openmost.com.<\/p>\n\n<p><strong>How long will this plugin be maintained?<\/strong><\/p>\n\n<p>As long as possible. We use Matomo and this plugin on many projects every day, so issues are fixed as fast as possible.<\/p>\n\n<p><strong>Why do I see \"Unavailable type (...)\" on some of my tags, triggers or variables?<\/strong><\/p>\n\n<p>This label appears when an entity in your container references a type that is no longer registered on your Matomo instance. It typically happens when:<\/p>\n\n<ul>\n<li>a plugin that used to provide this type has been uninstalled or disabled,<\/li>\n<li>a built-in Tag Manager type has been replaced or removed by another plugin,<\/li>\n<li>a custom template has been deleted.<\/li>\n<\/ul>\n\n<p>Without this fallback the Tag Manager list page would not render at all (Vue would crash with <code>Cannot read properties of null (reading 'description')<\/code>). The placeholder lets you keep the entity visible so you can edit it to use a still-available type, or delete it.<\/p>\n\n<p><strong>What does \"Code may contain errors\" mean in the Custom HTML tag?<\/strong><\/p>\n\n<p>The Custom HTML editor checks the syntax of your <code>&lt;script&gt;<\/code> blocks (JavaScript and JSON-LD) while you type. When an error is found, it is underlined in the code and a red marker is displayed in the margin: hover it to read the message, or click on \"Code may contain errors\" to list all the errors. Fix them and the indicator switches to \"Valid syntax\".<\/p>\n\n<p><strong>Can I use Matomo variables in my JavaScript code?<\/strong><\/p>\n\n<p>Yes. Variables such as <code>{&#8291;{PageUrl}}<\/code> are replaced by their value when the tag is executed, so the validator ignores them and does not report them as errors.<\/p>\n\n<p><strong>Does the validator prevent me from saving my tag?<\/strong><\/p>\n\n<p>No. The validator only helps you spot syntax errors, you can always save your tag. Only the syntax is checked: a valid code can still fail at runtime (for example when an external library is not loaded).<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>1 - Install the plugin from the marketplace or via GitHub<\/h3>\n\n<p>Install this plugin from the Marketplace as super user or download the plugin and install it on your server from FTP in\nthe <code>\/plugins<\/code> folder.<\/p>\n\n<p>As a super user, enable the plugin in <strong>Administration &gt; Platform &gt; Plugins<\/strong>.<\/p>\n\n<h3>2 - Use the new tags, triggers and variables<\/h3>\n\n<p>This plugin adds tags, triggers and variables to the Tag Manager to let you deploy other solutions in seconds. They are listed with the built-in templates when you create a tag, a trigger or a variable. Each tag and variable template comes with a help text explaining what it does and how to set it up, for example which tag must be loaded first or when to fire it.<\/p>\n\n<h3>3 - Write Custom HTML with syntax highlighting and a JavaScript validator<\/h3>\n\n<p>The <strong>Custom HTML<\/strong> tag comes with a real code editor:<\/p>\n\n<ul>\n<li><strong>Syntax highlighting<\/strong> for HTML, JavaScript and CSS, in a light or dark palette that follows the Matomo theme, with line numbers, auto-indentation, auto-closing tags and autocompletion.<\/li>\n<li><strong>JavaScript syntax validator<\/strong>: the code of your <code>&lt;script&gt;<\/code> blocks is checked while you type. Errors are underlined in the editor and marked in the margin, hover them to read the message.<\/li>\n<li><strong>JSON-LD validation<\/strong>: <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> blocks are checked too.<\/li>\n<li>A <strong>\"Valid syntax\" \/ \"Code may contain errors\"<\/strong> indicator is displayed next to the field. Click it to open the list of errors.<\/li>\n<li>Matomo <strong>variables<\/strong> (<code>{&#8291;{PageUrl}}<\/code>...) are supported by the validator, and the variable picker inserts them at the cursor position.<\/li>\n<\/ul>\n\n<p>The validator only reports syntax errors and never prevents you from saving your tag.<\/p>\n\n<h3>4 - Manage your container with bulk actions<\/h3>\n\n<p>On the tags, triggers and variables lists, select several items to delete them in one action. Tags can also be paused or resumed in bulk. Bulk actions are available to every user with write access to the container.<\/p>\n\n\n\n<h3>List of available tags :<\/h3>\n\n<p><strong>[Ads]<\/strong><\/p>\n\n<ul>\n<li>ChatGPT Ads Pixel<\/li>\n<li>Google Ads : Conversion<\/li>\n<li>LinkedIn Ads : Conversion<\/li>\n<li>Microsoft Ads : Conversion<\/li>\n<\/ul>\n\n<p><strong>[Affiliates]<\/strong><\/p>\n\n<ul>\n<li>Affilae<\/li>\n<\/ul>\n\n<p><strong>[Analytics]<\/strong><\/p>\n\n<ul>\n<li>Matomo Analytics : Ecommerce<\/li>\n<li>Matomo Analytics : Search<\/li>\n<li>Google Analytics 4 : Event<\/li>\n<li>Google Tag (gtag.js)<\/li>\n<li>Google User-Provided Data<\/li>\n<li>Hotjar<\/li>\n<li>ListenLayer<\/li>\n<li>Microsoft Clarity<\/li>\n<li>Simple Analytics<\/li>\n<\/ul>\n\n<p><strong>[Consent Management]<\/strong><\/p>\n\n<ul>\n<li>Google Consent Mode (v2)<\/li>\n<li>Microsoft Consent Mode<\/li>\n<\/ul>\n\n<p><strong>[Consent Management Platform]<\/strong><\/p>\n\n<ul>\n<li>Axeptio (support Google Consent Mode v2)<\/li>\n<li>CookieYes<\/li>\n<li>Cookiebot<\/li>\n<li>OneTrust<\/li>\n<\/ul>\n\n<p><strong>[Email]<\/strong><\/p>\n\n<ul>\n<li>Brevo<\/li>\n<li>Klaviyo<\/li>\n<\/ul>\n\n<p><strong>[Openmost]<\/strong><\/p>\n\n<ul>\n<li>DataLayer Synchronisation (deprecated since Matomo 5.2)<\/li>\n<\/ul>\n\n<p><strong>[Remarketing]<\/strong><\/p>\n\n<ul>\n<li>Criteo OneTag<\/li>\n<li>Crisp<\/li>\n<li>Intercom<\/li>\n<\/ul>\n\n<p><strong>[Social]<\/strong><\/p>\n\n<ul>\n<li>Meta Pixel<\/li>\n<li>Pinterest Tag<\/li>\n<li>Reddit Pixel<\/li>\n<li>Snapchat Pixel<\/li>\n<li>TikTok Pixel<\/li>\n<li>X (Twitter) Pixel<\/li>\n<\/ul>\n\n<p><strong>[Others]<\/strong><\/p>\n\n<ul>\n<li>Alert<\/li>\n<li>Console<\/li>\n<li>HubSpot<\/li>\n<li>Slack<\/li>\n<\/ul>\n\n\n\n<h3>List of available triggers :<\/h3>\n\n<p><strong>[Others]<\/strong><\/p>\n\n<ul>\n<li>Custom Event (enhanced with regex support)<\/li>\n<li>Custom Event Group<\/li>\n<\/ul>\n\n<p><strong>[User Engagement]<\/strong><\/p>\n\n<ul>\n<li>Form Input<\/li>\n<\/ul>\n\n\n\n<h3>List of available variables :<\/h3>\n\n<p><strong>[Page Variables]<\/strong><\/p>\n\n<ul>\n<li>LocalStorage<\/li>\n<li>SessionStorage<\/li>\n<\/ul>\n\n<p><strong>[Date]<\/strong><\/p>\n\n<ul>\n<li>Date (custom format)<\/li>\n<\/ul>\n\n<p><strong>[Clicks]<\/strong><\/p>\n\n<ul>\n<li>Click data-attribute<\/li>\n<\/ul>\n\n<p><strong>[Forms]<\/strong><\/p>\n\n<ul>\n<li>Form Input - Value<\/li>\n<li>Form Input - Name<\/li>\n<li>Form Input - ID<\/li>\n<li>Form Input - Type<\/li>\n<li>Form Input - Element<\/li>\n<li>Form Input - Checked<\/li>\n<li>Form Input - Classes<\/li>\n<li>Form Input - Selected Text<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>v5.8.2<\/h2>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h2>v5.8.1<\/h2>\n\n<h3>Privacy<\/h3>\n\n<ul>\n<li>ChatGPT Ads Pixel: when consent is denied (fixed setting or from a variable), the OpenAI pixel script is no longer loaded, so no request reaches the OpenAI CDN. If the pixel was already loaded on the page, the denial is still forwarded so it removes its cookies. The consent help text is updated in all 12 languages.<\/li>\n<\/ul>\n\n<h2>v5.8.0<\/h2>\n\n<h3>Improvements<\/h3>\n\n<ul>\n<li>New <strong>ChatGPT Ads Pixel<\/strong> tag (OpenAI Ads Measurement Pixel): <code>oaiq<\/code> init, page views and every standard conversion event (<code>contents_viewed<\/code>, <code>items_added<\/code>, <code>checkout_started<\/code>, <code>order_created<\/code>, <code>lead_created<\/code>, <code>registration_completed<\/code>, <code>appointment_scheduled<\/code>, <code>subscription_created<\/code>, <code>trial_started<\/code>) plus custom events. Amount and currency with automatic conversion to the smallest currency unit, contents from a single item or a GA4 \/ Matomo ecommerce items variable, plan ID, event ID for Conversions API deduplication, personalisation opt-out, consent (fixed or from a variable), advanced matching with in-browser SHA-256 hashing, and debug mode.<\/li>\n<li>The Custom HTML tag now has a code editor with HTML, JavaScript and CSS syntax highlighting, line numbers and auto-closing tags, in a light and dark palette that follows the Matomo theme. The variable picker still inserts at the cursor position.<\/li>\n<li>Syntax errors in the <code>&lt;script&gt;<\/code> blocks of Custom HTML tags (JavaScript and JSON-LD) are highlighted while typing. Matomo variables (<code>{&#8291;{...}}<\/code>) are supported, saving is not blocked.<\/li>\n<li>Interface translated into 12 languages.<\/li>\n<li>Help texts added for 29 tag and variable templates (shown on the template icon) and for the Google Ads conversion and Microsoft Clarity fields, in all 12 languages.<\/li>\n<li>The package no longer ships the Laravel Mix manifest (mix-manifest.json), which Matomo does not use.<\/li>\n<li>The hover background of the bulk action buttons was transparent, it now uses the Matomo theme background.<\/li>\n<\/ul>\n\n<h3>Technical<\/h3>\n\n<ul>\n<li>The code editor is built with the Matomo Vite build (<code>vue\/<\/code>) and only loaded on Tag Manager pages.<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<\/ul>\n\n<h3>Compatibility<\/h3>\n\n<ul>\n<li>Requires Matomo 5.2.0 or higher instead of 5.10.0: every Matomo theme variable used by the plugin keeps the light theme value of Matomo as a fallback, and 5.2 is the first release whose Tag Manager can pause tags, which the bulk Pause and Resume actions use.<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h2>v5.7.1<\/h2>\n\n<h3>Improvements<\/h3>\n\n<ul>\n<li>Matomo Ecommerce and Matomo Search tags now use a crisp SVG icon, and the OneTrust icon was refreshed.<\/li>\n<li>The base \"Google Consent Mode v2\" tag is now hidden in favour of the extended version, and the Microsoft Consent Mode tag is grouped under the standard \"Consent Management\" category.<\/li>\n<li>Restyled the TagManagerExtended branding badge to follow the active Matomo theme colors (transparent background) and removed the author label.<\/li>\n<\/ul>\n\n<h2>v5.7.0<\/h2>\n\n<h3>New Feature: Marketing &amp; Advertising pixels<\/h3>\n\n<p>Eleven new tag templates for the major advertising and marketing platforms. Each social\/ads pixel is a <strong>complete tag<\/strong> that loads the base library, initialises the pixel and sends the selected event (page view by default, then standard conversion events or a custom event). All snippets and event APIs were verified against the official platform documentation.<\/p>\n\n<p><strong>[Social]<\/strong><\/p>\n\n<ul>\n<li><strong>Meta Pixel<\/strong>, loads the pixel, <code>PageView<\/code> + the 17 standard events + custom events (<code>trackCustom<\/code>), with optional <code>eventID<\/code> for Conversions API (CAPI) deduplication.<\/li>\n<li><strong>TikTok Pixel<\/strong>, <code>ttq.load<\/code>\/<code>ttq.page<\/code> + current standard events (Purchase, AddToCart, CompleteRegistration\u2026) + custom events, with optional <code>event_id<\/code> (Events API deduplication).<\/li>\n<li><strong>Pinterest Tag<\/strong>, <code>pintrk<\/code> load\/page + conversion events + custom events, with optional <code>event_id<\/code> (sent inside the event data, as required by Pinterest).<\/li>\n<li><strong>Snapchat Pixel<\/strong>, <code>snaptr<\/code> init (with optional advanced-matching email) + standard events + the official <code>CUSTOM_EVENT_1\u20265<\/code> slots.<\/li>\n<li><strong>X (Twitter) Pixel<\/strong>, current <code>twq('config')<\/code> + <code>twq('event', &lt;event id&gt;)<\/code> API (base page tracking handled automatically by config).<\/li>\n<li><strong>Reddit Pixel<\/strong>, <code>rdt<\/code> init + standard events + custom events (<code>Custom<\/code> with <code>customEventName<\/code>).<\/li>\n<\/ul>\n\n<p><strong>[Ads]<\/strong><\/p>\n\n<ul>\n<li><strong>Microsoft Ads : Conversion<\/strong>, pushes a UET conversion event (action, category, label, event value, revenue value, currency, custom parameters). Requires the base Microsoft Advertising (Bing UET) tag.<\/li>\n<li><strong>LinkedIn Ads : Conversion<\/strong>, fires a LinkedIn conversion (<code>lintrk('track', { conversion_id })<\/code>), with optional loading of the Insight Tag when the partner ID is provided.<\/li>\n<\/ul>\n\n<p><strong>[Remarketing]<\/strong><\/p>\n\n<ul>\n<li><strong>Criteo OneTag<\/strong>, dynamic loader + <code>viewHome<\/code>\/<code>viewList<\/code>\/<code>viewItem<\/code>\/<code>viewBasket<\/code>\/<code>trackTransaction<\/code> events, with optional email matching.<\/li>\n<li><strong>Crisp<\/strong>, loads the Crisp live chat \/ chatbot widget, with optional visitor email and name pre-fill.<\/li>\n<\/ul>\n\n<p><strong>[Others]<\/strong><\/p>\n\n<ul>\n<li><strong>HubSpot<\/strong>, loads the HubSpot tracking code (NA\/EU data centre), with optional visitor identification by email and custom behavioral events.<\/li>\n<\/ul>\n\n<p>All new tags integrate with Matomo variables (<code>{&#8291;{...}}<\/code>) on every field and are fully translated in English and French.<\/p>\n\n<h2>v5.6.2<\/h2>\n\n<ul>\n<li>Fix: Color issue in Lightmode with buttons<\/li>\n<li>Add: More screenshots<\/li>\n<\/ul>\n\n<h2>v5.6.1<\/h2>\n\n<h3>Bug Fix<\/h3>\n\n<ul>\n<li>Fix Vue render crash on the Tag\/Trigger\/Variable list page when an entity references a type that is no longer available (plugin removed\/disabled or built-in type filtered out). The list rendered nothing and the console showed <code>TypeError: Cannot read properties of null (reading 'description')<\/code>.<\/li>\n<li>Orphan entities now render with a placeholder type label <code>Unavailable type (xxx)<\/code> so they remain visible and can still be edited or deleted.<\/li>\n<\/ul>\n\n<h2>v5.6.0<\/h2>\n\n<ul>\n<li>Support native CSS variables for Matomo 5.10+<\/li>\n<\/ul>\n\n<h2>v5.5.1<\/h2>\n\n<ul>\n<li>Security fixes<\/li>\n<\/ul>\n\n<h2>v5.5.0<\/h2>\n\n<h3>New Feature: Bulk Actions<\/h3>\n\n<p>Manage multiple tags, triggers, and variables at once with the new bulk actions feature:<\/p>\n\n<ul>\n<li><strong>Select multiple items<\/strong>: Checkbox on each row to select individual items<\/li>\n<li><strong>Select All<\/strong>: Quick selection of all items in the list<\/li>\n<li><strong>Bulk Delete<\/strong>: Delete multiple tags, triggers, or variables at once<\/li>\n<li><strong>Bulk Pause\/Resume<\/strong> (tags only): Pause or resume multiple tags simultaneously<\/li>\n<\/ul>\n\n<p>This feature is only available for users with write access to the container.<\/p>\n\n<h3>Improvements<\/h3>\n\n<ul>\n<li>Refactored LESS stylesheets into modular components for better maintainability<\/li>\n<li>Added branding badge for TagManagerExtended items in the list<\/li>\n<\/ul>\n\n<h2>v5.4.0<\/h2>\n\n<h3>New Triggers<\/h3>\n\n<ul>\n<li><strong>Custom Event<\/strong> (enhanced): Added regex support with a \"Use Regular Expression\" checkbox option to match event names using patterns<\/li>\n<li><strong>Custom Event Group<\/strong>: Fires only when ALL specified custom events have been pushed to the data layer. Useful for multi-condition scenarios<\/li>\n<li><strong>Form Input<\/strong>: Fires when a form element (input, select, checkbox, radio, textarea) value changes. Supports \"Change\", \"Input\", or \"Both\" listen modes<\/li>\n<\/ul>\n\n<h3>New Variables<\/h3>\n\n<ul>\n<li><strong>LocalStorage<\/strong>: Get a value from the browser's localStorage<\/li>\n<li><strong>SessionStorage<\/strong>: Get a value from the browser's sessionStorage<\/li>\n<li><strong>Date<\/strong>: Returns the current date\/time in a custom format (PHP-style tokens: Y, m, d, H, i, s, etc.)<\/li>\n<\/ul>\n\n<h3>New Pre-configured Variables (Forms category)<\/h3>\n\n<ul>\n<li><strong>Form Input - Value<\/strong>: Returns the value of the form element that triggered the Form Input event<\/li>\n<li><strong>Form Input - Name<\/strong>: Returns the name attribute of the form element<\/li>\n<li><strong>Form Input - ID<\/strong>: Returns the id attribute of the form element<\/li>\n<li><strong>Form Input - Type<\/strong>: Returns the type of the form element (text, email, checkbox, select, etc.)<\/li>\n<li><strong>Form Input - Element<\/strong>: Returns the DOM element that triggered the event<\/li>\n<li><strong>Form Input - Checked<\/strong>: Returns true\/false for checkbox and radio elements<\/li>\n<li><strong>Form Input - Classes<\/strong>: Returns the CSS classes of the form element<\/li>\n<li><strong>Form Input - Selected Text<\/strong>: Returns the displayed text of the selected option (for select elements)<\/li>\n<\/ul>\n\n<h2>v5.3.0<\/h2>\n\n<p>update: Input with variable design\nupdate: Move Add entity button a the top<\/p>\n\n<h2>v5.2.3<\/h2>\n\n<p>update: Add wait_for_update parameter in Google Consent Mode v2\nadd: Microsoft Consent Mode tag<\/p>\n\n<h2>v5.2.2<\/h2>\n\n<p>fix: Fixing conflict with core and custom tags name.\nThanks to <a href=\"https:\/\/github.com\/AltamashShaikh\">@AltamashShaikh<\/a><\/p>\n\n<h2>v5.2.1<\/h2>\n\n<p>update: Tag differencitation from Core imported tags<\/p>\n\n<h2>v5.1.3<\/h2>\n\n<p>fix: Google Ads Conversion init gtag.js itself<\/p>\n\n<h2>v5.1.2<\/h2>\n\n<p>Update CustomHTML with overflow auto<\/p>\n\n<h2>v5.1.1<\/h2>\n\n<p>Update CustomHTML native tag to enhance textarea<\/p>\n\n<h2>v5.1.0<\/h2>\n\n<p>Add tag to Tag Manager<\/p>\n\n<ul>\n<li>Google Consent Mode (v2)<\/li>\n<\/ul>\n\n<p>Update tags :<\/p>\n\n<ul>\n<li>Google Analytics 4 : Event<\/li>\n<li>Axeptio (support Google Consent Mode v2)<\/li>\n<\/ul>\n\n<h2>v5.0.9<\/h2>\n\n<p>Add tag to Tag Manager<\/p>\n\n<ul>\n<li>Matomo Analytics : Search<\/li>\n<li>Intercom<\/li>\n<\/ul>\n\n<h3>v5.0.8<\/h3>\n\n<p>Update documentation url<\/p>\n\n<h3>v5.0.6<\/h3>\n\n<p>Update tags<\/p>\n\n<ul>\n<li>GAds Conversion support with and without \"AW-\" syntax for conversion ID<\/li>\n<\/ul>\n\n<h3>v5.0.5<\/h3>\n\n<p>Update tags<\/p>\n\n<ul>\n<li>GAds Conversion support transaction ID<\/li>\n<\/ul>\n\n<h3>v5.0.4<\/h3>\n\n<p>Add tag to Tag Manager<\/p>\n\n<ul>\n<li>Google Tag<\/li>\n<\/ul>\n\n<p>Fix existing tag<\/p>\n\n<ul>\n<li>Google Analytics 4 tag<\/li>\n<\/ul>\n\n<h3>v5.0.3<\/h3>\n\n<p>Add tag to Tag Manager<\/p>\n\n<ul>\n<li>Simple Analytics<\/li>\n<li>Alert<\/li>\n<li>Console<\/li>\n<\/ul>\n\n<h3>v5.0.2<\/h3>\n\n<p>Add tag to Tag Manager<\/p>\n\n<ul>\n<li>OneTrust<\/li>\n<\/ul>\n\n<h3>v5.0.1<\/h3>\n\n<p>Add tag to Tag Manager<\/p>\n\n<ul>\n<li>Slack<\/li>\n<\/ul>\n\n<h3>v5.0.0<\/h3>\n\n<p>Support Matomo v5<\/p>\n\n<h3>v4.3.3<\/h3>\n\n<p>Update documentation<\/p>\n\n<h3>v4.3.1<\/h3>\n\n<p>Update screenshots<\/p>\n\n<h3>v4.3.0<\/h3>\n\n<p>Add tags to Tag Manager<\/p>\n\n<ul>\n<li>Affilae<\/li>\n<li>ListenLayer<\/li>\n<\/ul>\n\n<h3>v4.2.0<\/h3>\n\n<p>Add tags to Tag Manager<\/p>\n\n<ul>\n<li>Matomo Analytics : Ecommerce<\/li>\n<\/ul>\n\n<h3>v4.1.0<\/h3>\n\n<p>Add tags to Tag Manager<\/p>\n\n<ul>\n<li>Google Ads : Conversion<\/li>\n<li>CookieYes<\/li>\n<li>Cookiebot<\/li>\n<li>Brevo<\/li>\n<li>Klaviyo<\/li>\n<li>DataLayer Synchronisation<\/li>\n<\/ul>\n\n<p>Update Axeptio tag to send events to _mtm<\/p>\n\n<h3>v4.0.3<\/h3>\n\n<p>Fix Axeptio tag compatibility with Matomo Tag Manager<\/p>\n\n<h3>v4.0.2<\/h3>\n\n<p>Update doc for Markdown readers<\/p>\n\n<h3>v4.0.1<\/h3>\n\n<p>Add custom variable template to Tag Manager<\/p>\n\n<ul>\n<li>Click data-attribute<\/li>\n<\/ul>\n\n<h3>v4.0.0<\/h3>\n\n<p>Add tags to Tag Manager<\/p>\n\n<ul>\n<li>Axeptio<\/li>\n<li>Google Analytics 4<\/li>\n<li>Google Analytics 4 : Event<\/li>\n<li>Hotjar<\/li>\n<li>Microsoft Clarity<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/TagManagerExtended\/download\/5.8.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TagManagerExtended\/changelog"},"consumer":{"license":null}},{"name":"TagManagerInputExtension","displayName":"Tag Manager Input Extension","owner":"MichaelRoosz","description":"This plugin extends the Matomo Tag Manager with new triggers and variables for input tags.","homepage":"https:\/\/github.com\/MichaelRoosz\/plugin-TagManagerInputExtension","createdDateTime":"2024-09-22 16:26:02","donate":{},"support":[],"isTheme":false,"keywords":["matomo","TagManager","input","extension"],"basePrice":0,"authors":[{"name":"Michael Roosz","email":"michael.roosz@web.de","homepage":null}],"repositoryUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-TagManagerInputExtension","lastUpdated":"2024-09-22 19:02:03","latestVersion":"1.0.1","numDownloads":7521,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2024-09-22 19:00:56"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2024-09-22 16:26:02","requires":{"matomo":">=5.1.1-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-TagManagerInputExtension\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TagManagerInputExtension\/download\/1.0.0"},{"name":"1.0.1","release":"2024-09-22 19:02:03","requires":{"matomo":">=5.1.1-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7519,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/MichaelRoosz\/plugin-TagManagerInputExtension\/commits\/1.0.1","readmeHtml":{"description":"","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>FAQ<\/h2>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v1.0.1<\/h3>\n\n<ul>\n<li>Improve event handling<\/li>\n<\/ul>\n\n<h3>v1.0.0<\/h3>\n\n<ul>\n<li>Initial Release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/TagManagerInputExtension\/download\/1.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TagManagerInputExtension\/changelog"},"consumer":{"license":null}},{"name":"TapatalkReport","displayName":"Tapatalk Report","owner":"luohui8891","description":"Tapatalk Report.","homepage":null,"createdDateTime":"2017-06-19 02:32:04","donate":{},"support":[{"name":"Email","key":"email","value":"luohui@tapatalk.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/luohui8891\/TapatalkReport\/issues","type":"url"}],"isTheme":false,"keywords":["Tapatalk"],"basePrice":0,"authors":[{"name":"Andy","email":"luohui@tapatalk.com","homepage":"https:\/\/github.com\/luohui8891"}],"repositoryUrl":"https:\/\/github.com\/luohui8891\/TapatalkReport","lastUpdated":"2017-06-29 06:36:04","latestVersion":"0.1.2","numDownloads":6260,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"10","numContributors":"1","lastCommitDate":"2017-07-04 07:59:57"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2017-06-19 02:32:06","requires":{"piwik":">=3.0.4-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":130,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/luohui8891\/TapatalkReport\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TapatalkReport\/download\/0.1.0"},{"name":"0.1.1","release":"2017-06-28 07:54:05","requires":{"piwik":">=3.0.4-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":17,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/luohui8891\/TapatalkReport\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TapatalkReport\/download\/0.1.1"},{"name":"0.1.2","release":"2017-06-29 06:36:04","requires":{"piwik":">=3.0.4-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6113,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/luohui8891\/TapatalkReport\/commits\/0.1.2","readmeHtml":{"description":"","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/TapatalkReport\/download\/0.1.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TapatalkReport\/changelog"},"consumer":{"license":null}},{"name":"TasksTimetable","displayName":"Tasks Timetable","owner":"matomo-org","description":"List all maintenance tasks that are scheduled to run. Displays the task names and next execution time in a table.","homepage":"https:\/\/matomo.org","createdDateTime":"2014-01-16 20:14:04","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable","type":"url"}],"isTheme":false,"keywords":["monitoring","tasks","scheduled","timetable"],"basePrice":0,"authors":[{"name":"Megan Liang","email":null,"homepage":null},{"name":"Jay Deshpande","email":null,"homepage":null},{"name":"Matomo","email":"hello@matomo.org","homepage":"http:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable","lastUpdated":"2026-08-24 06:01:17","latestVersion":"6.0.0","numDownloads":219106,"screenshots":["https:\/\/plugins.matomo.org\/TasksTimetable\/images\/6.0.0\/Timetable.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/TasksTimetable.png","previews":[],"activity":{"numCommits":"195","numContributors":"20","lastCommitDate":"2026-10-21 04:25:18"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["development"],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-01-16 20:14:05","requires":{"piwik":">=2.0.4-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":11,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.1.0"},{"name":"0.1.1","release":"2014-01-16 20:24:05","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":122,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.1.1"},{"name":"0.1.2","release":"2014-01-24 01:16:05","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":57,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.1.2"},{"name":"0.1.3","release":"2014-01-29 17:30:05","requires":{"piwik":">=2.0.4-b5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":270,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.1.3"},{"name":"0.1.4","release":"2014-03-13 22:54:04","requires":{"piwik":">=2.0.4-b5"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2748,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.1.4"},{"name":"0.1.5","release":"2015-02-25 02:20:03","requires":{"piwik":">=2.4.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2030,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.1.5"},{"name":"0.2.0","release":"2015-10-21 23:26:03","requires":{"piwik":">=2.15.0-rc4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1139,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.2.0"},{"name":"0.2.1","release":"2016-02-01 22:14:03","requires":{"piwik":">=2.15.0-rc4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.2.1"},{"name":"0.2.2","release":"2016-02-01 22:38:03","requires":{"piwik":">=2.15.0-rc4"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2105,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.2.2"},{"name":"3.0.0","release":"2016-09-13 22:06:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":356,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/3.0.0"},{"name":"0.2.3","release":"2016-10-06 02:12:02","requires":{"piwik":">=2.15.0-rc4,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1287,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/0.2.3"},{"name":"3.0.1","release":"2016-11-01 20:44:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2274,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/3.0.1"},{"name":"3.0.2","release":"2017-07-10 09:10:03","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":10639,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/3.0.2"},{"name":"4.0.0","release":"2020-07-29 04:56:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":388,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TasksTimetable\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:24:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":75,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TasksTimetable\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/4.0.1"},{"name":"4.0.2","release":"2020-11-22 20:04:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":156588,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TasksTimetable\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/4.0.2"},{"name":"5.0.0","release":"2023-05-08 01:24:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5812,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TasksTimetable\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/5.0.0"},{"name":"5.0.1","release":"2024-04-22 07:30:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14367,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TasksTimetable\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/5.0.1"},{"name":"5.0.2","release":"2025-07-07 10:22:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18686,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TasksTimetable\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/5.0.2"},{"name":"6.0.0","release":"2026-08-24 06:01:17","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":148,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TasksTimetable\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TasksTimetable\/commits\/6.0.0","readmeHtml":{"description":"\n\n<p>Plugin to list all scheduled tasks: Name of the tasks and next execution time displayed in a table.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Where can I find the timetable?<\/strong><\/p>\n\n<p>It is located as a menu item \"Scheduled Tasks\" under diagnostics on the settings page.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>6.0.0 - 2026-08-09 Compatibility with Matomo 6.0<\/li>\n<li>5.0.2 - 2025-07-07 Textual changes<\/li>\n<li>5.0.1 Added plugin category for Marketplace<\/li>\n<li>5.0.0 Compatibility with Matomo 5.0<\/li>\n<li>4.0.2 Better unserialise<\/li>\n<li>4.0.1 Compatibility with Matomo 4.0<\/li>\n<li>4.0.0 Compatibility with Matomo 4.0<\/li>\n<li>3.0.2 translation updates<\/li>\n<li>3.0.0 Compatibility with Piwik 3.0<\/li>\n<li>0.2.2 Display time of day in table and renamed column to \"Date in UTC timezone\"<\/li>\n<li>0.2.1 Minor translation updates.<\/li>\n<li>0.2.0 Compatibility w\/ Piwik 2.15.<\/li>\n<li>0.1.0 Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/TasksTimetable\/download\/6.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TasksTimetable\/changelog"},"consumer":{"license":null}},{"name":"TeamBundle","displayName":"Team Bundle","owner":"InnoCraft","description":"Equip your startup or marketing team to make smarter, faster decisions with powerful analytics to drive increased conversion and revenue growth.","homepage":"https:\/\/www.innocraft.com","createdDateTime":"2026-06-02 21:42:19","donate":{},"support":[],"isTheme":false,"keywords":["optimization","conversion","cro","sales","content","bundle","revenue","premium","support"],"basePrice":3300,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-06-02 21:42:19","latestVersion":"1.0.0","numDownloads":null,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/TeamBundle.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":true,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/TeamBundle","variations":[{"product_variation_id":130525,"price":"275","prettyPrice":"275EUR","currency":"EUR","period":"month","name":"Up to 4 users monthly","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130523&variation_id=130525&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130523&variation_id=130525","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-teambundle\/?attribute_type=Up+to+4+users+monthly&add-to-cart=130523&variation_id=130525&aelia_cs_currency=EUR"},{"product_variation_id":130525,"price":"330","prettyPrice":"USD330","currency":"USD","period":"month","name":"Up to 4 users monthly","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130523&variation_id=130525&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130523&variation_id=130525","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-teambundle\/?attribute_type=Up+to+4+users+monthly&add-to-cart=130523&variation_id=130525&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130524,"price":"2750","prettyPrice":"2750EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130523&variation_id=130524&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130523&variation_id=130524","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-teambundle\/?attribute_type=1+to+4+users&add-to-cart=130523&variation_id=130524&aelia_cs_currency=EUR"},{"product_variation_id":130524,"price":"3300","prettyPrice":"USD3300","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130523&variation_id=130524&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=130523&variation_id=130524","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-teambundle\/?attribute_type=1+to+4+users&add-to-cart=130523&variation_id=130524&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-teambundle\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":null,"ratingCount":0,"reviewCount":0}},"bundle":{"plugins":[{"name":"MediaAnalytics","displayName":"Media Analytics"},{"name":"Funnels","displayName":"Funnels"},{"name":"UsersFlow","displayName":"Users Flow"},{"name":"FormAnalytics","displayName":"Form Analytics"},{"name":"SearchEngineKeywordsPerformance","displayName":"Search Engine Keywords Performance"},{"name":"HeatmapSessionRecording","displayName":"Heatmap & Session Recording"},{"name":"WooCommerceAnalytics","displayName":"WooCommerce Analytics"},{"name":"CustomReports","displayName":"Custom Reports"},{"name":"SEOWebVitals","displayName":"SEO Web Vitals"}]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-06-02 21:42:19","requires":{"piwik":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":""},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Every interaction on your website or app generates data which tells you how users navigate, engage, and convert.  But when time and resources are tight, valuable insights like missed clicks, early exits, and important clues get buried fast. And when you don\u2019t have the full picture, it\u2019s hard to make the right decision.<\/p>\n\n<p>With the right tools, your team can turn raw data into actionable insights that unlock measurable outcomes. The Matomo Team Bundle is perfect for small teams that are ready to go beyond basic metrics: it adds advanced reporting without the complexity or cost of enterprise-scale tools.<\/p>\n\n<p>\u00a0<\/p>\n\n<div style=\"text-align:left;\">\n  <h3>What\u2019s included in the Team Bundle?<\/h3>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;margin:0 0 64px 0;\">\n    <table class=\"feature-table\" style=\"width:100%;border-collapse:collapse;font-family:Arial, sans-serif;\">\n        <tbody>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/heatmaps.png\" alt=\"heatmaps.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Heatmaps &amp; Session Recording\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Truly understand your visitors by seeing where they click, hover, type and scroll. Replay their actions in a video and ultimately increase conversions.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/funnels.png\" alt=\"funnels.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Funnels\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Identify and understand where your visitors drop off to increase your conversions, sales and revenue with your existing traffic.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/custom-reports.png\" alt=\"custom-reports.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Custom Reports\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Bring essential metrics together by creating custom reports that reflect your specific measurement strategy, and align with your business goals.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/search-engine-keywords.png\" alt=\"search-engine-keywords.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Search Engine Keywords\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    All keywords searched by your users on search engines are now visible into your Referrers reports. The ultimate solution to 'Keyword not defined'.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/media-analytics.png\" alt=\"media-analytics.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Media Analytics\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Grow your business with advanced video &amp; audio analytics. Get powerful insights into how your audience watches your videos and listens to your audio.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/form-analytics.png\" alt=\"form-analytics.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Form Analytics\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Increase conversions on your online forms and lose less visitors by learning everything about your users behaviour and their pain points on your forms.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/users-flow.png\" alt=\"users-flow.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Users Flow\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Users Flow is a visual representation of the most popular paths your users take through your website &amp; app which lets you understand your users needs.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/woocommerce.png\" alt=\"woocommerce.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    WooCommerce\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Drive more revenue, improve your sales funnel, and get accurate insights with our Matomo Analytics Ecommerce tracking integration for your WooCommerce.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/multi-channel.png\" alt=\"seo-web-vitals.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    SEO Web Vitals\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Monitor Core Web Vitals and uncover performance issues that impact search rankings, user experience, and conversions.\n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            <\/td>\n            <td style=\"width:50%;border:1px solid #e0e0e0;padding:20px;vertical-align:top;\">\n                <div class=\"feature\">\n                    <table style=\"width:100%;border-collapse:collapse;\">\n                        <tbody>\n                        <tr>\n                            <td class=\"icon\" style=\"width:40px;vertical-align:middle;text-align:center;padding-right:12px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/support.png\" alt=\"support.png\" width=\"20\" \/>\n                            <\/td>\n                            <td style=\"vertical-align:top;\">\n                                <div class=\"title\" style=\"font-size:14px;line-height:20px;font-weight:600;color:#f26c21;\">\n                                    Support\n                                <\/div>\n                                <div class=\"desc\" style=\"color:#666;font-size:14px;line-height:1.4;\">\n                                    Get dependable technical support while maintaining full control over your implementation and daily analytics operations.                                \n                                <\/div>\n                            <\/td>\n                        <\/tr>\n                        <\/tbody>\n                    <\/table>\n                <\/div>            \n            <\/td>\n        <\/tr>\n        <\/tbody>\n    <\/table>\n<\/div>\n\n<div class=\"readme-support main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:75%;vertical-align:top;padding-right:20px;\">\n                  <h3>Team Support Services<\/h3>\n                  <p>Get dependable technical support while maintaining full control over your implementation and daily analytics operations.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Email-based technical support with a 12-hour response time (24\/5 coverage).<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img alt=\"tick-blue.png\" src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Direct guidance for implementation, configuration, and troubleshooting questions.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:25%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:45px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/support.png\" alt=\"support.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-package main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:22px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/package.png\" alt=\"Plugin package\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>One click to get all the insights<\/h3>\n                  <p>Make confident optimisation decisions without switching between disconnected tools. See what\u2019s happening on your site, understand why it\u2019s happening, and know exactly where to act to\nimprove conversions.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Install and activate a set of advanced plugins in a single, integrated package.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Turn scattered datapoints into insights that improve what matters: sign-ups, purchases,\ncustomer retention and revenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cPrivacy is important, but we also need to move at the speed of a startup, Matomo offers a full-feature web analytics solution that we can get up and running quickly\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/yorba.png\" alt=\"yorba.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;\"><strong>Yorba<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-heatmaps main-div-readme\" style=\"height:auto;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Turn visitor journeys into actionable insights<\/h3>\n                  <p>Reveal the moments that shape decisions, from hesitation to conversion. Use visual reports instead of surface-level metrics to quickly understand user behaviour and what drives\nbusiness results.<\/p>\n                  <p>Identify how visitors navigate, where they get stuck, and which journeys lead to meaningful outcomes, so you can focus on changes that move the needle.<\/p>\n                  <p>Enable your team to answer questions that drive real change:<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/heatmaps-point.png\" alt=\"heatmaps-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Heatmaps &amp; Session Recording<\/strong> show which page\nelements drive clicks and conversions.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/funnel-point.png\" alt=\"funnel-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Funnels<\/strong> reveal where visitors get stuck or exit before\ncompleting a key action.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:130px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/users-flow-point.png\" alt=\"users-flow-point.png\" width=\"232\" \/><\/td><td style=\"vertical-align:middle;\"><strong>Users Flow<\/strong> highlights the paths users take before\nconverting.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n                  <p>Heatmaps and funnels are non-negotiable tools for conversion rate optimisation because they replace assumptions with context and evidence.<\/p>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:32px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/ab-testing2.png\" alt=\"ab-testing2.png\" width=\"180\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme chat-bubble-border\" style=\"height:auto;margin:64px 0;padding:20px;background-color:#e6f2ff;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container\" style=\"margin:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cWe initially thought a banner call-to-action at the bottom of a long landing page was ineffective. However, Matomo\u2019s detailed tracking showed that users were scrolling down and interacting\nwith the banner, which made it much easier for us to refine our design.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/stockholm-university.png\" alt=\"stockholm-university.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;\"><strong>Stockholm University<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-keywords-performance main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Improve website performance for better SEO and conversions<\/h3>\n                  <p><strong>SEO Web Vitals<\/strong> shows how page speed, responsiveness, and visual stability impact user experience, search visibility, and conversions. Analyse Core Web Vitals across your site and uncover the performance issues that affect engagement and business outcomes.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Monitor Core Web Vitals metrics like Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS).<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Identify technical performance issues that negatively impact user experience, engagement, and search rankings.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Prioritise optimisation efforts based on real-world performance trends and their impact on visitor behaviour and business outcomes.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/keywords-performance.png\" alt=\"keywords-performance.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-custom-reports main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:32px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/custom-reports.png\" alt=\"custom-reports.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>Design reports for your conversion goals<\/h3>\n                  <p>Your teams do not need more reports, they need the right reports.<\/p>\n                  <p>Custom Reports enable teams to cut through the noise by creating views that focus on the key data and actionable insights required for accelerated decision-making.<\/p>\n                  <p>Turn reporting into a tool for action, not observation.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Build reports that span the entire visitor experience, from pages to forms, checkout,\nand content consumption.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Choose from over 250 metrics and dimensions for advanced behavioural analysis.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Define a report filter to show the data only for a subset of your visitors and users.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cMatomo is user-friendly and provides all the features we need to understand our visitors and optimise our site\u2019s performance, while effortlessly ensuring compliance with EU privacy laws.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/mdft-academy.png\" alt=\"mdft-academy.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;\"><strong>MDFT Academy<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-keywords-performance main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Boost your SEO for maximum return on investment<\/h3>\n                  <p><strong>Search Engine Keywords Performance<\/strong> shows how search visibility, user intent, and technical accessibility influence conversions, not just traffic. Analyse how users from\nGoogle, Bing, and Yahoo find your site and which keywords lead to meaningful actions.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Identify which keyword segments contribute to valuable user interactions across search\nresults.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Remove technical barriers that prevent search engines from discovering and indexing\nhigh-value pages.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Prioritise optimisation efforts based on keyword performance trends and business\nimpact.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:30%;vertical-align:top;\">\n                  <div style=\"text-align:center;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/keywords-performance.png\" alt=\"keywords-performance.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"readme-media-forms main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:30%;vertical-align:top;padding-right:20px;\">\n                  <div style=\"text-align:center;padding-top:22px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/package.png\" alt=\"Plugin package\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:70%;vertical-align:top;\">\n                  <h3>Optimise media &amp; forms to drive conversions<\/h3>\n                  <p>Media is becoming increasingly important in today\u2019s environment, but do you know which media is making the difference for your business? <b>Media Analytics<\/b> and <b>Form Analytics<\/b> surface how users interact with videos, audio, and forms across key conversion paths so your teams can focus on making content that improves engagement.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\"><b>Media Analytics<\/b> drives improvements in media content and placement to increase engagement and support conversion paths.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Analyse play, pause, completion rates, and exits to reveal how users engage with on-page video and audio.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\"><b>Form Analytics<\/b> drives improvements in form structure to increase qualified leads and reduce wasted acquisition spend on non-converting traffic.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Understand how users move through form fields, which fields get completed, and where users abandon the form.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px;margin-top:-64px;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#FFFFFF;margin:20px;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cWe made specific adjustments based on Form Analytics, resulting in 3 times the leads in just a couple of days\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/concrete-cms.png\" alt=\"concrete-cms.png\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;\"><strong>Concrete CMS<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-ecommerce main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <table style=\"width:100%;border-collapse:collapse;\">\n      <tbody>\n          <tr>\n              <td class=\"left-div-readme\" style=\"width:70%;vertical-align:top;padding-right:20px;\">\n                  <h3>Ecommerce analytics to optimise revenue<\/h3>\n                  <p>Get a comprehensive snapshot of your store's performance and key metrics such as order counts, revenue per visit, and the average conversion rate. Uncover where customers linger, leave or move from product discovery to checkout.<\/p>\n                  <p><strong>WooCommerce Analytics<\/strong> gives teams practical direction without adding operational overhead.<\/p>\n                  <ul class=\"has-icons\" style=\"list-style:none;padding-left:0;margin:0;\">\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Get more value from the traffic you already have.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Improve purchase flow without increasing ad spend.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Concentrate optimisation on actions that contribute to revenue.<\/td><\/tr><\/tbody><\/table><\/li>\n                      <li style=\"list-style:none;margin:0 0 6px 0;padding:0;\"><table style=\"width:100%;border-collapse:collapse;\"><tbody><tr><td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\"><img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/tick-blue.png\" alt=\"tick-blue.png\" width=\"24\" \/><\/td><td style=\"vertical-align:middle;\">Understand how products, pages, and checkout steps influence completed orders or cart abandonment.<\/td><\/tr><\/tbody><\/table><\/li>\n                  <\/ul>\n              <\/td>\n              <td class=\"right-div-readme\" style=\"width:50%;vertical-align:top;\">\n                  <div style=\"text-align:center;padding-top:20px;\">\n                      <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/woocommerce-analytics.png\" alt=\"woocommerce-analytics.png\" width=\"220\" \/>\n                  <\/div>\n              <\/td>\n          <\/tr>\n      <\/tbody>\n  <\/table>\n<\/div>\n\n<div class=\"main-div-readme\" style=\"height:auto;margin:64px 0;\">\n  <div class=\"full-div-readme\">\n      <div class=\"quote-container chat-bubble-border\" style=\"background-color:#e6f2ff;padding:20px;\">\n          <blockquote style=\"margin:20px;padding:20px 16%;text-align:center;border-left:none;color:#202329;font-size:24px;font-style:normal;font-weight:400;line-height:100%;\">\n              \u201cMatomo has improved the customer experience across a number of metrics, which has led to more inquiries and better business performance.\u201d\n              <div class=\"quote-author\" style=\"margin-top:16px;\">\n                  <table style=\"margin:0 auto;border-collapse:collapse;width:auto;\">\n                      <tbody>\n                          <tr>\n                              <td style=\"width:36px;vertical-align:middle;text-align:center;padding-right:8px;\">\n                                  <img src=\"https:\/\/plugins.matomo.org\/img\/Bundles\/icons\/property-investments-uk-white-background.jpg\" alt=\"Property Investments\" width=\"28\" \/>\n                              <\/td>\n                              <td style=\"vertical-align:middle;text-align:center;\">\n                                  <p style=\"line-height:28px;margin:0;padding:0;font-family:Nunito, sans-serif;\"><strong>Property Investments UK<\/strong><\/p>\n                              <\/td>\n                          <\/tr>\n                      <\/tbody>\n                  <\/table>\n              <\/div>\n          <\/blockquote>\n      <\/div>\n  <\/div>\n<\/div>\n\n<div class=\"readme-business main-div-readme\" style=\"height:auto;background-color:#e6f2ff;margin:64px 0;padding:20px 40px;\">\n    <div style=\"text-align:center;\">\n        <h3>Ready to run analytics like a pro?<\/h3>\n        <p style=\"text-align:center;\">Activate the Matomo Team Bundle and equip your team with the tools to make smarter and faster decisions to drive increased conversion and revenue growth.<\/p>\n    <\/div>\n<\/div>\n\n","faq":"<h3>Can I trial the features included in the Team Bundle?<\/h3>\n\n<p>Yes. The Team Bundle has a 30 day free trial. Alternatively, you can trial all features by signing up for a free Matomo Cloud trial which includes all features in the Team Bundle.<\/p>\n\n<h3>Can I buy individual plugins?<\/h3>\n\n<p>Yes. You can extend the Team Bundle by trialling or purchasing individual plugins that are not included in the bundle, directly from within the Matomo platform.<\/p>\n\n<h3>Is support included in the Team bundle?<\/h3>\n\n<p>Yes. The Team Bundle includes email support, available 24 hours per day, five days per week.<\/p>","documentation":"","changelog":""},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/TeamBundle\/changelog"},"isNewBundle":false,"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"TopPagesByActions","displayName":"Top Pages By Actions","owner":"chanzler","description":"Live widget that displays the top pages by actions in a 20 minute timespan. Auto-refresh interval can be configured.","homepage":"http:\/\/github.com\/chanzler\/piwik-top-pages-by-actions","createdDateTime":"2014-11-03 15:20:05","donate":{"paypal":"paypal@familiekanzler.de","bitcoin":null},"support":[],"isTheme":false,"keywords":["live","widget","pages","action"],"basePrice":0,"authors":[{"name":"Frank Kanzler","email":"frank@intersolve.de","homepage":"http:\/\/www.intersolve.de"}],"repositoryUrl":"https:\/\/github.com\/chanzler\/piwik-top-pages-by-actions","lastUpdated":"2014-11-11 10:32:03","latestVersion":"0.1.3","numDownloads":9343,"screenshots":["https:\/\/plugins.matomo.org\/TopPagesByActions\/images\/0.1.3\/toppagesbyactions.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"4","numContributors":"1","lastCommitDate":"2018-04-06 09:35:21"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.1","release":"2014-11-03 15:20:05","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":122,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-top-pages-by-actions\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TopPagesByActions\/download\/0.1.1"},{"name":"0.1.2","release":"2014-11-08 20:26:03","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":67,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-top-pages-by-actions\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TopPagesByActions\/download\/0.1.2"},{"name":"0.1.3","release":"2014-11-11 10:32:03","requires":{"piwik":">=2.0.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9154,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/chanzler\/piwik-top-pages-by-actions\/commits\/0.1.3","readmeHtml":{"description":"\n\n<p>This is a plugin for the Open Source Web Analytics platform Matomo (Piwik). If enabled, it will add a new widget that you can add to your dashboard.<\/p>\n\n<p>The widget will show the top performing pages of a site that auto-refreshes every x seconds. It shows the number of actions and the title of the page. It is auto-sorting the entries.<\/p>\n\n<p><strong>This plugin should run fine with installations with up to 100.000 page impressions per day. If you run a very large piwik installation and have performance issues with this plugin, please contact me - there is a solution for this. I have it up and running in an installation with more than 10 million visits per day.<\/strong><\/p>\n\n<p>(Tested with piwik 2.8.3, but supposed to run with older versions)<\/p>\n\n","faq":"<h3>Features<\/h3>\n\n<p>Here is a list of features that are included in this project:<\/p>\n\n<ul>\n<li>Live widget (\"Bestperforming pages\") with key performance indices<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<p><em>Refresh interval<\/em>: Defines how often the widgets will be updated. Every 30 seconds is a good value to choose.<\/p>\n\n<p><em>Number of entries<\/em>: Defines the number of entries to show in the widget.<\/p>","documentation":"","changelog":"<h3>0.1.3 Bugfix Release<\/h3>\n\n<ul>\n<li>fixed english translation of table headers<\/li>\n<\/ul>\n\n<h3>0.1.2 Bugfix Release<\/h3>\n\n<ul>\n<li>removed javascript console log<\/li>\n<li>fixed bug with timezones that match \/^UTC[+-]*\/<\/li>\n<\/ul>\n\n<h3>0.1.1 Bugfix Release<\/h3>\n\n<ul>\n<li>fixed css bug in internet explorer<\/li>\n<\/ul>\n\n<h3>0.1.0 First Beta<\/h3>\n\n<ul>\n<li>initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/TopPagesByActions\/download\/0.1.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TopPagesByActions\/changelog"},"consumer":{"license":null}},{"name":"TrackerDomain","displayName":"Tracker Domain","owner":"Digitalist-Open-Cloud","description":"Set Domain for js trackers, useful when your UI is on another domain.","homepage":"https:\/\/digitalist.cloud","createdDateTime":"2021-11-18 16:30:04","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain","type":"url"},{"name":"Email","key":"email","value":"cloud@digitalist.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain","type":"url"}],"isTheme":false,"keywords":["tracking"],"basePrice":0,"authors":[{"name":"Digitalist Open Cloud","email":"cloud@digitalist.com","homepage":"https:\/\/digitalist.cloud"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain","lastUpdated":"2026-06-11 20:06:03","latestVersion":"5.0.6","numDownloads":36938,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/TrackerDomain\/images\/5.0.6\/_cover.png","previews":[],"activity":{"numCommits":"19","numContributors":"2","lastCommitDate":"2026-06-11 19:01:59"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2021-11-18 16:30:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.1.0"},{"name":"0.2.0","release":"2021-11-18 22:02:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.2.0"},{"name":"0.2.1","release":"2021-11-19 10:08:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":912,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.2.1"},{"name":"0.2.2","release":"2022-01-19 06:38:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":492,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.2.2"},{"name":"0.2.3","release":"2022-04-13 05:44:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":984,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.2.3"},{"name":"0.2.4","release":"2022-08-29 12:40:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.2.4"},{"name":"0.2.5","release":"2022-08-29 21:14:03","requires":{"matomo":">=4.11.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.2.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.2.5"},{"name":"0.2.6","release":"2022-08-30 05:40:02","requires":{"matomo":">=4.11.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":880,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.2.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.2.6"},{"name":"0.3.0","release":"2022-11-17 22:08:03","requires":{"matomo":">=4.1.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.3.0"},{"name":"0.3.1","release":"2022-11-17 22:12:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":41,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.3.1"},{"name":"0.3.2","release":"2022-11-19 12:04:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":902,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.3.2"},{"name":"0.3.3","release":"2023-04-11 11:42:03","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8947,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/0.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/0.3.3"},{"name":"5.0.0","release":"2023-05-17 10:08:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6331,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/5.0.0"},{"name":"5.0.1","release":"2024-08-30 14:04:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":373,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/5.0.1"},{"name":"5.0.2","release":"2024-10-17 20:04:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":58,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/5.0.2"},{"name":"5.0.3","release":"2024-10-21 07:46:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":50,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/5.0.3"},{"name":"5.0.4","release":"2024-10-24 14:24:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3277,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/5.0.4"},{"name":"5.0.5","release":"2026-02-02 11:18:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3250,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/5.0.5"},{"name":"5.0.6","release":"2026-06-11 20:06:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10415,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-TrackerDomain\/commits\/5.0.6","readmeHtml":{"description":"\n\n<p>This  plugin could be useful if you are running your UI part of Matomo\non another domain then you are tracking from.\nThis plugin replaces the matomo url from your installation to a custom domain.\nThe plugin changes both Matomo core tracking script and the TagManager script.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>See readme<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Description<\/h2>\n\n<p>This  plugin could be useful if you are running your UI part of Matomo\non another domain then you are tracking from.\nThis plugin replaces the matomo url from your installation to a custom domain.\nThe plugin changes both Matomo core tracking script and the TagManager script.<\/p>\n\n<h2>Use<\/h2>\n\n<p>To use this:\nAdd to config.ini.php or common.ini.php:<\/p>\n\n<pre><code>[TrackerDomain]\nurl = \"my.domain\"\n<\/code><\/pre>\n\n<p>Or add the domain in <code>General settings -&gt; TrackerDomain<\/code>.<\/p>\n\n<p>This would give you something like this:<\/p>\n\n<pre><code>&lt;!-- Matomo --&gt;\n&lt;script&gt;\n  var _paq = window._paq = window._paq || [];\n  \/* tracker methods like \"setCustomDimension\" should be called before \"trackPageView\" *\/\n  _paq.push(['trackPageView']);\n  _paq.push(['enableLinkTracking']);\n  (function() {\n    var u=\"\/\/my.domain\/\";\n    _paq.push(['setTrackerUrl', u+'matomo.php']);\n    _paq.push(['setSiteId', '1']);\n    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];\n    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);\n  })();\n&lt;\/script&gt;\n&lt;!-- End Matomo Code --&gt;\n\n<\/code><\/pre>\n\n<p>The plugin changes the variable <code>u<\/code>.<\/p>\n\n<p>A global javascript variable is added <code>piwik.trackerDomain<\/code>, that could be used by other plugins.<\/p>\n\n<h2>Credits<\/h2>\n\n<p>This plugin is more or less a copy paste of answers from https:\/\/github.com\/Findus23 (Matomo)\nand https:\/\/github.com\/tsteur (Matomo Tag Manager). Sharing is caring. \u2665<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[5.0.6] - 2026-06-11<\/h2>\n\n<h3>Fixed<\/h3>\n\n<p>The Tag Manager \"Matomo Configuration\" variable now defaults its Matomo URL to the configured tracker domain (overriding the core variable via the <code>TagManager.filterVariables<\/code> event), so newly created sites\/containers use the tracker domain instead of the dashboard URL.<\/p>\n\n<h3>Added<\/h3>\n\n<p>Expose <code>piwik.dashboardUrl<\/code> (the real Matomo URL) for other plugins (e.g. UserFeedback) to reach the Matomo API when a tracker domain is in use.<\/p>\n\n<h2>[5.0.5] - 2026-02-02<\/h2>\n\n<h3>Added<\/h3>\n\n<p>Also change image tracker domain.<\/p>\n\n<h2>[5.0.2] - 2024-09-13<\/h2>\n\n<h3>Added<\/h3>\n\n<p>License info, author.<\/p>\n\n<h2>[5.0.1] - 2024-08-30<\/h2>\n\n<h3>Added<\/h3>\n\n<p>Cover for Marketplace.<\/p>"},"download":"\/api\/2.0\/plugins\/TrackerDomain\/download\/5.0.6"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TrackerDomain\/changelog"},"consumer":{"license":null}},{"name":"TrackerJsCdnSync","displayName":"Tracker Js Cdn Sync","owner":"SARAVANA1501","description":"Sync your tracker javascript files to CDN.","homepage":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync","createdDateTime":"2020-06-15 07:22:03","donate":{},"support":[{"name":"Email","key":"email","value":"saravananbscitm@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync","type":"url"}],"isTheme":false,"keywords":["TrackerJs Cdn Sync","cdn","trackerjs","matomojs","TagManager"],"basePrice":0,"authors":[{"name":"Saravanakumar","email":"saravananbscitm@gmail.com","homepage":"https:\/\/saravana1501.wordpress.com\/"}],"repositoryUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync","lastUpdated":"2023-08-06 14:44:02","latestVersion":"0.0.13","numDownloads":6100,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"52","numContributors":"4","lastCommitDate":"2023-08-06 14:43:35"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.0.2","release":"2020-06-15 07:22:03","requires":{"piwik":">=2.9.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.2"},{"name":"0.0.3","release":"2020-06-15 08:26:04","requires":{"piwik":">=2.9.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.3"},{"name":"0.0.4","release":"2020-06-15 08:42:04","requires":{"piwik":">=2.9.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.4"},{"name":"0.0.5","release":"2020-06-15 08:54:04","requires":{"piwik":">=2.9.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.5"},{"name":"0.0.6-b1","release":"2020-06-15 09:06:04","requires":{"piwik":">=2.9.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.6-b1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.6-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.6-b1"},{"name":"0.0.6","release":"2020-06-16 04:50:04","requires":{"piwik":">=2.9.0,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":99,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.6"},{"name":"0.0.7-b2","release":"2020-07-04 09:48:03","requires":{"piwik":">=2.9.0,<4.0.0-b2"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.7-b2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.7-b2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.7-b2"},{"name":"0.0.7-b3","release":"2020-07-04 10:00:03","requires":{"piwik":">=2.9.0,<4.0.0-b2"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.7-b3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.7-b3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.7-b3"},{"name":"0.0.7","release":"2020-07-05 04:18:03","requires":{"piwik":">=2.9.0,<4.0.0-b2"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":494,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.7"},{"name":"0.0.7-2","release":"2020-09-26 08:16:03","requires":{"piwik":">=2.9.0,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.7-2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.7-2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.7-2"},{"name":"0.0.7-3","release":"2020-09-26 13:46:03","requires":{"piwik":">=2.9.0,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.7-3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.7-3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.7-3"},{"name":"0.0.8","release":"2020-09-26 14:08:03","requires":{"piwik":">=2.9.0,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":118,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.8"},{"name":"0.0.9","release":"2020-11-09 13:42:03","requires":{"piwik":">=2.9.0,<4.0.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":59,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.9"},{"name":"0.0.11","release":"2020-12-12 14:22:04","requires":{"piwik":">=2.9.0,<4.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3290,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.11\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.11"},{"name":"0.0.13","release":"2023-08-06 14:44:02","requires":{"piwik":">=2.9.0,<4.15.1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1989,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/0.0.13\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/SARAVANA1501\/plugin-TrackerJsCdnSync\/commits\/0.0.13","readmeHtml":{"description":"\n\n<p>Sync your tracker javascript files (tag-manager container files) to your favourite CDN.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Description<\/h2>\n\n<p>Sync your tracker javascript files (tag-manager container files) to your favourite CDN.<\/p>\n\n<h2>Supported Static file change events<\/h2>\n\n<pre><code>Tag-Manager container Create\nTag-Manager container Delete\n<\/code><\/pre>\n\n<h2>Supported CDN<\/h2>\n\n<p>AWS S3<\/p>\n\n<h2>Configure Aws S3 CDN with IAM Key and Secret<\/h2>\n\n<pre><code>[TrackerJsCdnSync]\ntype = \"aws-s3\"\nauth-type = \"IAM-User\"\nbucket = \"&lt;Replace with your bucket&gt;\"\nversion = \"latest\"\nregion = \"&lt;Replace with your region&gt;\"\nkey = \"&lt;Replace with your key&gt;\"\nsecret = \"&lt;Replace with your secret&gt;\"\n<\/code><\/pre>\n\n<h2>Configure Aws S3 CDN with Role based access<\/h2>\n\n<pre><code>[TrackerJsCdnSync]\ntype = \"aws-s3\"\nauth-type = \"IAM-Role\"\nbucket = \"&lt;Replace with your bucket&gt;\"\nversion = \"latest\"\nregion = \"&lt;Replace with your region&gt;\"\n<\/code><\/pre>\n\n<h2>Configure CDN Url for embed code<\/h2>\n\n<p>It will update the CDN Url in tag-manager's embed code.<\/p>\n\n<pre><code>[TrackerJsCdnSync]\ncdnUrl = \"http:\/\/cdn.example.com\/matomo-cdn\" \n<\/code><\/pre>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Here goes the changelog text.<\/p>"},"download":"\/api\/2.0\/plugins\/TrackerJsCdnSync\/download\/0.0.13"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TrackerJsCdnSync\/changelog"},"consumer":{"license":null}},{"name":"TrackingCLI","displayName":"Tracking CLI","owner":"plesk","description":"Import tracking data to Matomo via CLI and stdin.","homepage":"https:\/\/github.com\/plesk\/matomo-tracking-cli","createdDateTime":"2019-04-26 08:04:04","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/github.com\/plesk\/matomo-tracking-cli\/blob\/master\/README.md","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/plesk\/matomo-tracking-cli\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/plesk\/matomo-tracking-cli","type":"url"}],"isTheme":false,"keywords":["import","tracking","cli","stdin"],"basePrice":0,"authors":[{"name":"Plesk","email":null,"homepage":"https:\/\/www.plesk.com"}],"repositoryUrl":"https:\/\/github.com\/plesk\/matomo-tracking-cli","lastUpdated":"2019-12-27 15:22:03","latestVersion":"1.2.0","numDownloads":3925,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"17","numContributors":"1","lastCommitDate":"2019-12-27 15:21:13"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2019-04-26 08:04:05","requires":{"piwik":">=3.9.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":300,"license":{"name":"Apache-2.0","url":"https:\/\/plugins.matomo.org\/TrackingCLI\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/matomo-tracking-cli\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingCLI\/download\/1.0.0"},{"name":"1.0.1","release":"2019-05-28 07:30:06","requires":{"piwik":">=3.9.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":596,"license":{"name":"Apache-2.0","url":"https:\/\/plugins.matomo.org\/TrackingCLI\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/matomo-tracking-cli\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingCLI\/download\/1.0.1"},{"name":"1.1.0","release":"2019-10-23 07:32:04","requires":{"piwik":">=3.9.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":310,"license":{"name":"Apache-2.0","url":"https:\/\/plugins.matomo.org\/TrackingCLI\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/matomo-tracking-cli\/commits\/1.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingCLI\/download\/1.1.0"},{"name":"1.2.0","release":"2019-12-27 15:22:03","requires":{"piwik":">=3.9.1-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2719,"license":{"name":"Apache-2.0","url":"https:\/\/plugins.matomo.org\/TrackingCLI\/1.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/plesk\/matomo-tracking-cli\/commits\/1.2.0","readmeHtml":{"description":"\n\n<p>Import tracking data to Matomo via CLI and stdin.<\/p>\n\n<h3>Interface<\/h3>\n\n<pre><code>.\/console help trackingcli:import\n<\/code><\/pre>\n\n<pre><code>Usage:\n trackingcli:import [-s|--idsite=\"...\"] [-c|--columns=\"...\"] [-d|--delimeter[=\"...\"]] [-z|--batchsize[=\"...\"]] [-e|--fail-no-data] [inputfile]\n\nArguments:\n inputfile             Path to input file or '-' for stdin (default: \"-\")\n\nOptions:\n --idsite (-s)         Matomo site ID\n --columns (-c)        Columns map \n                           Format: matomoApiArgumentName1|matomoApiArgumentName2|...\n                           Example: url|action_name|ua\n                           See https:\/\/developer.matomo.org\/api-reference\/tracking-api for details\n --delimeter (-d)      Columns delimeter\n                           Format: s - character, \\digits - the character with the given decimal code\n                           Example: |\n                           Example: \\0 (default: \"\\\\29\")\n --batchsize (-z)      Batch size when importing (default: 100)\n --fail-no-data (-e)   Fail if no rows imported\n --help (-h)           Display this help message\n --quiet (-q)          Do not output any message\n --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\n --version (-V)        Display this application version\n --ansi                Force ANSI output\n --no-ansi             Disable ANSI output\n --xhprof              Enable profiling with XHProf\n<\/code><\/pre>\n\n<h3>Example<\/h3>\n\n<p>data.txt:<\/p>\n\n<pre><code>2019-04-20 05:44:00|Page title 1|http:\/\/test.com#1|Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/65.0.3325.146 Safari\/537.36\n2019-04-20 05:44:00|Page title 2|http:\/\/test.com\/foo\/bar|Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/65.0.3325.146 Safari\/537.36\n2019-04-20 05:44:00|Page title 3|http:\/\/test.com\/test3#3|Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/65.0.3325.146 Safari\/537.36\n<\/code><\/pre>\n\n<p>import:<\/p>\n\n<pre><code>.\/console -vvv trackingcli:import -s1 -c'cdt|action_name|url|ua' -d'|' -z2 &lt; data.txt\nSuccess\nRequests imported: 3\nMemory peak usage: 23068672\n<\/code><\/pre>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>1.2.0<\/h2>\n\n<p>'fail-no-data' option was added to fail when no rows imported<\/p>\n\n<h2>1.1.0<\/h2>\n\n<p>The output of imported rows was moved from very verbose log level to the debug log level<\/p>\n\n<h2>1.0.1<\/h2>\n\n<ul>\n<li>BUGFIX The import is failed if null ASCII delimeter is used<\/li>\n<li>BUGFIX Empty input lines are not ignored<\/li>\n<li>MINOR Changelog was added<\/li>\n<\/ul>\n\n<h2>1.0.0<\/h2>\n\n<p>Initial version<\/p>"},"download":"\/api\/2.0\/plugins\/TrackingCLI\/download\/1.2.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TrackingCLI\/changelog"},"consumer":{"license":null}},{"name":"TrackingCodeCustomizer","displayName":"Tracking Code Customizer","owner":"jbrule","description":"Allows Matomo admininstrators to customize the tracking code that is autogenerated for users. This is useful for directing requests to the correct ser.","homepage":"https:\/\/github.com\/jbrule\/piwikplugin-TrackingCodeCustomizer","createdDateTime":"2015-04-20 16:28:03","donate":{},"support":[],"isTheme":false,"keywords":["tracking","javascript tracking","customize tracking","customise tracking"],"basePrice":0,"authors":[{"name":"Josh Brule","email":null,"homepage":"https:\/\/github.com\/jbrule\/"}],"repositoryUrl":"https:\/\/github.com\/jbrule\/piwikplugin-TrackingCodeCustomizer","lastUpdated":"2023-11-24 04:36:03","latestVersion":"5.0.0","numDownloads":26384,"screenshots":["https:\/\/plugins.matomo.org\/TrackingCodeCustomizer\/images\/5.0.0\/Plugin_Settings.png","https:\/\/plugins.matomo.org\/TrackingCodeCustomizer\/images\/5.0.0\/Tracking_Code.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"9","numContributors":"2","lastCommitDate":"2023-11-24 04:35:27"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2015-04-20 16:28:03","requires":{"piwik":">=v2.9.0,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-TrackingCodeCustomizer\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingCodeCustomizer\/download\/0.1.0"},{"name":"0.1.1","release":"2015-04-20 16:30:04","requires":{"piwik":">=v2.9.0,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1363,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-TrackingCodeCustomizer\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingCodeCustomizer\/download\/0.1.1"},{"name":"0.1.2","release":"2015-11-20 19:16:09","requires":{"piwik":">=v2.12.0,<3.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4545,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-TrackingCodeCustomizer\/commits\/0.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingCodeCustomizer\/download\/0.1.2"},{"name":"3.0.0","release":"2018-01-19 22:16:04","requires":{"piwik":">=3.0.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5815,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingCodeCustomizer\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-TrackingCodeCustomizer\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingCodeCustomizer\/download\/3.0.0"},{"name":"4.0.0","release":"2020-09-22 15:46:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6773,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingCodeCustomizer\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-TrackingCodeCustomizer\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingCodeCustomizer\/download\/4.0.0"},{"name":"5.0.0","release":"2023-11-24 04:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":7879,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingCodeCustomizer\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/jbrule\/piwikplugin-TrackingCodeCustomizer\/commits\/5.0.0","readmeHtml":{"description":"\n\n<p>Allows Matomo admininstrators to customize the tracking code that is autogenerated for users. This is useful for directing requests to the correct servers in a multi-server setup, include additional parameters in default tracking, or to perform conditional checks before initiating a tracking call.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>5.0.0 Updated for compatibility with Piwik 5.0+.<\/li>\n<li>4.0.0 Updated for compatibility with Piwik 4.0+. Removed Piwik branding. Changed to new 'Tracker' event handler namespace.<\/li>\n<li>3.0.0 Updated for compatibility with Piwik 3.0+. Added \"Matomo\" branding. Users on pre 3.0 release please see 2.x-dev branch.<\/li>\n<li>0.1.2 Updated for compatibility with Piwik v2.15 and included new registerEvents() hook for compatibility with Piwik 3.0<\/li>\n<li>0.1.1 Version bump to activation Marketplace hook<\/li>\n<li>0.1.0 Initial Release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/TrackingCodeCustomizer\/download\/5.0.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TrackingCodeCustomizer\/changelog"},"consumer":{"license":null}},{"name":"TrackingSpamPrevention","displayName":"Tracking Spam Prevention","owner":"matomo-org","description":"This plugin offers various options to prevent spammers and bots from making your data inaccurate so you can rely on your data again.","homepage":"https:\/\/matomo.org","createdDateTime":"2021-01-11 21:08:02","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org\/","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/issues","type":"url"}],"isTheme":false,"keywords":["spam","prevent","cloud","requests","ddos"],"basePrice":0,"authors":[{"name":"Matomo","email":null,"homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention","lastUpdated":"2026-09-28 06:52:04","latestVersion":"5.2.1","numDownloads":70002,"screenshots":["https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/images\/5.2.1\/1_Settings.png","https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/images\/5.2.1\/2_Settings_Country.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/TrackingSpamPrevention.png","previews":[],"activity":{"numCommits":"337","numContributors":"36","lastCommitDate":"2026-10-21 04:15:04"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"security","categories":["security"],"promotions":{},"versions":[{"name":"4.0.0","release":"2021-01-11 21:08:03","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1834,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.0.0"},{"name":"4.1.0","release":"2021-08-30 02:56:03","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1445,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.1.0"},{"name":"4.1.1","release":"2021-12-08 04:26:04","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1382,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.1.1"},{"name":"4.1.2","release":"2022-01-19 03:10:03","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3826,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.1.2"},{"name":"4.1.3","release":"2022-08-01 08:10:03","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3236,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.1.3"},{"name":"4.1.4","release":"2023-01-16 07:42:02","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1065,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.1.4"},{"name":"4.1.5","release":"2023-01-24 01:16:03","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1548,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.1.5"},{"name":"4.1.6","release":"2023-02-13 13:10:03","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":498,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.1.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.1.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.1.6"},{"name":"4.1.7","release":"2023-02-16 03:20:03","requires":{"matomo":">=4.0.5,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6066,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/4.1.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/4.1.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/4.1.7"},{"name":"5.0.0","release":"2023-05-08 01:22:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2258,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.0"},{"name":"5.0.1","release":"2024-03-07 02:18:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2116,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.1"},{"name":"5.0.2","release":"2024-04-22 07:34:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3187,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.2"},{"name":"5.0.3","release":"2024-08-12 05:16:12","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2960,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.3"},{"name":"5.0.4","release":"2024-10-21 08:04:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":540,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.4"},{"name":"5.0.5","release":"2024-10-24 02:36:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2112,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.5"},{"name":"5.0.6","release":"2024-12-10 02:38:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2091,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.6"},{"name":"5.0.7","release":"2025-01-06 06:18:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5832,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.7"},{"name":"5.0.8","release":"2025-05-26 06:26:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":10983,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.8"},{"name":"5.0.9","release":"2026-05-11 04:34:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3341,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.9"},{"name":"5.0.10","release":"2026-06-22 05:18:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1815,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.10"},{"name":"5.0.11","release":"2026-07-06 02:16:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4201,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.0.11\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.0.11"},{"name":"5.1.0","release":"2026-08-03 05:58:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":892,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.1.0"},{"name":"5.2.0","release":"2026-08-10 07:22:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3728,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.2.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.2.0"},{"name":"5.2.1","release":"2026-09-28 06:52:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3046,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/5.2.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TrackingSpamPrevention\/commits\/5.2.1","readmeHtml":{"description":"\n\n<p>Ever noticed tracking requests that look unnatural or originated from locations you wouldn't expect to get visits from?<\/p>\n\n<p>These tracking requests may be caused by spammers or bots and make your data less accurate. The only thing that is worse than having no data is inaccurate data.<\/p>\n\n<p>This plugin offers various options to fight spam and bots, so you can rely on your data:<\/p>\n\n<h3>1. Block requests from cloud providers<\/h3>\n\n<p>When enabled, this plugin will automatically detect IP addresses used by popular cloud providers like AWS, Azure, Digital Ocean, Google Cloud and Oracle Cloud.<\/p>\n\n<p>When a tracking request matches such an IP address, then the tracking request will be blocked. Additionally, some Cloud providers like Alibaba Cloud may be detected using the geolocation database (requires eg DB-IP City DB).<\/p>\n\n<p>If you are only tracking using the JavaScript tracker then this should be a safe feature to enable as tracking requests from humans would not originate from these clouds.<\/p>\n\n<p>If you are sending tracking requests from a cloud server, then you can also configure IP addresses that are always allowed, so you can still use this feature.<\/p>\n\n<h3>2. Block requests from headless browsers<\/h3>\n\n<p>When enabled, this plugin detects the most popular headless browsers and block tracking requests that originate from a headless browser.<\/p>\n\n<p>Headless browsers are browsers without a user interface and are mostly used for automation. Regular visitors would not use such a browser. It can block additional bots and spam requests that otherwise would not be detected.<\/p>\n\n<p>It cannot detect a headless browser when the user agent is customised. Often, we can detect them though.<\/p>\n\n<h3>3. Restrict number of actions per visit<\/h3>\n\n<p>When enabled, you can configure how many actions a visit should max have.<\/p>\n\n<p>Most sites never have more than around 100 to 300 actions within one visit under normal circumstances. In many cases it might therefore be safe to assume that if someone has caused more actions than the configured amount of actions, it might be actually tracking spam or a bot or something else like non-human activity is causing these actions.<\/p>\n\n<p>Matomo will in this case stop recording further actions for that visit to have less inaccurate data and to reduce server load. The IP address of this visit will then be blocked for up to 24 hours.<\/p>\n\n<p>You can also be notified by email when an IP address is banned because a visit had too many actions.<\/p>\n\n<h3>4. Exclude countries<\/h3>\n\n<p>This feature lets you configure to only accept tracking requests for visitors from specific countries. For example, if you have a German website, then it might be unexpected to have any legit visitors from a country outside of Europe meaning a visitor is likely a spammer or a bot in this case. By only tracking visitors from certain countries you can easily avoid a lot of potential spam and bots plus you might also avoid needing to be compliant with certain privacy laws.<\/p>\n\n<h3>5. Referrer spam<\/h3>\n\n<p>This feature is not part of this plugin but part of Matomo core.\nMatomo maintains a <a href=\"https:\/\/matomo.org\/blog\/2015\/05\/stopping-referrer-spam\/\">list of spam referrers<\/a> and Matomo will block tracking requests when such a referrer is detected.<\/p>\n\n<h3>Recommended other features<\/h3>\n\n<p>You might also want to <a href=\"https:\/\/matomo.org\/faq\/how-to\/faq_21077\/\">configure to track only URLs that belong to your website<\/a>. This way any URL that does not belong to your website will not be tracked. This feature is part of Matomo core.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin does not send any information of your visitors to another server. If you enable the \"block requests from cloud providers\" feature, then your server will download up to date IP ranges from cloud providers directly and store the information in your database.<\/p>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>How do I allow specific IPs to not be blocked?<\/strong><\/p>\n\n<p>Say you are using AWS to replay your traffic using log analytics. When you have the block clouds feature enabled, all the requests from your AWS would be blocked. However, you can specifically allow your own IPs to be allowed and not blocked using the \"IP allow list\" setting in \"Administration =&gt; General Settings\". Enter one IP address or CIDR range per line.<\/p>\n\n<p>Alternatively, you can force a list of allowed IP ranges by editing your <code>config\/config.ini.php<\/code> file like this (this overrides the setting, and the field is hidden from the UI while the override is in place):<\/p>\n\n<pre><code>[TrackingSpamPrevention]\nip_allow_list[] = \"127.0.0.1\/32\"\nip_allow_list[] = \"192.168.0.0\/21\"\n<\/code><\/pre>\n\n<p>Make sure to enter a valid IP range.<\/p>\n\n<p><strong>How do I block specific IPs from being tracked?<\/strong><\/p>\n\n<p>Use the \"IP block list\" setting in \"Administration =&gt; General Settings\". Enter one IP address or CIDR range per line. If an address matches both the allow list and the block list, the allow list takes precedence.<\/p>\n\n<p>Alternatively, you can force a list of blocked IP ranges by editing your <code>config\/config.ini.php<\/code> file like this (this overrides the setting, and the field is hidden from the UI while the override is in place):<\/p>\n\n<pre><code>[TrackingSpamPrevention]\nip_block_list[] = \"203.0.113.88\/32\"\nip_block_list[] = \"198.51.100.0\/24\"\n<\/code><\/pre>\n\n<p><strong>What happens when it fails to synchronise public IPs from cloud providers?<\/strong><\/p>\n\n<p>Any error is currently ignored and if it does not synchronise successfully, then the IP for the provider that failed are not synced.<\/p>\n\n<p>To be aware when such an error happens you can enable the following setting:<\/p>\n\n<pre><code>[TrackingSpamPrevention]\nblock_cloud_sync_throw_exception_on_error = 1\n<\/code><\/pre>\n\n<p>It is disabled by default as it could stop other scheduled tasks from being executed.<\/p>\n\n<p><strong>How can I block specific organisations from being tracked?<\/strong><\/p>\n\n<p>This can be useful if you are receiving spam requests from a provider that isn't automatically detected yet by this plugin.<\/p>\n\n<p>For this to work the \"Block tracking requests from the cloud\" setting must be enabled and a geolocation provider must be enabled.<\/p>\n\n<p>You can block any organisation (if the geolocation database you are using includes this information) using the \"Organisation block list\" setting in \"Administration =&gt; General Settings\". Enter one organisation per line. The list is pre-filled with a default set of hosting and datacenter providers, which you can extend or trim as needed.<\/p>\n\n<p>Alternatively, you can execute a command to block a new organisation like this:<\/p>\n\n<pre><code class=\"bash\">.\/console trackingspamprevention:block-geo-ip-organisation --organisation-name=\"Example\"\n<\/code><\/pre>\n\n<p>You can also force a list of blocked organisations by editing your <code>config\/config.ini.php<\/code> file like this (this overrides the setting, and the field is hidden from the UI while the override is in place):<\/p>\n\n<pre><code>[TrackingSpamPrevention]\norganisation_block_list[] = \"ExampleOrg\"\norganisation_block_list[] = \"another example\"\n<\/code><\/pre>\n\n<p>Each organisation will be compared lower case and the organisation only needs to contain the configured value, it does not need to match it exactly.<\/p>\n\n<p>You can find out the organisation name for an IP address by visiting the website of your geolocation database and using their demo tool.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h1>5.2.1 - 2026-09-28<\/h1>\n\n<ul>\n<li>Fixed the 5.0.11 plugin update failing on Matomo versions before 5.9<\/li>\n<\/ul>\n\n<h1>5.2.0 - 2026-08-10<\/h1>\n\n<ul>\n<li>Added an \"Organisation block list\" setting to the UI (General Settings, shown while \"Block tracking requests from the cloud\" is enabled) to manage the organisations blocked by that feature. Existing <code>block_geoip_organisations<\/code> config values are migrated to the new <code>organisation_block_list<\/code> system setting and removed from the config file; an emptied config list is migrated as an empty list, keeping organisation blocking disabled, while a removed config key results in the default block list applying again<\/li>\n<li>The <code>trackingspamprevention:block-geo-ip-organisation<\/code> command now saves the organisation to the new system setting instead of the config file<\/li>\n<li>Added introduction text for TrackingSpamPrevention system setting<\/li>\n<li>Renamed the \"Block tracking requests from server-side libraries\" setting to \"Block traffic from SDKs and server-side libraries\" and clarified its help text, mentioning that it is safe with Matomo Tag Manager tracking<\/li>\n<\/ul>\n\n<h1>5.1.0 - 2026-08-03<\/h1>\n\n<ul>\n<li>Added an \"IP allow list\" setting to the UI (General Settings). Existing <code>iprange_allowlist<\/code> config values are migrated to the new <code>ip_allow_list<\/code> system setting and removed from the config file<\/li>\n<li>Added an \"IP block list\" setting to the UI (General Settings) to block tracking requests from specific IP addresses or ranges<\/li>\n<li>Fixed Digital Ocean IP ranges not being blocked when \"Block tracking requests from the cloud\" is enabled<\/li>\n<li>Added more hosting\/datacenter providers to the default block list used by \"Block tracking requests from the cloud\"<\/li>\n<\/ul>\n\n<h1>5.0.11 - 2026-07-06<\/h1>\n\n<ul>\n<li>Enabled block headless browser by default<\/li>\n<\/ul>\n\n<h1>5.0.10 - 2026-06-22<\/h1>\n\n<ul>\n<li>Removed Verein zur Foerderung eines Deutschen Forschungsnetzes (DFN) from the default block list<\/li>\n<\/ul>\n\n<h1>5.0.9 - 2026-05-11<\/h1>\n\n<ul>\n<li>Added code to block more providers by default<\/li>\n<\/ul>\n\n<h1>5.0.8 - 2025-05-26<\/h1>\n\n<ul>\n<li>Fixed broken Azure link for looking up IP ranges<\/li>\n<\/ul>\n\n<h1>5.0.7 - 2025-01-06<\/h1>\n\n<ul>\n<li>Added Matomo URL to email report<\/li>\n<\/ul>\n\n<h1>5.0.6 - 2024-12-09<\/h1>\n\n<ul>\n<li>Fixed broken Azure link for looking up IP ranges<\/li>\n<\/ul>\n\n<h1>5.0.5 - 2024-10-24<\/h1>\n\n<ul>\n<li>Look for headless browser in clientHints to detect spam<\/li>\n<\/ul>\n\n<h1>5.0.4 - 2024-10-21<\/h1>\n\n<ul>\n<li>Compatability with PHP 8.4<\/li>\n<\/ul>\n\n<h1>5.0.3<\/h1>\n\n<ul>\n<li>Textual changes<\/li>\n<\/ul>\n\n<h1>5.0.2<\/h1>\n\n<ul>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h1>5.0.1<\/h1>\n\n<ul>\n<li>Fix issue where max action limit was blocking IP addresses from the allow list<\/li>\n<\/ul>\n\n<h1>5.0.0<\/h1>\n\n<ul>\n<li>Compatibility with Matomo 5.0<\/li>\n<\/ul>\n\n<h1>4.1.7<\/h1>\n\n<ul>\n<li>Fixed Azure IP ranges download URL parsing code better accounting for character encoding<\/li>\n<\/ul>\n\n<h1>4.1.6<\/h1>\n\n<ul>\n<li>Started including userAgent in the banned IP email<\/li>\n<\/ul>\n\n<h1>4.1.5<\/h1>\n\n<ul>\n<li>Azure IP ranges download code updated and added tests to alert if download fails<\/li>\n<\/ul>\n\n<h1>4.1.4<\/h1>\n\n<ul>\n<li>Add new command to block new organisations <code>.\/console trackingspamprevention:block-geo-ip-organisation --organisation-name=\"Example\"<\/code><\/li>\n<\/ul>\n\n<h1>4.1.3<\/h1>\n\n<ul>\n<li>Translation changes<\/li>\n<li>Added code to not throw exception if digitalOcean file is empty<\/li>\n<\/ul>\n\n<h1>4.1.2<\/h1>\n\n<ul>\n<li>Fix location data in email to show IP instead of IP range<\/li>\n<li>Started blocking digital ocean through providers.<\/li>\n<li>Stopped checking GeoIp DB if UserCountry plugin is disabled<\/li>\n<li>Azure IP ranges download code updated<\/li>\n<\/ul>\n\n<h1>4.1.1<\/h1>\n\n<ul>\n<li>Fixed IP ban notification email leading to internal sever error<\/li>\n<\/ul>\n\n<h1>4.1.0<\/h1>\n\n<ul>\n<li>Exclude user agents from load testing services<\/li>\n<li>Exclude user agents from server side tracking SDK by enabling an option<\/li>\n<\/ul>\n\n<h1>4.0.0<\/h1>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/TrackingSpamPrevention\/download\/5.2.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TrackingSpamPrevention\/changelog"},"consumer":{"license":null}},{"name":"TreemapVisualization","displayName":"Treemap Visualization","owner":"matomo-org","description":"Visualise any report in Matomo as a Treemap. Click on the Treemap icon in each report to load the visualisation.","homepage":"https:\/\/matomo.org","createdDateTime":"2013-09-30 01:03:48","donate":{},"support":[{"name":"Documentation","key":"docs","value":"https:\/\/matomo.org\/docs\/","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Email","key":"email","value":"hello@matomo.org","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization","type":"url"},{"name":"RSS","key":"rss","value":"https:\/\/matomo.org\/feed\/","type":"url"}],"isTheme":false,"keywords":["treemap","graph","visualization","infovis","jit"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization","lastUpdated":"2026-09-07 02:42:03","latestVersion":"5.0.10","numDownloads":126190,"screenshots":["https:\/\/plugins.matomo.org\/TreemapVisualization\/images\/5.0.10\/Screen_Resolution_Treemap.png","https:\/\/plugins.matomo.org\/TreemapVisualization\/images\/5.0.10\/Social_Network_Treemap.png","https:\/\/plugins.matomo.org\/TreemapVisualization\/images\/5.0.10\/Treemap.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/TreemapVisualization.png","previews":[],"activity":{"numCommits":"339","numContributors":"43","lastCommitDate":"2026-10-22 14:41:34"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"insights","categories":["insights"],"promotions":{},"versions":[{"name":"1.0","release":"2013-09-30 01:03:48","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":34,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0"},{"name":"1.0.1","release":"2013-10-23 04:48:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":24,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.1"},{"name":"1.0.2","release":"2013-10-31 22:03:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.2"},{"name":"1.0.3","release":"2013-10-31 23:16:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":7,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.3"},{"name":"1.0.4","release":"2013-10-31 23:52:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.4"},{"name":"1.0.5","release":"2013-11-01 00:35:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.5"},{"name":"1.0.6","release":"2013-11-01 00:50:06","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":34,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.6"},{"name":"1.0.9","release":"2013-12-11 04:14:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.9"},{"name":"1.0.10","release":"2013-12-11 04:42:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3048,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.10"},{"name":"1.0.11","release":"2014-05-04 22:28:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12473,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.11"},{"name":"1.0.12","release":"2016-08-16 01:10:03","requires":{"piwik":">=2.4.0-b1,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2859,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/1.0.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/1.0.12"},{"name":"3.0.0","release":"2016-09-13 22:06:05","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4092,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/3.0.0"},{"name":"3.1.0","release":"2017-04-17 21:28:04","requires":{"piwik":">=3.0.3,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5456,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/3.1.0"},{"name":"3.1.1","release":"2018-06-18 11:46:04","requires":{"piwik":">=3.1.2-b2,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":6673,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/3.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/3.1.1"},{"name":"3.1.2","release":"2020-06-04 03:52:04","requires":{"piwik":">=3.1.2-b2,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4032,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/3.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/3.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/3.1.2"},{"name":"4.0.0","release":"2020-07-29 07:40:05","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":434,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/4.0.0"},{"name":"4.0.1","release":"2020-11-02 20:20:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5229,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/4.0.1"},{"name":"4.0.2","release":"2022-08-01 08:14:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":24573,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/4.0.2"},{"name":"5.0.0","release":"2023-05-07 22:44:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2590,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.0"},{"name":"5.0.1","release":"2024-04-22 07:36:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5300,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.1"},{"name":"5.0.2","release":"2025-01-10 01:48:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":719,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.2"},{"name":"5.0.3","release":"2025-01-20 07:40:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5585,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.3"},{"name":"5.0.4","release":"2025-07-07 10:22:07","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9123,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.4"},{"name":"5.0.5","release":"2026-02-16 06:56:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1797,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.5"},{"name":"5.0.6","release":"2026-03-02 04:40:08","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8001,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.6"},{"name":"5.0.7","release":"2026-04-27 05:14:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":16431,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.7"},{"name":"6.0.0","release":"2026-08-24 06:28:39","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":523,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/6.0.0"},{"name":"5.0.8","release":"2026-08-31 05:26:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":517,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.8\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.8"},{"name":"5.0.9","release":"2026-09-02 22:42:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":615,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.9\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.9"},{"name":"6.0.1","release":"2026-09-07 02:38:03","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1405,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/6.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/6.0.1"},{"name":"5.0.10","release":"2026-09-07 02:42:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4599,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/5.0.10\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/commits\/5.0.10","readmeHtml":{"description":"\n\n<p>TreemapVisualization contains a new report visualization that will display your reports as tiles of different sizes and will show you how each metric has changed from the last period.<\/p>\n\n<p>The treemap visualization displays rows of data as squares whose size corresponds to a metric in each row.<\/p>\n\n<p>If you're looking at the visits in a report, the row with the most visits will take up the most space. Just like other graph visualizations, <strong>you can use it to easily see which rows have the largest values<\/strong>. The treemap differs from other graphs though, in that <strong>it can show many more rows<\/strong>.<\/p>\n\n<h4>Treemap colors for comparison with previous period<\/h4>\n\n<p>The treemap visualization will also show you one thing that no other visualization included with Matomo does: the <strong>evolution<\/strong> of each row. Hovering over a treemap square will show you how much the row changed from the last period (ie, the last day, week, etc.).<\/p>\n\n<p>Each treemap square is colored based on the evolution value <strong>so you can easily see how your data is changing<\/strong>. A red square means the change is negative; a green square means the change is positive. The more green the bigger the change; the more red the smaller the change.<\/p>\n\n<h4>Known limitations<\/h4>\n\n<ul>\n<li>Treemaps will not work with flattened tables. Currently, if a table is flattened, the treemap icon will be removed.<\/li>\n<li>Evolution values cannot be calculated for subtables (reports that are displayed when you click on a row or node).<\/li>\n<\/ul>\n\n<h4>Feedback, bug report or requests<\/h4>\n\n<p><a href=\"https:\/\/github.com\/matomo-org\/plugin-TreemapVisualization\/issues\">github.com\/matomo-org\/plugin-TreemapVisualization\/issues<\/a><\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h1>5.0.10 - 2026-09-07<\/h1>\n\n<ul>\n<li>Keep the link icon off treemap rows that have no URL<\/li>\n<\/ul>\n\n<h1>5.0.9 - 2026-09-02<\/h1>\n\n<ul>\n<li>Improvements in treemap node URL handling<\/li>\n<\/ul>\n\n<h1>5.0.8 - 2026-08-31<\/h1>\n\n<ul>\n<li>Fixed typo in README.md - (Thanks <a href=\"https:\/\/github.com\/Sumit-Sabhaya\/\">@Sumit-Sabhaya<\/a>!)<\/li>\n<\/ul>\n\n<h1>5.0.7 - 2026-04-27<\/h1>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h1>5.0.6 - 2026-03-02<\/h1>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h1>5.0.5 - 2026-02-16<\/h1>\n\n<ul>\n<li>Added validation rules for ApiAction<\/li>\n<\/ul>\n\n<h1>5.0.4 - 2025-07-07<\/h1>\n\n<ul>\n<li>Textual changes<\/li>\n<\/ul>\n\n<h1>5.0.3 - 2025-01-20<\/h1>\n\n<ul>\n<li>Added code to allow calling Treemap API only directly<\/li>\n<\/ul>\n\n<h1>5.0.2 - 2025-01-10<\/h1>\n\n<ul>\n<li>Avoids recursion in API calls<\/li>\n<\/ul>\n\n<h1>5.0.1<\/h1>\n\n<ul>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul>\n\n<h1>5.0.0<\/h1>\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul>\n\n<h1>4.0.2<\/h1>\n\n<ul>\n<li>Translation changes and made plugin translatable<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/TreemapVisualization\/download\/5.0.10"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TreemapVisualization\/changelog"},"consumer":{"license":null}},{"name":"TwilioSMS","displayName":"Twilio SMS","owner":"9joshua","description":"Adds the ability to use Twilio as your SMS provider for Mobile Messaging (SMS Reports).","homepage":"https:\/\/github.com\/9joshua\/TwilioSMS","createdDateTime":"2023-05-12 00:08:02","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/9joshua\/TwilioSMS#readme","type":"url"},{"name":"Forum","key":"forum","value":"https:\/\/github.com\/9joshua\/TwilioSMS\/discussions\/1","type":"url"},{"name":"Email","key":"email","value":"support@base.nz","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/9joshua\/TwilioSMS\/issues","type":"url"}],"isTheme":false,"keywords":["SMS","reports","Twilio"],"basePrice":0,"authors":[{"name":"9joshua","email":"support@base.nz","homepage":"https:\/\/base.nz"}],"repositoryUrl":"https:\/\/github.com\/9joshua\/TwilioSMS","lastUpdated":"2023-11-17 21:04:02","latestVersion":"1.0.2","numDownloads":13640,"screenshots":["https:\/\/plugins.matomo.org\/TwilioSMS\/images\/1.0.2\/2.png","https:\/\/plugins.matomo.org\/TwilioSMS\/images\/1.0.2\/3.png","https:\/\/plugins.matomo.org\/TwilioSMS\/images\/1.0.2\/4.png","https:\/\/plugins.matomo.org\/TwilioSMS\/images\/1.0.2\/5.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"16","numContributors":"1","lastCommitDate":"2023-11-17 21:02:44"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.2.3","release":"2023-05-12 00:08:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1614,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TwilioSMS\/0.2.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/9joshua\/TwilioSMS\/commits\/0.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwilioSMS\/download\/0.2.3"},{"name":"1.0.2","release":"2023-11-17 21:04:02","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12026,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/TwilioSMS\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/9joshua\/TwilioSMS\/commits\/v1.0.2","readmeHtml":{"description":"","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Documentation<\/h2>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>Initial release 0.1.0<\/p>"},"download":"\/api\/2.0\/plugins\/TwilioSMS\/download\/1.0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TwilioSMS\/changelog"},"consumer":{"license":null}},{"name":"TwitterFeedWidgetByAmperage","displayName":"Twitter Feed Widget By Amperage","owner":"AMPERAGE-Marketing","description":"Show X (formerly Twitter) Feed as a configurable widget.","homepage":"https:\/\/www.amperagemarketing.com","createdDateTime":"2019-08-27 21:50:04","donate":{},"support":[{"name":"Wiki","key":"wiki","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/wiki","type":"url"},{"name":"Email","key":"email","value":"kzeni1@gmail.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget","type":"url"}],"isTheme":false,"keywords":["widget","social","dashboard","amperage","twitter","twitter feed","x","x feed"],"basePrice":0,"authors":[{"name":"Amperage Marketing & Fundraising","email":"digital@amperagemarketing.com","homepage":"http:\/\/www.amperagemarketing.com"},{"name":"Kurt Zenisek","email":"kzeni1@gmail.com","homepage":"http:\/\/kzeni.com"}],"repositoryUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget","lastUpdated":"2023-10-02 22:16:14","latestVersion":"5.0.1","numDownloads":17515,"screenshots":["https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/images\/5.0.1\/setting.png","https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/images\/5.0.1\/twitter-feed-widget.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"12","numContributors":"1","lastCommitDate":"2023-10-02 22:14:38"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2019-08-27 21:50:04","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/1.0.0"},{"name":"1.0.1","release":"2019-08-27 22:04:03","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/1.0.1"},{"name":"1.0.2","release":"2019-08-27 22:06:05","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":430,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/1.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/1.0.2"},{"name":"1.0.3","release":"2019-12-16 21:48:09","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":733,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/1.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/1.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/1.0.3"},{"name":"1.0.4","release":"2020-11-25 04:10:08","requires":{"piwik":">=3.3.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":609,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/1.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/1.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/1.0.4"},{"name":"1.0.5","release":"2021-01-29 00:02:03","requires":{"piwik":">=3.3.0-stable,<4.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2316,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/1.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/1.0.5-Matomo-3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/1.0.5"},{"name":"1.0.6","release":"2021-01-29 00:10:12","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5055,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/1.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/1.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/1.0.6"},{"name":"5.0.0","release":"2023-10-02 22:04:17","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/5.0.0"},{"name":"5.0.1","release":"2023-10-02 22:16:14","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8366,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/AMPERAGE-Marketing\/Matomo-Twitter-Feed-Widget\/commits\/5.0.1","readmeHtml":{"description":"\n\n<p>A widget for Matomo (formerly Piwik) that allows you to specify your Twitter Username and it then displays your Twitter Feed on your dashboard.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>5.0.1<\/h2>\n\n<ul>\n<li>Updated changelog &amp; other metadata for 5.x releases.<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<ul>\n<li>Prepped release for Matomo 5.x while also version-bumping the plugin to 5.0.0 as a base value per Matomo's recommendation\/convention for Matomo 5.x plugins.<\/li>\n<\/ul>\n\n<h2>1.0.6<\/h2>\n\n<ul>\n<li>Version bump Matomo 4 plugin as that is technically newer.<\/li>\n<\/ul>\n\n<h2>1.0.5<\/h2>\n\n<ul>\n<li>Split Matomo 3 and Matomo 4 versions.<\/li>\n<\/ul>\n\n<h2>1.0.4<\/h2>\n\n<ul>\n<li>Confirmed Matomo 4 compliance.<\/li>\n<\/ul>\n\n<h2>1.0.3<\/h2>\n\n<ul>\n<li>Better scoped the widget styles.<\/li>\n<\/ul>\n\n<h2>1.0.2<\/h2>\n\n<ul>\n<li>Matomo plugin marketplace update.<\/li>\n<\/ul>\n\n<h2>1.0.1<\/h2>\n\n<ul>\n<li>Minor maintenance.<\/li>\n<\/ul>\n\n<h2>1.0<\/h2>\n\n<ul>\n<li>Initial Release.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/TwitterFeedWidgetByAmperage\/download\/5.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/TwitterFeedWidgetByAmperage\/changelog"},"consumer":{"license":null}},{"name":"UltimateProfileAvatar","displayName":"Ultimate Profile Avatar","owner":"Mikanoshi","description":"Use Libravatar or DiceBear avatar as visitor's profile picture.","homepage":"https:\/\/code.highspec.ru\/Mikanoshi\/UltimateProfileAvatar","createdDateTime":"2026-10-02 09:12:03","donate":{"bitcoin":null},"support":[{"name":"Email","key":"email","value":"iam@mikanoshi.name","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/code.highspec.ru\/Mikanoshi\/UltimateProfileAvatar\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/code.highspec.ru\/Mikanoshi\/UltimateProfileAvatar","type":"url"}],"isTheme":false,"keywords":["Avatar","profile","user","gravatar","picture","libravatar","dicebear"],"basePrice":0,"authors":[{"name":"Mikanoshi","email":"iam@mikanoshi.name","homepage":"https:\/\/mikanoshi.name"}],"repositoryUrl":"https:\/\/github.com\/Mikanoshi\/UltimateProfileAvatar","lastUpdated":"2026-10-13 13:30:03","latestVersion":"1.0.1","numDownloads":35,"screenshots":["https:\/\/plugins.matomo.org\/UltimateProfileAvatar\/images\/1.0.1\/0_Libravatar_in_profile.png","https:\/\/plugins.matomo.org\/UltimateProfileAvatar\/images\/1.0.1\/1_Animated_SVG_DiceBear_avatar.png","https:\/\/plugins.matomo.org\/UltimateProfileAvatar\/images\/1.0.1\/2_Avatars_in_Visits_Log.png"],"coverImage":"https:\/\/plugins.matomo.org\/UltimateProfileAvatar\/images\/1.0.1\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-10-13 21:24:06"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-10-02 09:12:03","requires":{"php":">=7.2.5","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":0,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UltimateProfileAvatar\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Mikanoshi\/UltimateProfileAvatar\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UltimateProfileAvatar\/download\/1.0.0"},{"name":"1.0.1","release":"2026-10-13 13:30:03","requires":{"php":">=7.1","matomo":">=5.0.0-stable,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":35,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UltimateProfileAvatar\/1.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Mikanoshi\/UltimateProfileAvatar\/commits\/1.0.1","readmeHtml":{"description":"\n\n<p>Display the Libravatar or DiceBear avatar as visitor's profile picture in Matomo.<\/p>\n\n<p>Supply SHA-256 hash of the visitor's e-mail address with your tracking requests and Matomo will show the matching <a href=\"https:\/\/seccdn.libravatar.org\">Libravatar\/Gravatar<\/a> with a <a href=\"https:\/\/www.dicebear.com\">DiceBear<\/a> avatar fallback:<\/p>\n\n<ul>\n<li>in the <strong>visitor profile<\/strong><\/li>\n<li>in the <strong>visits log<\/strong>, below browser\/device\/etc icons (optional)<\/li>\n<\/ul>\n\n<p>Plugin also uses SHA-256 hash of a User ID automatically if it's an e-mail.<\/p>\n\n","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>Tracking code modification to provide necessary data<\/h3>\n\n<p>Place these lines before <code>_paq.push(['trackPageView']);<\/code>:<\/p>\n\n<ul>\n<li><p>Pregenerated hash (PHP example)<\/p>\n\n<pre><code>_paq.push(['UltimateProfileAvatar.setLibravatarHash', '&lt;?=hash('sha256', 'some@email.addr');?&gt;']);\n<\/code><\/pre>\n\n<p>Value must be a 64-character lowercase hexadecimal SHA-256 hash of a lowercase e-mail.<\/p><\/li>\n<li><p>E-mail as User ID<\/p>\n\n<pre><code>_paq.push([['setUserId', 'some@email.addr']);\n<\/code><\/pre><\/li>\n<\/ul>\n\n<p>Pregenerated hash has a precedence over User ID when both are present.<\/p>\n\n<h3>Manual request<\/h3>\n\n<p>You can also use the <code>libravatar_hash<\/code> parameter to provide pregenerated hash via HTTP request:<\/p>\n\n<pre><code>https:\/\/yourdomain.com\/matomo.php?idsite=1&amp;rec=1&amp;url=https:\/\/example.com&amp;libravatar_hash=XXXXXXXXX`\n<\/code><\/pre>","changelog":""},"download":"\/api\/2.0\/plugins\/UltimateProfileAvatar\/download\/1.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/UltimateProfileAvatar\/changelog"},"consumer":{"license":null}},{"name":"UptimeRobotMonitor","displayName":"Uptime Robot Monitor","owner":"job963","description":"Plugin for displaying UptimeRobot data in Matomo (Piwik).","homepage":"https:\/\/github.com\/job963\/UptimeRobot-Monitor","createdDateTime":"2014-10-26 13:14:03","donate":{},"support":[],"isTheme":false,"keywords":["monitor","system","uptimerobot","api"],"basePrice":0,"authors":[{"name":"Joachim Barthel","email":"jobarthel@gmail.com","homepage":"https:\/\/github.com\/job963"}],"repositoryUrl":"https:\/\/github.com\/job963\/UptimeRobot-Monitor","lastUpdated":"2014-12-04 20:20:04","latestVersion":"0.2","numDownloads":10021,"screenshots":["https:\/\/plugins.matomo.org\/UptimeRobotMonitor\/images\/0.2\/SettingsDE.png","https:\/\/plugins.matomo.org\/UptimeRobotMonitor\/images\/0.2\/widgetLogList.png","https:\/\/plugins.matomo.org\/UptimeRobotMonitor\/images\/0.2\/widgetTimeBar.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"9","numContributors":"2","lastCommitDate":"2016-02-12 19:01:07"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-10-26 13:14:03","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/UptimeRobot-Monitor\/commits\/v0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UptimeRobotMonitor\/download\/0.1.0"},{"name":"0.1.1","release":"2014-10-26 13:24:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":448,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/UptimeRobot-Monitor\/commits\/v0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UptimeRobotMonitor\/download\/0.1.1"},{"name":"0.1.3","release":"2014-11-26 06:38:03","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":163,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/UptimeRobot-Monitor\/commits\/v0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UptimeRobotMonitor\/download\/0.1.3"},{"name":"0.2","release":"2014-12-04 20:20:04","requires":{},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9404,"license":{"name":"GPL-3.0+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/job963\/UptimeRobot-Monitor\/commits\/v0.2","readmeHtml":{"description":"\n\n<p>This plugin shows data, collected by UptimeRobot, in Matomo (Piwik). This helps you to see all information about your website in one system without having the need to login into several systems.<\/p>\n\n<p>The access to UptimeRobot will be managed by an individual monitor API key, which you have to create in UptimeRobot (see FAQ).<\/p>\n\n","faq":"<p><strong>Where do I get the API key?<\/strong><\/p>\n\n<p>Go in UptimeRoboto to \"My Settings\" and click in the paragraph \"Monitor-specific API Keys\" on \"Show\/hide it\". Search as next for the name of the desired website. Now you will see the API key for monitoring this website.\nThis API key you have to enter in the plugin settings of <em>UptimeRobotMonitor<\/em>.<\/p>","documentation":"","changelog":"<ul>\n<li><p><strong>0.1.0 Initial release<\/strong><\/p>\n\n<ul>\n<li>Widget for latest events<\/li>\n<li>Setting for monitor API key<\/li>\n<\/ul><\/li>\n<li><p><strong>0.1.1 Small corrections<\/strong><\/p>\n\n<ul>\n<li>Small correction in README<\/li>\n<\/ul><\/li>\n<li><p><strong>0.1.2 New Language added<\/strong><\/p>\n\n<ul>\n<li>Now usable in hungarian language (thanks to sagikazarmark)<\/li>\n<\/ul><\/li>\n<li><p><strong>0.1.3 Readme updated<\/strong><\/p>\n\n<ul>\n<li>New version description added<\/li>\n<\/ul><\/li>\n<li><p><strong>0.2 Timebar widget added<\/strong><\/p>\n\n<ul>\n<li>New widget for displaying the log as a time bar<\/li>\n<li>Support of multiple servers<\/li>\n<\/ul><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/UptimeRobotMonitor\/download\/0.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/UptimeRobotMonitor\/changelog"},"consumer":{"license":null}},{"name":"UserConsole","displayName":"User Console","owner":"Digitalist-Open-Cloud","description":"Use the console to manage users, like adding users, reset password etc.","homepage":"https:\/\/digitalist.cloud","createdDateTime":"2019-02-28 21:24:03","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/issues","type":"url"}],"isTheme":false,"keywords":[],"basePrice":0,"authors":[{"name":"Mikke Schir\u00e9n","email":"mikke.schiren@digitalist.com","homepage":"https:\/\/digitalist.cloud"}],"repositoryUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole","lastUpdated":"2024-11-18 13:24:03","latestVersion":"5.0.4","numDownloads":70055,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/UserConsole\/images\/5.0.4\/_cover.png","previews":[],"activity":{"numCommits":"4","numContributors":"2","lastCommitDate":"2024-11-18 13:22:15"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.0.1-alpha4","release":"2019-02-28 21:24:03","requires":{"piwik":">=3.8.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":6,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/0.0.1-alpha4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/0.0.1-alpha4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/0.0.1-alpha4"},{"name":"0.1.0","release":"2019-02-28 21:32:03","requires":{"piwik":">=3.8.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/0.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/0.1.0"},{"name":"0.1.1","release":"2019-03-01 07:08:03","requires":{"piwik":">=3.8.1-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":302,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/0.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/0.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/0.1.1"},{"name":"0.1.3","release":"2019-03-20 10:12:04","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2511,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/0.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/0.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/0.1.3"},{"name":"3.1.3","release":"2020-11-21 16:16:03","requires":{"piwik":">=3.8.0-stable,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2649,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/3.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/3.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/3.1.3"},{"name":"4.0.0","release":"2020-11-21 16:22:02","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4905,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/4.0.0"},{"name":"4.0.1","release":"2023-04-11 12:08:03","requires":{"matomo":">=4.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":571,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/4.0.1"},{"name":"5.0.1","release":"2023-05-15 13:36:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8042,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/5.0.1"},{"name":"4.0.2","release":"2023-05-15 13:38:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":31569,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/4.0.2"},{"name":"5.0.2","release":"2024-08-30 14:22:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":4685,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/5.0.2"},{"name":"5.0.4","release":"2024-11-18 13:24:03","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":14807,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/UserConsole\/5.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Digitalist-Open-Cloud\/Matomo-Plugin-UserConsole\/commits\/5.0.4","readmeHtml":{"description":"","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>My question?<\/strong><\/p>\n\n<p>My answer<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Usage<\/h2>\n\n<p>This plugin adds the possibility to work with users via console commands.<\/p>\n\n<h2>Console commands<\/h2>\n\n<ul>\n<li><a href=\"#useraccess\">user:access<\/a><\/li>\n<li><a href=\"#usercreate\">user:create<\/a><\/li>\n<li><a href=\"#userinvite\">user:invite<\/a><\/li>\n<li><a href=\"#userdelete\">user:delete<\/a><\/li>\n<li><a href=\"#userlist\">user:list<\/a><\/li>\n<li><a href=\"#makesuper\">user:make-super<\/a><\/li>\n<li><a href=\"#removesuper\">user:remove-super<\/a><\/li>\n<li><a href=\"#resetpassword\">user:reset-password<\/a><\/li>\n<\/ul>\n\n<h3><a>user:create<\/a><\/h3>\n\n<p>Creates a user.<\/p>\n\n<p>Options:<\/p>\n\n<ul>\n<li><code>login<\/code> User name for the user (required)<\/li>\n<li><code>email<\/code> Email for the user (required)<\/li>\n<li><code>password<\/code> Password for the user (required)<\/li>\n<li><code>super<\/code> Add super user privileges to the user (optional)<\/li>\n<\/ul>\n\n<h3><a>user:invite<\/a><\/h3>\n\n<p>Invites a user.<\/p>\n\n<p>Options:<\/p>\n\n<ul>\n<li><code>login<\/code> User name for the user (required)<\/li>\n<li><code>email<\/code> Email for the user (required)<\/li>\n<li><code>site<\/code> ID of the initial site (required)<\/li>\n<li><code>expiry<\/code> Expiry in days (optional)<\/li>\n<\/ul>\n\n<h3><a>user:delete<\/a><\/h3>\n\n<p>Deletes a user.<\/p>\n\n<p>Options:<\/p>\n\n<ul>\n<li><p><code>login<\/code> User name for the user (required)<\/p>\n\n<h3><a>user:access<\/a><\/h3><\/li>\n<\/ul>\n\n<p>Menage access to a user, for which sites and what access.<\/p>\n\n<p>Options:<\/p>\n\n<ul>\n<li><code>login<\/code> User name for the user (required)<\/li>\n<li><code>sites<\/code> One or more sites that you would like to set the permission for (required)<\/li>\n<li><code>access<\/code> Which access the user should have to the site - <code>noaccess<\/code>, <code>view<\/code>, <code>write<\/code>, <code>admin<\/code> (required)<\/li>\n<\/ul>\n\n<h3><a>user:make-super<\/a><\/h3>\n\n<p>Adds super user privileges to a user<\/p>\n\n<p>Options:<\/p>\n\n<ul>\n<li><code>login<\/code> User name for the user (required)<\/li>\n<\/ul>\n\n<h3><a>user:remove-super<\/a><\/h3>\n\n<p>Remove super user privileges from a user<\/p>\n\n<p>Options:<\/p>\n\n<ul>\n<li><code>login<\/code> User name for the user (required)<\/li>\n<\/ul>\n\n<p>If the user is the only one that has super user access, this will fail. At least one super user is needed.<\/p>\n\n<h3><a>user:list<\/a><\/h3>\n\n<p>List all users.<\/p>\n\n<p>No options.<\/p>\n\n<h3><a>user:reset-password<\/a><\/h3>\n\n<p>Resets password for a user.<\/p>\n\n<p>Options:<\/p>\n\n<ul>\n<li><code>login<\/code> User name for the user (required)<\/li>\n<li><code>new-password<\/code> New password for the user (required)<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>[5.0.4] - 2024-11-18<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>user:invite by <a href=\"https:\/\/github.com\/mbrodala\">mbrodala<\/a> (#5)<\/li>\n<\/ul>\n\n<h2>[5.0.2] - 2024-08-30<\/h2>\n\n<h3>Added<\/h3>\n\n<ul>\n<li>Cover for Marketplace<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/UserConsole\/download\/5.0.4"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/UserConsole\/changelog"},"consumer":{"license":null}},{"name":"UsersFlow","displayName":"Users Flow","owner":"matomo-org","description":"Users Flow is a visual representation of the most popular paths your users take through your website & app which lets you understand your users needs.","homepage":"https:\/\/plugins.matomo.org\/UsersFlow","createdDateTime":"2016-12-13 02:33:57","donate":{},"support":[],"isTheme":false,"keywords":["users","Marketing","optimization","path","conversion","goal","cro","visitors","flow","sales","click","interaction"],"basePrice":94,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-10-20 12:32:05","latestVersion":"5.1.3","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/UsersFlow\/images\/5.1.3\/1_Visualization.png","https:\/\/plugins.matomo.org\/UsersFlow\/images\/5.1.3\/2_Interaction_Menu.png","https:\/\/plugins.matomo.org\/UsersFlow\/images\/5.1.3\/3_Interaction_Details.png","https:\/\/plugins.matomo.org\/UsersFlow\/images\/5.1.3\/4_Top_Paths.png","https:\/\/plugins.matomo.org\/UsersFlow\/images\/5.1.3\/5_Overview.png","https:\/\/plugins.matomo.org\/UsersFlow\/images\/5.1.3\/6_Page_Titles.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/UsersFlow.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/UsersFlow","variations":[{"product_variation_id":130476,"price":"89","prettyPrice":"89EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130476&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130476","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/usersflow\/?attribute_type=1+to+4+users&add-to-cart=2633&variation_id=130476&aelia_cs_currency=EUR"},{"product_variation_id":130476,"price":"99","prettyPrice":"USD99","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130476&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130476","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/usersflow\/?attribute_type=1+to+4+users&add-to-cart=2633&variation_id=130476&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130477,"price":"711","prettyPrice":"711EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130477&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130477","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/usersflow\/?attribute_type=Up+to+20+users&add-to-cart=2633&variation_id=130477&aelia_cs_currency=EUR"},{"product_variation_id":130477,"price":"859","prettyPrice":"USD859","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130477&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130477","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/usersflow\/?attribute_type=Up+to+20+users&add-to-cart=2633&variation_id=130477&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130478,"price":"1413","prettyPrice":"1413EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130478&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130478","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/usersflow\/?attribute_type=Up+to+50+users&add-to-cart=2633&variation_id=130478&aelia_cs_currency=EUR"},{"product_variation_id":130478,"price":"1699","prettyPrice":"USD1699","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130478&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2633&variation_id=130478","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/usersflow\/?attribute_type=Up+to+50+users&add-to-cart=2633&variation_id=130478&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/usersflow\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"4.33","ratingCount":3,"reviewCount":3}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["insights"],"promotions":{},"versions":[{"name":"5.1.3","release":"2026-10-20 12:32:05","requires":{"matomo":">=5.0.0-b4,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/UsersFlow\/5.1.3\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Map the paths your users take through your website or app. Uncover friction points to create smoother interactions, improve your user experience, and increase conversions.<\/p>\n\n<p>Ever felt that despite crafting a seemingly flawless site layout, users are still bypassing that crucial CTA? Nothing is more exasperating than realising a mismatched user path compromises your visitors' experience and conversion rates.<\/p>\n\n<p>Walk your site in your visitors' shoes with Matomo's User Flows - a dynamic visualisation of traffic patterns. Track every step in their journey to see where they deviate or drop off. Segment your user flows to study how different audiences behave and adjust your design for their needs.<\/p>\n\n<p>Optimise CTAs, address high-exit pages and tackle any navigational surprises with confidence. Shape your user experience, ensuring every interaction leads to higher conversions.<\/p>\n\n<h3>How User Flow Works<\/h3>\n\n<h4>Visualise the Journey Your Visitors Take<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Study how your visitors go through your site and unlock a deeper understanding of their behaviour.<\/p>\n<p>Adjust the user flow's detail by configuring the granularity and number of steps to display. Make data-driven decisions that shape and refine your site's user journey, optimising for both engagement and conversion.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/UsersFlow\/image1.jpg\" style=\"margin-left:24px;\" alt=\"Visualise the Journey Your Visitors Take\" \/>\n<\/div>\n<\/div>\n\n<h4>Analyse the User Flow of Any Page, Anytime, Anywhere<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Gain detailed insights into how your visitors navigate to and from any specific page on your site. <\/p>\n<p>Add this visualisation to your dashboard and share this key data with your team or clients to keep them always in the loop.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/UsersFlow\/image2.gif\" style=\"margin-left:24px;\" alt=\"Analyse the User Flow of Any Page, Anytime, Anywhere\" \/>\n<\/div>\n<\/div>\n\n<h4>View the Most Popular Paths<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Discover which paths and interactions resonate most with your visitors with the \"Top Paths\" report.<\/p>\n<p>Prioritise content, optimise navigation, and align your site's structure with their preferences to create a compelling user experience.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/UsersFlow\/image3.png\" style=\"margin-left:24px;\" alt=\"View the Most Popular Paths\" \/>\n<\/div>\n<\/div>\n\n<h4>Study How Your Visitors Engage with Your Site<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Analyse how your visitors engage with each path. Spotlight high drop-off pages and unexpected exits to uncover new opportunities for improvement. <\/p>\n<p>Whether it's a minor bug or a design flaw, get the clarity you need to refine the user experience, ensuring visitors stay interested and connected throughout their journey.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/UsersFlow\/image4.png\" style=\"margin-left:24px;\" alt=\"Study How Your Visitors Engage with Your Site\" \/>\n<\/div>\n<\/div>\n\n<h3>Try User Flow Today<\/h3>\n\n<p>Every twist, turn, and exit from your site tells a story. Take your web analytics beyond numbers and get a visual map of your visitors' journeys. Learn what captivates them and what might deter them from buying or signing up. Craft a user experience that resonates, converts, and keeps your visitors coming back for more.<\/p>\n\n<p>Start your free 30-day trial and watch your site thrive like never before.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Displays visitor engagement and lets you find out after how many pages your users exited your site<\/li>\n<li>Shows navigation paths for up to 10 interaction steps and more steps can be added optionally<\/li>\n<li>For each interaction step, get insights into over 100 pages and for each of those pages see where they went to from that page<\/li>\n<li>The visualization lets you configure how many details and how many steps you want to see per interaction<\/li>\n<li>Explore traffic through a certain page and get details how they got to that page and where they went afterwards<\/li>\n<li>Discover the path for page URLs and page titles<\/li>\n<li>Apply segments to dice your analytics reports exactly how you need it<\/li>\n<li>Adds several new Users Flow widgets that you can add to your dashboards<\/li>\n<li>Quickly see the top paths across all interactions with the \"Top Paths\" widget or get a quick overview with the \"Overview\" widget<\/li>\n<li>View how your visitors navigate through your website on the go with the <a href=\"https:\/\/matomo.org\/mobile\">Matomo Mobile app<\/a> for iOS and Android<\/li>\n<li>Get users flow data for your historical data that you already tracked.<\/li>\n<li><\/li>\n<\/ul>\n\n<h3>Privacy features<\/h3>\n\n<ul>\n<li>The plugin neither tracks nor stores any additional data and therefore no personal or sensitive information is recorded.<\/li>\n<\/ul>\n\n<h3>Export &amp; API features<\/h3>\n\n<ul>\n<li>Get automatic <a href=\"https:\/\/matomo.org\/docs\/email-reports\/\">email and sms reports<\/a> for the top paths in your Matomo, or share them with your colleagues or customers.<\/li>\n<li><a href=\"https:\/\/matomo.org\/docs\/embed-piwik-report\/\">Embed<\/a> the UsersFlow widgets directly in your app, dashboard, or even TV screen!.<\/li>\n<li>All reports are available via the <a href=\"https:\/\/developer.matomo.org\/api-reference\/reporting-api#UsersFlow\">UsersFlow HTTP Reporting API<\/a>.<\/li>\n<\/ul>\n\n<h3>Other features<\/h3>\n\n<ul>\n<li>Does not slow down tracking time<\/li>\n<li>100% data ownership<\/li>\n<li>No data limit<\/li>\n<\/ul>","faq":"","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>The <a href=\"https:\/\/matomo.org\/docs\/users-flow\/\">Users Flow User Guide<\/a> and the <a href=\"https:\/\/matomo.org\/faq\/users-flow\/\">Users Flow FAQ<\/a> \ncover how to get the most out of this plugin.<\/p>\n\n<p>For any other question feel free to <a href=\"#support\">contact us<\/a>.<\/p>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>5.1.3 - 2026-10-20<\/h2>\n\n<ul>\n<li>Fixed Matomo's stylesheets failing to compile with this plugin activated on Matomo versions before 5.10.0<\/li>\n<\/ul>\n\n<h2>5.1.2 - 2026-09-14<\/h2>\n\n<ul>\n<li>Optimised explore traffic functionality<\/li>\n<li>Fixed exploring a site search reporting downloads and outlinks when the flow is sourced from page titles<\/li>\n<li>Fixed events and content impressions counting towards the explored interaction, explored flows previously\nreported higher numbers than the visits they represent<\/li>\n<\/ul>\n\n<h2>5.1.1 - 2026-07-20<\/h2>\n\n<ul>\n<li>Updated marketplace screenshots with new UI<\/li>\n<\/ul>\n\n<h2>5.1.0 - 2026-07-06<\/h2>\n\n<ul>\n<li>Refreshed UI for UsersFlow<\/li>\n<\/ul>\n\n<h2>5.0.10 - 2026-06-22<\/h2>\n\n<ul>\n<li>Improve dark mode rendering<\/li>\n<\/ul>\n\n<h2>5.0.9 - 2026-04-27<\/h2>\n\n<ul>\n<li>Updated API documentation<\/li>\n<\/ul>\n\n<h2>5.0.8 - 2026-02-09<\/h2>\n\n<ul>\n<li>Fixed issue where clicking interaction headers would show a multi-site error<\/li>\n<\/ul>\n\n<h2>5.0.7 - 2026-01-02<\/h2>\n\n<ul>\n<li>Added code to not call saveViewDataTableParameters for anonymous user<\/li>\n<\/ul>\n\n<h2>5.0.6 - 2025-07-21<\/h2>\n\n<ul>\n<li>Correctly map filtered action to others<\/li>\n<li>Correctly distribute others actions to show correct inflow and outflow of links<\/li>\n<\/ul>\n\n<h2>5.0.5 - 2024-11-05<\/h2>\n\n<ul>\n<li>Updated README.md<\/li>\n<\/ul>\n\n<h2>5.0.4 - 2024-08-26<\/h2>\n\n<ul>\n<li>Pricing updated<\/li>\n<\/ul>\n\n<h2>5.0.3<\/h2>\n\n<ul>\n<li>Added cover image for marketplace<\/li>\n<\/ul>\n\n<h2>5.0.2<\/h2>\n\n<ul>\n<li>Updated README.md<\/li>\n<\/ul>\n\n<h2>5.0.1<\/h2>\n\n<ul>\n<li>Compatibility with Matomo 5.0.0-b4<\/li>\n<\/ul>\n\n<h2>5.0.0<\/h2>\n\n<ul>\n<li>Compatibility with Matomo 5.0<\/li>\n<\/ul>\n\n<h2>4.1.1<\/h2>\n\n<ul>\n<li>Fixed faulty help text, which was being displayed always<\/li>\n<\/ul>\n\n<h2>4.1.0<\/h2>\n\n<ul>\n<li>Migrate AngularJS code to Vue.<\/li>\n<\/ul>\n\n<h2>4.0.4<\/h2>\n\n<ul>\n<li>Improve contrast in tooltip<\/li>\n<\/ul>\n\n<h2>4.0.3<\/h2>\n\n<ul>\n<li>Add category help texts.<\/li>\n<\/ul>\n\n<h2>4.0.2<\/h2>\n\n<ul>\n<li>Rearchive reports on plugin activation<\/li>\n<\/ul>\n\n<h2>4.0.1<\/h2>\n\n<ul>\n<li>Compatibility with Matomo 4.0<\/li>\n<\/ul>\n\n<h2>4.0.0<\/h2>\n\n<ul>\n<li>Compatibility with Matomo 4.0<\/li>\n<\/ul>\n\n<h2>3.1.11<\/h2>\n\n<ul>\n<li>Reduce needed memory when archiving<\/li>\n<\/ul>\n\n<h2>3.1.10<\/h2>\n\n<ul>\n<li>Support a DB reader<\/li>\n<\/ul>\n\n<h2>3.1.9<\/h2>\n\n<ul>\n<li>Do not include events and content tracking in report<\/li>\n<\/ul>\n\n<h2>3.1.8<\/h2>\n\n<ul>\n<li>Support more languages<\/li>\n<\/ul>\n\n<h2>3.1.7<\/h2>\n\n<ul>\n<li>Fix exploring traffic when a segment is applied results in no data<\/li>\n<li>Moved Users Flow from Visitors menu category into Behaviour category<\/li>\n<\/ul>\n\n<h2>3.1.6<\/h2>\n\n<ul>\n<li>Set default level in visualization to majority<\/li>\n<\/ul>\n\n<h2>3.1.5<\/h2>\n\n<ul>\n<li>Fix a possible rendering issue when there a node link is expected but there is none<\/li>\n<\/ul>\n\n<h2>3.1.4<\/h2>\n\n<ul>\n<li>Fix exits were not shown for page titles<\/li>\n<\/ul>\n\n<h2>3.1.3<\/h2>\n\n<ul>\n<li>Piwik is now Matomo<\/li>\n<\/ul>\n\n<h2>3.1.2<\/h2>\n\n<ul>\n<li>Fix the word \"UsersFlow_LabelUsedSearch\" was not translated in a flattened report<\/li>\n<\/ul>\n\n<h2>3.1.1<\/h2>\n\n<ul>\n<li>Making sure UsersFlow will work correctly with Piwik 3.2.0<\/li>\n<\/ul>\n\n<h2>3.1.0<\/h2>\n\n<ul>\n<li>Updated d3.js to the latest v4 version<\/li>\n<li>Add possibility to view the flow for page titles<\/li>\n<\/ul>\n\n<h2>3.0.1<\/h2>\n\n<ul>\n<li>Added new feature to ignore domain when aggregating URLs.<\/li>\n<\/ul>\n\n<h2>3.0.0<\/h2>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/UsersFlow\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"VipDetector","displayName":"Vip Detector","owner":"deadda7a","description":"Detect visits from special predefined IP ranges and display the name.","homepage":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector","createdDateTime":"2023-07-12 13:40:02","donate":{"paypal":"sebastian.pfeifer@unicorncloud.org","bitcoin":null},"support":[{"name":"Email","key":"email","value":"sebastian@sebastian-elisa-pfeifer.eu","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector","type":"url"}],"isTheme":false,"keywords":["range","ip","isp"],"basePrice":0,"authors":[{"name":"Sebastian Elisa Pfeifer","email":"sebastian@sebastian-elisa-pfeifer.eu","homepage":"https:\/\/blog.sebastian-elisa-pfeifer.eu"}],"repositoryUrl":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector","lastUpdated":"2026-06-09 09:10:03","latestVersion":"3.0.3","numDownloads":16445,"screenshots":["https:\/\/plugins.matomo.org\/VipDetector\/images\/3.0.3\/access_from_vip.jpg"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"1","numContributors":"1","lastCommitDate":"2026-06-09 09:09:26"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2023-07-12 13:40:03","requires":{"matomo":">=4.15.0-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4445,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/VipDetector\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VipDetector\/download\/1.0.0"},{"name":"2.0.0","release":"2023-11-17 20:04:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1033,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/VipDetector\/2.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector\/commits\/v2.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VipDetector\/download\/2.0.0"},{"name":"2.0.1","release":"2024-01-17 19:56:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3167,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/VipDetector\/2.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector\/commits\/v.2.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VipDetector\/download\/2.0.1"},{"name":"3.0.0","release":"2024-12-16 13:38:02","requires":{"php":">=7.4.33,<=8.3.14","matomo":">=5.0.0,<=5.2.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":100,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/VipDetector\/3.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector\/commits\/v3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VipDetector\/download\/3.0.0"},{"name":"3.0.1","release":"2024-12-28 09:38:03","requires":{"php":">=7.4.33,<=8.3.15","matomo":">=5.0.0,<=5.2.1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":208,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/VipDetector\/3.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector\/commits\/v3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VipDetector\/download\/3.0.1"},{"name":"3.0.2","release":"2025-01-20 08:46:03","requires":{"php":">=7.4.33,<8.4","matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4285,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/VipDetector\/3.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector\/commits\/v3.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VipDetector\/download\/3.0.2"},{"name":"3.0.3","release":"2026-06-09 09:10:03","requires":{"php":">=7.4.33,<8.6","matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3207,"license":{"name":"MIT","url":"https:\/\/plugins.matomo.org\/VipDetector\/3.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/deadda7a\/Matomo-VIP-Detector\/commits\/v3.0.3","readmeHtml":{"description":"\n\n<p>This plugin links the IP of the visitor with a database of IP ranges to be able to recognize special visitors.\nThe IP ranges can be imported from a json file, either via a command line command or using the scheduler to download it.\nFor more infos check the docs and the FAQ.\nThe minimum required PHP version is 7.4. Recommended is 8.0+. Starting with v3.0.0, PHP 7.3 is no longer supported.<\/p>\n\n<h3>Warning<\/h3>\n\n<p>At the moment it is not possible to remove ranges from the database without manual database changes.\nAs a workaround you can uninstall the plugin (this deletes the tables) and install the plugin again.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Why<\/h2>\n\n<p>I am a let's say \"known person\" in the Austrian government, mostly because I was one of five people suing them in a civil rights case.\nAnd I've a blog. Said blog gets visited by government agencies regularly, and I wanted to have an overview of this.<\/p>\n\n<h2>Limitations<\/h2>\n\n<p>The subnets you want to match on can't be smaller than what you set as the anonymization factor for the IP addresses.\nFor example if you set the masking for 2 bytes as recommended, the smallest subnet you can match is a \/16, if you mask the last byte it is \/24.\nAt the moment it is not possible to remove ranges from the database without manual database changes.\nAs a workaround you can uninstall the plugin (this deletes the tables) and install the plugin again.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Quick start<\/h2>\n\n<ol>\n<li>Install the plugin<\/li>\n<li>Create your Json file\n\n<ol>\n<li>If you don't have one, you can use the one I <a href=\"https:\/\/ranges.vikoe.eu\/\">created<\/a> with Austrian Government Agencies<\/li>\n<\/ol><\/li>\n<li>Import it\n\n<ol>\n<li>Either on the console <code>.\/console vipdetector:import-data \/path\/to\/file.json<\/code><\/li>\n<li>Or use the Matomo scheduler via the Web Interface<\/li>\n<\/ol><\/li>\n<\/ol>\n\n<h3>Json File Structure<\/h3>\n\n<pre><code>[\n {\n  \"name\": \"Example Org 1\",\n  \"ranges\": [\n   \"192.0.2.0\/24\",\n   \"198.51.100.0\/24\"\n  ]\n },\n {\n  \"name\": \"Example Org 2\",\n  \"ranges\": [\n   \"203.0.113.0\/24\",\n   \"2001:db8::\/32\"\n  ]\n }\n]\n<\/code><\/pre>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>v3.0.3: Support PHP up to including 8.5<\/li>\n<li>v3.0.2: Ignore patch version in compatibility check<\/li>\n<li>v3.0.1: Matomo 5.2.1<\/li>\n<li>v3.0.0: GUI Import<\/li>\n<li>v2.0.1: PHP 7 compatibility<\/li>\n<li>v2.0.0: Matomo 5 compatibility<\/li>\n<li>v1.0.0: Initial release<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/VipDetector\/download\/3.0.3"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/VipDetector\/changelog"},"consumer":{"license":null}},{"name":"VisitorAvatar","displayName":"Visitor Avatar","owner":"surenjie","description":"Custom display visitors avatar(URL) and description(Title & Alt).","homepage":"http:\/\/plugins.piwik.org\/VisitorAvatar","createdDateTime":"2014-11-06 11:42:04","donate":{},"support":[],"isTheme":false,"keywords":["Intranet","Visitor","Avatar","Description"],"basePrice":0,"authors":[{"name":"renjie","email":"i@renjie.me","homepage":"https:\/\/github.com\/surenjie"}],"repositoryUrl":"https:\/\/github.com\/surenjie\/VisitorAvatar","lastUpdated":"2014-11-18 06:08:04","latestVersion":"0.2.2","numDownloads":9137,"screenshots":["https:\/\/plugins.matomo.org\/VisitorAvatar\/images\/0.2.2\/Step1_Tracking_Code.png","https:\/\/plugins.matomo.org\/VisitorAvatar\/images\/0.2.2\/Step2_Plugin_Settings.png","https:\/\/plugins.matomo.org\/VisitorAvatar\/images\/0.2.2\/Step3_Visitor_Profile.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/categories\/uncategorised.png","previews":[],"activity":{"numCommits":"14","numContributors":"1","lastCommitDate":"2014-11-18 06:08:02"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"0.1.0","release":"2014-11-06 11:42:04","requires":{"piwik":">=2.8.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":117,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/surenjie\/VisitorAvatar\/commits\/0.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorAvatar\/download\/0.1.0"},{"name":"0.2.0","release":"2014-11-13 08:36:03","requires":{"piwik":">=2.8.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/surenjie\/VisitorAvatar\/commits\/0.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorAvatar\/download\/0.2.0"},{"name":"0.2.1","release":"2014-11-13 09:34:03","requires":{"piwik":">=2.8.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":127,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/surenjie\/VisitorAvatar\/commits\/0.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorAvatar\/download\/0.2.1"},{"name":"0.2.2","release":"2014-11-18 06:08:04","requires":{"piwik":">=2.5.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":8890,"license":{"name":"GPL v3","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/surenjie\/VisitorAvatar\/commits\/0.2.2","readmeHtml":{"description":"\n\n<ul>\n<li><p>Step1 Tracking Code<\/p>\n\n<p>Reference:<\/p>\n\n<p>http:\/\/piwik.org\/docs\/custom-variables\/#track-a-custom-variable-in-javascript<\/p>\n\n<p>http:\/\/developer.piwik.org\/api-reference\/tracking-javascript#custom-variables<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>\/\/ you can set up to 5 custom variables for each visitor\n_paq.push([\n    \"setCustomVariable\", \n    1, \n    \"RTX\", \n    document.cookie.match(new RegExp(\"(^| )_login_name=([^;]*)(;|$)\"))[2], \n    \"visit\"\n]);\n<\/code><\/pre><\/li>\n<li><p>Step2 Plugin Settings<\/p>\n\n<ol>\n<li><p>Name of the custom variable :<\/p>\n\n<p>\"RTX\" (Previous set of custom variable names, no default)<\/p><\/li>\n<li><p>Visitor avatar url rules :<\/p>\n\n<p>\"\/\/rtx.oa.com\/avatars\/%s\/profile.jpg\" (The default is \"plugins\/VisitorAvatar\/images\/default_avatar.gif\")<\/p><\/li>\n<li><p>Visitor description text rules :<\/p>\n\n<p>\"my rtx is %s\" (The default is \"%s\")<\/p><\/li>\n<\/ol><\/li>\n<li><p>Step3 Visitor Profile<\/p>\n\n<p><em>View Visitors custom avatar and description<\/em><\/p><\/li>\n<\/ul>\n\n","faq":"","documentation":"","changelog":""},"download":"\/api\/2.0\/plugins\/VisitorAvatar\/download\/0.2.2"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/VisitorAvatar\/changelog"},"consumer":{"license":null}},{"name":"VisitorGenerator","displayName":"Visitor Generator","owner":"matomo-org","description":"Developer tool that lets you generate fake visits. Useful if you are working with plugins or themes or if you use the Matomo API.","homepage":"https:\/\/matomo.org","createdDateTime":"2013-10-31 22:23:05","donate":{},"support":[{"name":"Forum","key":"forum","value":"https:\/\/forum.matomo.org","type":"url"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator","type":"url"}],"isTheme":false,"keywords":["development","tools"],"basePrice":0,"authors":[{"name":"Matomo","email":"hello@matomo.org","homepage":"https:\/\/matomo.org"}],"repositoryUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator","lastUpdated":"2026-09-21 04:30:08","latestVersion":"6.0.1","numDownloads":94571,"screenshots":["https:\/\/plugins.matomo.org\/VisitorGenerator\/images\/6.0.1\/Visitor_Generator.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/VisitorGenerator.png","previews":[],"activity":{"numCommits":"476","numContributors":"53","lastCommitDate":"2026-10-21 04:25:29"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"development","categories":["development"],"promotions":{},"versions":[{"name":"1.0","release":"2013-10-31 22:23:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.0"},{"name":"1.0.1","release":"2013-11-01 01:30:04","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.0.1"},{"name":"1.0.2","release":"2013-11-01 01:44:05","requires":{"piwik":">=2.0.0","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1656,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.0.2"},{"name":"1.1","release":"2014-04-02 03:10:12","requires":{"piwik":">=2.2.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":668,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.1"},{"name":"1.2","release":"2014-05-04 22:30:16","requires":{"piwik":">=2.2.0-b19","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":487,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.2"},{"name":"1.2.1","release":"2014-05-22 04:00:19","requires":{"piwik":">=2.2.0-b19","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":392,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.2.1"},{"name":"1.2.2","release":"2014-06-02 10:18:21","requires":{"piwik":">=2.4.0-b1","php":">=5.3.0"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":12067,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.2.2"},{"name":"1.2.3","release":"2016-01-17 22:52:09","requires":{"piwik":">=2.15.0","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3599,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.2.3"},{"name":"3.0.0","release":"2016-09-13 22:08:09","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2558,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/3.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/3.0.0"},{"name":"1.2.4","release":"2016-10-06 02:10:08","requires":{"piwik":">=2.15.0,<3.0.0-b1","php":">=5.3.3"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3485,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/1.2.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/1.2.4"},{"name":"3.0.1","release":"2017-11-01 21:54:09","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":3539,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/3.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/3.0.1"},{"name":"3.1.0","release":"2018-04-03 03:42:08","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":2057,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/3.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/3.1.0"},{"name":"3.1.1","release":"2018-09-03 21:56:09","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":5480,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/3.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/3.1.1"},{"name":"3.1.2","release":"2019-10-21 19:24:10","requires":{"piwik":">=3.0.0-b1,<4.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":9880,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/3.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/3.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/3.1.2"},{"name":"4.0.0","release":"2020-07-30 09:56:18","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":367,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/4.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/4.0.0"},{"name":"4.0.1","release":"2020-10-06 20:04:06","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":100,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/4.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/4.0.1"},{"name":"4.0.2","release":"2020-11-02 20:12:06","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":647,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/4.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/4.0.2"},{"name":"4.0.3","release":"2021-01-20 07:50:08","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":1398,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/4.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/4.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/4.0.3"},{"name":"4.0.4","release":"2021-07-15 04:14:06","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1835,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/4.0.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/4.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/4.0.4"},{"name":"4.0.5","release":"2021-11-29 06:52:06","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2042,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/4.0.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/4.0.5"},{"name":"4.0.6","release":"2022-08-01 08:16:06","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1157,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/4.0.6\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/4.0.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/4.0.6"},{"name":"4.0.7","release":"2022-09-26 05:40:06","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11684,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/4.0.7\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/4.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/4.0.7"},{"name":"5.0.0","release":"2023-05-07 23:00:06","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2475,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.0.0-b1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.0.0"},{"name":"5.0.1","release":"2024-03-11 04:16:06","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":900,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.0.1"},{"name":"5.0.2","release":"2024-04-08 01:42:06","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":409,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.0.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.0.2"},{"name":"5.0.3","release":"2024-04-22 07:40:06","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4097,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.0.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.0.3"},{"name":"5.1.0","release":"2024-09-09 03:04:06","requires":{"matomo":">=5.2.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2358,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.1.0"},{"name":"5.1.1","release":"2025-02-17 04:10:06","requires":{"matomo":">=5.2.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4228,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.1.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.1.1"},{"name":"5.1.2","release":"2025-08-18 08:16:06","requires":{"matomo":">=5.2.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":302,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.1.2\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.1.2"},{"name":"5.1.3","release":"2025-09-01 08:12:06","requires":{"matomo":">=5.2.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2364,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.1.3\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.1.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.1.3"},{"name":"5.1.4","release":"2025-11-11 01:26:06","requires":{"matomo":">=5.2.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":513,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.1.4\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.1.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.1.4"},{"name":"5.1.5","release":"2025-11-24 04:06:06","requires":{"matomo":">=5.2.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":11623,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/5.1.5\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/5.1.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/5.1.5"},{"name":"6.0.0","release":"2026-08-24 06:01:26","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":101,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/6.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/6.0.0"},{"name":"6.0.1","release":"2026-09-21 04:30:08","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":83,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/6.0.1\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/commits\/6.0.1","readmeHtml":{"description":"\n\n<p>Plugin to create fake visits, websites, users and goals. This can be used by Matomo users or developers as an easy way to generate fake data to populate Matomo reports.<\/p>\n\n<p>You can overwrite the log files that are used to generate fake visits in <a href=\"https:\/\/github.com\/matomo-org\/plugin-VisitorGenerator\/blob\/master\/data\">plugins\/VisitorGenerator\/data<\/a> or add new logs to the <code>data<\/code> directory. All files ending with <code>*.log<\/code> will be replayed.<\/p>\n\n<p>Plugin developers can provide their own log files by placing '*.log' files within a 'data' directory of their plugin. This way plugin developers make sure there will be always useful test data.<\/p>\n\n<h3>Usage<\/h3>\n\n<h4>UI<\/h4>\n\n<p>The plugin adds a new item to the Matomo admin UI visible only for users having Super User access under the section \"Development\". There you can select a site and for how many days in the past you want to generate new visits.<\/p>\n\n<p>Note: you need to first enable the Development mode in Matomo. In the root directory of your Matomo install, run the following command to enable development mode: <code>.\/console development:enable<\/code><\/p>\n\n<h4>CLI<\/h4>\n\n<p>It also adds the following commands to the <a href=\"http:\/\/developer.matomo.org\/guides\/piwik-on-the-command-line\">Matomo CLI tool<\/a>:<\/p>\n\n<ul>\n<li><p>Generate visits<\/p><\/li>\n<li><p>Generate goals<\/p><\/li>\n<li>Generate users<\/li>\n<li>Generate websites<\/li>\n<li>Generate annotation<\/li>\n<li>Generate visits directly to database<\/li>\n<li>Shorten log file<\/li>\n<li>Anonymize log file<\/li>\n<\/ul>\n\n<h5>Examples<\/h5>\n\n<ul>\n<li><code>.\/console visitorgenerator:generate-annotation --idsite 5<\/code> generate one annotation for the current day for site with id 5<\/li>\n<li><code>.\/console visitorgenerator:generate-goals --idsite 5<\/code> generates some predefined goals for site with id 5<\/li>\n<li><code>.\/console visitorgenerator:generate-users --limit 100<\/code>  generates 100 users<\/li>\n<li><code>.\/console visitorgenerator:generate-websites --limit 100<\/code> generates 100 websites<\/li>\n<li><code>.\/console visitorgenerator:generate-visits --idsite 5<\/code>  generates many visits for site with id 5 for today<\/li>\n<li><code>.\/console visitorgenerator:generate-visits --idsite 5 --days 2<\/code> generates many visits for site with id 5 for today and yesterday<\/li>\n<li><code>.\/console visitorgenerator:anonymize-log \/path\/to\/log<\/code> takes an Apache log file, anonymizes it and places it in a data directory so it will be replayed the next time \"generate-visits\" is executed<\/li>\n<li><code>.\/console visitorgenerator:shorten-log \/path\/to\/file.log &gt; file.short.log<\/code> takes a large Apache log file and keeps only a small number of logs per day<\/li>\n<li><code>.\/console visitorgenerator:generate-visits --idsite 5 --custom-matomo-url=http:\/\/example.com\/<\/code> Uses 'http:\/\/example.com\/' as Matomo-URL and generates many visits for site with id 5 for today<\/li>\n<li><ul>\n<li><code>.\/console visitorgenerator:generate-visits-db --idsite 5 --limit-visits=200 --days=3 --threads=8<\/code> generate 200 visits per day for the last three days directly in the database, using 8 threaded processes<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>Synthetic visit locations<\/h4>\n\n<p>Synthetic visits use over 13,000 predefined places grouped by country and region. Each\nvisit receives a matching country, region, city and coordinates rounded to two\ndecimal places, as in normal Matomo geolocation. The list combines population-based\nselection with coverage of available regions and geographically dispersed populated\nplaces. Additional towns fill gaps in countries with sparse source coverage. Individual places are selected equally. It works without a GeoIP database.<\/p>\n\n<p>Both synthetic commands accept a two-letter <code>--country<\/code> code and an optional ISO\nregion suffix in <code>--region<\/code>. Codes are case-insensitive. A region requires a country,\nand both must have places in the bundled list. For example:<\/p>\n\n<pre><code>.\/console visitorgenerator:generate-visits --idsite=1 --no-logs --country=US --region=CA\n.\/console visitorgenerator:generate-visits-db --idsite=1 --limit-visits=200 --country=DE --threads=2\n<\/code><\/pre>\n\n<p>Location filters on <code>generate-visits<\/code> require <code>--no-logs<\/code> and cannot be combined\nwith <code>--no-fake<\/code>. Imported logs retain their original behaviour. IP addresses and\nbrowser languages are generated independently of the selected place. Places without a resolved region are omitted, so the available countries and regions\nare limited to those represented in the list.<\/p>\n\n<h4>Other notes<\/h4>\n\n<p>VisitorGenerator makes a lot of requests to the Matomo tracking API to send the visits, so if your server blocks requests based on rules (e.g. with mod_security), you might want to create an exception rule for VisitorGenerator.<\/p>\n\n<p>Alternatively you can generate visit test data quickly without using the tracker at all using the <code>generate-visits-db<\/code> option.<\/p>\n\n","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>1.0 Initial release<\/li>\n<li>1.1 New features:\n\n<ul>\n<li>Added CLI commands<\/li>\n<li>Added possibility to generate websites, users and goals<\/li>\n<li>Replay all log files within the data directory<\/li>\n<\/ul><\/li>\n<li>1.2 New features:\n\n<ul>\n<li>New log file added<\/li>\n<li>Added possibility to shorten and anonymize log files<\/li>\n<li>Added possibility to let plugins define their own log files<\/li>\n<li>Added possibility to generate annotations<\/li>\n<li>Replay only log entries having the same day of the month<\/li>\n<\/ul><\/li>\n<li>1.2.1 New workaround:\n\n<ul>\n<li>When force_ssl is enabled, and visits are generated on <code>localhost<\/code>, force to use HTTP instead of HTTPS<\/li>\n<\/ul><\/li>\n<li>1.2.3 Minor UI tweaks to make it consistent with Piwik look &amp; feel<\/li>\n<li>3.0.0\n\n<ul>\n<li>Compatibility with Piwik 3.0<\/li>\n<\/ul><\/li>\n<li>3.0.1\n\n<ul>\n<li>Adds tracking of bandwidth<\/li>\n<li>Adds tracking of custom dimensions and ecommerce cart updates + orders<\/li>\n<\/ul><\/li>\n<li>3.1.0\n\n<ul>\n<li>Add new command to log visits live as if they were from real incoming traffic<\/li>\n<\/ul><\/li>\n<li>3.1.1\n\n<ul>\n<li>Correct URL processing in manipulateRequestUrl after LogHelper regex change<\/li>\n<li>Fix log out of order exception that occurs on large logs<\/li>\n<li>Adds search engine referrers without keyword<\/li>\n<\/ul><\/li>\n<li>3.1.2\n\n<ul>\n<li>New timeout option<\/li>\n<\/ul><\/li>\n<li>3.2.0\n\n<ul>\n<li>PHP 7.4 compatibility<\/li>\n<li>Rename from Piwik to Matomo<\/li>\n<li>command line option <code>custom-piwik-url<\/code> was removed, use <code>custom-matomo-url<\/code> instead<\/li>\n<\/ul><\/li>\n<li>4.0.0\n\n<ul>\n<li>Compatibility with Matomo 4<\/li>\n<\/ul><\/li>\n<li>4.0.1\n\n<ul>\n<li>Fix generating visits may cause issues in Matomo 4<\/li>\n<\/ul><\/li>\n<li>4.0.2\n\n<ul>\n<li>Compatibility with Matomo 4<\/li>\n<\/ul><\/li>\n<li>4.0.3\n\n<ul>\n<li>Adds tracking for media analytics plugin<\/li>\n<li>Fix menu item visibility<\/li>\n<li>Translation updates<\/li>\n<\/ul><\/li>\n<li>4.0.4\n\n<ul>\n<li>Add support for Matomo for WordPress<\/li>\n<\/ul><\/li>\n<li>4.0.5\n\n<ul>\n<li>Fix deprecation warnings for php8.1<\/li>\n<\/ul><\/li>\n<li>4.0.6\n\n<ul>\n<li>Translation changes<\/li>\n<\/ul><\/li>\n<li>4.0.7\n\n<ul>\n<li>Ensure console commands return integers<\/li>\n<\/ul><\/li>\n<li>5.0.0\n\n<ul>\n<li>Compatibility with Matomo 5<\/li>\n<\/ul><\/li>\n<li>5.0.1\n\n<ul>\n<li>Added generate-visits-db command to directly insert visits into the db<\/li>\n<\/ul><\/li>\n<li>5.0.2\n\n<ul>\n<li>Updated README url in UI<\/li>\n<\/ul><\/li>\n<li>5.0.3\n\n<ul>\n<li>Added plugin category for Marketplace<\/li>\n<\/ul><\/li>\n<li>5.1.0 - 2024-09-09\n\n<ul>\n<li>Replaced Symfony\\Process with Piwik\\Process<\/li>\n<\/ul><\/li>\n<li>5.1.1 - 2025-02-17\n\n<ul>\n<li>Fixed deprecation warning from dependency<\/li>\n<\/ul><\/li>\n<li>5.1.2 - 2025-08-18\n\n<ul>\n<li>Started generating AI referrer URLs<\/li>\n<\/ul><\/li>\n<li>5.1.3 - 2025-09-01\n\n<ul>\n<li>Fix for generation of ecommerce order ID 0<\/li>\n<\/ul><\/li>\n<li>5.1.4 - 2025-11-10\n\n<ul>\n<li>Randomly mark visits as NovaAct agent also<\/li>\n<li>Added new command to send fake AI Bot Requests<\/li>\n<\/ul><\/li>\n<li>5.1.5 - 2025-11-24\n\n<ul>\n<li>Generate string order IDs occasionally<\/li>\n<\/ul><\/li>\n<li><p>6.0.0 - 2026-08-09<\/p>\n\n<ul>\n<li>Compatibility with Matomo 6<\/li>\n<\/ul><\/li>\n<li><p>6.0.1<\/p>\n\n<ul>\n<li>Generate consistent locations for synthetic visits with population-based selection and broad geographic coverage, including supplemental towns in sparsely represented countries, with optional country and region CLI filters.<\/li>\n<\/ul><\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/VisitorGenerator\/download\/6.0.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/VisitorGenerator\/changelog"},"consumer":{"license":null}},{"name":"WeatherReports","displayName":"Weather Reports","owner":"openmost","description":"Track the weather of each visit and see how temperature, rain or wind affect traffic and conversions.","homepage":"https:\/\/openmost.com\/matomo\/extensions\/weather-reports","createdDateTime":"2023-09-30 09:30:03","donate":{},"support":[{"name":"Email","key":"email","value":"ronan@openmost.com","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/openmost\/WeatherReports\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/openmost\/WeatherReports","type":"url"}],"isTheme":false,"keywords":["Report","reports","Visits","Weather","Meteo","Reporting","Openmost"],"basePrice":0,"authors":[{"name":"Openmost","email":"ronan@openmost.com","homepage":"https:\/\/openmost.com"}],"repositoryUrl":"https:\/\/github.com\/openmost\/WeatherReports","lastUpdated":"2026-10-21 21:24:23","latestVersion":"5.3.1","numDownloads":14366,"screenshots":["https:\/\/plugins.matomo.org\/WeatherReports\/images\/5.3.1\/Conversion_rate_by_weather_condition.png","https:\/\/plugins.matomo.org\/WeatherReports\/images\/5.3.1\/Weather_card_in_the_visits_log.png","https:\/\/plugins.matomo.org\/WeatherReports\/images\/5.3.1\/Weather_reports_temperature_cloud_and_condition.png","https:\/\/plugins.matomo.org\/WeatherReports\/images\/5.3.1\/Weather_tag_in_Tag_Manager.png","https:\/\/plugins.matomo.org\/WeatherReports\/images\/5.3.1\/Weather_units_per_website.png"],"coverImage":"https:\/\/plugins.matomo.org\/WeatherReports\/images\/5.3.1\/_cover.png","previews":[{"type":"video","provider":"youtube","url":"https:\/\/www.youtube-nocookie.com\/embed\/Ut3gFnzCizw","id":"Ut3gFnzCizw"}],"activity":{"numCommits":"38","numContributors":"1","lastCommitDate":"2026-10-21 21:23:24"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"integration","categories":["integration"],"promotions":{},"versions":[{"name":"4.0.0","release":"2023-09-30 09:30:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.0"},{"name":"4.0.1","release":"2023-09-30 09:36:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.1"},{"name":"4.0.2","release":"2023-09-30 09:58:03","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":18,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.2"},{"name":"4.0.5","release":"2023-09-30 16:56:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":12,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.5"},{"name":"4.0.7","release":"2023-10-01 09:00:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.7","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.7"},{"name":"4.0.8","release":"2023-10-01 09:04:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.8","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.8"},{"name":"4.0.9","release":"2023-10-01 10:06:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.9","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.9"},{"name":"4.0.10","release":"2023-10-01 10:38:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.10","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.10"},{"name":"4.0.11","release":"2023-10-01 10:40:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.11","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.11"},{"name":"4.0.12","release":"2023-10-01 11:32:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":73,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.12","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.12"},{"name":"4.0.13","release":"2023-10-02 16:58:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.0.13","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.0.13"},{"name":"4.1.0","release":"2023-10-02 17:26:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":8,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.1.0"},{"name":"4.2.0","release":"2023-10-02 17:58:03","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.2.0"},{"name":"4.2.1","release":"2023-10-02 18:10:04","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":82,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.2.1"},{"name":"4.3.0","release":"2023-10-07 09:48:04","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.3.0"},{"name":"4.3.1","release":"2023-10-07 10:24:04","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.3.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.3.1"},{"name":"4.3.2","release":"2023-10-07 15:50:04","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":170,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.3.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.3.2"},{"name":"4.3.3","release":"2023-11-02 16:32:04","requires":{"matomo":">=4.15.1-stable,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":311,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.3.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.3.3"},{"name":"5.0.0","release":"2023-11-22 16:28:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.0.0"},{"name":"4.3.4","release":"2023-11-22 16:40:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.3.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.3.4"},{"name":"4.3.5","release":"2023-11-22 17:10:04","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1656,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.3.5","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.3.5"},{"name":"5.0.1","release":"2023-11-22 17:12:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1788,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.0.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.0.1"},{"name":"5.0.2","release":"2024-03-05 18:02:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":664,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.0.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.0.2"},{"name":"4.3.6","release":"2024-03-05 18:02:10","requires":{"matomo":">=4.0.0-b1,<5.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1515,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/4.3.6","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/4.3.6"},{"name":"5.0.3","release":"2024-06-27 06:51:08","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":9,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.0.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.0.3"},{"name":"5.0.4","release":"2024-06-27 12:30:09","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2205,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.0.4","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.0.4"},{"name":"5.1.0","release":"2025-11-21 00:00:07","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":15,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.1.0"},{"name":"5.1.1","release":"2025-11-21 08:38:05","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.1.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.1.1"},{"name":"5.1.2","release":"2025-11-21 08:44:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1681,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.1.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.1.2"},{"name":"5.2.0","release":"2026-05-06 20:06:05","requires":{"matomo":">=5.10.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3925,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.2.0"},{"name":"6.0.0","release":"2026-09-15 18:28:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":2,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/6.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/6.0.0"},{"name":"6.1.0","release":"2026-09-15 18:58:11","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/6.1.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/6.1.0"},{"name":"6.2.0","release":"2026-09-15 19:12:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":1,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/6.2.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/6.2.0"},{"name":"6.2.1","release":"2026-09-15 19:20:05","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":46,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/6.2.1","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/6.2.1"},{"name":"6.2.2","release":"2026-10-14 14:36:16","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":14,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/6.2.2","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/6.2.2"},{"name":"5.3.0","release":"2026-10-14 15:32:19","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":63,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.3.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.3.0"},{"name":"6.2.3","release":"2026-10-21 21:10:21","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":3,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/6.2.3","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/6.2.3"},{"name":"5.3.1","release":"2026-10-21 21:24:23","requires":{"matomo":">=5.0.0,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":70,"license":{"name":"GPL v3+","url":""},"repositoryChangelogUrl":"https:\/\/github.com\/openmost\/WeatherReports\/commits\/5.3.1","readmeHtml":{"description":"\n\n<p>Track the weather during your visitors' sessions and see how temperature, rain or wind influence traffic, behaviour and conversions.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>11 weather dimensions<\/strong>: Condition, Cloud, Temperature, Felt temperature, Humidity, Pressure, Precipitation, UV, Visibility, Wind direction and Wind speed, each with its own report, segment and API method, in the <strong>Visitors &gt; Weather<\/strong> section.<\/li>\n<li><strong>Goals and ecommerce on every dimension<\/strong>: conversion rate, conversions and revenue broken down by weather. Weather is also stored with each conversion.<\/li>\n<li><strong>Readable reports<\/strong>: bar charts with numeric ordering for scale reports, top 15 rows plus \"Others\" for Condition and Wind direction.<\/li>\n<li><strong>Units per website<\/strong>: choose \u00b0C\/\u00b0F, mm\/in, mb\/inHg, km\/mi and km\/h\/mph on the <strong>Administration &gt; Websites &gt; Weather<\/strong> page. Values are not converted: the Weather tag must send them in these units.<\/li>\n<li><strong>Matomo Tag Manager template<\/strong>: a ready-to-use <strong>Weather<\/strong> tag (Openmost category) that calls WeatherAPI with your key, in the language and units of your choice, once per browser session.<\/li>\n<li><strong>Visitor log card<\/strong>: the weather of each visit with its units, following Matomo's light and dark themes.<\/li>\n<li><strong>Validated tracking<\/strong>: out-of-range or malformed values are dropped when tracking.<\/li>\n<li><strong>Classic tracking code supported<\/strong>: push the values yourself with <code>_paq.push(['WeatherReports.setWeather', ...])<\/code> if you do not use Tag Manager.<\/li>\n<li>Available in 13 languages.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>Matomo 5.0.0 or later, below 6.0.0<\/li>\n<li>A <a href=\"https:\/\/www.weatherapi.com\/\">WeatherAPI<\/a> API key (the free plan includes 1 million calls per month)<\/li>\n<li>Matomo Tag Manager (optional, recommended)<\/li>\n<\/ul>\n\n<h3>Installation \/ Configuration<\/h3>\n\n<ol>\n<li>Install the plugin from the Matomo Marketplace, or upload it to <code>plugins\/WeatherReports<\/code>, then activate it. Matomo adds the <code>weather_*<\/code> columns to the visit and conversion tables.<\/li>\n<li>Set the units of each website in <strong>Administration &gt; Websites &gt; Weather<\/strong> (website admin access).<\/li>\n<li>In Matomo Tag Manager, add the <strong>Weather<\/strong> tag, enter your WeatherAPI key, choose the language and the same units as the website, and publish the container. Without Tag Manager, use the classic code snippet from the documentation.<\/li>\n<\/ol>\n\n<p>After a plugin update, republish your Tag Manager container to serve the latest Weather tag.<\/p>\n\n<p>Before you deactivate or uninstall the plugin, delete the Weather tags of your containers, or keep the TagManagerExtended plugin active. Matomo Tag Manager cannot display a tag whose template comes from a disabled plugin, the tags list of the container then stays on \"Loading data\".<\/p>\n\n<h3>Privacy and data<\/h3>\n\n<ul>\n<li>The Weather tag calls WeatherAPI from the visitor's browser, so WeatherAPI receives the visitor IP to find the local weather.<\/li>\n<li>No other third-party service is contacted. Mention WeatherAPI in your privacy policy.<\/li>\n<li>The WeatherAPI key is part of the Tag Manager tag, so it is visible in your website code.<\/li>\n<\/ul>\n\n<h3>Need help with Matomo?<\/h3>\n\n<p>Openmost is an official Matomo Implementation Partner. We connect Matomo to external data sources and the rest of your stack with <a href=\"https:\/\/openmost.com\/matomo\/services\/integration?utm_source=matomo_marketplace&amp;utm_medium=referral&amp;utm_campaign=services&amp;utm_content=weatherreports\">Matomo integrations<\/a> built on official APIs, with documented and privacy-checked data flows.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>How do I install this plugin?<\/h3>\n\n<p>This plugin is available in the official Matomo Marketplace. Install it the same way as any other\nplugin:<\/p>\n\n<ul>\n<li>Go to the administration panel.<\/li>\n<li>Open <em>Marketplace \u2192 Plugins<\/em>.<\/li>\n<li>Search for <strong>WeatherReports<\/strong>, then install and activate.<\/li>\n<li>Follow the <a href=\"index.md\">setup documentation<\/a> to wire up the data-collection snippet.<\/li>\n<\/ul>\n\n<h3>Can I use a weather API other than WeatherAPI?<\/h3>\n\n<p>Yes, the plugin only cares about the values pushed via <code>_paq.push(['WeatherReports.setWeather', \u2026])<\/code>.\nAny source that fits that contract works. We recommend <a href=\"https:\/\/www.weatherapi.com\/\">WeatherAPI<\/a>\nbecause it has a free 1M-call tier and we test against its payload, but you're free to swap it.<\/p>\n\n<h3>Do the reports support goals and conversions?<\/h3>\n\n<p><strong>Yes, every weather report supports goal metrics and ecommerce conversions.<\/strong> When you select a\ngoal in the report's metric switcher, you get conversion rate, conversions and revenue broken down\nby the weather dimension. Weather is also persisted on <code>log_conversion<\/code>, so historical conversions\nremain pinned to the weather they were tracked under.<\/p>\n\n<h3>Do I need to republish my Matomo Tag Manager container after a plugin update?<\/h3>\n\n<p><strong>Yes<\/strong>, if the bundled Weather tag template changes. Matomo Tag Manager bakes the tag template\ninto the published container JS file at publish time, so the older JS keeps serving until you\npublish a new version. v5.2.0, for example, removed the <code>ipapi.co<\/code> IP lookup, that change only\ntakes effect after a republish.<\/p>\n\n<h3>Is the plugin active for all Matomo users on my instance?<\/h3>\n\n<p>Yes, once you activate it, every user with access to the visitor reports can see Weather reports\nand segments.<\/p>\n\n<h3>Where are the per-site unit settings?<\/h3>\n\n<p>In <em>Administration \u2192 Websites \u2192 Weather<\/em> (website admin access), choose the website with the site\nselector. Set Temperature (\u00b0C\/\u00b0F), Precipitation (mm\/in), Pressure (mb\/inHg), Visibility (km\/mi) and\nWind speed (km\/h\/mph) per site. The visitor log uses these units;\nreport values are stored in whatever unit you tracked them with.<\/p>\n\n<h3>How do I run the test suite?<\/h3>\n\n<pre><code>.\/vendor\/bin\/phpunit -c plugins\/WeatherReports\/phpunit.xml --testsuite \"WeatherReports Unit\"\n<\/code><\/pre>\n\n<h3>How can I contribute to this plugin?<\/h3>\n\n<p>Open an issue or pull request on\n<a href=\"https:\/\/github.com\/openmost\/WeatherReports\">github.com\/openmost\/WeatherReports<\/a>. Any contribution is welcome, bug reports, translations, doc improvements, or features.<\/p>\n\n<h3>How long will this plugin be maintained?<\/h3>\n\n<p>As long as possible. We use it on our own Matomo instances, so issues and fixes are typically\naddressed quickly.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>1- Install the plugin from the marketplace or via GitHub<\/h3>\n\n<p>Install this plugin from the Marketplace as super user or download the plugin and install it on your server from FTP in\nthe <code>\/plugins<\/code> folder.<\/p>\n\n<p>Upon activation, this plugin will automatically update the structure of your database's <code>log_visit<\/code> and\n<code>log_conversion<\/code> tables by adding 11 new columns prefixed <code>weather_<\/code> for the new dimensions.<\/p>\n\n<p>Then set the units of each website in <em>Administration \u2192 Websites \u2192 Weather<\/em> (admin access to the website needed). Use\nthe same units in the Weather tag or in your snippet: values are stored as sent, they are not converted.<\/p>\n\n<h3>2 - Fetch data on your website<\/h3>\n\n<p>This plugin retrieves weather data from <a href=\"https:\/\/www.weatherapi.com\">WeatherAPI<\/a> and sends it to your Matomo\ninstance as Weather reports. Because data only needs to be retrieved once per visit, the snippet uses a <code>sessionStorage<\/code>\nflag to avoid duplicate requests. The flag is purged when the browser is closed.<\/p>\n\n<p>You'll need to generate your own API key (Free plan is up to 1 Million calls per month).\nReplace <code>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<\/code> with your API key and adjust the language if necessary.<\/p>\n\n<p>WeatherAPI's <code>q=auto:ip<\/code> lets the API auto-detect the visitor's IP from the request, so no third-party IP-lookup\nservice is required.<\/p>\n\n<h3>2 - 1 With Matomo Tag Manager (Recommended)<\/h3>\n\n<p>Use the <strong>Weather<\/strong> custom Tag in Matomo Tag Manager (in the <em>Openmost<\/em> section). Set your API key, choose units\nand language, and publish a new container version.<\/p>\n\n<blockquote>\n  <p><strong>Upgrading from a previous version of the plugin?<\/strong> The published container is a static JS file\n  built at publish time, so any improvements to the bundled tag template (the <code>Weather<\/code> tag) only\n  take effect once you <strong>republish<\/strong> your container. If you skip this step the older tag JS keeps\n  serving, for example, the <code>ipapi.co<\/code> lookup that was removed in v5.2.0 will keep firing until\n  you republish.<\/p>\n<\/blockquote>\n\n<h3>2 - 2 OR with Matomo classic code (only if you don't use Matomo Tag Manager)<\/h3>\n\n<p>Implement the <code>_paq.push(['WeatherReports.setWeather'])<\/code> method on your website using the following snippet.<\/p>\n\n<blockquote>\n  <p><strong>Upgrading from a previous version?<\/strong> This snippet has been simplified, <code>ipapi.co<\/code> is no longer\n  needed (WeatherAPI auto-detects the IP via <code>q=auto:ip<\/code>). Replace the old snippet on your site\n  with the one below to drop the third-party lookup.<\/p>\n<\/blockquote>\n\n<pre><code>&lt;!-- Openmost WeatherReports code for Matomo --&gt;\n&lt;script&gt;\n    (async function () {\n        const apiKey = \"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\";\n        const lang = \"en\"; \/\/ see https:\/\/www.weatherapi.com\/docs\/\n\n        if (!apiKey || sessionStorage.getItem(\"matomoWeather\")) return;\n\n        try {\n            const response = await fetch(\n                `https:\/\/api.weatherapi.com\/v1\/current.json?key=${encodeURIComponent(apiKey)}&amp;q=auto:ip&amp;aqi=no&amp;lang=${encodeURIComponent(lang)}`\n            );\n            if (!response.ok) return;\n            const data = await response.json();\n            const weather = data &amp;&amp; data.current;\n            if (!weather) return;\n\n            _paq.push([\"WeatherReports.setWeather\",\n                weather.cloud,                       \/\/ Cloud\n                weather.condition &amp;&amp; weather.condition.text, \/\/ Condition\n                weather.feelslike_c,                 \/\/ Felt temperature in \u00b0C (use feelslike_f for \u00b0F)\n                weather.humidity,                    \/\/ Humidity\n                weather.precip_mm,                   \/\/ Precipitation in mm (use precip_in for inches)\n                weather.pressure_mb,                 \/\/ Pressure in mb (use pressure_in for inches)\n                weather.temp_c,                      \/\/ Temperature in \u00b0C (use temp_f for \u00b0F)\n                weather.uv,                          \/\/ UV\n                weather.vis_km,                      \/\/ Visibility in km (use vis_miles for miles)\n                weather.wind_dir,                    \/\/ Wind direction (compass)\n                weather.wind_kph                     \/\/ Wind speed in km\/h (use wind_mph for mph)\n            ]);\n\n            try { sessionStorage.setItem(\"matomoWeather\", JSON.stringify(weather)); } catch (_) {}\n        } catch (_) { \/* swallow network errors *\/ }\n    })();\n&lt;\/script&gt;\n&lt;!-- End Openmost WeatherReports code for Matomo --&gt;\n<\/code><\/pre>\n\n<h3>Optional: resolve the visitor IP via Matomo<\/h3>\n\n<p>If you sit behind a CDN\/proxy and <code>q=auto:ip<\/code> can't see the real client IP, the plugin exposes a small public\nendpoint that returns the IP as Matomo resolves it (honouring <code>proxy_client_headers<\/code> from your <code>config.ini.php<\/code>):<\/p>\n\n<pre><code>GET {matomoUrl}\/index.php?module=WeatherReports&amp;action=getUserIp\n\u2192 {\"ip\": \"203.0.113.5\"}\n<\/code><\/pre>\n\n<p>You can then call WeatherAPI with <code>q=&lt;that_ip&gt;<\/code> instead of <code>auto:ip<\/code>.<\/p>\n\n<h3>3 - Enjoy new reports and features<\/h3>\n\n<p>You will find the different reports in the <strong>Weather<\/strong> section of the Matomo <em>Visitors<\/em> menu.\nThese reports support Matomo's automatic archiving CRON for better performance (recommended).<\/p>\n\n<p><strong>Dimensions, segments and API methods:<\/strong><\/p>\n\n<pre><code>| Dimension name   | Type   | Segment name           | API method                        | Tracking HTTP API parameter |\n|------------------|--------|------------------------|-----------------------------------|-----------------------------|\n| Condition        | string | weatherCondition       | WeatherReports.getCondition       | weather_condition           |\n| Cloud            | int    | weatherCloud           | WeatherReports.getCloud           | weather_cloud               |\n| Temperature      | float  | weatherTemperature     | WeatherReports.getTemperature     | weather_temperature         |\n| Felt temperature | float  | weatherFeltTemperature | WeatherReports.getFeltTemperature | weather_felt_temperature    |\n| Pressure         | float  | weatherPressure        | WeatherReports.getPressure        | weather_pressure            |\n| Precipitation    | float  | weatherPrecipitation   | WeatherReports.getPrecipitation   | weather_precipitation       |\n| Humidity         | int    | weatherHumidity        | WeatherReports.getHumidity        | weather_humidity            |\n| Uv               | float  | weatherUv              | WeatherReports.getUv              | weather_uv                  |\n| Visibility       | float  | weatherVisibility      | WeatherReports.getVisibility      | weather_visibility          |\n| Wind direction   | string | weatherWindDirection   | WeatherReports.getWindDirection   | weather_wind_direction      |\n| Wind speed       | float  | weatherWindSpeed       | WeatherReports.getWindSpeed       | weather_wind_speed          |\n<\/code><\/pre>\n\n<h3>Privacy note<\/h3>\n\n<p>This plugin asks WeatherAPI for the current weather at the visitor's IP. The IP is therefore shared with WeatherAPI\n(or whichever weather provider you configure). Make sure your privacy policy mentions this. The plugin no longer\ncalls any third-party IP-geolocation service.<\/p>\n\n<h3>Example WeatherAPI response<\/h3>\n\n<pre><code>{\n  \"last_updated\": \"2026-05-06 20:00\",\n  \"temp_c\": 13.2, \"temp_f\": 55.8,\n  \"is_day\": 1,\n  \"condition\": { \"text\": \"Overcast\", \"code\": 1009 },\n  \"wind_mph\": 6, \"wind_kph\": 9.7, \"wind_degree\": 346, \"wind_dir\": \"NNW\",\n  \"pressure_mb\": 1011, \"pressure_in\": 29.85,\n  \"precip_mm\": 0.08, \"precip_in\": 0,\n  \"humidity\": 67, \"cloud\": 100,\n  \"feelslike_c\": 12.5, \"feelslike_f\": 54.5,\n  \"vis_km\": 10, \"vis_miles\": 6,\n  \"uv\": 0\n}\n<\/code><\/pre>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h3>v5.3.1<\/h3>\n\n<ul>\n<li>Request parameters are read with <code>Piwik\\Request<\/code> instead of the deprecated <code>Common::getRequestVar<\/code>, ready for the next Matomo versions.<\/li>\n<\/ul>\n\n<h3>v5.3.0<\/h3>\n\n<blockquote>\n  <p><strong>No action required.<\/strong> Units already saved for your websites are kept.<\/p>\n<\/blockquote>\n\n<ul>\n<li>Requires Matomo 5.0.0 or higher again (<code>&gt;=5.0.0,&lt;6.0.0-b1<\/code>), instead of 5.10.0: nothing in the plugin needs Matomo 5.10.<\/li>\n<li>Weather units moved from the website edit form to a dedicated <em>Administration \u2192 Websites \u2192 Weather<\/em> page (Vue), with a site selector<\/li>\n<li>New API methods <code>WeatherReports.getSiteUnits<\/code> and <code>WeatherReports.setSiteUnits<\/code> (admin access)<\/li>\n<li>Units are still stored in the site settings table under the same names, values saved by previous versions are read<\/li>\n<li>Translations: Arabic, Chinese (simplified and traditional), Japanese, Polish and Portuguese added, the plugin is now available in 13 languages<\/li>\n<li>Shorter Marketplace description that fits the plugin cards, and campaign parameters on the Openmost links of the README.<\/li>\n<li>Weather tag help text added in all languages<\/li>\n<li>Smaller package: the Vue build artifacts that Matomo does not load (source maps, CommonJS bundle) and a PHPUnit cache file are no longer shipped.<\/li>\n<li>README: the plugin description now shows in the Description tab of the Matomo Marketplace.<\/li>\n<\/ul>\n\n<h3>v5.2.0<\/h3>\n\n<blockquote>\n  <p>\u26a0\ufe0f <strong>Action required after upgrading<\/strong>\n  1. <strong>Database migration<\/strong>, Matomo will prompt you to upgrade the schema on activation. <code>weather_pressure<\/code> and <code>weather_visibility<\/code> widen <code>INT \u2192 FLOAT<\/code>; <code>weather_wind_direction<\/code> narrows <code>VARCHAR(255) \u2192 VARCHAR(8)<\/code>. Existing data is preserved (the 16-point compass is \u22643 chars).\n  2. <strong>Republish your Matomo Tag Manager container.<\/strong> The bundled <code>Weather<\/code> tag template (<code>WeatherTag.web.js<\/code>) was rewritten, published containers keep serving the old JS until you publish a new version.\n  3. <strong>If you use the plain JS snippet<\/strong> (no MTM), copy the updated snippet from <code>docs\/index.md<\/code> so you also drop the third-party <code>ipapi.co<\/code> call.<\/p>\n<\/blockquote>\n\n<p><strong>Privacy \/ data flow<\/strong>\n- remove: third-party <code>ipapi.co<\/code> IP-lookup. The Matomo Tag Manager template now uses WeatherAPI's built-in <code>q=auto:ip<\/code> so visitor IPs are no longer shared with a second service.\n- add: public <code>WeatherReports&amp;action=getUserIp<\/code> Controller endpoint as a self-hosted IP-resolution fallback for CDN\/proxy setups (uses Matomo's <code>IP::getIpFromHeader()<\/code>, honours <code>proxy_client_headers<\/code>).\n- harden: tag JS now bails out cleanly on missing API key, HTTP errors, malformed responses, and unavailable <code>sessionStorage<\/code>.<\/p>\n\n<p><strong>Tracking &amp; validation<\/strong>\n- refactor: <code>Columns\/<\/code> now share a single <code>Base<\/code> class, ~1,500 lines of duplicated dimension boilerplate replaced by ~200 lines.\n- fix: input is type-cast (<code>int<\/code>\/<code>float<\/code>\/<code>string<\/code>) at the tracker via <code>Common::getRequestVar<\/code> instead of being stored as raw strings.\n- fix: out-of-range values are dropped at ingest:\n  - Cloud \/ Humidity: 0-100\n  - UV: 0-20\n  - Temperature \/ Felt temperature: -100..200\n  - Pressure: 0..2000 (covers both mb and inHg)\n  - Visibility \/ Precipitation \/ WindSpeed: 0..1000\n  - WindDirection: must match the 16-point compass (N, NNE, NE, ENE, \u2026, NNW)\n- fix: string columns (Condition, WindDirection) no longer write integer <code>0<\/code> when the request has no value, they store <code>null<\/code>.<\/p>\n\n<p><strong>Schema<\/strong>\n- fix: <code>weather_pressure<\/code> is now <code>FLOAT NULL<\/code> (was <code>INT(10)<\/code>) so values in inHg keep precision.\n- fix: <code>weather_visibility<\/code> is now <code>FLOAT NULL<\/code> (was <code>INT(10)<\/code>) so values in miles keep precision.\n- fix: <code>weather_wind_direction<\/code> is now <code>VARCHAR(8) NULL<\/code> (was <code>VARCHAR(255)<\/code>), the 16-point compass max is 3 chars.\n- A standard Matomo schema migration prompts admins on next activation; existing data is preserved (INT\u2192FLOAT widens losslessly).<\/p>\n\n<p><strong>Reports<\/strong>\n- fix: scale reports (Temperature, Pressure, Humidity, \u2026) sort numerically by label so chart x-axes read 1, 2, 10, 20 instead of 1, 10, 2, 20.\n- fix: categorical reports (Condition, WindDirection) sort by visit count and no longer collapse all rows into a single <code>0<\/code> bucket from a stray <code>(float)<\/code> cast.\n- add: categorical report tables show <strong>top 15<\/strong> rows + \"Others\" by default (was Matomo's 5).\n- chore: dedupe the rounding closure in <code>API.php<\/code>, six methods now share one <code>getRoundedScaleDataTable()<\/code> helper.<\/p>\n\n<p><strong>Visitor log<\/strong>\n- ui: redesigned weather panel as a themed card with a header line (<code>Weather \u00b7 Condition<\/code> + temperature with felt-temp suffix) and a 2-column metric grid below.\n- ui: units (<code>\u00b0C<\/code>\/<code>\u00b0F<\/code>, <code>mm<\/code>\/<code>in<\/code>, <code>mb<\/code>\/<code>inHg<\/code>, <code>km<\/code>\/<code>mi<\/code>, <code>km\/h<\/code>\/<code>mph<\/code>) are rendered next to each value, read from the existing per-site <code>MeasurableSettings<\/code> (those settings are now actually wired in).\n- ui: light\/dark theme aware, colors and surfaces use Matomo's CSS variables (<code>--theme-color-text<\/code>, <code>--theme-color-text-light<\/code>, <code>--theme-color-border<\/code>, <code>--theme-color-background-contrast<\/code>) with hex fallbacks. DarkTheme, GoogleTheme and Morpheus all match automatically.\n- ui: rows with no recorded value are hidden (no more bare <code>\u00b0C<\/code> \/ <code>mb<\/code> \/ <code>%<\/code> suffixes); the whole card is skipped if a visit has no weather data at all.\n- harden: <code>renderVisitorDetails<\/code> is wrapped in <code>try\/catch<\/code> and logs to <code>tmp\/logs\/<\/code> instead of breaking the visitor log if rendering fails.<\/p>\n\n<p><strong>Other<\/strong>\n- fix: removed broken <code>Live\\Model::getCRMData<\/code> \/ <code>getAdviews<\/code> calls in <code>WeatherReports.php<\/code> (copy-paste leftovers from another plugin; methods don't exist).\n- chore: deleted dead commented-out <code>MeasurableSettings::makeWeatherLangSetting<\/code> (~50 lines) and empty <code>config\/config.php<\/code> \/ <code>config\/tracker.php<\/code>.\n- chore: dropped boilerplate example comments from every <code>Columns\/*.php<\/code> file.<\/p>\n\n<p><strong>Tests<\/strong>\n- add: 53 PHPUnit unit tests covering every column's bounds, type coercion, the 16-point compass validator, and Condition's UTF-8 truncation.\n- add: <code>phpunit.xml<\/code> with <code>Unit<\/code> and <code>Integration<\/code> test suites.<\/p>\n\n<p><strong>Docs<\/strong>\n- rewritten classic-snippet docs (no more ipapi.co), documented the optional <code>getUserIp<\/code> endpoint, refreshed the dimensions table to reflect the FLOAT migrations, added a privacy note.<\/p>\n\n<h3>v5.1.2<\/h3>\n\n<p>fix: Archiving issues<\/p>\n\n<h3>v5.1.1<\/h3>\n\n<p>fix: Sorting deprecated method replace with \"label\"<\/p>\n\n<h3>v5.1.0<\/h3>\n\n<p>The great update you waited for!<\/p>\n\n<p>support: Conversions reports\nupdate: translations for DE, ES, IT, NL and SV\nrefactor: ReportsBuilders\nenhanced bar charts visualisation<\/p>\n\n<h3>v5.0.3<\/h3>\n\n<p>add: Cover for marketplace<\/p>\n\n<h3>v5.0.2<\/h3>\n\n<p>update: Documentation URL<\/p>\n\n<h3>v5.0.1<\/h3>\n\n<p>update: MeasurableSettings<\/p>\n\n<h3>v5.0.0<\/h3>\n\n<p>Support Matomo v5<\/p>\n\n<h3>v4.3.3<\/h3>\n\n<p>Update documentation FAQ<\/p>\n\n<h3>v4.3.2<\/h3>\n\n<p>Update tag language selector<\/p>\n\n<h3>v4.3.1<\/h3>\n\n<p>Add screenshots<\/p>\n\n<h3>v4.3.0<\/h3>\n\n<p>Add custom unit in Weather Tag from Tag Manager<\/p>\n\n<h3>v4.2.1<\/h3>\n\n<p>Add screenshots and update documentation<\/p>\n\n<h3>v4.2.0<\/h3>\n\n<p>Add Matomo Tag Manager Custom Tag<\/p>\n\n<h3>v4.1.0<\/h3>\n\n<p>Support Matomo Tag Manager<\/p>\n\n<p>Add FR translation<\/p>\n\n<p>Change <code>_paq.push(['WeatherReports.setWeather'])<\/code> parameters order<\/p>\n\n<h3>v4.0.13<\/h3>\n\n<p>Add fetch to IPApi to get rid of PHP global variable<\/p>\n\n<h3>v4.0.12<\/h3>\n\n<p>Change request to PING=1<\/p>\n\n<h3>v4.0.11<\/h3>\n\n<p>Rename screenshots<\/p>\n\n<h3>v4.0.10<\/h3>\n\n<p>Add screenshots<\/p>\n\n<h3>v4.0.9<\/h3>\n\n<p>Fix report Archiver.php class<\/p>\n\n<h3>v4.0.8<\/h3>\n\n<p>Test #3 with methods in Archiver.php<\/p>\n\n<h3>v4.0.7<\/h3>\n\n<p>Test #2 with abstract Class in Archiver.php<\/p>\n\n<h3>v4.0.6<\/h3>\n\n<p>Test #2 with abstract method in Archiver.php<\/p>\n\n<h3>v4.0.5<\/h3>\n\n<p>Remove abstract method from Archiver.php<\/p>\n\n<h3>v4.0.4<\/h3>\n\n<p>Change blade view for VisitorDetails<\/p>\n\n<h3>v4.0.3<\/h3>\n\n<p>Add abstract method to Archiver.php<\/p>\n\n<h3>v4.0.2<\/h3>\n\n<p>Update IP Address<\/p>\n\n<h3>v4.0.1<\/h3>\n\n<p>Update table in docs\/index.md (Markdown tables are not supported by Matomo)<\/p>\n\n<h3>v4.0.0<\/h3>\n\n<p>Plugin starting code base<\/p>"},"download":"\/api\/2.0\/plugins\/WeatherReports\/download\/5.3.1"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/WeatherReports\/changelog"},"consumer":{"license":null}},{"name":"WeatherWidget","displayName":"Weather Widget","owner":"Chardonneaur","description":"Displays current weather on your dashboard with configurable location and units. Powered by Open-Meteo.","homepage":"https:\/\/github.com\/Chardonneaur\/WeatherWidget","createdDateTime":"2026-02-18 12:12:02","donate":{},"support":[{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/Chardonneaur\/WeatherWidget\/issues","type":"url"},{"name":"Source","key":"source","value":"https:\/\/github.com\/Chardonneaur\/WeatherWidget","type":"url"}],"isTheme":false,"keywords":["widget","dashboard","Weather","open-meteo","temperature","forecast"],"basePrice":0,"authors":[{"name":"Chardonneaur","email":null,"homepage":"https:\/\/github.com\/Chardonneaur"}],"repositoryUrl":"https:\/\/github.com\/Chardonneaur\/WeatherWidget","lastUpdated":"2026-02-18 12:12:02","latestVersion":"1.1.0","numDownloads":4886,"screenshots":["https:\/\/plugins.matomo.org\/WeatherWidget\/images\/1.1.0\/WeatherWidget_dashboard.png"],"coverImage":"https:\/\/plugins.matomo.org\/WeatherWidget\/images\/1.1.0\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-02-18 12:11:35"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.1.0","release":"2026-02-18 12:12:02","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1","php":">=8.1.0"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":4886,"license":{"name":"GPL-3.0+","url":"https:\/\/plugins.matomo.org\/WeatherWidget\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/Chardonneaur\/WeatherWidget\/commits\/1.1.0","readmeHtml":{"description":"\n\n<p>Display real-time weather information directly on your dashboard. The widget shows current temperature, weather conditions, humidity, and wind speed for any location in the world.<\/p>\n\n<p>Powered by the free <a href=\"https:\/\/open-meteo.com\/\">Open-Meteo API<\/a> \u2014 no API key required.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Configurable location<\/strong> \u2014 Set any city by latitude\/longitude from the admin settings<\/li>\n<li><strong>Metric &amp; Imperial units<\/strong> \u2014 Switch between \u00b0C\/km\/h and \u00b0F\/mph<\/li>\n<li><strong>Multilingual<\/strong> \u2014 Weather descriptions are fully translated (English and French included)<\/li>\n<li><strong>Smart caching<\/strong> \u2014 API responses are cached for 30 minutes to keep your dashboard fast<\/li>\n<li><strong>Graceful degradation<\/strong> \u2014 Serves cached data if the weather API is temporarily unavailable<\/li>\n<li><strong>Dark mode compatible<\/strong> \u2014 Uses CSS custom properties for theme support<\/li>\n<\/ul>\n\n<h3>How it works<\/h3>\n\n<p>Once activated, add the \"Today's Weather\" widget to any dashboard. Configure the location and units in <strong>Administration &gt; General Settings &gt; WeatherWidget<\/strong>.<\/p>\n\n","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>How do I change the displayed city?<\/h2>\n\n<p>Go to <strong>Administration &gt; General Settings<\/strong>, find the <strong>WeatherWidget<\/strong> section, and update:<\/p>\n\n<ul>\n<li><strong>Latitude<\/strong> and <strong>Longitude<\/strong> \u2014 the geographic coordinates of the city<\/li>\n<li><strong>City name<\/strong> \u2014 the label displayed in the widget (can be anything)<\/li>\n<li><strong>Timezone<\/strong> \u2014 must be a valid PHP timezone identifier (e.g. <code>Europe\/Paris<\/code>, <code>America\/New_York<\/code>, <code>Asia\/Tokyo<\/code>)<\/li>\n<\/ul>\n\n<h2>Where can I find coordinates for my city?<\/h2>\n\n<p>You can use any of these methods:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/open-meteo.com\/en\/docs\/geocoding-api\">Open-Meteo Geocoding API<\/a><\/li>\n<li>Search your city on Google Maps and read the coordinates from the URL<\/li>\n<li>Use any online latitude\/longitude lookup tool<\/li>\n<\/ul>\n\n<h2>Does this plugin send data to external services?<\/h2>\n\n<p>The plugin makes HTTPS requests to <code>api.open-meteo.com<\/code> to retrieve current weather data. Only the configured latitude, longitude, and timezone are sent as URL query parameters. No personal or analytics data is transmitted.<\/p>\n\n<h2>How often is the weather data refreshed?<\/h2>\n\n<p>Weather data is cached for 30 minutes. After the cache expires, the next dashboard visit triggers a fresh API call.<\/p>\n\n<h2>What happens if the weather API is down?<\/h2>\n\n<p>If the API is unreachable, the plugin serves the last successfully cached data. An error is only displayed if no cached data exists at all (e.g. on first use).<\/p>\n\n<h2>Can I use Fahrenheit instead of Celsius?<\/h2>\n\n<p>Yes. Go to <strong>Administration &gt; General Settings &gt; WeatherWidget<\/strong> and change the <strong>Units<\/strong> setting to <strong>Imperial<\/strong>. This switches to \u00b0F for temperature and mph for wind speed.<\/p>\n\n<h2>Is the widget compatible with dark mode?<\/h2>\n\n<p>Yes. The widget uses CSS custom properties with light-mode fallbacks, so it adapts to both light and dark themes.<\/p>","documentation":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><h2>Installation<\/h2>\n\n<ol>\n<li>Copy the <code>WeatherWidget<\/code> folder to your Matomo <code>plugins\/<\/code> directory<\/li>\n<li>Activate the plugin in <strong>Administration &gt; Plugins<\/strong><\/li>\n<li>Add the widget to your dashboard via <strong>Dashboard &gt; Add a widget &gt; Weather &gt; Today's Weather<\/strong><\/li>\n<\/ol>\n\n<h2>Configuration<\/h2>\n\n<p>All settings are available in <strong>Administration &gt; General Settings<\/strong> under the <strong>WeatherWidget<\/strong> section.<\/p>\n\n<h3>Location Settings<\/h3>\n\n\n\n\n  Setting\n  Description\n  Default\n\n\n\n\n  <strong>Latitude<\/strong>\n  Latitude of the location (-90 to 90)\n  48.8566 (Paris)\n\n\n  <strong>Longitude<\/strong>\n  Longitude of the location (-180 to 180)\n  2.3522 (Paris)\n\n\n  <strong>City name<\/strong>\n  Display name shown in the widget\n  Paris, France\n\n\n  <strong>Timezone<\/strong>\n  PHP timezone identifier used for the API\n  Europe\/Paris\n\n\n\n\n<p>You can find the latitude and longitude of any city using <a href=\"https:\/\/open-meteo.com\/en\/docs\/geocoding-api\">Open-Meteo's geocoding<\/a> or any mapping service.<\/p>\n\n<h3>Units<\/h3>\n\n\n\n\n  Option\n  Temperature\n  Wind Speed\n\n\n\n\n  <strong>Metric<\/strong>\n  \u00b0C\n  km\/h\n\n\n  <strong>Imperial<\/strong>\n  \u00b0F\n  mph\n\n\n\n\n<h2>Caching<\/h2>\n\n<p>The plugin caches weather data for <strong>30 minutes<\/strong> using Matomo's Option storage. This means:<\/p>\n\n<ul>\n<li>The first request after cache expiry will fetch fresh data from the API<\/li>\n<li>Subsequent requests within 30 minutes are served instantly from cache<\/li>\n<li>If the API is unreachable, the plugin will serve stale cached data rather than showing an error<\/li>\n<\/ul>\n\n<h2>Data Source<\/h2>\n\n<p>Weather data is provided by the <a href=\"https:\/\/open-meteo.com\/\">Open-Meteo API<\/a>, a free and open-source weather API. No API key or registration is required.<\/p>\n\n<p>The following current weather parameters are displayed:<\/p>\n\n<ul>\n<li>Temperature (2m above ground)<\/li>\n<li>Weather condition (WMO weather code)<\/li>\n<li>Relative humidity (2m above ground)<\/li>\n<li>Wind speed (10m above ground)<\/li>\n<\/ul>","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><ul>\n<li>Prepare for Marketplace publishing<\/li>\n<li>Rename GitHub repository from matomo-weather-widget to WeatherWidget<\/li>\n<li>Add LICENSE file, .gitignore, _cover screenshot<\/li>\n<li>Fix plugin.json metadata (author, support URLs, SPDX license, keywords)<\/li>\n<li>Add community disclaimer to README<\/li>\n<\/ul>\n\n<h2>1.0.0<\/h2>\n\n<ul>\n<li>Initial release<\/li>\n<li>Current weather display with temperature, humidity, wind speed<\/li>\n<li>Configurable location via admin settings (latitude, longitude, city name, timezone)<\/li>\n<li>Metric and imperial unit support<\/li>\n<li>30-minute response caching with stale-cache fallback<\/li>\n<li>English and French translations<\/li>\n<li>Dark mode support via CSS custom properties<\/li>\n<li>Input validation on all settings (numeric ranges, timezone whitelist, length limits)<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/WeatherWidget\/download\/1.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/WeatherWidget\/changelog"},"consumer":{"license":null}},{"name":"Webmetic","displayName":"Webmetic","owner":"webmetic-gmbh","description":"B2B visitor identification: see which companies visit your website. Adds a Companies report, dashboard widget, visitor log details and segments.","homepage":"https:\/\/webmetic.de","createdDateTime":"2026-09-15 14:30:04","donate":{},"support":[{"name":"Email","key":"email","value":"info@webmetic.de","type":"email"},{"name":"Issues \/ Bugs","key":"issues","value":"https:\/\/github.com\/webmetic-gmbh\/webmetic-matomo\/issues","type":"url"}],"isTheme":false,"keywords":["ip","company","b2b","lead","firmographic"],"basePrice":0,"authors":[{"name":"Webmetic","email":"info@webmetic.de","homepage":"https:\/\/webmetic.de"}],"repositoryUrl":"https:\/\/github.com\/webmetic-gmbh\/webmetic-matomo","lastUpdated":"2026-09-22 16:42:04","latestVersion":"1.1.0","numDownloads":146,"screenshots":["https:\/\/plugins.matomo.org\/Webmetic\/images\/1.1.0\/Combine-company-size-and-industry.png","https:\/\/plugins.matomo.org\/Webmetic\/images\/1.1.0\/Identified-companies-in-your-dashboard.png","https:\/\/plugins.matomo.org\/Webmetic\/images\/1.1.0\/Plugin-settings.png","https:\/\/plugins.matomo.org\/Webmetic\/images\/1.1.0\/Segment-visitors-by-industry.png","https:\/\/plugins.matomo.org\/Webmetic\/images\/1.1.0\/Visitor-log-filtered-by-company.png","https:\/\/plugins.matomo.org\/Webmetic\/images\/1.1.0\/Webmetic-segments-in-every-report.png"],"coverImage":"https:\/\/plugins.matomo.org\/Webmetic\/images\/1.1.0\/_cover.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":"2026-09-22 16:41:01"},"featured":false,"isFree":true,"isPaid":false,"isBundle":false,"isCustomPlugin":false,"shop":null,"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":[],"promotions":{},"versions":[{"name":"1.0.0","release":"2026-09-15 14:30:05","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":5,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Webmetic\/1.0.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/webmetic-gmbh\/webmetic-matomo\/commits\/1.0.0","readmeHtml":{"description":"","faq":"","changelog":"","documentation":""},"download":"\/api\/2.0\/plugins\/Webmetic\/download\/1.0.0"},{"name":"1.1.0","release":"2026-09-22 16:42:04","requires":{"matomo":">=5.0.0-b1,<6.0.0-b1"},"wordPressCompatible":true,"onPremiseCompatible":true,"numDownloads":141,"license":{"name":"GPL v3+","url":"https:\/\/plugins.matomo.org\/Webmetic\/1.1.0\/license"},"repositoryChangelogUrl":"https:\/\/github.com\/webmetic-gmbh\/webmetic-matomo\/commits\/1.1.0","readmeHtml":{"description":"\n\n<p><strong>See which companies visit your website \u2014 directly in Matomo.<\/strong><\/p>\n\n<p>Webmetic identifies the companies behind your website visitors (B2B visitor\nidentification) and integrates the results into the Matomo features you already use:<\/p>\n\n<ul>\n<li><strong>Companies report<\/strong> under <em>Visitors<\/em>, with a dashboard widget<\/li>\n<li><strong>Company name on every identified visit<\/strong> in the Visitor Log and visitor profile<\/li>\n<li><strong>Segments<\/strong>: filter any Matomo report by company (e.g. pages viewed by a specific\ncompany, referrers that brought a specific company to your site)<\/li>\n<li>Company data is also available through the Matomo Reporting &amp; Live APIs<\/li>\n<\/ul>\n\n<h3>How it works<\/h3>\n\n<p>On the first page view of a visit, the plugin sends a <strong>sha256 hash of the visitor's\nIP address<\/strong> (never the raw IP) to the Webmetic API. If the IP belongs to an\nidentifiable company network, the company name is stored with the visit. Results are\ncached locally, lookups run fail-safe and never delay your tracking.<\/p>\n\n<p>A <a href=\"https:\/\/webmetic.de\">Webmetic<\/a> account with a Data Layer API key is required.\nIdentification quality is focused on the DACH region (Germany, Austria, Switzerland).<\/p>\n\n<h3>Privacy<\/h3>\n\n<ul>\n<li>Only a one-way hash of the visitor IP is transmitted \u2014 never the raw IP address.<\/li>\n<li>Company identification is <strong>disabled by default<\/strong> and must be enabled explicitly.<\/li>\n<li>If Matomo's IP anonymization is configured to also apply to visit enrichment,\nlookups are skipped entirely.<\/li>\n<li>Stored data (company name\/ID per visit, local lookup cache) is fully covered by\nMatomo's GDPR export, erasure, and retention-purge tooling.<\/li>\n<li>Details: see your Webmetic data processing agreement (AVV).<\/li>\n<\/ul>\n\n","faq":"<p><strong>Do I need a Webmetic account?<\/strong><\/p>\n\n<p>Yes. The plugin uses the Webmetic API to resolve visitor IPs to companies. You can\ncreate an account at <a href=\"https:\/\/webmetic.de\">webmetic.de<\/a>; the Data Layer API key is\navailable in your Webmetic dashboard under <em>API details<\/em>.<\/p>\n\n<p><strong>Which data is sent to Webmetic?<\/strong><\/p>\n\n<p>Only the sha256 hash of the visitor IP address, together with your API key. No URLs,\nno user agents, no cookies, and never the raw IP address.<\/p>\n\n<p><strong>Why do I not see any companies?<\/strong><\/p>\n\n<p>Only visits from identifiable company networks can be resolved \u2014 visitors from home\nor mobile connections are not identified (that is by design). Also check that:\n(1) company identification is enabled in the plugin settings, (2) your API key is\nvalid (it is verified when you save the settings), and (3) Matomo's privacy setting\n\"use anonymized IP addresses when enriching visits\" is disabled \u2014 with masked IPs no\nlookup is possible.<\/p>\n\n<p><strong>Does the plugin slow down my tracking?<\/strong><\/p>\n\n<p>No. Lookups happen at most once per visit, results (including \"no match\") are cached\nlocally, the HTTP call has a strict timeout, and every failure path simply skips\nidentification instead of delaying the request.<\/p>\n\n<p><strong>Can I filter reports by company?<\/strong><\/p>\n\n<p>Yes \u2014 the plugin registers two segments (company name and company ID). Any Matomo\nreport can be filtered or compared by company.<\/p>","documentation":"","changelog":"<h3>1.1.0<\/h3>\n\n<ul>\n<li>Visitor profile shows a Webmetic block with company name, industry, size and\nrevenue class of the visitor's most recent identified visit.<\/li>\n<li>Privacy: diagnostic log output no longer includes exception messages, which\ncould contain the lookup URL with the hashed IP. Only the error type is logged.<\/li>\n<\/ul>\n\n<h3>1.0.0<\/h3>\n\n<ul>\n<li>First public release on the Matomo Marketplace. No functional changes over\n0.4.1; the plugin has been running in production since July 2026 and is\nverified on Matomo 5.13 with PHP 8.4.<\/li>\n<\/ul>\n\n<h3>0.4.1<\/h3>\n\n<ul>\n<li>All Webmetic segments are grouped under their own \"Webmetic\" category in the\nsegment editor and prefixed with \"Webmetic\" so their origin is always clear.<\/li>\n<li>Example values (tooltips) for every segment, including company ID.<\/li>\n<\/ul>\n\n<h3>0.4.0<\/h3>\n\n<ul>\n<li>New <strong>Company size<\/strong> and <strong>Revenue class<\/strong> dimensions and segments (employee and\nrevenue ranges). Together with Industry this completes the target-group matrix:\nfilter any report, Users Flow, or heatmap by industry \u00d7 size \u00d7 revenue.<\/li>\n<li>Visitor log shows size and revenue next to company name and industry.<\/li>\n<\/ul>\n\n<h3>0.3.0<\/h3>\n\n<ul>\n<li>New <strong>Industry<\/strong> dimension and segment: identified visits are classified into\n19 marketing-ready industry categories (e.g. \"IT, Software &amp; Telekommunikation\").\nFilter Users Flow, heatmaps, or any Matomo report by industry.<\/li>\n<li>Visitor log shows the industry next to the company name.<\/li>\n<\/ul>\n\n<h3>0.2.2<\/h3>\n\n<ul>\n<li>The API key is now verified live against the Webmetic API when saving the\nsettings: rejected keys and connectivity problems show a clear error message\nand are not saved. Pasted keys are trimmed automatically.<\/li>\n<\/ul>\n\n<h3>0.2.1<\/h3>\n\n<ul>\n<li>API-key setting links directly to the Webmetic dashboard page where the key is\ncreated.<\/li>\n<\/ul>\n\n<h3>0.2.0<\/h3>\n\n<ul>\n<li>Simplified setup: authentication via the Webmetic Data Layer API key, no domain\nsetting needed. Settings reduced to enable toggle + API key; lookup endpoint is\nnow fixed (config-file override for staging only).<\/li>\n<li>Respects Matomo's \"use anonymized IP for visit enrichment\" privacy setting like\ncore geolocation does.<\/li>\n<\/ul>\n\n<h3>0.1.0<\/h3>\n\n<ul>\n<li>Initial version: company dimensions, Companies report + widget, visitor log\nintegration, segments, GDPR hooks, cached hash-only lookups.<\/li>\n<\/ul>"},"download":"\/api\/2.0\/plugins\/Webmetic\/download\/1.1.0"}],"isDownloadable":true,"changelog":{"url":"https:\/\/plugins.matomo.org\/Webmetic\/changelog"},"consumer":{"license":null}},{"name":"WhiteLabel","displayName":"White Label","owner":"matomo-org","description":"Give your users and clients access to a more streamline analytics experience that is less confusing and lets your own branding shine.","homepage":"https:\/\/plugins.matomo.org\/WhiteLabel","createdDateTime":"2016-12-08 23:54:31","donate":{},"support":[],"isTheme":false,"keywords":["branding","white label","embedding reports","customer access","reselling"],"basePrice":165,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-09-01 22:10:35","latestVersion":"6.0.0","numDownloads":null,"screenshots":[],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/WhiteLabel.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/WhiteLabel","variations":[{"product_variation_id":130473,"price":"169","prettyPrice":"169EUR","currency":"EUR","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130473&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130473","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/whitelabel\/?attribute_type=1+to+4+users&add-to-cart=2606&variation_id=130473&aelia_cs_currency=EUR"},{"product_variation_id":130473,"price":"199","prettyPrice":"USD199","currency":"USD","period":"year","name":"Up to 4 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130473&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130473","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/whitelabel\/?attribute_type=1+to+4+users&add-to-cart=2606&variation_id=130473&aelia_cs_currency=USD","cheapest":true},{"product_variation_id":130474,"price":"1319","prettyPrice":"1319EUR","currency":"EUR","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130474&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130474","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/whitelabel\/?attribute_type=Up+to+20+users&add-to-cart=2606&variation_id=130474&aelia_cs_currency=EUR"},{"product_variation_id":130474,"price":"1589","prettyPrice":"USD1589","currency":"USD","period":"year","name":"Up to 20 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130474&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130474","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/whitelabel\/?attribute_type=Up+to+20+users&add-to-cart=2606&variation_id=130474&aelia_cs_currency=USD","cheapest":false},{"product_variation_id":130475,"price":"2629","prettyPrice":"2629EUR","currency":"EUR","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130475&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130475","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/whitelabel\/?attribute_type=Up+to+50+users&add-to-cart=2606&variation_id=130475&aelia_cs_currency=EUR"},{"product_variation_id":130475,"price":"3159","prettyPrice":"USD3159","currency":"USD","period":"year","name":"Up to 50 users","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130475&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=2606&variation_id=130475","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/whitelabel\/?attribute_type=Up+to+50+users&add-to-cart=2606&variation_id=130475&aelia_cs_currency=USD","cheapest":false}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/whitelabel\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"4.67","ratingCount":3,"reviewCount":3}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["customisation"],"promotions":{},"versions":[{"name":"6.0.0","release":"2026-09-01 22:10:35","requires":{"matomo":">=6.0.0-b1,<7.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/WhiteLabel\/6.0.0\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>White Label plugin will:<\/p>\n\n<ul>\n<li>Boost the visibility of your own brand<\/li>\n<li>Strengthen the loyalty of your clients and users<\/li>\n<li>Change the Matomo header colour to your own branding<\/li>\n<li>Remove all the Matomo branded widgets from your users' dashboards<\/li>\n<li>Remove marketplace plugin teasers. For example, on the administration home page<\/li>\n<li>Remove the help page which promotes Matomo<\/li>\n<li>Remove several mentions of Matomo across the UI<\/li>\n<li>Whitelabel the tracking endpoints (piwik.js and piwik.php)<\/li>\n<li>Optionally, remove links that point to Matomo or Piwik<\/li>\n<li>Give you the possibility to change the product name from \"Matomo\" to your chosen name<\/li>\n<\/ul>\n\n<p>Provide your clients with personalised, white-label dashboards and reports. Elevate your brand identity and credibility with a seamless user experience.<\/p>\n\n<p>Presenting analytics to your clients should elevate your agency's stature, not undermine it. But when third-party branding sneaks in, it clouds your professionalism and risks clients questioning whose brand they're truly engaging with, diluting the trust you've worked hard to establish.<\/p>\n\n<p>Make Matomo unmistakably yours with the White Label plugin. Let your entire analytics display your brand. Ensure every report and dashboard builds on your reputation with zero confusion.<\/p>\n\n<p>Next time you sit down to share insights with your clients, they'll only see one brand: yours.<\/p>\n\n<h3>How White Label Works<\/h3>\n\n<h4>Personalise Every Element of Your Dashboard and Reports<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Take Matomo's basic customisation beyond tweaking your logo and favicon and put your brand at the centre stage.<\/p>\n<p>Change the product name as well as the background and font colours from Matomo's to your own. Present a dashboard that's unmistakably yours.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/WhiteLabel\/image1.png\" style=\"margin-left:24px;\" alt=\"Personalise Every Element of Your Dashboard and Report\" \/>\n<\/div>\n<\/div>\n\n<h4>Remove Third-Party Links<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Strip away Marketplace features, 'Help' icons and links, and any traces to Matomo. Removing marketplace plugin prompts, even on admin pages, ensures a focused and unambiguous experience for your users.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/WhiteLabel\/image2.png\" style=\"margin-left:24px;\" alt=\"Remove Third-Party Links\" \/>\n<\/div>\n<\/div>\n\n<h4>Customise the Tracking Domains<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Alter your tracking endpoint, ensuring your clients only see your own domain (or any other one you want to use) when monitoring links or tracking conversions. It's discreet, professional, and all about your brand.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/WhiteLabel\/image3.jpg\" style=\"margin-left:24px;\" alt=\"Customise the Tracking Domains\" \/>\n<\/div>\n<\/div>\n\n<h3>Try White Label Today<\/h3>\n\n<p>Step up your analytics game with White Label. Transform Matomo analytics into a tailored reflection of your brand, forging deeper trust and clearer communication with your clients.<\/p>\n\n<p>Start your 30-day free trial today and elevate your client interactions.<\/p>","faq":"","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>6.0.0 - 2026-08-24\n- Compatibility with Matomo 6\n- Added code to improve brand name replacement to use unique per-response placeholders<\/p>\n\n<p>5.0.5 - 2025-07-07\n- Textual change<\/p>\n\n<p>5.0.4 - 2024-11-11\n- Updated README.md<\/p>\n\n<p>5.0.3 - 2024-09-09\n- Added a SystemSetting to enable\/disable help section<\/p>\n\n<p>5.0.2 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.0.1\n- Updated README.md<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.0.8\n- Fixed deprecation warnings for PHP 8.1<\/p>\n\n<p>4.0.7\n- Added code to hide what's new section from top menu bar<\/p>\n\n<p>4.0.6\n- Added code to not replace MatomoTagManager\n- Started replacing email subject with whitelabel brand<\/p>\n\n<p>4.0.5\n- PHP 8.1 compatibility fix<\/p>\n\n<p>4.0.4\n- started hiding feedback banner when plugin is active<\/p>\n\n<p>4.0.3\n- Fix issue where tagmanager container exports had branding replaced, causing the exports to be broken.<\/p>\n\n<p>4.0.2\n- Better Brand Name checks<\/p>\n\n<p>4.0.1\n- Compatibility with Matomo 4<\/p>\n\n<p>4.0.0\n- Compatibility with Matomo 4\n- Replace brand name in emails<\/p>\n\n<p>3.3.11\n- Language updates<\/p>\n\n<p>3.3.10\n - Support Matomo 3.12 hide Google importer notice if brand name is defined or hide links is enabled<\/p>\n\n<p>3.3.9\n - Support white label Tag Manager tracking endpoint\n - Support Matomo 3.12 hide partial developer email content when brand name is defined or hide links is enabled<\/p>\n\n<p>3.3.8\n - Add more languages\n - Make sure Marketplace widgets won't be shown in reporting<\/p>\n\n<p>3.3.7\n - Add Polish &amp; Dutch translation \n - Support compatibility with Matomo Tag Manager<\/p>\n\n<p>3.3.6\n - Make tracker endpoint work with matomo.js\/php<\/p>\n\n<p>3.3.5\n - Support more languages<\/p>\n\n<p>3.3.4\n - Fix super user may not see marketplace when setting enable to show it only to super users\n - Added more translations<\/p>\n\n<p>3.3.3\n - Improve link removing feature to better detect links\n - Do not replace brand name if is API request and format is php or original<\/p>\n\n<p>3.3.2\n - Apply custom header colors to scheduled email reports<\/p>\n\n<p>3.3.1\n - Fix typo<\/p>\n\n<p>3.3.0\n - Add possibility to change the color of the header top bar<\/p>\n\n<p>3.2.0\n - Add possibility to remove links to Matomo \/ Piwik<\/p>\n\n<p>3.1.7\n - New option to whitelabel tracking endpoints<\/p>\n\n<p>3.1.6\n - Renamed Piwik to Matomo<\/p>\n\n<p>3.1.5\n - Replace mentions of Matomo (formerly Piwik) and ensure white label works with new branding<\/p>\n\n<p>3.1.4\n - Hide link to piwik.org on login form when custom logo is used<\/p>\n\n<p>3.1.3\n - Require Piwik 3.0.0 again instead of 3.0.4<\/p>\n\n<p>3.1.2\n - Add new setting to optionally restrict access of Marketplace to Super Users<\/p>\n\n<p>3.1.1\n - Fix possible notice on an error page\n - On error page remove links to Piwik unless it is accessed by a super user<\/p>\n\n<p>3.1.0\n - Let users optionally define a brand \/ product name that replaces the Piwik product name<\/p>\n\n<p>3.0.5\n - Show feedback thumb up \/ down icons only if custom feedback_email_address is configured in config.ini.php \n - Fix thumb up \/ down icons may be displayed big under circumstances.<\/p>\n\n<p>3.0.4\n - Require Piwik 3 instead of Piwik 3.0.2-b1<\/p>\n\n<p>3.0.3\n - Remove help page\n - Remove Piwik mobile app banner\n - Remove help ad on admin home page (with Piwik 3.0.2)<\/p>\n\n<p>3.0.2\n - Remove mention of Piwik in browser title and logo title<\/p>\n\n<p>3.0.1 \n - Fix a warning in the Admin may be shown that a plugin is missing<\/p>\n\n<p>3.0.0 \n - Initial version<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/WhiteLabel\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}},{"name":"WooCommerceAnalytics","displayName":"WooCommerce Analytics","owner":"matomo-org","description":"Drive more revenue, improve your sales funnel, and get accurate insights with our Matomo Analytics Ecommerce tracking integration for your WooCommerce.","homepage":"https:\/\/plugins.matomo.org\/WooCommerceAnalytics","createdDateTime":"2017-06-26 08:01:33","donate":{},"support":[],"isTheme":false,"keywords":["piwik","woocommerce","wordpress","shop","ecommerce","integration","cart","purchases","order","matomo"],"basePrice":39,"authors":[{"name":"Matomo","email":"contact@innocraft.com","homepage":"https:\/\/matomo.org"}],"repositoryUrl":null,"lastUpdated":"2026-09-22 08:21:26","latestVersion":"5.3.11","numDownloads":null,"screenshots":["https:\/\/plugins.matomo.org\/WooCommerceAnalytics\/images\/5.3.11\/0_Integration.png","https:\/\/plugins.matomo.org\/WooCommerceAnalytics\/images\/5.3.11\/1_EcommerceOverview.png","https:\/\/plugins.matomo.org\/WooCommerceAnalytics\/images\/5.3.11\/2_EcommerceLog.png","https:\/\/plugins.matomo.org\/WooCommerceAnalytics\/images\/5.3.11\/3_Products.png","https:\/\/plugins.matomo.org\/WooCommerceAnalytics\/images\/5.3.11\/4_Sales.png"],"coverImage":"https:\/\/plugins.matomo.org\/img\/covers\/WooCommerceAnalytics.png","previews":[],"activity":{"numCommits":null,"numContributors":null,"lastCommitDate":null},"featured":false,"isFree":false,"isPaid":true,"isBundle":false,"isCustomPlugin":false,"shop":{"url":"https:\/\/plugins.matomo.org\/WooCommerceAnalytics","variations":[{"product_variation_id":130491,"price":"139","prettyPrice":"139EUR","currency":"EUR","period":"year","name":"Unlimited users.","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=4332&variation_id=130491&aelia_cs_currency=EUR","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=4332&variation_id=130491","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-woocommerceanalytics\/?attribute_type=Unlimited+users.&add-to-cart=4332&variation_id=130491&aelia_cs_currency=EUR"},{"product_variation_id":130491,"price":"169","prettyPrice":"USD169","currency":"USD","period":"year","name":"Unlimited users.","discount":0,"prettyDiscount":"","addToCartUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=4332&variation_id=130491&aelia_cs_currency=USD","addToCheckoutUrl":"https:\/\/shop.matomo.org\/checkout\/?add-to-cart=4332&variation_id=130491","addToCartEmbedUrl":"https:\/\/shop.matomo.org\/product\/plugin-woocommerceanalytics\/?attribute_type=Unlimited+users.&add-to-cart=4332&variation_id=130491&aelia_cs_currency=USD","cheapest":true}],"reviews":{"embedUrl":"https:\/\/shop.matomo.org\/product\/plugin-woocommerceanalytics\/?show_reviews=1&piwik_embed=1","height":200,"averageRating":"5.00","ratingCount":1,"reviewCount":1}},"bundle":{"plugins":[]},"specialOffer":"","category":"uncategorised","categories":["ecommerce"],"promotions":{},"versions":[{"name":"5.3.11","release":"2026-09-22 08:21:26","requires":{"matomo":">=5.0.0-rc5,<6.0.0-b1"},"wordPressCompatible":false,"onPremiseCompatible":true,"numDownloads":null,"license":{"name":"InnoCraft EULA","url":"https:\/\/plugins.matomo.org\/WooCommerceAnalytics\/5.3.11\/license"},"repositoryChangelogUrl":null,"readmeHtml":{"description":"\n\n<p>Transform your WooCommerce store with Matomo. Discover what your visitors like and elevate your site's performance with robust reporting and accurate data.<\/p>\n\n<p>If you feel trapped between WooCommerce Analytics' limitations and Google Analytics' maze, it's time you carve a new route.<\/p>\n\n<p>Uncover your most profitable channels, campaigns, pages, and products and learn more about your customers with Matomo's WooCommerce Analytics plugin.<\/p>\n\n<p>Integrate your ecommerce store with Matomo and supercharge your web analytics.<\/p>\n\n<h3>How WooCommerce Analytics Works<\/h3>\n\n<h4>Unparalleled Ecommerce Analytics for WooCommerce<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Get a comprehensive snapshot of your store's performance and key metrics such as order counts, revenue per visit, and the average conversion rate, order value, and order size.<\/p>\n<p>Make informed decisions about your strategy and ensure every move aligns with your business's growth trajectory.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/WooCommerceAnalytics\/image1.png\" style=\"margin-left:24px;\" alt=\"Unparalleled Ecommerce Analytics for WooCommerce\" \/>\n<\/div>\n<\/div>\n\n<h4>Study How Your Products Perform<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Gain clarity on your products' performance with in-depth reports. Identify top sellers, spotlight profitability champions, and unearth hidden opportunities to elevate your profit margins.<\/p>\n<p>Leverage the power of data to maximise every product's potential and make the most out of your lineup.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/WooCommerceAnalytics\/image2.jpg\" style=\"margin-left:24px;\" alt=\"Study How Your Products Perform\" \/>\n<\/div>\n<\/div>\n\n<h4>Analyse Your Best-Selling Channels<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Get a detailed breakdown of your channels' performance and reveal not just your top sellers but also the underperformers.<\/p>\n<p>Pinpoint where the gold mines are and double down on the winners while cutting your losses. Optimising your returns will never be this easy.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/WooCommerceAnalytics\/image3.jpg\" style=\"margin-left:24px;\" alt=\"Analyse Your Best-Selling Channels\" \/>\n<\/div>\n<\/div>\n\n<h4>Seamless Integration in the Blink of an Eye<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Installing Matomo into your WooCommerce store couldn't be any easier. Just head to the WordPress plugins marketplace and install \"Matomo Analytics.\" Once activated, enable tracking, and you're all set!<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/WooCommerceAnalytics\/image4.png\" style=\"margin-left:24px;\" alt=\"Seamless Integration in the Blink of an Eye\" \/>\n<\/div>\n<\/div>\n\n<h4>Dig Deep Into Who's Visiting and Buying From Your Store<\/h4>\n\n<div class=\"main-div-readme\" style=\"height:auto;\">\n<div class=\"left-div-readme\" style=\"width:50%;\">\n<p>Ever wonder what paths your visitors take on your site? With the Visits Log, you can do more than wonder \u2013 you can see it all.<\/p>\n<p>Browse through each visitor\u2019s session, find out what they're looking for, see what catches their interest, or even spot the pages that push them to convert.<\/p>\n<p>It's like having a behind-the-scenes pass to your site, helping you tailor the experience even more to your audience's needs.<\/p>\n<\/div>\n<div class=\"right-div-readme\">\n<img src=\"https:\/\/plugins.matomo.org\/img\/WooCommerceAnalytics\/image5.png\" style=\"margin-left:24px;\" alt=\"Dig Deep Into Who's Visiting and Buying From Your Store\" \/>\n<\/div>\n<\/div>\n\n<h3>Try WooCommerce Analytics Today<\/h3>\n\n<p>Unlock the full potential of your store with Matomo's WooCommerce Analytics plugin. Dive deep into actionable insights, prioritise the channels that matter, and truly understand your visitors' journeys.<\/p>\n\n<p>Start your 30-day free trial today and empower your ecommerce strategy with data-driven decisions.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Tracks orders and cart updates even when ad-blocker is enabled<\/li>\n<li>Find out where your users really abandon your cart<\/li>\n<li>Supports product variables \/ variations<\/li>\n<li>Supports WooCommerce Subscriptions<\/li>\n<li>Supports custom order numbers<\/li>\n<li>Supports WPML<\/li>\n<li>Works with most other WooCommerce plugins that provide for example up-selling and cross-selling features<\/li>\n<li>Learn which channels (search, social, websites, ...) drives the most traffic to know on which channel you should spend more time and money<\/li>\n<li>Understand which products and categories your customers are really interested in<\/li>\n<li>Find out where you are losing money by analyzing the flow of users from the referrer to the product page, to cart, and to checkout<\/li>\n<li>Figure out how your Ecommerce activities perform over time<\/li>\n<li>Explore which devices your customers use the most, where they come from (down to cities), how long it took them to purchase, and much more.<\/li>\n<\/ul>","faq":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p><strong>Which WooCommerce versions are supported?<\/strong><\/p>\n\n<p>WooCommerce 2.4 and newer is supported.<\/p>\n\n<p><strong>Which WordPress versions are supported?<\/strong><\/p>\n\n<p>The plugin has been tested with WordPress 4.5 and higher. It also supports WordPress 5.X.<\/p>\n\n<p><strong>Is the WooCommerce plugin compatible with Matomo Cloud?<\/strong><\/p>\n\n<p>The WooCommerce plugin is a premium feature, and the plugin is available for both Matomo Cloud and On-Premises customers.<\/p>\n\n<p><strong>Does the plugin support product variations \/ variables?<\/strong><\/p>\n\n<p>Yes, product variations are supported.<\/p>\n\n<p><strong>Does the plugin support WooCommerce Subscriptions?<\/strong><\/p>\n\n<p>Yes, the WooCommerce Subscription plugin is supported. Matomo tracks all orders and in your Matomo reports, renewals will appear as standard orders. To distinguish between initial purchases and renewals, you will need to implement custom tracking logic.<\/p>\n\n<p><strong>How is this plugin different to other WooCommerce Matomo plugins?<\/strong><\/p>\n\n<p>Many third-party plugins offer limited tracking whereas this official plugin is developed and maintained by the Matomo team. We also use the Matomo WooCommerce plugin on the Matomo Marketplace, so we can ensure it is stable, tracks data accurately, and meets our security standards.<\/p>\n\n<p>This plugin tracks the data in a special way to ensure very accurate tracking of cart updates and orders that you won't get anywhere else. This allows you for example to much better find out where your users abandon your cart. As the creators of Matomo, we can also ensure that the data is tracked correctly.<\/p>\n\n<p>Another benefit of our solution is, that it tracks orders and cart updates even if a user is using an ad-blocker. In this case you might not see any page views, but still be able to analyze all ecommerce related information.<\/p>\n\n<p><strong>Do I still need a plugin to track regular page views, events, etc?<\/strong><\/p>\n\n<p>Yes, you will still need a plugin do track regular pageviews, outlinks, downloads and more. We recommend to use our WooCommerce plugin in combination with <a href=\"https:\/\/wordpress.org\/plugins\/wp-piwik\/\">Connect Matomo<\/a>.<\/p>\n\n<p><strong>Will this plugin automatically track ecommerce product views?<\/strong><\/p>\n\n<p>Yes, product views will be tracked automatically, as long as you are using the latest version of this plugin and are also using a plugin like <a href=\"https:\/\/wordpress.org\/plugins\/wp-piwik\/\">Connect Matomo<\/a> to track pageviews.<\/p>\n\n<p>Prior to version 5.1.0, however, it was required for users to manually configure the Matomo JavaScript tracker on product pages.<\/p>\n\n<p><strong>How do I install and update the plugin on WooCommerce?<\/strong><\/p>\n\n<p>Once you have installed this plugin on your Matomo, go to \"Administration\" and then \"WooCommerce\" in Matomo. There you will find straight forward installation instructions and the download of the WooCommerce plugin.<\/p>\n\n<p>You will be able to update the WooCommerce plugin with just one click.<\/p>\n\n<p><strong>Are there any known issues?<\/strong><\/p>\n\n<p>Currently, it may create a new visitor as soon as a cart is updated. If this is the case, all following pageviews and actions will be tracked into the newly created visitor. This happens only when, for example, a user visited your shop in the past, deletes all the cookies and then visits your shop again. It may also happen when opening the website in Incognito mode in your browser.<\/p>\n\n<p><strong>Are there any other requirements?<\/strong><\/p>\n\n<p>The WooCommerce server needs to be able to ping (via HTTP\/S) your Matomo installation in order to track orders and cart updates.<\/p>\n\n<p>If you don't know what that means, you very likely don't need to worry about it and it will just work.<\/p>\n\n<p><strong>Where do I find the logs of the WooCommerce plugin?<\/strong><\/p>\n\n<p>If you enable the logging of all tracking requests to a file, you will find the logs under <code>wp-content\/uploads\/wc-logs\/woo-piwik-tracking-yyyy-dd-mm-*.log<\/code>.<\/p>","documentation":"","changelog":"<style> .main-div-readme { display: flex; } .left-div-readme { width: 50%; } .right-div-readme { flex-grow: 1; width: 50%; } <\/style><p>5.3.11 - 2026-09-16\n* Update embedded WordPress plugin: show an error in the WordPress admin instead of failing with a fatal error when WooCommerce is not installed and activated.\n* Update embedded WordPress plugin: do not reuse a stored Matomo auth token when the settings are saved with a different Matomo instance.\n* Update embedded WordPress plugin: keep the plugin's settings out of the WooCommerce REST settings API.\n* Update embedded WordPress plugin: mask the Matomo auth token when read through the REST API and refuse REST API writes to the plugin's settings.<\/p>\n\n<p>5.3.10 - 2026-08-17\n* Bug fix: make sure PCLZIP_TEMPORARY_DIR is set to a directory that the webserver is allowed to write to.<\/p>\n\n<p>5.3.9 - 2026-07-30\n* Security: the embedded WordPress plugin now checks for updates against a trusted Matomo URL baked into the plugin at download time.\n* Update embedded WordPress plugin: do not output the Matomo auth token in the settings page HTML.<\/p>\n\n<p>5.3.8 - 2026-07-13\n* Update embedded WordPress plugin: only show the settings page to WordPress administrators.<\/p>\n\n<p>5.3.7 - 2026-06-28\n* Update embedded WordPress plugin: default allow admin token setting to 'yes' for existing users.<\/p>\n\n<p>5.3.6 - 2026-06-22\n- Update embedded WordPress plugin: remove some uneeded debugging code.<\/p>\n\n<p>5.3.5\n- New feature: In WordPress plugin, add option to allow admin token auth with a descriptive help message.\n- Bug fix: In WordPress plugin, display bug with diagnostic tools on latest WooCommerce versions.\n- New feature: In WordPress plugin, track orders on order received page if not already tracked another way (with a new setting to turn off this behaviour).<\/p>\n\n<p>5.3.4 - 2025-07-07\n- Textual change<\/p>\n\n<p>5.3.3 - 2025-06-15\n- Bug fix: remove stray newline that can sometimes appear when the \"Use server side visitor ID\" option is used.<\/p>\n\n<p>5.3.2 - 2025-06-09\n- Updated faq doc<\/p>\n\n<p>5.3.1 - 2025-05-06\n- Bug fix: allow configuring the WordPress plugin to track to any Matomo site when there are more than 100 sites in Matomo.<\/p>\n\n<p>5.3.0 - 2025-02-09\n- New feature: new setting that allows generating a temporary visitor ID server side when visitor ID cookies are missing.<\/p>\n\n<p>5.2.0 - 2025-01-26\n- New feature: allow the PHP tracker in the WordPress plugin to be modified via a WordPress filter.\n- New diagnostic to catch cookie domain configuration issues early.<\/p>\n\n<p>5.1.5 - 2024-12-12\n- Better handling of tracking failures.\n- Better logging of tracking requests for diagnosing tracking failures.<\/p>\n\n<p>5.1.4 - 2024-11-05\n- Updated README.md<\/p>\n\n<p>5.1.3 - 2024-09-30\n- Avoid fatal error in the WordPress plugin when an order item's product info cannot be found.\n- Better logging and a new diagnostic tool to lookup order metadata in the WordPress plugin.<\/p>\n\n<p>5.1.2 - 2024-08-26\n- Pricing updated<\/p>\n\n<p>5.1.1\n- An update to the FAQ.<\/p>\n\n<p>5.1.0\n- The plugin will now track product views, as long as the Matomo JavaScript tracker is used to track pageviews<\/p>\n\n<p>5.0.4\n- Updated README.md<\/p>\n\n<p>5.0.3\n- Add campaign parameters to plugin homepage link<\/p>\n\n<p>5.0.2\n- Update WooCommerce plugin version to 1.0.21<\/p>\n\n<p>5.0.1\n- Added code to make sure references to settings\/tabs in instructions use Matomo instead of whitelabel-ed brand<\/p>\n\n<p>5.0.0\n- Compatibility with Matomo 5<\/p>\n\n<p>4.0.6\n- Update WooCommerce plugin version 1.0.20<\/p>\n\n<p>4.0.5\n - Update WooCommerce plugin version 1.0.19<\/p>\n\n<p>4.0.4\n - Update WooCommerce plugin version 1.0.18<\/p>\n\n<p>4.0.3\n - Update WooCommerce plugin version 1.0.17<\/p>\n\n<p>4.0.2\n - Update WooCommerce plugin version 1.0.16 for compatibility with Matomo 4<\/p>\n\n<p>4.0.1\n - Update WooCommerce plugin version 1.0.15 fixing an issue with coupons<\/p>\n\n<p>4.0.0\n - Compatibility with 4.0.0<\/p>\n\n<p>3.0.14\n - Update WooCommerce plugin version 1.0.14<\/p>\n\n<p>3.0.13\n - Update WooCommerce plugin version 1.0.13<\/p>\n\n<p>3.0.12\n - Update WooCommerce plugin version 1.0.12<\/p>\n\n<p>3.0.11\n - Update WooCommerce plugin version 1.0.11<\/p>\n\n<p>3.0.10\n - Update WooCommerce plugin version 1.0.10<\/p>\n\n<p>3.0.9\n - Update WooCommerce plugin version 1.0.9<\/p>\n\n<p>3.0.8\n - Update WooCommerce plugin version 1.0.8\n - Renamed Piwik to Matomo<\/p>\n\n<p>3.0.7\n - Update WooCommerce plugin version 1.0.7<\/p>\n\n<p>3.0.6\n - Update WooCommerce plugin version 1.0.6<\/p>\n\n<p>3.0.5\n - Update WooCommerce plugin version 1.0.5<\/p>\n\n<p>3.0.4\n - Update WooCommerce plugin version 1.0.4<\/p>\n\n<p>3.0.3\n - Update WooCommerce plugin version 1.0.3<\/p>\n\n<p>3.0.2\n - Update WooCommerce plugin version 1.0.2<\/p>\n\n<p>3.0.1\n - Update WooCommerce plugin version 1.0.1<\/p>\n\n<p>3.0.0\n - Initial version<\/p>"},"download":null}],"isDownloadable":false,"changelog":{"url":"https:\/\/plugins.matomo.org\/WooCommerceAnalytics\/changelog"},"consumer":{"license":null,"loginUrl":"https:\/\/shop.matomo.org\/my-account"}}]}