diff --git a/packages/analytics-nextjs/src/lib/index.ts b/packages/analytics-nextjs/src/lib/index.ts index fc8e131..383a4fc 100644 --- a/packages/analytics-nextjs/src/lib/index.ts +++ b/packages/analytics-nextjs/src/lib/index.ts @@ -1,5 +1,6 @@ export * from './getApiUrl'; export * from './getTrackingPermissions'; export * from './isNavigatorTrackingAllowed'; +export * from './loadGoogleAnalytics'; export * from './noop'; export * from './stringify'; diff --git a/packages/analytics-nextjs/src/lib/loadGoogleAnalytics.ts b/packages/analytics-nextjs/src/lib/loadGoogleAnalytics.ts new file mode 100644 index 0000000..9e7ffa2 --- /dev/null +++ b/packages/analytics-nextjs/src/lib/loadGoogleAnalytics.ts @@ -0,0 +1,47 @@ +function loadTagManager(analyticsId: `GTM-${string}`) { + const script = document.createElement('script'); + script.setAttribute('id', 'google-tag-manager-bootstrap'); + script.innerHTML = `\ + (function(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); + })(window,document,'script','dataLayer','${analyticsId}');`; + + const noscript = document.createElement('noscript'); + noscript.innerHTML = ` +