相关网站为http://getstefan.com
它是一个单页组合网站,我尝试使用jQuery将Google Analytics点击跟踪添加到网站上的每个锚标记,希望跟踪人们点击的位置。有一个脚本可以为页面上的每个锚添加唯一ID,因此我设置了一个超时,以确保在分配ID后放置Google Analytics点击跟踪。像这样:
jQuery(window).load(function(){
setTimeout(loadOnClick,8000)
});
function loadOnClick() {
jQuery('a').each(function(){
jQuery(this).attr("onclick", "_gaq.push(['_trackEvent', 'anchor', 'click', '" + jQuery(this).attr('id') + "']);" );
});
}
这导致建立如此的链接:
<a href="http://getstefan.com/wp-content/themes/inc v2/downloads/CV-StefanHinck-FR.pdf" id="cv" onclick="_gaq.push(['_trackEvent', 'anchor', 'click', 'cv']);"></a>
一切看起来都不错。 问题是,当我查看我的分析时,注册的唯一点击标记为“无标题”
任何人都知道我在这里做错了什么?
答案 0 :(得分:2)
<强>第一强> 您的锚点没有分配ID,因此代码正在执行它应该报告的“未定义”作为不存在的值的值。 例如
<a class="entry-link" href="http://getstefan.com/portfolio/interior-design-logo/"></a>
第二次,请勿使用计时器。
jQuery(window).load(function(){
setTimeout(loadOnClick,8000)
});
应替换为
jQuery(document).ready(function(){
loadOnClick();
});
因此您不必等待8秒,并且可以在DOM准备就绪时分配所有内容。
答案 1 :(得分:2)
我可以建议一个稍微紧凑的版本吗?
此外,这不是指锚点id
,它使用href
,可能适合基本场景(即,如果两个链接指向用户到同一个URL,你我不知道哪些链接贡献了多少次访问。)如果您确实将id
添加到您的主播,只需将.attr('href')
替换为.attr('id')
。
jQuery(document).ready(function() {
jQuery('a').click(function() {
_gaq.push(['_trackEvent', 'anchor', 'click', jQuery(this).attr('href')]);
});
});
答案 2 :(得分:2)
除了@Babak Naffas的好帖子之外,请记住_gaq.push
来电启动HTTP请求。
如果您的服务器速度很快,那么用户点击的链接完全可能会在Google Analytics调用之前加载,在这种情况下,无法跟踪任何内容。