jeffersongoncalves / laravel-gtm
This plugin seamlessly integrates Google Tag Manager (GTM) into your website, enabling streamlined management and deployment of marketing tags, analytics, and tracking pixels. With easy-to-implement script inclusion and customizable options, it simplifies the process of monitoring user interactions
Installs: 66
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
pkg:composer/jeffersongoncalves/laravel-gtm
Requires
- php: ^8.2|^8.3
- laravel/framework: ^11.0|^12.0|^13.0
- spatie/laravel-package-tools: ^1.14.0
- spatie/laravel-settings: ^3.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.27
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.7.4
- pestphp/pest-plugin-laravel: ^3.0
This package is auto-updated.
Last update: 2026-02-24 17:24:30 UTC
README
Laravel Google Tag Manager
This plugin seamlessly integrates Google Tag Manager (GTM) into your website, enabling streamlined management and deployment of marketing tags, analytics, and tracking pixels. With easy-to-implement script inclusion and customizable options, it simplifies the process of monitoring user interactions and gathering valuable insights without altering your site's core code. Perfect for marketers and developers looking to enhance their tracking capabilities with minimal effort.
Requirements
- PHP 8.2+
- Laravel 11.0+
spatie/laravel-settings^3.0 (installed automatically)
Installation
You can install the package via composer:
composer require jeffersongoncalves/laravel-gtm
Run the migrations to create the settings table and seed the GTM settings:
php artisan migrate
Configuration
Setting your GTM ID
The GTM ID is stored in the database via spatie/laravel-settings. Configure it at runtime using any of the following approaches:
Via dependency injection
use JeffersonGoncalves\Gtm\Settings\GtmSettings; $settings = app(GtmSettings::class); $settings->gtm_id = 'GTM-XXXXXX'; $settings->save();
Via helper function
$settings = gtm_settings(); $settings->gtm_id = 'GTM-XXXXXX'; $settings->save();
Publishing the settings migration (optional)
If you need to customize the settings migration:
php artisan vendor:publish --tag=gtm-settings-migrations
Usage
Add the GTM head script inside your <head> tag, as high as possible:
@include('gtm::head')
Add the GTM body noscript immediately after the opening <body> tag:
@include('gtm::body')
Reading the current GTM ID
// Via helper $gtmId = gtm_settings()->gtm_id; // Via container $gtmId = app(\JeffersonGoncalves\Gtm\Settings\GtmSettings::class)->gtm_id; // Via Facade $gtmId = \JeffersonGoncalves\Gtm\Facades\Gtm::gtm_id;
Updating the GTM ID at runtime
$settings = gtm_settings(); $settings->gtm_id = 'GTM-NEWID'; $settings->save();
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.
