2010-03-16 15 views
16

Bu tamamen basit olmalı, ancak ne olursa olsun çalışmamı sağlayamıyorum. Google Analytics'i GWT uygulamasıyla kullanmaya çalışıyorum.Google Analytics'i GWT uygulamasına entegre etme

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

İkinci geçerli:

Öncelikle bu yöntem <kafa> bölüm HTML sayfasının sonundaki izleme kodunu ekleyerek ve daha sonra arayarak, senkron: Ben anladım kadarıyla, bunu yapmak için iki yol var olan asenkron, bu yöntemi izleme kodunu hemen sonra < vücut > etiketinin yerleştirilmesini ve daha sonra arayarak:

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

bu yöntemlerin her biri çalışan, ancak, bu istisnalar fahişeler olsun ted modu: Firebug siteyi gözlemleyerek zaman

[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 

, ben ga.js'nin yüklenen görüyoruz, ama hepsi bu.

Analytics'in GWT ile çalışan biri var mı?

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

(. Ayrıca benim için çalışmadığını Tabii)

+4

Sadece _gaq.push (['_ trackPageview()']); Google’ın belgelerinde bir hataydı. _gaq.push (['_ trackPageview']) olmalıdır; Parens olmadan. – Brian

+1

gwt-gatracker'ı (https://code.google.com/p/gwt-gatracker/) kullanarak hayatınızı daha kolay hale getirebilirsiniz –

cevap

23

budur: Ayrıca, ben bu çağrıyı kullandığını gördüm tüm örnekler beri trackPageview parametresi olarak sayfa adını kabul _gaq yapar sadece bir tahmin, ama muhtemelen bu gibi JSNI içinde $wnd yoluyla konak sayfası (Google Analytics JS kodu dahil edilmiştir biri) başvurmak gerekir:

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

JSNI kodunu (ve genel olarak, GWT kod) isim alanını temiz tutmak için iframe içinde çalıştırılır, bu yüzden ihtiyacınız var Ana pencereye $wnd başvurusu.

+1

Evet. Teşekkürler. – Domchi

+1

Bu elbette GA async ile de çalışır: $ 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> 

Ayrıntılar için http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=55485'a bakın.

+0

Antonio, cevabınızı detaylandırır mısınız? Soru, Google Analytics’i Java GWT kodundan çağırmaktı. – Domchi

+0

Aslında iki şey söylemek istedim: 1) ga.js GWT kodunun çağrılmasından önce eklenmelidir; 2) $ wnd.pageTracker._trackPageview (pageName); benim için çalışmıyor ve resmi Google'ın SSS bölümünde bulduğum kodu kullanmam gerekiyordu. – Antonio

İlgili konular