events - Eventos que no se rastrean en la nueva configuración de Google Analytics(analytics.js)
google-analytics jquery (14)
En mi caso, el problema era uBlock Origin que bloqueaba la carga del script de análisis.
Tengo un sitio web en el que estoy usando el nuevo Universal Analytics (analytics.js) para realizar el seguimiento. Todo está configurado y funcionando (páginas vistas, referencias, etc.) usando el siguiente fragmento de código:
<script>
(function(i,s,o,g,r,a,m){i[''GoogleAnalyticsObject'']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,''script'',''//www.google-analytics.com/analytics.js'',''ga'');
ga(''create'', ''UA-39570713-1'', ''site.com'');
ga(''send'', ''pageview'');
</script>
Que se encuentra antes de la etiqueta </head>
.
Estoy usando JQuery para disparar un evento. Probé el JQuery con un mensaje de alerta y se está llamando, así que ese no es el problema. Aquí está el fragmento que se dispara cuando se hace clic en un botón:
$(''#submitButton'').on(''click'', function() {
ga(''send'', ''event'', ''button'', ''click'', ''contact form'');
});
No aparece nada en la sección Eventos de Analytics. Sigo haciendo clic en el botón, incluso desde diferentes computadoras, solo para asegurarme de que no está excluyendo mi dirección IP. Debido a que el documento de Google Analytics que proporciona Google no proporciona muchas explicaciones, estoy perdido.
En mi caso, no funcionó porque cargué el archivo HTML directamente desde el sistema de archivos.
Cargar la página a través de un servidor web hizo el truco.
Para el desarrollo local, una herramienta como https://github.com/tj/serve hace un gran trabajo.
La única forma en que resolví el problema fue volver a la versión anterior de Analytics (no beta):
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push([''_setAccount'', ''UA-39570713-2'']);
_gaq.push([''_setDomainName'', ''optimino.com'']);
_gaq.push([''_trackPageview'']);
(function() {
var ga = document.createElement(''script''); ga.type = ''text/javascript''; ga.async = true;
ga.src = (''https:'' == document.location.protocol ? ''https://ssl'' : ''http://www'') + ''.google-analytics.com/ga.js'';
var s = document.getElementsByTagName(''script'')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Lo tengo funcionando, mi ejemplo es usar el nuevo Universal Analytics.
<script type="text/javascript">
function sliderOnChange() {
var period = window.convertDays(($("#PeriodSlider").slider("value")));
var amount_of_credit = $("#AmountOfCreditSlider").slider("value");
var gaEventInput = "£" + amount_of_credit + " for " + period;
ga(''send'', ''event'', ''slider'', ''sliding'', gaEventInput);
}
</script>
- Asegúrese de que los filtros Google Analytics / Google Tag Manager no excluyan el tráfico de un dominio diferente. (Tal vez lo estés probando para que funcione usando un dominio diferente)
- Vuelva a verificar su ID de GA y su dominio en ga (''crear'', ''UA-39570713-1'', ''sitio.com'');
- Cree un nuevo perfil en Google Analytics (GA) para realizar pruebas y depure su html en el mismo dominio que define en GA.
- Cambie la fecha para estar hoy en GA. Es posible que también deba esperar un poco antes de que aparezca en GA.
No puedo ver nada malo con el código en sí. ¿Has intentado usar el seguimiento alternativo de eventos?
ga(''send'', {
''hitType'': ''event'', // Required.
''eventCategory'': ''button'', // Required.
''eventAction'': ''click'', // Required.
''eventLabel'': ''contact form''
});
También sugeriría probar el sitio web con el complemento GA Debug Chrome, que le permite ver si se envió o no la baliza de seguimiento.
La documentación de depuración "oficial" para Universal Analytics aún no se encuentra disponible, pero es de esperar que se agregue pronto, ya que ga_debug.js proporciona muchas formas útiles de descubrir qué hay de malo con la implementación de Analytics ...
Para propósitos de prueba también puedes usar el método hitCallback:
ga(''send'', {
''hitType'': ''event'',
''eventCategory'': ''button'',
''eventAction'': ''click'',
''eventLabel'': ''contact form'',
''hitCallback'' : function () {
alert("Event received");
}
});
Actualización: falta una coma.
Recomiendo enviar un evento GTM a través de window.dataLayer.push({ event: ''EVENT_NAME'', ...data })
y en GTM creando un disparador para disparar una etiqueta que envía un evento a Google Analytics. Tendrás la mejor experiencia de depuración con la vista previa de GTM y estarás seguro de que los eventos se enviarán de GTM a GA, porque GTM se encarga de eso.
Si está utilizando el Administrador de etiquetas de Google y también desea activar algunos eventos a través del código, ga(''send''...)
no parece ser suficiente. Primero debe obtener el objeto analítico apropiado:
if ("ga" in window) {
tracker = ga.getAll()[0];
if (tracker)
tracker.send("event", "Test", "Test GA");
}
Tenga en cuenta que esto supone que solo está utilizando un único código de seguimiento de Google Analytics en su sitio. Si está utilizando múltiples, es posible que deba buscar el apropiado por nombre o índice.
También debe considerar que es probable que la página se vuelva a cargar después de que se activó el evento de envío antes de que el script ga pudiera ejecutar el método de "envío". Para evitar esto, puede utilizar el mecanismo ''hitCallback'', es decir, evitar el envío, llamar al método ga send y enviar los datos del formulario en el callback.
También puede usar un complemento jquery que escribí para el nuevo Análisis Universal: https://github.com/pascalvgemert/jquery-analytics-event-tracking
Tengo el mismo problema, y parece que los eventos se rastrean, pero el panel de GA no permite navegar por ellos. Esta es la única forma en que podría interpretar las "Visitas con eventos: 1071" pero "Total de eventos: 0" que me muestra el panel de GA.
UPD : Con la depuración de GA Chrome, he encontrado un problema; El primer método no funciona (envía el evento sin ningún dato adjunto), pero el segundo está bien.
Tuve este mismo problema, y creo que encontré la solución, pero realmente deja un mal sabor de boca sobre Universal Analytics.
Lo que tenía que hacer era utilizar explícitamente la API de análisis síncrono . Entonces, en lugar de incluir el fragmento de código habitual en su etiqueta <head>
, use el siguiente código:
<script src="//www.google-analytics.com/analytics.js"></script>
<script>
tracker = ga.create(''UA-XXXXXXX-1'', ''example.com'');
tracker.send(''pageview'');
</script>
Entonces llamas el código de seguimiento de eventos de esta manera:
tracker.send(''event'', ''Category'', ''Action'', ''Label'');
Esto asegurará que la baliza de seguimiento se envíe a Google y se confirme antes de la página que el usuario navegó para comenzar a cargar.
Esto sugiere que Universal Analytics requiere algún tipo de reconocimiento adicional más allá de lo que requiere el antiguo código de análisis de ga.js
Entonces, cuando adjunta un evento a un clic que lleva al usuario a otra página, ese reconocimiento no se puede enviar porque el navegador abandonó la página y dejó caer la pila de ejecución de javascript actual.
Quizás este problema sea específico de ciertos entornos de ejecución (estoy usando Chrome 34 en OSX Mountain Lion), lo que podría explicar por qué más desarrolladores no están notando este problema.
Tuve exactamente el mismo problema. Tuve que crear una nueva propiedad y seleccionar "Universal Analytics" en lugar de "Classic Analytics" (está etiquetado como "beta"). Ahora los eventos son capturados adecuadamente.
hoy necesitaba configurar analíticas por primera vez y me encontré en el mismo problema.
Descubrí que la mejor manera de lidiar con los rastreadores múltiples para evitar el getAll()
, es esta:
<script>
(function(i,s,o,g,r,a,m){i[''GoogleAnalyticsObject'']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,''script'',''https://www.google-analytics.com/analytics.js'',''ga'');
ga(''create'', ''UA-xxxxxx-y'', ''auto'', ''tracker'');
ga(''tracker.send'', ''pageview'');
ga(''tracker.send'', ''event'', ''test'', ''click'', ''automaticEvent'')
Tenga en cuenta que debe pasar un "nombre" al método de creación y luego enviar un evento a ese rastreador con ga([trackerName].send, ...)
Referencia: https://developers.google.com/analytics/devguides/collection/analyticsjs/accessing-trackers