mattitjaab / mattitja-analytics
Laravel middleware package for sending analytics data to Mattitja Analytics API
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/mattitjaab/mattitja-analytics
Requires
- php: ^8.3
- guzzlehttp/guzzle: ^7.0
- illuminate/http: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
Requires (Dev)
- laravel/pint: ^1.25
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
README
A Laravel middleware package for sending analytics data to the Mattitja Analytics API. The package automatically registers middleware for web routes and sends data synchronously to the analytics service.
Installation
composer require mattitjaab/mattitja-analytics
Configuration
Publish the configuration file (optional):
php artisan vendor:publish --tag=mattitja-analytics-config
Add your site key to your .env file:
MATTITJA_ANALYTICS_SITE_KEY=your-site-key MATTITJA_ANALYTICS_ENABLED=true
Usage
The package automatically registers middleware for the web group and starts collecting analytics data immediately after installation and configuration.
Manual middleware registration
You can also add the middleware manually for specific routes:
// In routes/web.php Route::middleware(['mattitja-analytics'])->group(function () { // Your routes here });
Configuration Options
Basic Settings
MATTITJA_ANALYTICS_SITE_KEY- Your site key from Mattitja Analytics (required)MATTITJA_ANALYTICS_ENABLED- Enable/disable tracking (default: true)MATTITJA_ANALYTICS_BOTS- Track bots (default: false)
Privacy Settings
MATTITJA_ANALYTICS_RESPECT_DNT- Respect Do Not Track header (default: true)
Filtering
You can configure paths and IP addresses to ignore in the config file.
Data Sent
The package sends the following data to https://analytics.mattitja.cloud/api/send:
k- Site keyu- Full URL of the visited pager- Referrer URL (if available)ip- Visitor's complete IP addressua- User agent string
Security
- Data is sent synchronously directly from middleware
- IP addresses are NOT anonymized (needed for geolocation)
- Bot traffic is filtered out by default
- Do Not Track header is respected by default
Development
Run tests:
composer test
License
MIT License