如何使用Google Analytics跟踪锚标记
-
06-07-2019 - |
题
我正在尝试通过Google Analytics跟踪不会产生新请求的点击次数。具体来说,单击通过 jQuery UI选项卡小部件创建的选项卡。我正在使用旧版本的代码('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()
跟踪的字符串中是否不允许使用该字符,或者是否存在其他原因(除非没有人点击链接!)
解决方案
默认情况下,Google Analytics会停用追踪锚标签。要为旧版跟踪代码启用它,请使用以下格式:
_uanchor = 1;
urchinTracker(val);
在使用最新的GA代码库时,将值设置为变量 _uanchor
等同于调用方法 _setAllowAnchor
。 (您可以在 Google Analytics跟踪代码中找到详细比较迁移指南 - 此链接已过时)。
其他提示
简而言之,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。
如果您想跟踪页内锚点击次数,则以下内容可以全局运行:
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
});
听起来您想 Google Analytics事件跟踪示例使用onclick =""垃圾,但我打赌你可能也可以将这些绑定到jQuery点击事件。
-
我尝试使用
_uanchor = 1;
方法。 不工作。它无效的原因是它旨在将Google Analytics参数作为哈希值发送,而不是发送您的哈希值。在引用在TörökGábor的回答中引用,将
_uanchor
设置为一个具有以下内容效果:启用后,使用
#
而不是默认?
将请求词干与查询字符串分开这是在“广告系列跟踪”部分。
-
Rob Knight的回答工作正常,但我做了一个小修改。在伪代码中:
if (href contains ?) { href = href.replace('#', '&'); } else { href = href.replace('#', '?'); }
醇>
不确定GA是否真的很重要,因为它有一个像 foo.html& bar = baz
这样的网址,但它对我来说似乎更干净。
https://developers.google.com/analytics/devguides/收集/ gajs /方法/ gaJSApiCampaignTracking
_gaq.push(['_setAllowAnchor', true]);