我想在我的项目中放置Google Analytics以了解有多少人访问我网站的网页,因为您只需复制代码并粘贴到您想要的每个页面中,因此放入网站似乎很容易有分析。
我的问题是这个,在我的网站中我使用的是ajax,我唯一拥有的页面是索引页面,其余部分在索引中加载为div。即使我使用ajax,它是否会被计算在我们访问某个页面时是否会计算访问次数?
答案 0 :(得分:2)
对于较新版本的google analytic,请使用以下代码进行ajax跟踪。将此代码粘贴到新文件中,并将该文件保存到app / assets / javascritps / analytics.js中。还要将它包含在application.js
中 (function ($) {
$(document).ajaxSend(function(event, xhr, settings){
if (typeof ga !== "undefined" && ga !== null) {
ga('send', {
'hitType': 'pageview',
'page': settings.url
});
}
});
})(jQuery);
动态添加到ajax调用中的代码
$.ajax({
type : 'get',
url : url,
data : {"curr_code": currency}
}).done(function(){
ga('send', {‘hitType': 'pageview', 'page': url });
});
有关详细信息,请参阅此链接http://tarungarg402.blogspot.in/2015/01/google-analyicts-wth-rails.html
答案 1 :(得分:1)
是的,可以计算一次Ajax调用。
JQuery Ajax示例:
此代码将自动记录您应用程序中的所有jQuery AJAX请求,包括使用$.ajax()
,$.get()
或$.post()
(以及.load()
)的请求。
这也适用于使用AJAX请求的任何jQuery插件(例如 灯箱插件等),以及所有Rails 3远程链接和 表单(假设我们使用jQuery UJS驱动程序)。
在页面布局或包含的js文件中,添加以下JavaScript:
已更新,以确保在页面中定义并加载 _gaq 。
(function ($) {
// Log all jQuery AJAX requests to Google Analytics
$(document).ajaxSend(function(event, xhr, settings){
if (typeof _gaq !== "undefined" && _gaq !== null) {
_gaq.push(['_trackPageview', settings.url]);
}
});
})(jQuery);
如果你在Rails 3应用中使用它,可以将它放在 application.js 中。
注意:这假设您使用的是异步版Google Analytics 。如果您使用旧版同步Google Analytics代码段,则只需将 _gaq 替换为较旧的 pagetracker 语法:
(function ($) {
// Log all jQuery AJAX requests to Google Analytics
$(document).ajaxSend(function(event, xhr, settings){
if (typeof pageTracker !== "undefined" && pageTracker !== null) {
pageTracker._trackPageview(settings.url);
}
});
})(jQuery);
另外,请注意,您不需要将JavaScript放在 $(document).ready()事件中。这是因为你只是将一个函数绑定到一个回调函数,以便稍后在触发回调时运行;你还没有真正在DOM上执行任何代码。
工作原理: 只要执行AJAX请求,jQuery就会触发几个本地和全局AJAX回调。本地回调触发了触发AJAX请求的特定元素(即链接或表单),而全局回调则广播到DOM中的所有元素,包括根节点,文档。
因此,您只需在ajaxSend回调上将函数绑定到根节点。该功能然后使用Google Analytics功能手动记录AJAX URL的页面请求。
在相关的说明中,如果要隐藏特定的AJAX请求,而不是将其全局AJAX回调广播到其他DOM元素,则可以将global设置为false。这也会导致我们针对此请求跳过Google Analytics跟踪。
$.ajax({
url: '/like-a-ninja',
global: false
});
(source)
我强烈建议您阅读以下内容。
下面有一个非常详细的答案和工作代码示例。 How to extend google analytics to track AJAX etc (as per H5BP docs)
使用Google Analytics跟踪AJAX链接点击作者:David Walsh:http://davidwalsh.name/ajax-analytics
HTML5样板:在Google Analytics中跟踪jQuery AJAX请求 https://github.com/h5bp/html5-boilerplate/blob/v4.3.0/doc/extend.md
@JangoSteve 的文章解释了how to track jQuery AJAX requests in Google Analytics。
希望它会帮助你。
答案 2 :(得分:0)
我们在Ruby on Rails 4.1上有站点并使用turbolinks,它允许浏览网站而无需重新加载每个页面。我们因此而遇到了GA的问题。
所以我们附加了事件监听器
document.addEventListener("page:change", (function() {
return GoogleAnalytics.trackPageview();
}
GoogleAnalytics.trackPageview = function(url) {
if (url) {
window._gaq.push(["_trackPageview", url]);
} else {
window._gaq.push(["_trackPageview"]);
}
return window._gaq.push(["_trackPageLoadTime"]);
};
原始教程在Google Analytics with Turbolinks,它在CoffeeScript中发布,但您可以使用Js2Coffee page转换它
答案 3 :(得分:-2)
每次使用ajax加载页面时,您都可以告诉GA将其计为单独的URL。应该在页面的ajax更新结束时运行的代码示例:
_gaq.push(['_trackPageview', '/some-page']);
https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide + https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration#_gat.GA_Tracker_._trackPageview
_trackPageview(opt_pageURL)
GATC(Google Analytic Tracker Code)的主要逻辑。如果启用了链接器功能,则会尝试 从URL中提取cookie值。否则,它会尝试提取 来自document.cookie的cookie值。它还会更新或创建cookie 必要时,然后将它们写回文档对象。合 所有适当的指标都要发送到UCFE(Urchin Collector 前端)。
String opt_pageURL
可选参数以指示什么 用于跟踪指标的网页网址。使用此选项时,请使用 以斜杠(/)开头,表示页面网址。