2010-03-16 2 views
16

이것은 완전히 간단해야하지만 시도 할 때 작동하지 않습니다. Google 애널리틱스를 GWT 애플리케이션과 함께 사용하려고합니다.Google 웹 로그 분석을 GWT 응용 프로그램에 통합

public static native void recordAnalyticsHit(String pageName) /*-{ 
    pageTracker._trackPageview(pageName); 
}-*/; 

두 번째는 다음과 같습니다

먼저이 방법을 < 머리 > 섹션 HTML 페이지의 끝에서 추적 코드를 삽입 한 후 호출하여 동기 : 내가 이해 무엇에서 그것을 할 수있는 두 가지 방법이 있습니다 비동기,이 방법을 추적 코드를 직후 < 몸 > 태그를 삽입 한 후 호출하여 :

public static native void recordAnalyticsHit(String pageName) /*-{ 
    _gaq.push(['_trackPageview(' + pageName + ')']); 
}-*/; 

그 각각의 방법을 실행하지만,이 예외 호에서 얻을 ted 모드 :

[ERROR] [myproject] Uncaught exception escaped 
com.google.gwt.core.client.JavaScriptException: (ReferenceError): pageTracker is not defined 

[ERROR] [myproject] Uncaught exception escaped 
com.google.gwt.core.client.JavaScriptException: (ReferenceError): _gaq is not defined 

Firebug에서 사이트를 관찰 할 때 ga.js가로드되는 것을 볼 수 있지만 그게 전부입니다.

GWT에서 애널리틱스를 사용할 수있는 사람이 있습니까?

_gaq.push(['_trackPageview()']); 

(. 또한 나를 위해 작동하지 않습니다, 물론)

+4

그냥 알고 계시므로 _gaq.push ([ '_ trackPageview()']); Google의 설명서에 버그가있었습니다. _gaq.push ([ '_ trackPageview']) 여야합니다. without without이없이. – Brian

+1

gwt-gatracker (https://code.google.com/p/gwt-gatracker/)를 사용하면 훨씬 쉽게 생활 할 수 있습니다. –

답변

23

이것은이다 : 또한,이 호출을 사용하여 본 적이 모든 예제 이후, trackPageview 매개 변수로 페이지 이름을 그대로 _gaq 않습니다 단지 추측하지만, 당신은 아마이처럼 JSNI에 $wnd를 통해 호스트 페이지 (Google 웹 로그 분석 JS 코드가 포함 된 하나)를 참조 할 필요가 :

public static native void recordAnalyticsHit(String pageName) /*-{ 
    $wnd.pageTracker._trackPageview(pageName); 
}-*/; 

JSNI 코드 (그리고 일반적으로, GWT를 코드)를 iframe에서 실행하여 네임 스페이스를 깨끗하게 유지해야하므로 주 창에 대한 참조는 $wnd입니다.

+1

예, 그랬습니다. 감사. – Domchi

+1

물론 이것은 GA async에서도 작동합니다 : $ wnd._gaq.push ([ '_ trackPageview', pageName]); – Brian

0
<script type="text/javascript"> 
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
</script> 

<script type="text/javascript"> 
    var pageTracker = _gat._getTracker("UA-xxxxxx-x"); 
    pageTracker._trackPageview("/subdirectory/pagename"); 
</script> 

자세한 내용은 http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=55485을 참조하십시오.

+0

안토니오, 대답 좀 자세히 설명해 주시겠습니까? Java GWT 코드에서 Google 애널리틱스에 전화하는 데 대한 질문이있었습니다. – Domchi

+0

사실 나는 단지 두 가지를 말하고 싶었습니다. 1) GWT 코드가 호출하기 전에 ga.js가 포함되어야합니다. 2) $ wnd.pageTracker._trackPageview (pageName); 저를 위해 작동하지 않으며 공식 Google의 FAQ에서 찾은 코드를 사용해야했습니다. – Antonio