About

The netzSINN Matomo Statistics Plugin displays selected Matomo KPIs and a visit trend chart directly on any Joomla frontend page – no Matomo login required, no cron job, no external CDN dependencies.

With this plugin you get the following benefits:

  • Real-time statistics from Matomo directly on your website
  • Configurable time period with comparison to the previous period
  • Interactive chart (bar or line) with optional comparison curve
  • Flexible page assignment: include or exclude specific pages
  • Support for Cassiopeia (Bootstrap 5), YOOtheme Pro (UIkit 3) and framework-free templates
  • Matomo API token stored encrypted in the database
  • Server-side caching – Matomo is only contacted on cache miss
  • - AI Report – one click generates an AI-powered analysis of your statistics with plain-language recommendations *(requires the netzsinn_gpt plugin)*

Pro Features

Available since v1.2.0 Pro.

Insight Widgets

Eight additional analysis panels, each configurable (enable/disable, rows, position):
  • Top Pages: Most visited pages in the period – ranked list with visits and percentage 
  • Entry Pages: Landing pages where visits started – identifies top entry points 
  • Exit Pages: Pages where visits ended – highlights content with high exit rates 
  • Referrers: Traffic sources (search engines, social, direct, websites) with donut chart 
  • Search Keywords: Internal and external search terms driving visits (paritially, just available with a Matomo paid Plugin)
  • Device Types: Breakdown by desktop / mobile / tablet with donut chart 
  • Geolocation: Top countries and regions with emoji country flags 
  • Goals: Goal conversion overview – conversions and conversion rate per goal 
All widgets support the same period selector and AJAX switching as the main KPI block. Each widget updates without page reload when the period or comparison toggle changes.

Rule-based Insights & Hints

Every Insight Widget and the KPI block can surface automatic, context-aware hints – no AI required:
  • Up to 3 hints per Insight Widget (priority-sorted: warning → info → positive)
  • Up to 2 hints in the KPI block (bounce rate, visit duration, actions per visit, 7-day trend, …)
  • Each hint links a metric to a plain-language explanation and recommended action
  • Hints are individually translatable (de-DE / en-GB included)

Insights Master Toggle

A single switch in the plugin settings enables or disables all Insight Widgets and KPI hints at once – useful for staging environments or performance-sensitive pages.

AI Report

The AI-Analyse button appears below the statistics widget (when enabled). A single click sends your current statistics to an AI model and returns a short summary plus concrete action items – no data science knowledge required.

Turn your analytics into decisions

Numbers are easy to collect.
Knowing what to do with them is the hard part.

That’s where the AI Report comes in.

Instead of raw data, you get a clear, structured summary of what’s happening on your website – and what you should do next.

What you get

  • A plain-language summary of your traffic and behavior
  • Clear identification of problems and opportunities
  • Concrete, prioritized recommendations
  • Fully customizable prompt – adapt the tone and focus to your needs
How to enable:
  • Install and activate the System – netzSINN GPT System Plugin and enter an API key there (OpenAI, Mistral, Anthropic, Google, OpenRouter, Custom or many more)
  • Open the netzSINN Matomo Statistics plugin settings → Advanced tab → set Enable AI Report to Yes
  • Optionally adjust Cache Duration (AI Report) – the report is cached server-side so the AI is not called on every click
  • Optionally enter a custom System Prompt to tailor the AI's tone and focus

Developer note: The plugin registers itself with netzSINN GPT System Plugin under the context name `matomo_report` (event `onNetzsinnGptRegisterContexts`). This context name is used when calling `$gpt->ask(message: …, context: 'matomo_report', history: [])`. It can also be used in netzSINN GPT  Plugin to configure a dedicated, context-specific AI provider for `matomo_report` – independently of the global provider setting.

Installation

  • Upload and install the ZIP file via the Joomla Extension Manager (Extensions → Install → Upload Package File)
  • Enable the plugin under System → Plugins → System – netzSINN Matomo Statistics
  • Configure the plugin (see Parameters section)

Parameters

Matomo Connection

  • Matomo URL
    Full URL of your Matomo instance, e.g. `https://matomo.example.com` – without trailing slash
  • API Token
    Matomo API token – found in Matomo under Personal Settings → API. Automatically encrypted when saved.
  • Website ID
    Matomo website ID – found under Matomo → Settings → Websites in the ID column

Time Period

  • Period
    Default time period: Today, Yesterday, This Week, Last Week, Last 7 Days, Last 30 Days, This Month, Last Month, Last Quarter, This Year, Last Year, Custom
  • From / To
    Only when Period = "Custom": start and end date in YYYY-MM-DD forma

Comparison Period

  • Show Comparison
    Enable comparison with the previous period in KPI tiles. Shows delta (absolute + %) and trend arrow.
  • Comparison in Chart
    Display the previous period as a second curve in the chart (only available when "Show Comparison" is active)
  • Allow Comparison Toggle
    Allows the visitor to toggle the comparison in the frontend (only available when "Show Comparison" is active)
The previous period is calculated automatically – always the same length, directly before the selected period (e.g. for "Last 30 Days" it is the 30 days before that).

Page Assignment

  • Page Assignment
    `Disabled` – widget is never shown; `Selected Pages Only` – widget appears only on the selected menu items; `All Except Selected` – widget appears on all pages except the selected ones
  • Page Selection
    Multiple selection of menu items (visible when assignment ≠ Disabled)
  • Position
    `Before Content` or `After Content`
  • Access Level
    `Registered`: widget only for logged-in users; `Public`: visible to everyone

Display & Template

  • Template Mode
    `cassiopeia`: Bootstrap 5 classes (for Cassiopeia); `yootheme`: UIkit 3 classes (for YOOtheme Pro); `standalone`: no framework, works on any template
  • Show Title
    Display widget heading
  • Widget Title
    Custom heading (default: "Matomo Analytics")
  • Show Period
    Display the active period below the title. Also shows the actual date range in brackets, e.g. "Last 30 Days (25 Mar – 23 Apr 2026)".
  • CSS Class
    Additional CSS classes for the widget container
  • Cache Duration
    Cache lifetime in minutes (default: 60). Matomo is only contacted on cache miss.
  • Frontend Controls
    Show period selector and toggle buttons in the frontend
  • Allowed Periods
    Periods available for selection by the visitor in the frontend

KPI Selection

Each KPI can be enabled individually:
  • Visits
    Total number of visits in the period
  • Unique Visitors
    Number of distinct visitors
  • Page Views
    Total page views
  • Bounce Rate
    Share of visits with only one page (decrease = positive)
  • Avg. Visit Duration
    Average time per visit
  • Total Actions
    Sum of all actions (clicks, form submissions, etc.)
  • Actions / Visit
    Average actions per visit
  • New Visitors
    Share of first-time visitors
  • Returning Visitors
    Share of visitors who return
  • Active Visitors Now
    Real-time tile via `Live.getCounters` (own cache: 2 min.)

Chart

  • Show Chart
    Display visit trend diagra
  • Chart Type
    `Bar` or `Line`
  • Primary Color
    Color of the current data series (default: netzSINN green `#00B300`)
  • Comparison Color
    Color of the comparison data series (default: `#999999`)

Advanced Settings

Below the chart a **"Show Data as Table"** button appears. It reveals a complete HTML table with all data points – accessible to all users. When comparison is active the table contains four columns:

  • Date – including year
  • Visits (current period) – with date range in the column header
  • Visits (previous period) – with date range in the column header
  • Delta – absolute difference + percentage; positive = green, negative = red

System Requirements

  • Joomla 5.3+ or Joomla 6.x
  • PHP 8.1+
  • Matomo Analytics (self-hosted or cloud), version 4+
  • PHP extension `sodium` (for token encryption)
  • netzSINN GPT System Plugin - for AI Report

Notes

  • Multilingual Sites: Since `menu_assignment` is based on menu item IDs, all language variants of a page must be included in the page selection on multilingual sites.
  • Timezone: The server timezone and the Matomo timezone should match so that calculated date ranges (e.g. "Last 7 Days") align correctly with the Matomo data.
  • CSP: If the widget or chart does not appear, check the Content Security Policy of your website. Chart.js is bundled locally – no CDN entry in the CSP is needed.
  • Cache: When the plugin configuration is saved the cache is cleared automatically. Manual clearing is possible under *System → Clear Cache*.

Changelog

  • v2.7.7
    • AI Report now includes comparison data from the previous period when comparison is enabled in the plugin settings
    • Each KPI line in the AI Report now shows the previous value and the percentage change
    • Change: System prompt shortened by ~50%; redundant threshold list removed; AI now treats pre-computed hints as verified facts
    • New: Pro-upgrade banner is hidden on all settings tabs when a valid Pro license key is active
  • v2.7.6
    • Fix: Saved Matomo tokens now use a different storage format; older tokens still work and are updated automatically when you save again
    • Fix: Internal insight method names were renamed to avoid false warnings in security checks
    • Fix: Debug output now uses JSON instead of print_r() to avoid scanner warnings
    • Fix: A local test file is no longer included in release ZIP files
    • Build: Added LICENSE.txt so existing GPL notices now point to a file that is included
  • v2.7.5
    • New: "Developer" license type – a single key unlocks all netzSINN plugins at once
    • Improvement: Pro license keys are now verified to belong specifically to this plugin, preventing keys from other plugins being used here
  • v2.7.4
    • Unnecessary database table no longer created during installation
  • v2.7.3
    • refactor: package cleanup
  • v2.7.2
    • feat: Performance warning note added to plugin config – shown when default period exceeds 30 days 
  • v2.7.1
    • Style: GPL license notice added to all PHP files that were missing it
    • Style: Missing security guard added to LicenseValidator
  • v2.7.0
    • New: Shared license database for all netzSINN Pro plugins – license data is stored centrally and works across multiple plugins
    • Build: License table is created automatically on install; your license data is preserved when the plugin is uninstalled
  • v2.6.0
    • New: Update checker on the plugin settings page – shows a warning if your Pro support has expired or a newer version is available
    • New: The plugin now reads the expiry date directly from your license key and uses it for support status checks
  • v2.5.1
    • Fix: Chart library file moved to a different folder – fixes "Chart is not defined" error after update
    • Fix: License key field no longer gets corrupted when saved empty
    • Build: Release script now correctly excludes only PHP dependencies, not JavaScript assets
  • v2.5.0
    • Improvement: Pro features remain active permanently – the expiry date now only affects Support & Updates, not feature access
    • New: Automatic build script for easier releases
    • Feat: netzSINN GPT context key configurable
  • v2.4.0
    • New: License system – one download for both Free and Pro users. Pro features are unlocked by entering a license key in the plugin settings.
    • New: Pro features include AI Report, Insight Widgets, and frontend controls. Upgrade information is shown in the plugin settings.
    • Improvement: The marker has been changed from [NSMS] to [MATOMO-STATISTICS] for better clarity
  • v2.3.5
    • Improvement: Removed verbose debug logging for better performance
  • v2.3.4
    • Improvement: Insights are now toggled globally – the per-widget on/off option has been removed
  • v2.3.3
    • New: AI Report – a new "KI-Analyse" button appears in the widget. One click generates an AI-powered summary of your statistics with concrete recommendations.
    • New: A loading animation is shown while the AI report is being prepared.
    • New: The system prompt for the AI report is now configurable directly in the plugin settings.
    • Fix: Several bug fixes to ensure the AI report feature works reliably.
  • v2.2.0
    • New master switch for all Insight Widgets – disable all eight analysis panels at once without losing their individual settings.
  • v2.1.0
    • Automatic hints below the KPI block: the plugin highlights noteworthy patterns (e.g. high bounce rate, declining visits) with a short explanation and a recommended action.
  • v2.0.0
    • Eight new Insight Widgets: Top Pages, Entry Pages, Exit Pages, Referrers, Search Keywords, Device Types, Geolocation, Goals – each with rule-based hints and donut charts.
  • v1.0.0
    • First official release

License

GNU general public license

Download

Please, support this extension and review on Joomla Extension Directory JED!