我有一个具有通用标头的多租户网站,目前正在通过以下简单的JavaScript注入Google Analytics(分析)代码。
if(window.location.href.startsWith("https://docs.domain1.com"))
{
loadGroupDocsCloudResources('UA-xxxxxxx-x');
}
function addGoogleTrackingCode(trackingCode)
{
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "https://www.googletagmanager.com/gtag/js?id=" + trackingCode;
s.setAttribute('async','');
$("head").append(s);
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', trackingCode);
}
这很好,但是,我们现在为每个站点定义了GTM容器,因此需要更新代码以插入相同的代码。
到目前为止,我一直试图通过将GTM脚本存储在2个变量中来添加代码,并使用JavaScript的append命令将其注入head和body,但这没有用。
请注意,GTM脚本有2个部分,接下来必须要介绍。
<!-- Google Tag Manager -->
<script>(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','GTM-xxxxxx');</script>
<!-- End Google Tag Manager -->
必须跟随身体。
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-xxxxx"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
有没有办法动态处理此问题?意思是,我想通过JavaScript为不同站点放置3套或更多套GTM脚本?