2010-11-28 7 views
7

He buscado mucho sobre este tema, pero no encuentro nada bueno. Creo que este es un problema común: tiene una aplicación web y crea API JSON en la parte superior de su plataforma, por lo que puede desarrollar algunos widgets, aplicaciones móviles o aplicaciones de terceros.Seguimiento de llamadas JSON con Google Analytics en una aplicación de Ruby/Rails

Sé que hay una gran cantidad de servicios analíticos específicos a través de API (como Mixpanel, Kissmetrics y muchos otros), pero quiero hacer un seguimiento de todas las llamadas JSON también a través de Google Analytics.

Encontré que el mejor método es usar la imagen __utm.gif pero extrañamente no puedo encontrar ningún complemento o gema para usar esta imagen. Así que traté de construir mi propio método sin éxito (ver el código a continuación) ... ¿Alguien puede ayudar?

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 

Respuesta

3

Creo que desea utilizar el seguidor asincrónico, que es parte de Google Analytics. Aquí está un ejemplo de cómo seguimiento de los clics que disparan un evento asíncrono AJAX:

$('.trackable').bind('click', function(event){ 
       var action = $(this).attr('action'); 
       var category = $(this).attr('category'); 
       _gaq.push(['_trackEvent', action, category]); 
      }); 

El "_gaq" es la cola asíncrona Google y se puede agregar a cualquier función JS desea realizar un seguimiento de métricas dentro. La función anterior le permite agregar una clase llamada "rastreable" y rastrear eventos cuando el usuario hace clic en ella. Un ejemplo es el siguiente:

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

Hola heavysixer! Gracias por su respuesta, pero mi problema es que no puedo usar el código JS para algunas bibliotecas porque quiero hacer un seguimiento de todo tipo de llamadas en las API de My json y no sé quién las llama. Un caso específico puede ser para rastrear llamadas desde mi propio widget, pero aquí el problema es que no sé si puedo usar google analytics en el dominio ebete está incrustado ... Así que mi única forma es seguir el lado del servidor de llamadas ... ¿no? – zetarun

3

No respuesta rápida, pero creo que se debe tratar Gabba gem

+0

Gracias BurmajaM! ¿Crees que puede ser una buena alternativa en lugar de tener dos sistemas de análisis diferentes? En este momento estoy usando Google Analytics para hacer un seguimiento de los visitantes de los sitios web y las API de Mixpanel del lado del servidor para los visitantes del widget ... – zetarun

+0

No soy experto en análisis, pero puede generar diferentes informes para la misma aplicación en GA. Gabba no tiene que hacer nada con eso. ¡Utilizo Gabba solo para el seguimiento de eventos! – BurmajaM

Cuestiones relacionadas