diff --git a/integrations/GoogleTagManager/browser.js b/integrations/GoogleTagManager/browser.js index 333ca910fa..1d25c2acba 100644 --- a/integrations/GoogleTagManager/browser.js +++ b/integrations/GoogleTagManager/browser.js @@ -4,10 +4,18 @@ class GoogleTagManager { constructor(config) { this.containerID = config.containerID; this.name = "GOOGLETAGMANAGER"; + this.serverUrl = config.serverUrl; } init() { logger.debug("===in init GoogleTagManager==="); + + const defaultUrl = `https://www.googletagmanager.com`; + + // ref: https://developers.google.com/tag-platform/tag-manager/server-side/send-data#update_the_gtmjs_source_domain + + window.finalUrl = this.serverUrl ? this.serverUrl : defaultUrl; + (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" }); @@ -15,7 +23,7 @@ class GoogleTagManager { const j = d.createElement(s); const dl = l !== "dataLayer" ? `&l=${l}` : ""; j.async = true; - j.src = `https://www.googletagmanager.com/gtm.js?id=${i}${dl}`; + j.src = `${window.finalUrl}/gtm.js?id=${i}${dl}`; f.parentNode.insertBefore(j, f); })(window, document, "script", "dataLayer", this.containerID); }