Google Analytics y Silverlight

Hace unos días Google anunció la implementación del “event tracking”, lo que permite tener información sobre la interacción del usuario con elementos web, ya sea Flash, Silverlight y otras aplicaciones.

Esta nueva modalidad muestra la intención de reconocer a las RIA (Rich Internet Applications) y la necesidad de la comunidad de interactuar con estas herramientas de análisis y las aplicaciones.

Como primer paso, es importante saber que para empezar a utilizar esta funcionalidad es necesario estar utilizando el ga.js tracking code.

La función para informar al Google Analytics es la siguiente:

_trackEvent(category, action, optional_label, optional_value)
  • category: nos permite agrupar objetos que vamos a analizar.
  • action: un string único por categoría, donde usualmente vamos a definir la acción que ha realizado el usuario.
  • label (optional): un string para brindar información adicional sobre la acción realizada.
  • value (optional): un valor para brindar información adicional sobre la acción realizada.

Esta función es llamada por el objeto que definimos a través de la función _getTracker(), que por defecto es pageTracker salvo que la hayamos cambiado.

<script type="text/javascript">
   var pageTracker = _gat._getTracker("XX-XXXXXXX-X");
   pageTracker._initData();
   pageTracker._trackPageview();
</script>
  
<script type="text/javascript">
   function trackEvent(category, action, label) {
         pageTracker._trackEvent(category, action, label);
       }
</script>
 
<html>
 
<a href="#" onClick="trackEvent('Videos', 'Play', '1');">
    Play
</a>
<a href="#" onClick="trackEvent('Videos', 'Pause', '1');">
    Pause
</a>
 
<a href="#" onClick="trackEvent('Videos', 'Play', '2');">
    Play
</a>
<a href="#" onClick="trackEvent('Videos', 'Pause', '2');">
    Pause
</a>
 
</html>

Como vemos en el ejemplo, desde un simple link podemos ir guardando información sobre las acciones que ejecuta el usuario, entonces vamos a realizar lo mismo pero desde Silverlight, utilizando la interacción de HTML con Silverlight.

void PauseVideo3_Click(object sender, RoutedEventArgs e)
{
   Video3.Pause();
   HtmlPage.Window.Invoke("trackEvent", 
                          new object[] { "Videos", "Pause", "3" });
}
 
void PlayVideo3_Click(object sender, RoutedEventArgs e)
{
   Video3.Play();
   HtmlPage.Window.Invoke("trackEvent", 
                          new object[] { "Videos", "Play", "3" });
}
 
void PauseVideo4_Click(object sender, RoutedEventArgs e)
{
   Video4.Pause();
   HtmlPage.Window.Invoke("trackEvent", 
                          new object[] { "Videos", "Pause", "4" });
}
 
void PlayVideo4_Click(object sender, RoutedEventArgs e)
{
   Video4.Play();
   HtmlPage.Window.Invoke("trackEvent",
                          new object[] { "Videos", "Play", "4" });
}

Como vemos, de la misma manera que utilizando un link, al hacer click en un botón nosotros vamos a llamar a la función js que guarda información en Google Analytics.

Esta funcionalidad no esta habilitada para todo el mundo, solamente algunas personas pueden visualizarla ya que esta en beta todavía. Lo importante es ir preparándose ya que esta utilidad va a venir muy bien para todos los que hacemos aplicaciones orientadas a la web 2.0.

No Comments