Search by

jeffersongoncalves / laravel-simple-analytics

jeffersongoncalves

Simple Analytics for Laravel: inject the tracking script in your Blade layouts, with the settings stored in the database via spatie/laravel-settings.

Package info

github.com/jeffersongoncalves/laravel-simple-analytics

pkg:composer/jeffersongoncalves/laravel-simple-analytics

Fund package maintenance!

jeffersongoncalves

Statistics

Installs: 33

Dependents: 1

Suggesters: 0

Stars: 1

Open Issues: 0

1.1.0 2026-10-09 17:16 UTC

This package is auto-updated.

Last update: 2026-10-10 20:00:07 UTC


README

Laravel Simple Analytics

Laravel Simple Analytics

Latest Version on Packagist GitHub Code Style Action Status Total Downloads

Add Simple Analytics — privacy-first, GDPR-compliant analytics without cookies — to your Laravel app. The settings are stored in the database with spatie/laravel-settings, so you can change them at runtime (e.g. from an admin panel) instead of in .env.

For a Filament settings page, use jeffersongoncalves/filament-simple-analytics.

Installation

composer require jeffersongoncalves/laravel-simple-analytics

Publish and run the settings migration:

php artisan vendor:publish --tag=simple-analytics-settings-migrations
php artisan migrate

Configuration

$settings = simple_analytics_settings();
$settings->enabled = true;
$settings->hostname = 'example.com';
$settings->save();

Or through the settings class or the Facade:

use JeffersonGoncalves\SimpleAnalytics\Facades\SimpleAnalytics;
use JeffersonGoncalves\SimpleAnalytics\Settings\SimpleAnalyticsSettings;

$settings = app(SimpleAnalyticsSettings::class);
$value = SimpleAnalytics::getFacadeRoot()->enabled;

Available settings

Setting Type Default Description
enabled bool false Load the Simple Analytics script. No ID needed: visits are matched by domain.
hostname ?string null Optional domain to report the visits under (data-hostname).

Usage

Add the script to your Blade layout, inside <head>:

@include('simple-analytics::script')

Nothing is rendered until the settings are complete, so you can ship the include everywhere and turn Simple Analytics on later.

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.