Estoy intentando agregar la versión asíncrona del código de seguimiento de Google Analytics a un sitio web.Uso del código asincrónico de Google Analytics desde el archivo JS externo
Me gustaría mantener el JavaScript en un archivo separado, y llamar desde allí.
Esto es lo que tengo actualmente en mi archivo .js:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function loadtracking() {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-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);
})();
}
addLoadEvent(loadtracking);
Y aquí es lo que tengo en la etiqueta <head>
de mi página principal:
<script type="text/javascript" src="js/google-analytics.js" ></script>
Sin embargo, hay obviamente un problema, ya que después de unos días, ¡no estoy obteniendo estadísticas!
¿Alguna idea de lo que necesito cambiar?
Gracias, Neil
EDIT: Ok ... Después de algunos comentarios a continuación, voy a añadir las nuevas contenido actual de mi archivo .js. Lo mantendré actualizado para que, cuando esto se resuelva, esperemos que ayude a otras personas que intentan hacer cosas similares.
var _gaq = _gaq || [];
function loadtracking() {
window._gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
window._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);
})();
}
loadtracking();
¿Resultó que esto solucionó su problema? Me encuentro con el mismo problema, aunque tenía mi var _gaq definido globalmente en el archivo .js. Gracias. –
Por lo que recuerdo, sí lo hizo. Para ser honesto, para la mayoría de las aplicaciones, sugiero seguir los consejos a continuación y poner el código directamente en el documento ... Era un requisito para este proyecto específico que estuviera en un archivo separado, que puede o no ser el caso contigo. – NeilD
He estado leyendo muchos temas similares en SO y he visto a personas decir que no hay problema con eso, aparte de una posible ligera demora en cargar el guión, mientras que otros han dicho que arruinará mi vida y me condenará al infierno. Necesito que pase valores dif según la página que se está viendo, y quiero mantener los cambios de código en un único archivo en lugar de en cada página del sitio web.Parece que funciona bien, pero si puede recordar cualquier problema que haya tenido, hágamelo saber. Lo aprecio. –