google-analytics - _gaq - tag manager google analytics
UnEdge ReferenceError:_gaq no está definido(Google Analytics) (5)
El siguiente mensaje aparece al visualizar una página de sitio en el registro de depuración de Chrome.
UnEdge ReferenceError: _gaq no está definido
Se supone que la página rastrea un objeto utilizando el controlador de eventos onload
y _trackEvent
un _trackEvent
para Google Analytics.
Mi mejor suposición es que quizás el archivo ga.js
no se carga a tiempo y, por lo tanto, el onload
_trackEvent
activado no se _trackEvent
. el fragmento asíncrono se está utilizando antes de cerrar el </body>
y el objeto se coloca en el medio <body>
.
(algunas otras publicaciones también han hecho referencia a la posición jQuery, pero esto podría ser una pista falsa)
cualquier ayuda muy apreciada.
Cambia el código de seguimiento a:
<script type="text/javascript">
var gaq;
var _gaq = gaq || [];
_gaq.push([''_setAccount'', ''UA-XXXXX-X'']);
_gaq.push([''_setDomainName'', ''yourdomain.com'']);
_gaq.push([''_setAllowLinker'', true]);
_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>
Con respecto a la posición del fragmento asíncrono, la https://developers.google.com/analytics/devguides/collection/gajs/ dice:
Pegue este fragmento en la página de plantilla de su sitio web para que aparezca antes de la etiqueta de cierre
</head>
.
Lo primero que pensé fue que JS debería cargarse en la parte inferior de la página para mejorar la velocidad de la página. Sin embargo, el fragmento de seguimiento asíncrono GA debe cargarse en el encabezado, ya que no cargará el ga.js inmediatamente, y no bloqueará la ejecución de la página. (Esto lo hace agregando dinámicamente la etiqueta del script al DOM, que pone al final de la cola)
Si, por algún motivo, no puede mover el fragmento asincrónico a la cabeza, puede definir _gaq
usted mismo, así:
<button onclick="var _gaq = _gaq || []; _gaq.push([''_trackEvent'', ''button3'', ''clicked''])"/><button>
Desde https://developers.google.com/analytics/devguides/collection/gajs/ este código reemplaza su "fragmento de código tradicional" existente con la "última versión asincrónica, primero debe eliminar el fragmento de seguimiento existente".
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push([''_setAccount'', ''UA-XXXXX-X'']);
_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>
Para ver sus eventos entrar (para saber si esto funciona) busque "Eventos" en la opción de menú "Tiempo real" en el lado izquierdo de la página "Informes".
Puede usar la última versión de analytics.js lugar de https://developers.google.com/analytics/devguides/collection/gajs/
ga.js es una biblioteca heredada. Si está comenzando una nueva implementación, le recomendamos que use la última versión de esta biblioteca, analytics.js. Para las implementaciones existentes, aprenda cómo migrar de ga.js a analytics.js.
Aquí hay un ejemplo:
ga(''send'', {
hitType: ''event'',
eventCategory: ''Video'',
eventAction: ''play'',
eventLabel: ''cats.mp4''
});
Tenía el mismo problema. Debes definir la matriz _gaq
. Simplemente agregue esto después de su secuencia de comandos de Google Analytics en el encabezado:
var _gaq = _gaq || [];
_gaq.push([''_setAccount'', ''UA-XXXXXX-X'']);
_gaq.push([''_trackPageview'']);