Looking to hire Laravel developers? Try LaraJobs

laravel-gtm maintained by jeffersongoncalves

Description
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.
Last update
2026/05/23 19:11 (dev-master)
License
Downloads
1 019

Comments
comments powered by Disqus

Laravel Gtm

Laravel Google Tag Manager

Latest Version on Packagist GitHub Code Style Action Status Total Downloads

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.