我有我添加到我网站的Google Analytics代码(在PHP页面中),我还添加了代码来跟踪出站链接/事件。代码略有修改,因为我打开链接之前不需要等待一秒钟,因为无论如何它们都在新窗口中打开。
传出链接都正常工作。
出于某种原因,事件根本没有被跟踪。
以下是标题中的Google Analytics代码:
<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');">
有人可以帮我弄清楚为什么事件不会出现在Analytics Events页面上吗?
答案 0 :(得分:1)
你的代码中是否是拼写错误? var myTracker=_gat._getTrackerByName();
不应_gat
为_gaq
答案 1 :(得分:1)
我在链接和表单元素上使用此代码,使用默认跟踪代码我获取事件,类别操作等。这一个只设置了前两个字段。
onclick="_gaq.push(['_trackEvent', 'Site wide', 'Search Input']);"
答案 2 :(得分:1)
您正在混合旧的同步语法和新的异步synteax。 你的功能应该是这样的:
function recordOutboundLink(link, category, action) {
_gaq.push(['_trackEvent', category, action]);
}
答案 3 :(得分:1)
通过在函数中放置setTimeout
,让js有时间运行并将事件发送给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);
}
如果您确定跟踪器正在运行并且有时间在新窗口加载之前运行,那么您的原始解决方案应该可以正常运行。