谷歌分析页面ajax中访问者的数量

时间:2014-09-25 10:05:25

标签: jquery ajax google-analytics

我想在我的项目中放置Google Analytics以了解有多少人访问我网站的网页,因为您只需复制代码并粘贴到您想要的每个页面中,因此放入网站似乎很容易有分析。

我的问题是这个,在我的网站中我使用的是ajax,我唯一拥有的页面是索引页面,其余部分在索引中加载为div。即使我使用ajax,它是否会被计算在我们访问某个页面时是否会计算访问次数?

4 个答案:

答案 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

     

可选参数以指示什么   用于跟踪指标的网页网址。使用此选项时,请使用   以斜杠(/)开头,表示页面网址。