Google Analytics(分析)JavaScript事件跟踪代码无法跟踪事件
我已将Google Analytics代码添加到我的网站(在PHP页面中),并且还添加了跟踪出站链接/事件的代码。代码稍微修改了一些,因为我不需要等一秒钟才能打开链接,因为它们都是在新窗口中打开的。Google Analytics(分析)JavaScript事件跟踪代码无法跟踪事件
传出链接都正常工作。
由于某些原因,事件根本没有被跟踪。
这里的标头中的分析代码:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-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>
<script type="text/javascript">
function recordOutboundLink(link, category, action) {
try {
var myTracker=_gat._getTrackerByName();
_gaq.push(['myTracker._trackEvent', category, action]);
}catch(err){}
}
</script>
这里是我的每一个环节上的代码:
<a href="http://sitelink.tld" target="_blank" onClick="recordOutboundLink(this, 'Outbound Links', 'http://sitelink.tld');">
有人可以帮助我弄清楚为什么事件会不会在“Google Analytics事件”页面上展示?
你混合了古老的同步语法和新的异步synteax。 你函数应该是这样的:
function recordOutboundLink(link, category, action) {
_gaq.push(['_trackEvent', category, action]);
}
这是你的代码中的拼写错误吗? var myTracker=_gat._getTrackerByName();
不宜_gat
是_gaq
不,我相信这是正确的,并在网上快速搜索似乎验证...感谢尝试,但! – IsaacL 2012-02-28 07:40:20
我使用这个链接代码,并形成与默认跟踪代码,我得到的事件,类动作等,这只是一个有头两个字段设置元素。
onclick="_gaq.push(['_trackEvent', 'Site wide', 'Search Input']);"
给JS的时间来运行,并通过把一个setTimeout
在该函数的事件发送到GA。在执行_gaq.push
之前,页面正被重定向到出站链接。
function recordOutboundLink(link, category, action) {
_gaq.push(['_trackEvent', category, action]);
setTimeout('document.location = "' + link.href + '"', 100);
}
或者,打开一个新的窗口:
function recordOutboundLink(link, category, action) {
_gaq.push(['_trackEvent', category, action]);
setTimeout('window.open("' + link.href + '","newsite")', 100);
}
如果您确定跟踪器正在运行,并且有时间的新窗口中加载之前运行,那么你原来的解决方案应该工作。
如上所述,由于所有链接都是在新标签页/窗口中打开,所以没有必要或不需要超时,因此在新页面打开时,跟踪代码有足够的时间在原始页面上运行,超时会导致“目标”选项不起作用。 – IsaacL 2012-02-28 14:10:14
@IsaacL我添加了一个新窗口打开的例子。但是如果跟踪器有时间运行,您应该会看到结果或者至少会在[已安装GA调试版的Chrome]控制台中发送事件的跟踪器(https://chrome.google.com/webstore/detail/jnkmfdileelhofjcijamephohjechhna )。 – 2012-02-28 14:51:03
我结束了使用上面的代码更改,它不需要超时,它似乎工作正常,但感谢您的帮助! – IsaacL 2012-02-28 16:12:47
你可以检查你的javascript调试输出。它可能包含一些有用的警告或错误。 – CodesInChaos 2012-02-28 09:30:45
好主意,没有想到 - 我会弄清楚如何做到这一点,并尽快检查... – IsaacL 2012-02-28 14:13:42
刚刚做了,它似乎与新代码正常工作,但我真的看不到任何东西与旧的代码... – IsaacL 2012-02-28 16:13:42