xynnn / google-tag-manager-bundle
Google Tag Manager Bundle for Symfony
Installs: 572 139
Dependents: 1
Suggesters: 0
Security: 0
Stars: 27
Watchers: 3
Forks: 15
Open Issues: 7
Type:symfony-bundle
Requires
- php: >=8.0.2
- symfony/config: ^6.0
- symfony/dependency-injection: ^6.0
- symfony/http-kernel: ^6.0
- symfony/templating: ^6.0
- symfony/yaml: ^6.0
- twig/twig: ~1.34|~2.0|~3.0
Requires (Dev)
- phpunit/phpunit: ^9
README
The GoogleTagManagerBundle provides you an easy-to-use method to integrate the Google Tag Manager into your Symfony 2 application.
Note: This Bundle is still in development. Feel free to report encountered issues!
Requirements
2.x
- PHP 5.3 and higher
- Symfony 2.8 and higher
3.x
- PHP 5.6 and higher
- Symfony 2.8 and higher
Install
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
2.x
$ composer require xynnn/google-tag-manager-bundle "~2.0"
3.x
$ composer require xynnn/google-tag-manager-bundle "~3.0"
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
Then, enable the bundle by adding the following line in the app/AppKernel.php
file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Xynnn\GoogleTagManagerBundle\GoogleTagManagerBundle(), ); // ... } // ... }
Step 3: Enable Google Tag Manager
Add the configuration to your yaml file. Please don't forget to adjust your Google Tag Manager Id.
Step 4: Insert the ViewHelper
Insert the ViewHelper into your layout file to enable the Google Tag Manager. Please be aware to insert into right after the HTML body tag!
<body> {{ google_tag_manager_body() }} ... </body>
And right after the HTML head tag:
<head> {{ google_tag_manager_head() }} ... </head>
And right before the closing BODY tag:
{{ google_tag_manager_body_end() }} </body>
Or use the autoAppend
setting to let a kernel reponse listener add them to your layout automatically.
Additional instructions: https://developers.google.com/tag-manager/quickstart
Step 5: Fill up the DataLayer from Google Tag Manager (Optional)
If you want to send some information to the Google Tag Manager, you can use the dataLayer.
/** @var GoogleTagManagerInterface $manager */ $manager = $this->get('google_tag_manager'); $manager->setData('example', 'value');
And if you want to add pushes at the end of the body (not in initial dataLayer):
/** @var GoogleTagManagerInterface $manager */ $manager = $this->get('google_tag_manager'); $manager->addPush(['test' => 123);
Configuration
google_tag_manager: enabled: true id: "GTM-XXXXXX" autoAppend: true|false
An optional paramater called additionalParamaters
allows specifying URL parameters to add on to the tag manager URLs. This can be used to support custom environments in tag manager.
google_tag_manager: additionalParameters: gtm_auth=XXXXXXXXXXXXX>m_preview=env-30>m_cookies_win=x
Authors
Philipp Bräutigam
... and Contributors!
License
Copyright (c) 2017 Philipp Bräutigam This repository is released under the GNU LGPL v3.0 license.