flppv
flppv

Reputation: 4299

Next.js + react-gtm-module ReferenceError: document is not defined

I use this piece to initialize GTM in my Next.js app:

const tagManagerArgs = {
  gtmId: "GTM-XXXXXX"
};
TagManager.initialize(tagManagerArgs);

But when I am trying to start an app with it I am getting the error:

ReferenceError: document is not defined
    at Object.dataScript (/Users/username/work/projectname/node_modules/react-gtm-module/dist/TagManager.js:11:18)

How to solve this?

Upvotes: 6

Views: 3681

Answers (2)

Juan Chaher
Juan Chaher

Reputation: 601

You can initialize TagManager right when the website has mounted to ensure that the DOM api is available

useEffect(()=>{
    TagManager.initialize({gtmId: 'GTM-XXXXXX'})
},[])

Upvotes: 2

flppv
flppv

Reputation: 4299

Wrapping the piece of TagManager initializer with a checker helped:

if (process.browser) {
  TagManager.initialize(tagManagerArgs);
}

Upvotes: 7

Related Questions