Pregunta

Estoy intentando realizar un seguimiento de los clics a través de Google Analytics que no generan una nueva solicitud. Específicamente, los clics en las pestañas que se crean a través del widget de pestañas jQuery UI . Estoy usando la versión anterior del código ('rastreador de urchin') e intento registrar los clics de esta manera:

$('.ui-tabs-nav li a').click(function() {
    val = "/tab/" + $(this).attr('href');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

El mismo método funciona, en otro caso, cuya única diferencia significativa, por lo que puedo decir, es la falta de un símbolo hash (#) en la cadena. ¿Ese carácter no está permitido en una cadena rastreada por urchinTracker () , o podría haber alguna otra causa (además de que nadie haya hecho clic en los enlaces)?

¿Fue útil?

Solución

De manera predeterminada, Google Analytics deshabilita el seguimiento tracking etiquetas de anclaje . Para habilitarlo para el código de seguimiento heredado, utilice el siguiente formulario:

_uanchor = 1;
urchinTracker(val);

Establecer un valor para la variable _uanchor es el equivalente al método de llamada _setAllowAnchor cuando se utiliza la última base de código GA. (Puede encontrar una comparación detallada en el Código de seguimiento de Google Analytics Guía de migración - este enlace está desactualizado ).

El método _setAllowAnchor se describe en la Sitio de referencia de Google .

Otros consejos

En resumen, Google Analytics no puede rastrear enlaces en la página que contengan un carácter '#'. Un clic en index.html # foo se trata simplemente como un clic en index.html, con todo después del '#' ignorado.

Podría considerar escapar del carácter '#':

$('.ui-tabs-nav li a').click(function() {
    val = new String("/tab/" + $(this).attr('href')).replace('#', '&');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

En su ejemplo, esto registraría una vista de página para / tab /? main , que debería funcionar bien con Google Analytics.

Si desea realizar un seguimiento de los clics de anclaje en la página, lo siguiente funcionaría globalmente:

window.onhashchange = function() {
  _gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
}

Tenga en cuenta que si tiene algunos controladores específicos onclick como

 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // some more clever stuff
 });

Tendría que anteponer manualmente el hash para activar el onhashchange

 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // triggers onhashchange
   location.hash = target;
   // some more clever stuff
 });

Suena como si quisiera Seguimiento de eventos de Google Analytics el los ejemplos usan onclick = " " basura, pero apuesto a que probablemente podría vincularlos a los eventos de clic de jQuery también.

  1. Intenté usar el método _uanchor = 1; . Eso no funciona. La razón por la que no funciona es que está diseñado para enviar los parámetros de Google Analytics como valores hash, no para enviar su valor hash.

    De la guía citada en la respuesta de Török Gábor , establecer _uanchor en uno tiene lo siguiente efectos:

      

    Cuando está habilitado, usa # en lugar del predeterminado ? para separar la raíz de la solicitud de la cadena de consulta

    esto se encuentra en la sección "Seguimiento de campañas".

  2. La respuesta de Rob Knight funciona bien, pero hice una pequeña modificación. En pseudocódigo:

    if (href contains ?) {
    href = href.replace('#', '&');
    } else {
    href = href.replace('#', '?');
    }
    

No estoy seguro si realmente le importa a GA tener una URL como foo.html & amp; bar = baz , pero me pareció más limpia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top