13

बिना किसी अन्य जेएस ढांचे (डोजो, jquery, आदि), का उपयोग करके मैं वेब विश्लेषणात्मक वेबस्क्रिप्ट को वेब-ट्रैकिंग के लिए वेब पेज पर उपयोग करने के लिए गतिशील रूप से कैसे लोड करूं?मैं गतिशील रूप से Google Analytics जावास्क्रिप्ट को कैसे लोड करूं?

ठेठ गतिशील लोड हो रहा है के लिए उपयुक्त जे एस निम्न करने के लिए है:

var gaJs = document.createElement("script"); 
gaJs.type = "text/javascript"; 
gaJs.src = "http://www.google-analytics.com/ga.js"; 
document.body.appendChild(gaJs); 
var pageTracker = _gat._getTracker("UA-XXXXXXXXX"); 
pageTracker._initData(); 
pageTracker._trackPageview(); 

लेकिन वह काम नहीं करता।

ga.js फ़ाइल _gat._getTracker & _initData/trackPageview कार्य करने के लिए समय में लोड नहीं है।

ga.js. को सही ढंग से गतिशील रूप से लोड करने के तरीके के बारे में कोई भी विचार

अद्यतन: ऐसा लगता है कि किसी ने इस समस्या को निम्नलिखित लिंक पर संबोधित करने का प्रयास किया है। हालांकि, यह पुराने Urchin कोड के साथ उपयोग के लिए है, न कि Google Analytics।

urchin.js के बजाय ga.js के साथ काम करने के तरीके के बारे में कोई विचार?

http://20y.hu/20070805/loading-google-analytics-dynamically-on-document-load.html

+0

@ डैनी - आप शीर्षक को भी बदलने की सिफारिश करेंगे? –

उत्तर

0

सर्वर साइड प्रोग्रामिंग आसान मुझे लगता है कि हो सकता है, लेकिन मैं thissome समय पहले मिला। ध्यान दें कि यह विशेष रूप से इसे html head पर सेट करता है।

'अजाक्स के माध्यम से जावास्क्रिप्ट जोड़ना' पर पहले लिंक को भी देखें।

+0

@ voyager - पहला लिंक यह दिखा रहा है कि मैं अपनी पोस्ट में जो विधि दिखाता हूं उसका उपयोग करके इसे कैसे किया जाए, जो काम नहीं करता है। दूसरा लिंक जेएस को एचटीएमएल हेड एट्रिब्यूट में जोड़ने का वर्णन करता है, जो अनजान है क्योंकि * ब्लॉक * एचटीएमएल प्रतिपादन होगा। –

+0

@ voyager - उत्तर देने का प्रयास करने के लिए धन्यवाद :) –

0

मैंने सचमुच सिर्फ कुछ एक साथ रखा है जो यह करता है ... jquery का उपयोग कर। चाल उसमें ट्रैकिंग कोड के साथ स्क्रिप्ट टैग में एक लोड इवेंट जोड़ना है।

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
var gaScript = document.createElement('script'); 
var loaded = false; 
gaScript.src = gaJsHost + "google-analytics.com/ga.js"; 

$(gaScript).load(function(){ 
    loaded = true; 
    var pageTracker = _gat._getTracker(Consts.google_analytics_uacct); 
    pageTracker._initData(); 
    pageTracker._trackPageview(); 
}); 

document.body.appendChild(gaScript); 

// And to make it work in ie7 & 8 
gaInterval = setInterval(function() { 
    if (!loaded && typeof _gat != 'undefined') { 
    $(gaScript).load(); 
    clearInterval(gaInterval); 
    } 
},50); 

जो चीज़ मैं काम करने की कोशिश कर रहा हूं वह है ... क्या यह Google द्वारा अनुमत है।

+0

सवाल कहता है * बिना * jquery – GarethD

1

Google द्वारा प्रदान किए गए सटीक जावास्क्रिप्ट कोड का उपयोग करने का प्रयास करें और फिर अपने यूआई ढांचे में निर्माण के आधार पर कोड के उस अनुभाग को सशर्त रूप से प्रदर्शित करें। आपने यह नहीं कहा कि यह कौन सा प्लेटफॉर्म चल रहा है, अगर यह एएसपी.नेट है तो आप कोड को प्लेसहोल्डर या उपयोगकर्ता नियंत्रण में डाल सकते हैं और फिर स्क्रिप्ट को शामिल करने के लिए कॉन्फ़िगरेशन फ़ाइल सेटिंग के आधार पर दृश्यमान या गलत पर दृश्यमान सेट कर सकते हैं। मैंने प्री-प्रोडक्शन वातावरण में Analytics स्क्रिप्ट को शामिल होने से रोकने के लिए कई साइटों पर इस दृष्टिकोण का उपयोग किया है।

0
 
function loadGA() 
{ 
    if(typeof _gat == 'function') //already loaded 
    { 
     //innitGA(); 
     // you may want the above line uncommented.. 
     // I'm presuming that if the _gat object is there 
     // you wouldn't want to. 
     return; 
    } 
    var hostname = 'google-analytics.com'; 
    var protocol = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
    js = document.createElement('script'); 
    js.setAttribute('type', 'text/javascript'); 
    js.setAttribute('src', protocol+hostname+'/ga.js'); 
    document.body.appendChild(js); 
    //2 methods to detect the load of ga.js 
    //some browsers use both, however 
    loaded = false; // so use a boolean 
    js.onreadystatechange = function() { 
     if (js.readyState == 'loaded') 
     { 
      if(!loaded) 
      { 
       innitGA(); 
      } 
      loaded = true; 
     } 
    }; 
    js.onload = function() 
    { 
     if(!loaded) 
     {   
      innitGA(); 
     } 
     loaded = true; 
    }; 
} 

function innitGA() 
{ 
    //var pageTracker = _gat._getTracker('GA_ACCOUNT/PROFILE_ID'); 
    //pageTracker._initData(); 
    //pageTracker._trackPageview(); 
    alert('oh hai I can watch plz?'); 
} 

सिर्फ फोन loadGA() ... IE6/7/8, FF3, क्रोम और ओपेरा

खेद पर परीक्षण करता है, तो मैं थोड़ा इस पार्टी के लिए देर हो रही है।

5

आप इस स्निपेट का उपयोग HTML5 Boilerplate से कर सकते हैं।

<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. --> 
<script> 
    var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']]; 
    (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0]; 
    g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js'; 
    s.parentNode.insertBefore(g,s)}(document,'script')); 
</script> 
+1

आप इसे किसी फ़ंक्शन में चिपका सकते हैं लेकिन याद रखें कि _gaq को वैश्विक होना चाहिए (विंडो ऑब्जेक्ट पर) – reconbot

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