2010-03-16 15 views
16

यह पूरी तरह से सरल होना चाहिए, लेकिन मैं इसे काम नहीं कर सकता, इससे कोई फर्क नहीं पड़ता कि मैं क्या प्रयास करता हूं। मैं जीडब्ल्यूटी आवेदन के साथ Google Analytics का उपयोग करने की कोशिश कर रहा हूं।जीडब्ल्यूटी एप्लिकेशन में Google Analytics को एकीकृत करना

पहले, तुल्यकालिक है < सिर > अनुभाग HTML पृष्ठ के अंत में ट्रैकिंग कोड सम्मिलित करके और फिर बुला इस विधि द्वारा:

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

दूसरा है मैं क्या समझ में आ से, वहाँ यह करने के लिए दो रास्ते हैं अतुल्यकालिक, ट्रैकिंग कोड डालने < बस के बाद शरीर > टैग और फिर बुला इस विधि द्वारा:

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

जब उन तरीकों में से प्रत्येक चल रहा है, हालांकि, मैं अस्पताल में इस अपवाद मिल टेड मोड:

[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 के साथ Analytics को काम कर रहा है?

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

(। बेशक, वह भी मेरे लिए काम नहीं करता है)

+4

बस इतना आप जानते हैं _gaq.push (['_ trackPageview()']); Google के दस्तावेज़ में एक बग था। यह _gaq.push होना चाहिए (['_ trackPageview']); माता-पिता के बिना। – Brian

+1

आप gwt-gatracker (https://code.google.com/p/gwt-gatracker/) का उपयोग कर सकते हैं जो आपके जीवन को अधिक आसान बनाता है –

उत्तर

23

यह वह जगह है: इसके अलावा, _gaq स्वीकार trackPageview पैरामीटर के रूप में पृष्ठ नाम, सारे उदाहरण मैं इस कॉल का उपयोग देखा है के बाद से करता है सिर्फ एक अनुमान है, लेकिन आप शायद $wnd के माध्यम से मेजबान पेज (एक जहां गूगल एनालिटिक्स जे एस कोड शामिल किया गया है) को संदर्भित करने के JSNI में, इस तरह की जरूरत है:

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

JSNI कोड (और सामान्य में, GWT कोड) नामस्थान को साफ रखने के लिए आईफ्रेम में चलाया जाता है, यही कारण है कि आपको आवश्यकता है मुख्य विंडो के संदर्भ में $wnd संदर्भ।

+1

हाँ, वह था। धन्यवाद। – Domchi

+1

यह निश्चित रूप से GA async के साथ भी काम करेगा: $ wnd._gaq.push (['_ trackPageview', पृष्ठ नाम]); – 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

एंटोनियो, क्या आप कृपया अपना उत्तर विस्तृत कर सकते हैं? प्रश्न जावा जीडब्ल्यूटी कोड से Google Analytics को कॉल करने के बारे में था। – Domchi

+0

असल में मैं सिर्फ दो चीजें कहना चाहता था: 1) ga.js को जीडब्ल्यूटी कोड कॉल करने से पहले शामिल किया जाना चाहिए; 2) $ wnd.pageTracker._trackPageview (पृष्ठनाम); मेरे लिए काम नहीं करता है और मुझे आधिकारिक Google के एफएक्यू में मिले कोड का उपयोग करना पड़ा। – Antonio

संबंधित मुद्दे