GA中的事件跟踪未触发

9

我已经在我的JS中添加了以下代码来跟踪按钮点击:

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

我在使用Chrome开发工具时,已经通过断点调试确认_gaq确实解析为GA对象,我甚至可以进入GA.js代码中(被压缩的)push事件。然而,尽管没有错误,但我在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>

有没有人有任何想法,为什么上述代码不能正常工作?

2
嘿,这个问题解决了吗?Rimbaud的回答真的解决了这个问题还是其他原因?如果是前者,您可以在答案左侧的绿色复选框中接受Rimbaud的答案吗?如果是后者,您可以将解决方案记录为答案吗?我遇到了完全相同的问题。谢谢! - jamesmortensen
3个回答

2
常见原因是参数类型错误(在这种情况下,GA会默默失败)。
对于_trackEvent,参数必须是:
- 类别 = string - 操作 = string - 标签(可选)= string - 值(可选)= integer 不要在期望字符串时使用整数或反之亦然。

0

据我理解,您在外部.js文件中有trackevent,并在标签底部调用标准脚本?

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

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


1
将代码移动到头部并在其后放置外部JS文件(在头部)。尽管在单击链接时_gaq.push(['_trackEvent', 'category', 'action', 'label']);会触发,但我仍然没有在Fiddler中看到任何GET和GA中的内容。 - LDJ
在NET中查找图像选项卡。 GA跟踪事件被作为图像触发。 - Moe Sweet

0

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

想必这会对某些人有所帮助!


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