加载gtm.js时网页闪烁

时间:2015-06-17 09:55:16

标签: javascript html asynchronous loading google-tag-manager

当gtm.js加载asyncrounous时,我的网页出现问题。目前,我们的网站发生“闪烁”,所以您感觉网站已加载2次。我已经评论过GTM的脚本,不再有“闪烁”了。我尝试在<body>标记之后放置脚本调用,并在关闭<body>标记之前放置在底部,但同样的事情发生了。我在某处读到这是async的缺点?这是真的,我怎么能解决这个问题?有没有人有相同的经历/问题?

我使用的片段:

<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<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=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>

提前致谢。

1 个答案:

答案 0 :(得分:3)

这本身不是GTM或异步代码的问题(你不应该把脚本放在页面的底部,因为它有自己的问题,即使它似乎乍一看;还要注意不要在任何其他HTML标记中包装GTM。)

但是,如果您的GTM容器包含导致页面重绘的标记,则可能会出现问题,即几乎任何更改页面布局或插入可见HTML的内容(这就是Google警告这些标记的原因)。

如果您的页面中有任何自定义HTML标记,则应禁用它们并重试(从GTM标记模板创建的标记不应影响页面布局)。