Google跟踪代码管理器定位

时间:2014-06-19 08:37:25

标签: javascript tracking google-tag-manager

我对谷歌标记管理器代码段的定位有一般性问题。根据谷歌的实施指南,标签管理器应该在body标签启动后立即实现。我的问题如下:

  • 跟踪应该加载到头部的脚本会发生什么?
  • 跟踪应该在正文末尾加载的脚本会发生什么?

例如VWO(可视化网站优化器)建议在头部加载代码以避免闪烁......

我可以有2个容器吗?一个在头的末端,一个在身体的开头?

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) -->