@nuxtjs/gtm
Google Tag Manager Module for Nuxt.js
@nuxtjs/google-tag-manager
) please read v2 release notes.
Setup
- Add
@nuxtjs/gtm
dependency to your project
yarn add @nuxtjs/gtm # or npm install @nuxtjs/gtm
- Add
@nuxtjs/gtm
to thebuildModules
section ofnuxt.config.js
{
buildModules: [
'@nuxtjs/gtm',
],
gtm: {
id: 'GTM-XXXXXXX'
}
}
Options
{
// Set to false to disable module in development mode
dev: true,
id: null, /* REQUIRED */
layer: 'dataLayer',
variables: {},
pageTracking: false,
pageViewEventName: 'nuxtRoute',
autoInit: true,
respectDoNotTrack: true,
scriptId: 'gtm-script',
scriptDefer: false,
scriptURL: 'https://www.googletagmanager.com/gtm.js',
noscript: false,
noscriptId: 'gtm-noscript',
noscriptURL: 'https://www.googletagmanager.com/ns.html'
}
GTM Initialisation
If you want to block Google Tag Manager before user directly allows (GDPR realisation or other), you can set autoInit
option to false
and then manually enable using $gtm.init()
.
Note: All events will be still buffered in data layer but won't send until init()
method getting called.
Router Integration
You can optionally set pageTracking
option to true
to track page views.
Note: This is disabled by default to prevent double events when using alongside with Google Analytics so take care before enabling this option.
The default event name for page views is nuxtRoute
, you can change it by setting the pageViewEventName
option.
Usage
Pushing events
You can push events into the configured layer:
this.$gtm.push({ event: 'myEvent', ...someAttributes })
Development
- Clone this repository
- Install dependencies using
yarn install
ornpm install
- Start development server using
npm run dev
License
Copyright (c) Nuxt.js Community