使用Google Analytics跟踪AJAX请求

我正在改变网站的一大部分,以使用jQuery Address’深度链接AJAXfunction。 我正在使用像mysite.com/#!/page1/subpage/等URI。

我已经阅读了一些关于使用_gaq.push()函数跟踪流量的信息,但我想知道是否有可能以更传统的方式进行…

每个AJAX请求都调用一个PHP函数,该函数构建一个页面并将其返回到包装器中,这样我就可以轻松定义自定义页面标题等等。

如果我将分析代码放在该页面上,jQuery调用该页面会触发它来跟踪访问吗?

那么你可以使用jQuery的AJAX事件来全局监听AJAX请求,然后将索引推送到_gaq数组(这似乎是最易维护的方法):

 $(document).on('ajaxComplete', function (event, request, settings) { _gaq.push(['_trackPageview', settings.url]); }); 

请注意, .on()在jQuery 1.7中是新的,在这种情况下与.bind()相同。

另请注意,我还没有测试为全局AJAX事件传递的参数的内容。

UPDATE

您还可以使用$.globalEval()来解析在AJAX响应主体中加载的脚本: http : $.globalEval()

 success: function(data) { var dom = $(data); dom.filter('script').each(function(){ $.globalEval(this.text || this.textContent || this.innerHTML || ''); }); $('#mydiv').html(dom.find('#something').html()); } 

来源: jQuery – HTML中的脚本标记由jQuery解析而不执行

其他答案已过时(截至2013年) – Google建议使用新的通用分析

您可以像这样异步跟踪页面视图:

 ga('send', 'pageview', '/my-page'); 

请参阅: https : //developers.google.com/analytics/devguides/collection/analyticsjs/pages#overriding

我使用的系统涉及将html作为纯文本请求,首先解析html以将所有脚本标签更改为div,分离这些div,附加页面,然后遍历div(实际上是脚本)并将其内容附加到脚本使用该div上的src标记或创建脚本标记。 它与history.js框架示例的工作方式非常相似。

 $.get(urlToLoad).promise().done(function(html) { var outHTML = html; outHTML = outHTML.replace(/