Filament Tracking Consent is a Filament plugin that allows you to easily integrate tracking codes (e.g., Google Analytics) into your frontend while ensuring compliance with GDPR and other privacy regulations.
This package includes a fully customizable cookie consent banner and provides a structured way to manage tracking scripts based on user preferences.
✅ GDPR-Compliant Cookie Consent Banner – Display a customizable banner for users to accept or reject tracking cookies.
✅ Automatic Script Blocking – Tracking scripts are only executed once user consent is granted.
✅ Granular Consent Management – Users can enable or disable tracking per category (e.g., Analytics, Marketing, Preferences).
✅ Easy Integration – Simple Blade components and stack placeholders to include tracking scripts in your layout.
✅ Fully Configurable – Modify the banner style, text, and behavior via a Filament Page.
✅ Supports Multiple Languages – Easily translate consent messages for multilingual applications.
✅ Built on CookieConsent.js – Uses the powerful CookieConsent library by Orest Bida for a robust and reliable solution.
This package depends on DB Config. Make sure you install it first.
Install the package via Composer:
composer require postare/filament-tracking-consentPublish the configuration file:
php artisan vendor:publish --tag="filament-tracking-consent-config"The default configuration file looks like this:
return [
'settings-page' => [
'title' => 'Tracking Settings',
'navigation-label' => 'Tracking and Consent',
'navigation-icon' => 'heroicon-o-presentation-chart-bar',
'navigation-group' => 'Settings',
],
];To enable the plugin, register it inside your Filament panel provider, typically in app/Providers/Filament/AdminPanelProvider.php:
->plugins([
...
\Postare\FilamentTrackingConsent\FilamentTrackingConsentPlugin::make(),
])Add the tracking consent component inside your layout file, just before the closing <head> tag:
<x-filament-tracking-consent::tracking-consent />Use these stack placeholders to control where tracking scripts are injected:
-
Immediately after opening
<body>:@stack('tracking-consent-body-start')
-
Just before closing
</body>:@stack('tracking-consent-body-end')
To allow users to adjust their cookie preferences after initial selection, place this stack wherever you want the button to appear (e.g., in the footer):
@stack('tracking-consent-preferences-btn')This plugin is powered by CookieConsent.js, an open-source, lightweight, and highly customizable JavaScript library for managing cookie consent.
- Fully customizable UI – Modify the banner design to match your brand.
- Granular consent control – Users can enable or disable specific categories of cookies.
- Automatic script management – Blocks tracking scripts until consent is given.
- Multiple language support – Display consent banners in different languages.
- Privacy law compliance – Helps ensure compliance with GDPR, CCPA, and similar regulations.
For advanced customization options, refer to the CookieConsent documentation.
This package is open-source software licensed under the MIT License.