New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

jeffersongoncalves/laravel-matomo

A simple and elegant Laravel package that seamlessly integrates Matomo Analytics tracking code into your Blade views.
984 3
Install
composer require jeffersongoncalves/laravel-matomo
Latest Version:v3.1.0
PHP:^8.2|^8.3|^8.4
Laravel:12 · 13
Older releases:11
License:MIT
Last Updated:Oct 21, 2026
Links: GitHub  ·  Packagist
Maintainer: jeffersongoncalves

Laravel Matomo

Laravel Matomo

Buy Me A Coffee

Latest Version on Packagist GitHub Code Style Action Status Total Downloads

A simple and elegant Laravel package that seamlessly integrates Matomo Analytics tracking code into your Blade views. Settings are stored in the database via spatie/laravel-settings, allowing runtime configuration without .env files.

Installation

Install the package via Composer:

composer require jeffersongoncalves/laravel-matomo

Publish the settings migration:

php artisan vendor:publish --tag=matomo-settings-migrations

Run the migration:

php artisan migrate

Usage

Add the tracking script to your Blade layout (typically before </head>):

@include('matomo::script')

Configuration

All settings are stored in the database. You can update them via code:

use JeffersonGoncalves\Matomo\Settings\MatomoSettings;

$settings = app(MatomoSettings::class);

$settings->domains = 'example.com';
$settings->site_id = '1';
$settings->host_analytics = 'analytics.example.com';
$settings->file = 'matomo.php';
$settings->script = 'matomo.js';

$settings->save();

Available Settings

Setting Default Description
domains '' Domain(s) for tracking
site_id '1' Site ID in Matomo
host_analytics '' Matomo server URL (without protocol)
file 'matomo.php' PHP tracking file
script 'matomo.js' JS tracking file

Content Security Policy

When your app sets a CSP nonce through Laravel's Vite (Vite::useCspNonce(), as laravel-security-headers does), every <script> this package renders carries it, so a script-src 'self' 'nonce-{nonce}' policy works without 'unsafe-inline'. Scripts loaded afterwards from the vendor's own CDN still need that host in script-src (and its API in connect-src).

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

jeffersongoncalves/laravel-cookie-consent

This Laravel package provides a simple and elegant way to implement cookie conse...

18,107 5
jeffersongoncalves/laravel-gtm

This plugin seamlessly integrates Google Tag Manager (GTM) into your website, en...

6,920 4
jeffersongoncalves/laravel-cep

A simple and efficient PHP package for querying Brazilian postal codes (CEP). Th...

6,525 3
jeffersongoncalves/laravel-pwa-favicon

This Laravel package serves a spec-shaped PWA `manifest.json` (with Android dens...

5,222 3
jeffersongoncalves/laravel-favicon

This Laravel package serves a favicon.ico route, a browserconfig.xml for Windows...

4,205 2

Version History

Version Released PHP Laravel License
v3.1.0 ^8.2|^8.3|^8.4 ^12.61.1|^13.12.0 MIT
v3.0.0 ^8.2|^8.3|^8.4 ^12.61.1|^13.12.0 MIT
v2.0.4 ^8.2|^8.3 ^11.0|^12.0|^13.0 MIT
v2.0.3 ^8.2|^8.3 ^11.0|^12.0|^13.0 MIT
v2.0.2 ^8.2|^8.3 ^11.0|^12.0|^13.0 MIT