未捕获的ReferenceError:未定义_gaq(Google Analytics)

Ale*_*own 33 google-analytics onload-event

在chrome调试日志中查看网站页面时,会显示以下消息.

未捕获的ReferenceError:未定义_gaq

页面本身应该使用onload事件处理程序跟踪对象并_trackEvent为Google Analytics 激活a .

我最好的猜测是,ga.js文件可能没有及时加载,因此onload _trackEvent触发器没有被捕获.异步片段在</body>关闭之前使用,对象位于中间<body>.

(其他一些帖子也引用了jQuery的位置,但这可能是一个红色的鲱鱼)

非常感谢任何帮助.

PJ *_*net 34

来自https://developers.google.com/analytics/devguides/collection/gajs/此代码将您现有的"传统代码段"替换为"最新的异步版本,您应首先删除现有的跟踪代码段".

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
Run Code Online (Sandbox Code Playgroud)

要查看您的活动(了解这是否有效),请在"报告"页面左侧的"实时"菜单选项下查找"活动".


Spo*_*boy 16

关于异步代码段的位置,GA帮助页面说 -

将此代码段粘贴到您的网站模板页面中,以便它显示在结束</head>标记之前.

我的第一个想法是应该在页面底部加载JS以提高页面速度.但是,GA异步跟踪代码段应该加载到头部,因为它不会立即加载ga.js,并且它不会阻止页面执行.(它通过动态地将脚本标记添加到DOM来执行此操作.它在队列的后面.)

如果由于某种原因,您无法将异步代码段移动到头部,您可以_gaq自己定义,如下所示 -

<button onclick="var _gaq = _gaq || []; _gaq.push(['_trackEvent', 'button3', 'clicked'])"/><button>
Run Code Online (Sandbox Code Playgroud)


kal*_*azy 11

有同样的问题.你必须定义_gaq数组.只需在标头中添加Google Analytics脚本后添加:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
_gaq.push(['_trackPageview']);
Run Code Online (Sandbox Code Playgroud)