Google Analytics agrega modo asíncrono Google Analytics agrega modo asíncrono

Es mejor de lo que suena

Google Analytics agrega modo asíncrono

por

Es mejor de lo que suena

Cuando CHW era un sitio joven y yo un mozalbete inexperto, nuestras primeras experiencias con Google Analytics fueron insatisfactorias: el javascript del tracker demoraba mucho en cargar y el sitio se quedaba esperando. Por lo mismo siempre nos limitamos a otros contadores menos oficiales hasta que, con los años, la mejora en el tiempo de carga de G.A. y en la velocidad de nuestros planes de internet nos convenció de reponerlo.

Pues bien, resulta que no somos los unicos que han experimentado ese problema y, es más, la carga de javascript en general suele ser un dolor de cabeza para los desarrolladores porque impide la carga del resto de contenido y el despliegue definitivo de la página.

Google ha dado un paso para mejorar la velocidad de carga de su script sacando una versión asincrónica del mismo, el cual además se inserta dinámicamente en el documento. Más concretamente, el código viejo:

<script type=”text/javascript”>
var gaJsHost = ((“https:” == document.location.protocol) ? “https://ssl.” : “http://www.”);
document.write(unescape(“%3Cscript src='” + gaJsHost + “google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E”));
</script>
<script type=“text/javascript”>
var pageTracker = _gat._getTracker(“UA-1829516-1”);
pageTracker._initData();
pageTracker._trackPageview();
</script>

Se ha convertido en:

<script type=”text/javascript”>
var _gaq = _gaq || [];
_gaq.push([‘_setAccount’, ‘UA-1829516-1’]);
_gaq.push([‘_trackPageview’]);
(function() {
var ga = document.createElement(‘script’);
ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ :
‘http://www’) + ‘.google-analytics.com/ga.js’;
ga.setAttribute(‘async’, ‘true’);
document.documentElement.firstChild.appendChild(ga);
})();
</script>

Bueno, en realidad lo que hay ahí es el código de CHW,  el identificador cambia de un sitio a otro, jejeje.  Lo importante es que ahora no hay un <script> pegado en el código fuente de la página sino que se genera dinámicamente.

Se le dan parámetros al objeto usando el método _gaq.push, se configura como asíncrono para poder ser cargado simultáneamente a otros scripts (una propiedad HTML5, no todos los browsers lo soportan) y finalmente se añade al primer “child” del documento. En un documento bien formado esto equivale a añadirse a la etiqueta <head> pero hay documentos que no incluyen esa etiqueta asi que el snippet de Analytics en realidad se insertará donde pueda, flexibilidad total.

Dicen en Google que con esto mejora no sólo el tiempo de ejecución sino también la precisión de los resultados. Yo ya lo estoy probando en el foro de CHW, y veré si las estadísticas no se van a la punta del cerro antes de proponer su uso generalizado.

Link: Google Analytics launches asynchronous tracking (Google Code)