export class GTM { gtagID = "{{.GtagID}}"; constructor() { this.insertScript(window, document, 'script', 'dataLayer', this.gtagID); this.insertNoScript(); } insertScript(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); } insertNoScript() { const noscript = document.createElement("noscript"); const iframe = document.createElement("iframe"); iframe.src = "https://www.googletagmanager.com/ns.html?id=" + this.gtagID; iframe.height = 0; iframe.width = 0; iframe.style = "display:none;visibility:hidden"; noscript.appendChild(iframe); document.body.appendChild(noscript); } }