¿Cuál es la forma recomendada de agregar código de Google Analytics y por qué?

He leído en muchas fuentes que la forma recomendada por Google de agregar código GA (enlace) puede ralentizar la carga de la página. StackOverflow en sí no lo coloca en el encabezado (como recomienda Google) sino en la parte inferior de la página.

Entonces, ¿debería ir con Google, StackOverflow, o debería usar getScript de jQuery?

preguntado el 08 de enero de 11 a las 16:01

Nadie respondió a la parte de la pregunta "¿debería usar getScript de jQuery". Ese enfoque parece prometedor. -

7 Respuestas

Google Analytics recomienda colocar el asincrónico fragmento justo antes del </head> etiqueta.

<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>

En los días previos a la sintaxis asincrónica, la recomendación era ponerla antes del cierre </body> etiqueta, para evitar el bloqueo de carga de la página. Esto ya no es una preocupación seria.

Lo único que hará este script en forma de bloqueo es crear una matriz de JavaScript simple, insertar algunos valores básicos y luego ejecutar una función anónima. El navegador avanzará y continuará cargándose, mientras que en segundo plano el navegador solicitará ga.js de los servidores de Google y, a continuación, ejecute una __utm.gif solicitud a los servidores de Google con la información de seguimiento.

Porque esto el script se inserta de forma asincrónica y sin bloqueo, no evita que su contenido se cargue a tiempo. Colocarlo tan temprano le permitirá rastrear un mayor porcentaje de personas, incluidas aquellas que hacen clic cuando solo se carga una parte del cuerpo. Además, reduce la posibilidad de error si tiene un seguimiento basado en eventos dentro de su página.

Además, debido a que Google Analytics casi siempre se sirve desde una de dos URL (versiones HTTP y HTTPS de Google), es probable que el archivo se almacene en caché básicamente en cualquier navegador que tengan sus usuarios, lo que significa que el script en sí no tendrá que ser transferido.

En pocas palabras, los mejores resultados están garantizados si coloca ese fragmento al final de su </head> etiqueta.

contestado el 23 de mayo de 17 a las 15:05

Los scripts asíncronos no son compatibles con los navegadores más antiguos, por lo que aún se bloquearán. IE 9- por ejemplo. - Sudor

@Suor eso es solo soporte para el atributo async. La inyección de secuencia de comandos dinámica es en sí misma asincrónica (a diferencia de una etiqueta de secuencia de comandos clásica simple). El atributo async aquí no es estrictamente necesario. Esto es suficiente para lograr la asincronía en casi todos los navegadores principales, incluido el antiguo IE. - Yahel

La mejor forma es utilizar análisis asincrónico. Para realizar un seguimiento de cada clic, descargas, etc.

puedes encontrar toda la información aquí: http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html

Editar: siga siempre las sugerencias de código de Google, es la mejor práctica para hacerlo.

Respondido el 08 de enero de 11 a las 19:01

Stack Overflow utiliza la versión "tradicional" más antigua del código de seguimiento de Google, que se ejecuta de forma sincrónica. Google recomienda que esta versión se coloque inmediatamente antes </body>.

El paginado al que se vinculó es para el código de seguimiento actualizado, que se ejecuta de forma asincrónica y debe colocarse en el <head>

Por lo tanto, debe utilizar el último fragmento de código (asincrónico) de Google en el <head> de su sitio.

Respondido el 08 de enero de 11 a las 19:01

Versión asincrónica al final de su <body>.

Es decir:

  <script>
   var _gaq = [['_setAccount', 'UA-xxxxxxx-1'], ['_trackPageview']];
   (function(d, t) {
    var g = d.createElement(t),
        s = d.getElementsByTagName(t)[0];
    g.async = true;
    g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    s.parentNode.insertBefore(g, s);
   })(document, 'script');
  </script>
</body>

Respondido el 08 de enero de 11 a las 19:01

Recomiendo no hacerlo así; omitiendo el _gaq = _gaq || []; declaración significa que corre el riesgo de sobrescribir información que podría haber sido agregada previamente (si está ejecutando varios scripts). Además, poner todos los valores directamente en una declaración puede ahorrar caracteres, pero reduce la capacidad de mantenimiento, ya que difiere significativamente de cómo cualquier documentación mostrará el código o cualquiera de sus modificaciones. - Yahel

$ .getScript, de forma predeterminada, agregará la marca de tiempo actual a la URL para evitar el almacenamiento en caché. Entonces, si lo usa, debería estar apagado. (Activa el almacenamiento en caché).

http://blog.yjl.im/2010/09/jquerify-google-analytics-tracking-code.html

Algo como esto puede funcionar. Es menos código que el javascript de Google.

$.ajax(('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js', {dataType: 'script', cache: true})

Además, tenga en cuenta que pronto será reemplazado por el código analítico universal "isograma".

Respondido 30 Jul 14, 00:07

Recientemente publiqué un pequeño complemento de jQuery para manejar esto por ti. Implementa las sugerencias de Google sobre seguimiento asincrónico, pero con un toque de magia jQuery. Puedes encontrarlo:

Un pequeño complemento asincrónico de Google Analytics sin problemas para jQuery https://github.com/mekwall/jquery-ga

Respondido 01 ago 15, 21:08

El enlace estaba dando un "No encontrado". Según google y gitub, este complemento es el indicado :) Un pequeño complemento asíncrono de Google Analytics sin problemas para jQuery github.com/mekwall/jquery-ga - PJunior

Como se explica aquí:

https://developers.google.com/analytics/devguides/collection/gajs/#SplitSnippet

Si sus páginas se cargan más lentamente (las mías ciertamente lo fueron), puede dividir el código en dos partes, colocando la primera en el

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXX-X']);
  _gaq.push(['_trackPageview']);
</script>

y el segundo al pie, justo arriba

<script type="text/javascript">
  (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>

Después de hacer esto, mis páginas se cargan tan rápido como siempre.

Respondido 19 Abr '12, 19:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.