2014-09-09 1 views
0

나는 많은 자바 스크립트 위젯을 만듭니다. 위젯의 일부로 Google은 종종 Google 애널리틱스를 사용하여 위젯 내에서 작업을 추적합니다. 단순화, 내가 할 것입니다 :Google Analytics가로드되었는지 확인하는 방법

var setupGA = function(){ window._gaq.push(['_setAccount', 'UA-###']); }; 
if(window._gaq){ 
    setupGA(); 
} else { 
    this.loadScript(GOOGLE_ANALYTICS_PATH, function(){ 
     var waitga = setInterval(function(){ 
      if(window._gaq){ 
       clearInterval(waitga); 
       setupGA();  
      } 
     }, 500); 
    }); 
} 

GOOGLE_ANALYTICS_PATH 파일 내 로컬 경로이고 loadScript 스크립트를로드하고 콜백을 실행하는 사용자 정의 방법이다.

Google에서 분석 라이브러리 (현재 analytics.js)를 업데이트하면 분석 라이브러리가로드되지 않도록하는 기존의 방법이 더 이상 작동하지 않습니다. example code for google analytics은 유용하게 전역 GA 개체를 제공하지만이 개체는 사용자 지정 이름을 가질 수 있습니다. 이전 대기열을 확인하여 analytic.js 또는 ga.js 버전의 Google 웹 로그 분석 (내가 이전 Urchin 추적 유형을 생략 할 수 있음)의 존재 여부를 가장 잘 확인할 수 있는지 궁금합니다. 조지아 내가 확인하실 수 있습니다 세계 어떤 요소

var setupGA = function(){ window._gaq.push(['_setAccount', 'UA-###']); }; 
if(window._gaq && !window.**ga**){ 
    setupGA(); 
} else { 
    this.loadScript(GOOGLE_ANALYTICS_PATH, function(){ 
     var waitga = setInterval(function(){ 
      //_gaq will always be loaded for now 
      if(window._gaq){ 
       clearInterval(waitga); 
       setupGA();  
      } 
     }, 500); 
    }); 
} 

:

이 뭔가를해야합니다. 나는 내가 무엇을 찾고있는 것 같아

+0

에서 스크립트를 허용하지 않는

.gif 참고 추적 코드가 실행되지 않습니다 내가 만든 작은 장치. 웹 사이트의 나머지 부분에서 사용하는 것과 동일한 애널리틱스 코드를 .js 파일에 복사했습니다. 애널리틱스는 외부 도메인에서도 가젯이 표시하는 페이지에 대한 활동을보고합니다. 정확히 내가 원하는 것을 수행합니다. – durbnpoisn

+0

다른 사람의 사이트에서 실행 중일 때 위젯의 사용 통계를 추적하려고합니까? –

+0

애널리틱스가로드되었는지 여부를 확인하는 것만 큼보고는 문제가되지 않습니다. 내 클라이언트가 analytics.js를로드하고 window.gaq를 확인한 경우에는 찾을 수 없으며 다른 버전에 대한 추가 요청을합니다. 클라이언트는 Google 애널리틱스 개체의 이름을 원하는대로 지정할 수 있기 때문에 간단히 검사하지 않습니다. – user1026361

답변

1

조금 더 탐험과 내 자신의 질문에 대답했다.

새로운 유니버설 애널리틱스 플랫폼을 사용하면 창 수준 변수가 만들어지는 것 같습니다. 해당 변수는 GoogleAnalyticsObject입니다. 이 개체는 당신에게 그런 다음 웹 로그 분석을 당겨이 변수를 사용할 수 있습니다

EX: Using (window,document,'script','//www.google-analytics.com/analytics.js','ga'); will return "ga" 
EX: Using (window,document,'script','//www.google-analytics.com/analytics.js','notGA'); will return "notGA" 

범용 웹 로그 분석 객체를 수용하기 위해 만든 변수 이름을 줄 것이다는 객체 :

window[window.GoogleAnalyticsObject] 
+0

그 가치는 무엇입니까? 옵트.누군가 내가 추가 스크립트를 다운로드하고 내 지식없이 내 사이트에서 추가 HTTP 요청을하는 경우 꽤 화가났다는 것을 알게되었습니다. –

+1

참고로,'GoogleAnalyticsObject'는 거기에있을 것이라는 보장이 없으므로 여전히'ga'를 검사해야합니다. 또한 코드에서 "GoogleAnalyticsObject"를 따옴표로 묶거나'window.GoogleAnalyticsObject'를 작성해야합니다. 당신이 지금 가지고있는 것은 변수처럼 보입니다. –

+0

우수 포인트 필립. 이 경우 추가 추적은 고객이 계약 상 허용합니다. Anecdotally, 사용자 지정 명명 된 analytics.js 개체를 사용하는 여러 클라이언트가 있습니다. 각 페이지에서 GoogleAnalyticsObject에 액세스 할 수 있습니다. ga는 주어진 것이 아니기 때문에 _gaq/_gat를 감지하는 동안 조심스럽게 GoogleAnalyticsObject에 의지 할 것입니다. 내가 제안한대로 답변을 수정했습니다. – user1026361

0

또 다른 방법은 브라우저 콘솔을 엽니 다이고 네트워크 탭에서 추적 요청을 찾으십시오. 추적 코드가 성공적으로로드되지 않으면 Google에 추적 요청이 전송되지 않습니다. 범용 웹 로그 분석 (analytics.js를)와

, 레거시 코드 (ga.js 코드 urchin.js 중)으로

을 www.google-analytics.com/collect하는 요청을 찾습니다 __utm에 대한 요청을 찾습니다 브라우저가 노 스크립트와 같은 플러그인을 차단하는 스크립트를 사용하는 경우, 당신은 말 그대로 그냥 몇이 아침에 이런 짓을 www.google-analytics.com

관련 문제