Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Ruby/Rails应用程序中使用Google Analytics跟踪JSON调用_Ruby On Rails_Ruby_Json_Google Analytics - Fatal编程技术网

Ruby on rails 在Ruby/Rails应用程序中使用Google Analytics跟踪JSON调用

Ruby on rails 在Ruby/Rails应用程序中使用Google Analytics跟踪JSON调用,ruby-on-rails,ruby,json,google-analytics,Ruby On Rails,Ruby,Json,Google Analytics,关于这个问题我搜索了很多,但没有找到好的。我认为这是一个常见的问题:您有一个web应用程序,并在您的平台上构建JSON API,因此您可以开发一些小部件、移动应用程序或第三方应用程序 我知道通过API有很多特定的分析服务(如Mixpanel、Kissmetrics和许多其他),但我也希望通过Google analytics跟踪所有JSON调用 我发现最好的方法是使用u_utm.gif图像,但奇怪的是,我找不到任何插件或gem来使用这个图像。 因此,我尝试构建自己的方法,但没有成功(请参见下面的代

关于这个问题我搜索了很多,但没有找到好的。我认为这是一个常见的问题:您有一个web应用程序,并在您的平台上构建JSON API,因此您可以开发一些小部件、移动应用程序或第三方应用程序

我知道通过API有很多特定的分析服务(如Mixpanel、Kissmetrics和许多其他),但我也希望通过Google analytics跟踪所有JSON调用

我发现最好的方法是使用u_utm.gif图像,但奇怪的是,我找不到任何插件或gem来使用这个图像。 因此,我尝试构建自己的方法,但没有成功(请参见下面的代码)。。。 有人能帮忙吗

def google_analytics_call(page_title)
      today = Time.now.to_i
      utma = cookies[:__utma].to_s
      utmb = cookies[:__utmb].to_s
      utmc = cookies[:__utmc].to_s
      utmz = cookies[:__utmz].to_s
      utma = (rand(8).to_s + "." + rand(10).to_s + "." + today.to_s + "." + today.to_s+ "." + today.to_s) unless cookies[:__utma]
      utmb = rand(8).to_s unless cookies[:__utmb]
      utmc = rand(8).to_s unless cookies[:__utmc]
      utmz = rand(8).to_s+ "." + today + ".2.2.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)" unless cookies[:__utmz]

      Thread.new do
        params = {
          :utmac => GOOGLE_ANALYTICS,
          :utmcc => "__utma%3D"+utma+"%3B%2B"+"__utmb%3D"+utmb+"%3B%2B"+"__utmc%3D"+utmc+"%3B%2B"+"__utmz%3D"+utmz+"%3B%2B",
          :utmcn => "1",
          :utmcs => "-",
          :utmdt => page_title, #page title
          :utmhn => BASE_URL,
          :utmwv => 1,
          :utmt => "page",
          :utmr => request.referer
        }
        puts params

        http_get("www.google-analytics.com", "/__utm.gif", params)
      end
    end

我想你应该使用异步跟踪器,它是谷歌分析的一部分。下面是我如何跟踪触发异步AJAX事件的单击的示例:

$('.trackable').bind('click', function(event){
              var action = $(this).attr('action');
              var category = $(this).attr('category');
              _gaq.push(['_trackEvent', action, category]);
            });
“_gaq”是google异步队列,可以添加到您想要跟踪其中的度量的任何JS函数中。上面的函数允许您添加一个名为“trackable”的类,并在用户单击它时跟踪事件。一个例子如下所示:

<a category='FEATURED' action='Like This' class='trackable' href="http://MYSSERVER.com/foo.json" target='_blank'>track asynchronously.</a>


回答不快,但我想你应该试试看

嗨,Heavysizer!谢谢你的回答,但我的问题是我不能将JS代码用于某些库,因为我想跟踪json API上的所有调用,而我不知道是谁调用它们。一个具体的例子是跟踪来自我自己的小部件的呼叫,但这里的问题是,我不知道我是否可以在嵌入的域ebete中使用谷歌分析…所以我唯一的方法是跟踪服务器端的呼叫…不是吗?谢谢BurmajaM!你认为这是一个好的选择,而不是有两个不同的分析系统?现在我正在使用Google Analytics跟踪网站上的访问者,并使用服务器端Mixpanel API跟踪widget的访问者……我不是分析专家,但你可以在GA中为同一个应用程序生成不同的报告。Gabba不需要做任何事。我使用Gabba仅用于事件跟踪!