我对谷歌标记管理器代码段的定位有一般性问题。根据谷歌的实施指南,标签管理器应该在body标签启动后立即实现。我的问题如下:
例如VWO(可视化网站优化器)建议在头部加载代码以避免闪烁......
我可以有2个容器吗?一个在头的末端,一个在身体的开头?
答案 0 :(得分:2)
可能有两个标签管理器标签,但这不会做你想要的(并可能导致问题)。 GTM应该直接放在开始体标记之后而不是在另一个元素内部的原因是GTM做了一些DOM操作来插入包含的标记。所有已配置的标记都打包到一个javascript对象中,该对象将插入到您的页面中并从那里触发。将GTM标记放入另一个位置不会更改插入标记的位置(除非用户已禁用javascript,否则图像标记将显示在iframe中)。但是,这意味着GTM标记可能会失败,因为注入javascript的DOM操作可能无法在指定的位置之外的其他位置工作(特别是如果将其放在正文之外,则为true)。
实际上Google表示,由于这个原因,跟踪代码管理器不适合用于更改页面外观的标签(例如A / B测试工具,这是自{GTM首次发布以来listed as "coming soon")。
答案 1 :(得分:0)
随着时间的推移,这已经发生了变化,现在GTM功能集成了Google的Optimize等A / B测试工具。
为此,您需要添加两段代码:
在<header>
标记之后:
<!-- 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-CONTAINER_ID');</script>
<!-- End Google Tag Manager -->
在<body>
代码
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-CONTAINTER_ID"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->