jdp*_*jdp 5 ajax jquery google-analytics jquery-address
我正在改变网站的一大部分,以使用jQuery Address'深度链接AJAX功能.我正在使用URI之类的东西mysite.com/#!/page1/subpage/
.
我已经阅读了关于使用该_gaq.push()
功能跟踪流量的一些信息,但我想知道是否有可能以更传统的方式进行...
每个AJAX请求调用一个PHP函数,该函数构建一个页面并将其返回到<HTML>
包装器中,这样我就可以轻松定义自定义页面标题等等.
如果我将分析代码放在该页面上,jQuery调用该页面会触发它来跟踪访问吗?
Jas*_*per 15
那么你可以使用jQuery的AJAX事件来全局监听AJAX请求,然后将索引推送到_gaq
数组(这似乎是最易维护的方法):
$(document).on('ajaxComplete', function (event, request, settings) {
_gaq.push(['_trackPageview', settings.url]);
});
Run Code Online (Sandbox Code Playgroud)
请注意,这.on()
是jQuery 1.7中的新增内容,与.bind()
本例中的内容相同.
另请注意,我还没有测试为全局AJAX事件传递的参数的内容.
UPDATE
您还可以使用$.globalEval()
来解析在AJAX响应主体中加载的脚本:http://api.jquery.com/jquery.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());
}
Run Code Online (Sandbox Code Playgroud)
来源:jQuery - HTML中的脚本标记由jQuery解析而不执行
其他答案已过时(截至2013年) - Google建议使用新的通用分析
您可以像这样异步跟踪页面视图:
ga('send', 'pageview', '/my-page');
Run Code Online (Sandbox Code Playgroud)
请参阅:https://developers.google.com/analytics/devguides/collection/analyticsjs/pages#overriding