GA中的事件跟踪未触发

时间:2011-06-20 11:45:09

标签: google-analytics event-tracking

我已将以下代码添加到我的JS中以跟踪按钮点击:

_gaq.push(['_trackEvent', 'category', 'action', 'label']);

我使用Chrome开发工具点击了它的断点,_gaq肯定会解析为GA对象,我甚至可以进入GA.js代码中的(缩小的)推送事件。然而,即使这没有错误,我也没有看到Fiddler / firebug / Chrome中记录任何GET或POST,也没有记录我的分析。 正常页面分析对我来说很好,跟随在页面底部运行:

<script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'XXXXXXXXX']);
        _gaq.push(['_setDomainName', '.Domain.com']);
        _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>

任何人都有任何想法为什么上面的代码不起作用?

3 个答案:

答案 0 :(得分:2)

一个常见的原因是错误的参数类型(在这种情况下GA无声地失败)。

对于_trackEvent,参数必须为:

  • 类别= string
  • 行动= string
  • 标签(可选)= string
  • 值(可选)= integer

在预期字符串时不要使用整数,反之亦然。

答案 1 :(得分:0)

根据我的理解,你在外部.js文件中有trackevent,而在<body> - 标签底部调用标准脚本?

明显的解决方案是移动脚本:

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'XXXXXXXXX']);
    _gaq.push(['_setDomainName', '.Domain.com']);
    _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>

<head> - 代码中向上,以及在此代码段下面调用外部js文件。

像:

<html>
<head>
    <script type="text/javascript">
            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'XXXXXXXXX']);
            _gaq.push(['_setDomainName', '.Domain.com']);
            _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>   
    <script type="text/javascript" src="ext.js"></script>
</head>
<body>

</body>

答案 2 :(得分:0)

对我来说,这是一个非常愚蠢的错误。我在GA中过滤了自己的IP。

想象一下可能对某人有帮助!