Google Analytics为什么不跟踪任何事件?

问题描述 投票:3回答:3

我已经实现了很多标准示例:

        <script>

            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-mycode']);
            _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>

            function recordOutboundLink(link, category, action) {
                try {
                    var myTracker=_gat._getTrackerByName();
                    _gaq.push(['myTracker._trackEvent', category ,  action ]);
                    setTimeout('document.location = "' + link.href + '"', 100)
                }catch(err){}
            }

        </script>

并且链接具有此onclick事件:

<a id="latestDownload" href="https://example.com" onClick="recordOutboundLink(this, 'newDownloads', 'latest');return false;">Download latest version</a>

过去3天没有跟踪任何事件,这对我来说听起来是错误的。我已经使用适用于Chrome的GA调试插件测试了该页面,该页面显示了事件已发送。

我在这里犯了一些错误吗?

[Google GA调试插件显示(字面意义,没有混淆):

Account ID : UA-XXXXX-X

&utmac=UA-XXXXX-X

我是否需要再次推送'_setAccount'?

javascript google-analytics
3个回答
4
投票

tl; dr ...忽略_getTrackerByName()调用,只需使用

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

详细说明:异步跟踪允许使用类似语法将命令推送到多个跟踪器(请参见Tracking Basics)>

_gaq.push(['_setAccount', 'UA-XXXXX-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['b._setAccount', 'UA-XXXXX-2']);
_gaq.push(['b._trackPageview']);

_gaq.push(['myTracker._trackEvent', category , action ]);代码假定您已经像上面的myTracker跟踪器一样初始化了b

由于myTracker从未设置accountId,因此它在调试时显示UA-XXXXX-X accountId。

Specialized Tracking/Outbound Links上的分析代码是错误的,或者仅在名为myTracker的设置代码下才有效。


2
投票

myTracker是一个变量,因此您不能真正在字符串中引用它。以下应该工作:


0
投票

setTimeout对我来说似乎有点冒险-它假定Google Analytics(分析)调用已在100毫秒内进行。

热门问题
推荐问题
最新问题