Skip to content

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.

License

code-tree-dev/laravel-utm-tracker

Laravel UTM Tracker

Latest Version on Packagist Total Downloads GitHub Actions

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, or database)
  • parameters: Default UTM parameters to track
  • custom_parameters: Add your own custom UTM parameters
  • cookie_lifetime: Lifetime for cookies (if using cookie storage)
  • auto_track: Enable/disable automatic tracking via middleware
  • table: 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.

About

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.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages