2010-03-08 7 views
2

JavaScript 파일이 내 HTML 페이지 끝에로드됩니다.Google 애널리틱스 용 자바 스크립트와 귀하의 애널리틱스를 결합하십시오. (비동기 추적)

또 다른 스크립트에서 Google의 비동기 추적을위한 스크립트 코드를 추가하는 대신 두 스크립트를 함께 결합합니다. 그래서 그 대신이의

:

<html> 
     ... 

     <script src="myScript.js"> 

     <!-- google analytics --> 
     <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'; 
       (document.getElementsByTagName('head')[0] || 
       document.getElementsByTagName('body')[0]).appendChild(ga); 
      })(); 
     </script> 
    </html> 

내가 내 'myScript.js'의 끝에서 두 번째 스크립트 태그 코드의 비트를 가질 것이다.

Google 문서에서 스크립트를 귀하의 것으로 결합하도록 제안한 곳을 하나도 발견하지 못했습니다.

이 문제를 어떻게 해결할 수 있습니까?

답변

1

스크립트를 결합하는 것은 실제로 잘 작동합니다 (사실, 내 사이트에서이 작업을 수행했습니다). Google 코드의 순서가 여전히 동일하면 완벽하게 작동합니다.

+0

이 기술은 구글 분석 문서의에서 언급되지 않습니다 이유를 아시나요? 그들이 그것을지지하고 싶지 않은 것처럼 보입니다. – Zo72

+0

@ lorenzo : 내 게시물에 대답 : http://stackoverflow.com/questions/2401308/2597908#2597908 –

2

비동기 Google 애널리틱스 스 니펫의 핵심은 다른 자바 스크립트 파일로드가 끝나기 전에 가능한 한 빨리 데이터 수집을 시작하는 것입니다. 코드를 scripts.js 파일 끝에 넣으면 그 목적을 거의 무시할 수 있습니다.

별도의 .js 파일에 넣으므로 스 니펫 코드를 클라이언트 측에 캐시 할 수 있습니다. 물론

<script src="analytics-snippet.js"></script> 
<script src="other-scripts.js"></script> 

, 이것은 하나 명의 추가 HTTP 요청,하지만의 모든 방문자가 귀하의 사이트에 여러 페이지를 탐색하는 경우에 대한 최적화 할 수 :하지만 확인이 이전 다른 스크립트를로드 할 수 있습니다.

또한

, 당신은 대체 할 수와

(document.getElementsByTagName('head')[0] || 
      document.getElementsByTagName('body')[0]).appendChild(ga); 

:

(document.head || document.getElementsByTagName('head')[0] || document.body).appendChild(ga); 
관련 문제