Google分析并使用ajax GET请求加载页面

时间:2011-10-12 08:58:32

标签: ajax get google-analytics

我有一个完全使用AJAX运行的移动网站和哈希码,基本上每个页面点击都是一个链接,例如

<a href='http://some-domain.com/my-page-122.php" hash-id='122'>linkage</a>

这意味着页面本身存在并且它具有ON IT Google分析页面,但是,对于ajax请求,我只要求使用jQuery的load()在所述页面上加载certein <div>,所以我的问题是: 因为使用谷歌分析代码和所有内容完整地调用页面,它是否仍然将其记录为页面视图,即使只有一部分被注入页面?

我问的原因是因为这个网站每天大约有500个独立用户,我们想把它改成这个新的AJAXy形式,所以不记录分析是一个很大的禁忌。

2 个答案:

答案 0 :(得分:10)

如果你使用jQuery,你可以绑定到全局AjaxComplete事件,以便每次Ajax调用完成时触发一个Pageview:

jQuery(document).ajaxComplete(function(e, xhr, settings){
  var d = document.location.pathname + document.location.search + document.location.hash;
  _gaq.push(['_trackPageview', d]);
});

如果每次执行Ajax调用时更新Anchor,这将触发完整路径,包括url的锚点部分。

请注意,如果您使用包含Google Analytics跟踪代码的.load加载内容,则会运行该代码并触发第二次网页浏览。因此,您希望确保不要将GATC包含在ajax内容中以避免双重浏览量。

答案 1 :(得分:1)

Google Analytics不会自动记录。假设您正在使用异步代码,您可以使用明确设置的URL写入gaq数组,从而记录任意数量的综合浏览量:

_gaq.push(['_setAccount', 'UA-12345-1']);
_gaq.push(['_trackPageview', '/home/landingPage']);

在这种情况下,您可以在他们拥有'/ home / landingPage'的地方构建您想要的任何URL。请注意,如果_gaq已经正确实例化并且已经推送了_setAccount,那么您只需要推送_trackPageview。

此外,事件可以是您的AJAX返回的代码,也可以是按钮的click事件或启动AJAX请求的任何内容。

请参阅http://code.google.com/apis/analytics/docs/gaJS/gaJSApiBasicConfiguration.html#_gat.GA_Tracker_._trackPageview