From f611aa36956ee5314ff4697008a53fd08d288627 Mon Sep 17 00:00:00 2001 From: Trevin Chow Date: Wed, 5 Feb 2025 21:41:30 -0800 Subject: [PATCH] feat: add gtm environment config Corresponds to this change in the rudder-integrations-config repo: https://github.com/rudderlabs/rudder-integrations-config/pull/1894 --- .../src/integrations/GoogleTagManager/browser.js | 4 +++- .../src/integrations/GoogleTagManager/nativeSdkLoader.js | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/analytics-js-integrations/src/integrations/GoogleTagManager/browser.js b/packages/analytics-js-integrations/src/integrations/GoogleTagManager/browser.js index 07bc7c3cd0..c79da575df 100644 --- a/packages/analytics-js-integrations/src/integrations/GoogleTagManager/browser.js +++ b/packages/analytics-js-integrations/src/integrations/GoogleTagManager/browser.js @@ -15,6 +15,8 @@ class GoogleTagManager { } this.analytics = analytics; this.containerID = config.containerID; + this.environmentID = config.environmentID; + this.authorizationToken = config.authorizationToken; this.name = NAME; this.serverUrl = config.serverUrl; ({ @@ -25,7 +27,7 @@ class GoogleTagManager { } init() { - loadNativeSdk(this.containerID, this.serverUrl); + loadNativeSdk(this.containerID, this.serverUrl, this.environmentID, this.authorizationToken); } isLoaded() { diff --git a/packages/analytics-js-integrations/src/integrations/GoogleTagManager/nativeSdkLoader.js b/packages/analytics-js-integrations/src/integrations/GoogleTagManager/nativeSdkLoader.js index c5879bd151..3851036842 100644 --- a/packages/analytics-js-integrations/src/integrations/GoogleTagManager/nativeSdkLoader.js +++ b/packages/analytics-js-integrations/src/integrations/GoogleTagManager/nativeSdkLoader.js @@ -1,6 +1,6 @@ import { LOAD_ORIGIN } from '@rudderstack/analytics-js-common/v1.1/utils/constants'; -function loadNativeSdk(containerID, serverUrl) { +function loadNativeSdk(containerID, serverUrl, environmentID, authorizationToken) { const defaultUrl = `https://www.googletagmanager.com`; // ref: https://developers.google.com/tag-platform/tag-manager/server-side/send-data#update_the_gtmjs_source_domain @@ -11,9 +11,12 @@ function loadNativeSdk(containerID, serverUrl) { const f = d.getElementsByTagName(s)[0]; const j = d.createElement(s); const dl = l !== 'dataLayer' ? `&l=${l}` : ''; + const gtmEnv = environmentID ? `>m_preview=env-${environmentID}` : ''; + const gtmAuth = authorizationToken ? `>m_auth=${authorizationToken}` : ''; + const gtmCookies = '>m_cookies_win=x'; j.setAttribute('data-loader', LOAD_ORIGIN); j.async = true; - j.src = `${window.finalUrl}/gtm.js?id=${i}${dl}`; + j.src = `${window.finalUrl}/gtm.js?id=${i}${dl}${gtmAuth}${gtmEnv}${gtmCookies}`; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', containerID); }