谷歌标签管理器无法加载JavaScript,错误信息为“匿名函数”。

25

我在我的网站上安装了Google Tag Manager,并使用它来加载一些Javascript到我的网站上。然而,GTM不再加载,我的Javascript也没有加载,并且错误代码并没有提供太多帮助。

这是我网站上的GTM代码:

<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MFQ99J"
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-MFQ99J');</script>
<!-- End Google Tag Manager -->

这是我在GTM标签中包含的代码:

<!-- Qualaroo for your website -->
<!-- Paste this code right after the <body> tag on every page of your site. -->
<script type="text/javascript">
  var _kiq = _kiq || [];
  (function(){
    setTimeout(function(){
    var d = document, f = d.getElementsByTagName('script')[0], s = d.createElement('script'); s.type = 'text/javascript';
    s.async = true; s.src = '//s3.amazonaws.com/ki.js/50553/aS-.js';f.parentNode.insertBefore(s, f);
    }, 1);
  })();
</script>

当我查看Chrome Javascript控制台时,我得到了以下信息:

(x) Failed to load resource     http://www.googletagmanager.com/ns.html?id=GTM-MFQ99J

当我重新加载页面时,我看到:

(x) GET http://www.googletagmanager.com/ns.html?id=GTM-MFQ99J    index.html:45
        anonymous function                                       index.html:45
        anonymous function                                       index.html:46

执行这些代码会输出我在GTM代码中的这些行:

'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MFQ99J');</script>

我已经疯狂地搜索了很多,但对于其中很多内容我都不在行。错误信息“anonymous function”似乎特别难以搜索,即使在GTM和其他Google支持文档中也是如此。


2
ns.html页面位于<noscript>标签内,如果JavaScript被禁用,则作为备用方案。只有一个页面应该被加载,无论是否启用js。 - Mike Causer
可能是Google Tag Manager的404错误的重复问题。 - Mukesh Chapagain
3个回答

46

6
我认为这应该是被采纳的答案。正如被采纳的答案所说,AdBlock在2013年停止了对Google Tag Manager的拦截。 - Jake Toronto
同意。我之前一直处于预览模式,出现错误只是因为我还没有发布,发布后“修复”了这些错误。 - strattonn

38

您是否已安装了Adblock Plus?它曾经可以屏蔽googletagmanager.com。错误看起来就像这样。

请尝试禁用它并刷新页面。如果问题得到解决,您只需要更新AdBlock过滤器。Google和AdBlock在2013年早期就解决了这个问题,因此更新后的AdBlock过滤器将停止屏蔽google标签管理器。

此外,看起来您正在使用Google Tag Manager来加载Qualaroo调查。请不要打扰Qualaroo的客户服务处理此问题;这不是他们的错,是因为Google被AdBlock列入黑名单。


1
谢谢!我检查了所有的过滤器,发现EasyPrivacy列表中包含Google Tag Manager的URL。我将其禁用后,现在一切都正常显示了。 - cgreene
补充一下:我刚刚遇到了“广告拦截器”阻止gtm的问题。 - Milche Patern
我也遇到了同样的问题,但我的浏览器上没有这样的广告拦截器过滤器。VM3280:1 Uncaught TypeError: $不是一个函数 at <anonymous>:1:13 at gtm.js?id=GTM-PN9B92:45 at gtm.js?id=GTM-PN9B92:46 at Object.c (gtm.js?id=GTM-PN9B92:48) at Tf (gtm.js?id=GTM-PN9B92:70) at Cl.H (gtm.js?id=GTM-PN9B92:167) at Ml (gtm.js?id=GTM-PN9B92:162) at Hg (gtm.js?id=GTM-PN9B92:169) at Tg (gtm.js?id=GTM-PN9B92:84) at Array.Vg.a.push (gtm.js?id=GTM-PN9B92:85):这是Magento 2。 - Pramod Kharade
@pramod-kharade,这种情况我遇到过很多次,与你在Google Tag Manager中的标签有关,而不是GTM本身:你应该首先在页面中加载jQuery,然后启动特定的GTM标签。这个错误与jQuery尚未在页面中加载有关。 - vcoppolecchia
这个回答在2021年10月仍然有效。关闭了 UBlock Origin 现在它可以正常工作了。 - dance2die

0

即使容器未在Tag Manager中发布,我也会收到此消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接