2010-10-06 10 views
14
código

Nuevo Google Analytics se parece a uno a continuación:Nuevo código de Google Analytics en un archivo externo

<script type="text/javascript"> 

var _gaq = _gaq || []; 
_gaq.push(['_setAccount', 'UA-0000000-00']); 
_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> 

cómo mover el nuevo código de seguimiento de Analytics Google asíncrona en un archivo externo de JavaScript?

Pregunto especialmente sobre "var _gaq = _gaq || []; [...]" porque sé que es posible mover el resto, p.

index.html

<script type="text/javascript"> 

var _gaq = _gaq || []; 
_gaq.push(['_setAccount', 'UA-0000000-00']); 
_gaq.push(['_trackPageview']); 

</script> 
<script src="include.js" type="text/javascript"></script> 

include.js

function includeGA() 
{ 
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); 
} 

$(document).ready(function() 
{ 
includeGA(); 
}); 

que ya han tratado de colocar el "var _gaq = _gaq || []; [... ] "código en varios lugares, pero nada funcionó.

Respuesta

2

No veo por qué no puede ponerlo arriba "function includeGA()" en include.js. En realidad, no veo por qué no se puede copiar todo el script de google literalmente en include.js (sin la $ solución). Esto debe estar subrayado por la etiqueta script-include, ¿verdad?

8

Por otra parte: no poner el fragmento Google asíncrono en un archivo externo porque va a bloque otros contenidos de la descarga. El punto principal de tener un asincrónico código de seguimiento es hacerlo paralelo.

Si utiliza el asíncrona GA sólo hay que poner en la parte superior de documentar en una etiqueta de secuencia de comandos en línea . Esta es la recomendación en Google Analytics website así:

insertar el fragmento asíncrono en el inferior de la sección <head> de sus páginas, después de cualquier otros scripts tu página o plantilla podría utilizar.

17

Usted no debe poner código de GA en la función por dos razones:

  1. Las variables de GA se convierten local. Necesitan ser usados ​​globalmente.
  2. Llamas a la función solo cuando se carga la totalidad de la página (documento, técnicamente). Esto hace que el proceso de descarga sea en serie (anulando el paralelismo de analíticas asyn).

Las personas que critican el uso de JS externo para el código GA, son un poco mal aquí.Con la introducción del atributo async en js, tiene sentido. Guardo este código GA en js externo y lo incrusto asíncrono justo en el encabezado del documento. Dos beneficios:

  1. mantiene el código limpio (sin línea GA)
  2. cachés el JS- ahorra ancho de banda más rápido & cargas

Así que el HTML se convertiría en:

<head> 
    <script type="text/javascript" src="static/scripts.js" async></script> 
</head> 

y scripts.js tendrá:

var _gaq=_gaq||[]; 
_gaq.push(['_setAccount','UA-XXXXXXXX-1']); 
_gaq.push(['_setDomainName','.domain.net']); 
_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) 
})(); 
+0

Gracias por la edición. Esta fue mi primera publicación. –

+0

La pregunta es si este pequeño código JS en un archivo externo vale la pena tener una solicitud más ... Creo que no es así. –

+0

¿Su propuesta de código es una solución válida que se puede usar? –

Cuestiones relacionadas