我正在尝试通过Google Analytics跟踪不会产生新请求的点击次数。具体而言,单击通过jQuery UI tabs widget创建的选项卡。我正在使用旧版本的代码('urchin tracker')并尝试记录点击次数:
$('.ui-tabs-nav li a').click(function() {
val = "/tab/" + $(this).attr('href');
// when uncommented, the following line reports, for example:
// /tab/#main
// as expected.
// console.log(val);
res = urchinTracker(val);
});
在另一个例子中,同样的方法是有效的,据我所知,唯一的区别在于字符串中缺少哈希(#)符号。 urchinTracker()
跟踪的字符串中是否不允许使用该字符,或者是否存在其他原因(除了没有人点击链接之外)?
答案 0 :(得分:9)
默认情况下,Google Analytics会停用tracking anchor tags。要为旧版跟踪代码启用它,请使用以下格式:
_uanchor = 1;
urchinTracker(val);
将值设置为变量_uanchor
相当于使用最新的GA代码库时调用方法_setAllowAnchor
。 (您在Google Analytics Tracking Code Migration Guide - 中找到详细比较此链接已过时)。
方法_setAllowAnchor
在Google Reference Site上进行了说明。
答案 1 :(得分:3)
简而言之,Google Analytics无法跟踪包含“#”字符的页面链接。点击index.html#foo只会被视为对index.html的点击,忽略'#'后的所有内容。
你可以考虑转义'#'字符:
$('.ui-tabs-nav li a').click(function() {
val = new String("/tab/" + $(this).attr('href')).replace('#', '&');
// when uncommented, the following line reports, for example:
// /tab/#main
// as expected.
// console.log(val);
res = urchinTracker(val);
});
在您的示例中,这会记录/tab/?main
的页面视图,该视图适用于Google Analytics。
答案 2 :(得分:1)
如果您想跟踪页内锚点击次数,则以下内容可以全局运行:
window.onhashchange = function() {
_gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
}
请注意,如果您有一些特定的onclick
处理程序,例如
$('#someid a').click(function(event){
event.preventDefault();
var target = $(this).attr('href');
// some more clever stuff
});
您需要手动预先添加哈希以触发onhashchange
$('#someid a').click(function(event){
event.preventDefault();
var target = $(this).attr('href');
// triggers onhashchange
location.hash = target;
// some more clever stuff
});
答案 3 :(得分:0)
听起来你想要Google Analytics Event Tracking示例使用onclick =“”垃圾,但我敢打赌你可能也可以将这些绑定到jQuery点击事件。
答案 4 :(得分:0)
我尝试使用_uanchor = 1;
方法。 不工作。它无效的原因是它旨在将Google Analytics参数作为哈希值发送,而不是发送您的哈希值。
在引用in Török Gábor's answer的指南中,将_uanchor
设置为1具有以下效果:
启用后,使用
#
代替默认?
将请求词干与查询字符串分开
这是在“广告系列跟踪”部分。
Rob Knight's answer工作正常,但我做了一个小修改。在伪代码中:
if (href contains ?) {
href = href.replace('#', '&');
} else {
href = href.replace('#', '?');
}
不确定GA是否真的对于foo.html&bar=baz
这样的网址有用,但它对我来说似乎更清晰。
答案 5 :(得分:0)
https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiCampaignTracking
_gaq.push(['_setAllowAnchor', true]);