code-tree-dev / laravel-utm-tracker
A lightweight Laravel package that adds a middleware to automatically capture and store UTM parameters (like utm_source, utm_medium, utm_campaign) from incoming requests. Makes it easy to track traffic sources across sessions for analytics, marketing attribution, or lead tracking.
Installs: 65
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/code-tree-dev/laravel-utm-tracker
Requires
- php: ^8.0 || ^8.1 || ^8.2 || ^8.3 || ^8.4
- illuminate/support: ^9.0 || ^10.0 || ^11.0 || ^12.0
Requires (Dev)
- orchestra/testbench: ^7.0 || ^8.0 || ^9.0 || ^10.0
- phpunit/phpunit: ^9.5 || ^10.0 || ^11.0
README
Laravel UTM Tracker is a package for Laravel that automatically or manually tracks UTM parameters from your visitors and stores them in your database. It is ideal for marketing attribution, analytics, and campaign tracking. The package is easy to configure, extend, and integrates seamlessly with Laravel middleware and facades.
Features
- Automatic UTM tracking via middleware
- Manual UTM tracking via Facade
- Stores UTM data in the database, session, or cookie
- Easily extendable for custom UTM parameters
- Ready for analytics and marketing attribution
Installation
Install the package via Composer:
composer require code-tree-dev/laravel-utm-tracker
Publish the config and migration files (optional):
php artisan vendor:publish --provider="CodeTreeDev\LaravelUtmTracker\LaravelUtmTrackerServiceProvider"
Run the migrations if using database storage:
php artisan migrate
Configuration
You can configure the package in config/laravel-utm-tracker.php:
storage: Where to store UTM data (session,cookie, ordatabase)parameters: Default UTM parameters to trackcustom_parameters: Add your own custom UTM parameterscookie_lifetime: Lifetime for cookies (if using cookie storage)auto_track: Enable/disable automatic tracking via middlewaretable: Table name for database storage
Usage
Automatic Tracking (Middleware)
By default, the package's middleware is registered and will automatically capture UTM parameters from incoming requests:
// No action needed if auto_track is enabled in config.
Manual Tracking (Facade)
You can manually create a UTM visit record using the Facade:
use LaravelUtmTracker; LaravelUtmTracker::track([ 'utm_source' => 'newsletter', 'utm_medium' => 'email', 'utm_campaign' => 'spring_sale', // ...other fields... ]);
Testing
Run the test suite with:
composer test
Contributing
Contributions are welcome! Please read the CONTRIBUTING and CODE_OF_CONDUCT files for details.
- Open issues for bugs or feature requests
- Submit pull requests for improvements
Security
If you discover any security related issues, please email codetreedev@gmail.com instead of using the issue tracker.
Changelog
See CHANGELOG for recent changes.
Credits
License
The MIT License (MIT). See License File for details.
Laravel Package Boilerplate
This package was generated using the Laravel Package Boilerplate.