Giter VIP home page Giter VIP logo

gtm-module's Introduction

@nuxtjs/gtm

npm version npm downloads Checks Codecov License

Google Tag Manager Module for Nuxt.js

๐Ÿ“– Release Notes

โ„น๏ธ If coming from v1 (@nuxtjs/google-tag-manager) please read v2 release notes.

Setup

  1. Add @nuxtjs/gtm dependency to your project
yarn add @nuxtjs/gtm # or npm install @nuxtjs/gtm
  1. Add @nuxtjs/gtm to the buildModules section of nuxt.config.js
export default {
  buildModules: [
    '@nuxtjs/gtm',
  ],
  gtm: {
    id: 'GTM-XXXXXXX'
  }
}

Options

Defaults:

export default {
  gtm: {
    enabled: undefined, /* see below */

    id: undefined,
    layer: 'dataLayer',
    variables: {},

    pageTracking: false,
    pageViewEventName: 'nuxtRoute',

    autoInit: true,
    respectDoNotTrack: true,

    scriptId: 'gtm-script',
    scriptDefer: false,
    scriptURL: 'https://www.googletagmanager.com/gtm.js',

    noscript: true,
    noscriptId: 'gtm-noscript',
    noscriptURL: 'https://www.googletagmanager.com/ns.html'
  }
}

enabled

GTM module uses a debug-only version of $gtm during development (nuxt dev).

You can explicitly enable or disable it using enabled option:

export default {
  gtm: {
    // Always send real GTM events (also when using `nuxt dev`)
    enabled: true
  }
}

Manual GTM Initialization

There are several use cases that you may need more control over initialization:

  • Block Google Tag Manager before user directly allows (GDPR realisation or other)
  • Dynamic ID based on request path or domain
  • Initialize with multi containers
  • Enable GTM on page level

nuxt.config.js:

export default {
 modules: [
  '@nuxtjs/gtm'
 ],
 plugins: [
  '~/plugins/gtm'
 ]
}

plugins/gtm.js:

export default function({ $gtm, route }) {
  $gtm.init('GTM-XXXXXXX')
}
  • Note: All events will be still buffered in data layer but won't send until init() method getting called.
  • Note: Please consult with Google Tag Manager Docs for more information caveats using multiple containers.

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

  1. Clone this repository
  2. Install dependencies using yarn install or npm install
  3. Start development server using yarn dev or GTM_ID=<your gtm id> yarn dev if you want to provide custom GTM_ID.

License

MIT License

Copyright (c) Nuxt.js Community

gtm-module's People

Contributors

pi0 avatar mannil avatar rchl avatar hagi4u avatar manfies avatar kinzi avatar tsuyoshi84 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.