2010-10-06 18 views
14
kod

Nowy Google Analytics wygląda jak ten poniżej:Nowy kod Google Analytics w zewnętrznym pliku

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

Jak przenieść cały nowy Analytics asynchroniczny kod śledzenia Google do zewnętrznego pliku JavaScript?

Pytam szczególnie o "var _gaq = _gaq || []; [...]" część, ponieważ wiem, że można przenieść resztę, np.

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

Ja już próbował umieścić „var _gaq = _gaq || []; [... ] "kodu do różnych lokalizacji, ale nic nie działało.

Odpowiedz

2

ja nie rozumiem, dlaczego nie można umieścić go wyżej „funkcja includeGA()” w include.js. Właściwie to nie rozumiem, dlaczego nie można skopiować całego skryptu google dosłownie do pliku include.js (bez obejścia $). Powinno to być podkreślone przez znacznik script-include, prawda?

8

Potem znowu: nie umieścić fragment Google Async w pliku zewnętrznego bo blokowe innych treści z pobraniem. Głównym punktem mający asynchroniczny kod śledzenia aby równolegle.

Jeśli używasz asynchronicznego GA wystarczy umieścić go w górnym z udokumentować w inline skryptu znacznika. To zalecenie na Google Analytics website także:

Włóż fragment asynchroniczny na dołu sekcji <head> swoich stronach , po wszelkich innych skryptów swoją stronę lub szablon może korzystać.

17

Nie należy umieścić kod GA w funkcji dwóch powodów:

  1. Zmienne GA stać lokalny. Muszą być używane globalnie.
  2. Dzwonisz funkcję tylko wtedy, gdy cała strona (dokument, technicznie) jest załadowany. To sprawia, że ​​proces pobierania jest seryjny (pokonując równoległość analizy asynów).

Ludzie krytykujący użycie zewnętrznego JS dla kodu GA, są tu nieco błędni.Po wprowadzeniu atrybutu async w js, ma to sens. Zachowuję ten kod GA w zewnętrznym js i umieszczam go asynchronicznie w nagłówku dokumentu. Dwie zalety:

  1. utrzymuje kod schludny (nie inline GA)
  2. buforuje js- oszczędza przepustowość & ładunki szybciej

Więc HTML staną:

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

i scripts.js będzie mieć:

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

Dzięki za montaż. To był mój pierwszy post. –

+0

Pytanie brzmi, czy ten mały kod JS w pliku zewnętrznym wart jest jeszcze jednego żądania ... Myślę, że nie. –

+0

Czy twoja propozycja kodu jest prawidłowym rozwiązaniem, z którego można skorzystać? –