ga.js एक JavaScript लाइब्रेरी है. इसका इस्तेमाल यह मेज़र करने के लिए किया जाता है कि उपयोगकर्ता आपकी वेबसाइट से कैसे इंटरैक्ट करते हैं. यह एक लेगसी लाइब्रेरी है. अगर आप Google Analytics का इस्तेमाल शुरू कर रहे हैं, तो आपको सबसे नई ट्रैकिंग लाइब्रेरी, analytics.js का इस्तेमाल करना चाहिए.
ट्रैकिंग कोड क्विकस्टार्ट
Analytics स्निपेट, JavaScript कोड का एक छोटा सा हिस्सा होता है, जिसे
अपने पेजों में चिपकाया जाता है. यह ga.js
को पेज में डालकर,
Google Analytics ट्रैकिंग को चालू करता है. अपने पेजों पर इसका इस्तेमाल करने के लिए, नीचे दिए गए कोड स्निपेट को कॉपी करें और UA-XXXXX-X
की जगह अपनी वेब प्रॉपर्टी आईडी डालें.
इस स्निपेट को अपने वेबसाइट टेंप्लेट पेज में चिपकाएं, ताकि
यह क्लोज़िंग </head>
टैग से पहले दिखे.
अगर आपको पेज की बुनियादी ट्रैकिंग के अलावा और भी काम करने हैं, तो एपीआई में उपलब्ध तरीकों की सूची के लिए, ट्रैकिंग रेफ़रंस देखें. साथ ही, एसिंक्रोनस सिंटैक्स का इस्तेमाल करने के बारे में जानने के लिए, इस्तेमाल करने की गाइड देखें. ट्रैकिंग सेट अप करने के सिलसिलेवार निर्देशों के लिए, ट्रैकिंग सेट अप करने के बारे में सहायता केंद्र का लेख देखें.
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
ऊपर दिया गया स्निपेट, किसी पेज को एसिंक्रोनस रूप से ट्रैक करने के लिए ज़रूरी
कम से कम कॉन्फ़िगरेशन को दिखाता है. यह पेज का वेब प्रॉपर्टी आईडी सेट करने के लिए,
_setAccount
का इस्तेमाल करता है. इसके बाद,
ट्रैकिंग डेटा को
Google Analytics के सर्वर पर वापस भेजने के लिए, _trackPageview
को कॉल करता है.
अहम जानकारी: अगर आपके पेजों को परंपरागत स्निपेट से नए, एसिंक्रोनस वर्शन में अपडेट किया जा रहा है, तो पहले आपको मौजूदा ट्रैकिंग स्निपेट को हटाना होगा. हमारा सुझाव है कि एक ही पेज पर, दोनों स्निपेट को एक साथ इस्तेमाल न करें. माइग्रेशन से जुड़े निर्देशों के लिए, Async पर माइग्रेट करना देखें.
एसिंक्रोनस सिंटैक्स कैसे काम करता है
_gaq
ऑब्जेक्ट की मदद से, एसिंक्रोनस सिंटैक्स इस्तेमाल किया जा सकता है.
यह एक सूची के तौर पर काम करती है. यह फ़र्स्ट-इन, फ़र्स्ट-आउट डेटा स्ट्रक्चर होता है. यह तब तक एपीआई कॉल इकट्ठा करता है,जब तक ga.js
उन्हें लागू करने के लिए तैयार नहीं हो जाता. सूची में कोई आइटम जोड़ने के लिए, _gaq.push
तरीके का इस्तेमाल करें.
किसी एपीआई कॉल को सूची में पुश करने के लिए, आपको इसे पारंपरिक JavaScript सिंटैक्स से कमांड अरे में बदलना होगा. कमांड अरे, JavaScript का ऐसा कलेक्शन होता है जो एक खास फ़ॉर्मैट के मुताबिक होता है. कमांड अरे का पहला एलिमेंट, ट्रैकर ऑब्जेक्ट वाले उस तरीके का नाम होता है जिसे आपको कॉल करना है. यह एक स्ट्रिंग होनी चाहिए. बाकी बचे एलिमेंट ऐसे तर्क हैं जिन्हें आपको ट्रैकर ऑब्जेक्ट तरीके को पास करना है. ये कोई भी JavaScript वैल्यू हो सकती है.
नीचे दिया गया कोड, पारंपरिक सिंटैक्स का इस्तेमाल करके _trackPageview()
को कॉल करता है:
var pageTracker = _gat._getTracker('UA-XXXXX-X'); pageTracker._trackPageview();
एसिंक्रोनस सिंटैक्स में इसी तरह के कोड के लिए _gaq.push
पर दो कॉल की ज़रूरत होती है.
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']);
एसिंक्रोनस सिंटैक्स में, ट्रैकर ऑब्जेक्ट की रचना शामिल होती है, लेकिन हमें अब भी
ट्रैकर के लिए वेब प्रॉपर्टी आईडी सेट करने का कोई तरीका चाहिए. यह सुविधा देने के लिए, _setAccount
तरीका जोड़ा गया है. एसिंक्रोनस और परंपरागत ट्रैकिंग, दोनों में ट्रैकर ऑब्जेक्ट के अन्य सभी तरीके एक जैसे होते हैं. सिर्फ़ सिंटैक्स अलग है.
एसिंक्रोनस सिंटैक्स के बारे में ज़्यादा जानने के लिए, _gaq.push
तरीके का
ट्रैकिंग रेफ़रंस देखें.
एचटीएमएल इवेंट हैंडलर की मदद से ट्रैकिंग करना
एसिंक्रोनस ट्रैकिंग सिंटैक्स का इस्तेमाल DOM इवेंट हैंडलर में भी किया जाना चाहिए. उदाहरण के लिए, जब इन बटन पर क्लिक किया जाता है, तो इवेंट जनरेट होता है.
<button onclick="_gaq.push(['_trackEvent', 'button3', 'clicked'])"></button>
अगर ब्राउज़र पर ga.js
को लोड करने से पहले इस बटन पर क्लिक किया जाता है, तब भी इवेंट
कैप्चर होगा और ट्रिगर होगा. परंपरागत ट्रैकिंग का इस्तेमाल करने पर, ब्राउज़र इस स्थिति में अपवाद भी दे सकता है.
फ़ंक्शन को सूची में भेजना
कमांड अरे के अलावा, फ़ंक्शन ऑब्जेक्ट को
_gaq
सूची में भी पुश किया जा सकता है. फ़ंक्शन में कोई भी आर्बिट्रेरी JavaScript हो सकता है और कमांड अरे की तरह, उन्हें उसी क्रम में एक्ज़ीक्यूट किया जाता है
जिस क्रम में उन्हें _gaq
पर पुश किया जाता है. यह तकनीक उन ट्रैकिंग एपीआई को कॉल करने के लिए काम की है जो वैल्यू दिखाते हैं. उदाहरण के लिए, यह कोड एक लिंकर यूआरएल बनाता है और
नतीजे वाले लिंक के लिए href
प्रॉपर्टी सेट करता है.
_gaq.push(function() { var pageTracker = _gat._getTracker('UA-XXXXX-X'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); });
ऊपर दिए गए उदाहरण में, ट्रैकर ऑब्जेक्ट बनाने के लिए _gat
का इस्तेमाल किया गया है. हालांकि, यह किसी लोकल वैरिएबल को असाइन किए जाने की वजह से, फ़ंक्शन से बाहर का कोड इसका इस्तेमाल नहीं कर सकता. यह तरीका स्वीकार किया जाता है. हालांकि, _gat._createTracker
तरीके का इस्तेमाल करके, ऐसा ऑब्जेक्ट बनाया जा सकता है जिसे सभी जगह स्थायी तौर पर ऐक्सेस किया जा सके.
नीचे दिए गए कोड से पता चलता है कि यह कैसे काम करेगा.
_gaq.push(function() { var pageTracker = _gat._createTracker('UA-XXXXX-X', 'myTracker'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); }); _gaq.push(['myTracker._trackPageview']);
ऊपर दिया गया उदाहरण, फ़ंक्शन के अंदर एक एसिंक्रोनस ट्रैकर बनाता है. इसके बाद, कमांड अरे में, उसका नाम लेकर उसका रेफ़रंस देता है.
इस्तेमाल का उलटा भी हो सकता है. उदाहरण के लिए, अगर आपको पहले पुश किए गए कमांड ऐरे से बनाए गए एसिंक्रोनस ट्रैकर ऑब्जेक्ट का इस्तेमाल करना है, तो _gat._getTrackerByName
तरीके का इस्तेमाल करें. इस कोड से पता चलता है कि यह कैसे काम करता है.
_gaq.push(['myTracker._setAccount', 'UA-XXXXX-X']); _gaq.push(function() { var pageTracker = _gat._getTrackerByName('myTracker'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); });
एक पुश, कई निर्देश
हर कॉल के लिए _gaq.push(...)
टाइप करने के बजाय, अपने सभी निर्देश एक साथ पुश किए जा सकते हैं. नीचे दिया गया कोड इस तकनीक को दिखाता है.
_gaq.push( ['_setAccount', 'UA-XXXXX-X'], ['_setDomainName', 'example.com'], ['_setCustomVar', 1, 'Section', 'Life & Style', 3], ['_trackPageview'] );
यह इसलिए काम करता है, क्योंकि _gaq.push
वाला तरीका, Array.push
वाले तरीके की नकल करता है. इससे,
एक ही बातचीत के साथ कई आइटम पुश किए जा सकते हैं.
स्निपेट को अलग करना
अगर आपको Analytics स्निपेट को पेज के निचले हिस्से में रखना है, तो आपको
यह पता होना चाहिए कि आपको पूरा स्निपेट डालने की ज़रूरत नहीं है.
एसिंक्रोनस लोडिंग के ज़्यादातर फ़ायदे पाने के लिए,
स्निपेट को दो हिस्सों में बांटा जा सकता है. पहले आधे हिस्से को पेज पर सबसे ऊपर रखें और बाकी को
सबसे नीचे ले जाएं. ट्रैकिंग स्निपेट के पहले हिस्से का पेज रेंडरिंग पर बहुत कम असर होता है या कोई असर नहीं पड़ता. इसलिए, आप उस हिस्से को सबसे ऊपर छोड़ सकते हैं. साथ ही, आप स्निपेट के उस हिस्से को सबसे नीचे रख सकते हैं जिसमें ga.js
शामिल होता है.
एसिंक्रोनस स्निपेट वाला कोई पेज ऐसा दिख सकता है:
<html> <head> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); </script> </head> <body> <p>Page Content</p> <script src="some_random_script.js"></script> <p>Page Content</p> <script type="text/javascript"> (function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script> </body> </html>
कोड के दोनों हिस्सों को अपने ही स्क्रिप्ट टैग में रैप करना होगा,
लेकिन मूल एसिंक्रोनस स्निपेट की सिर्फ़ आखिरी छह लाइनों को ही
नीचे ले जाना ज़रूरी है. _gaq
पर तरीकों को पुश करने वाली सभी लाइनें
सबसे ऊपर रह सकती हैं.
आम समस्याओं से बचना
एसिंक्रोनस या ट्रेडिशनल सिंटैक्स का इस्तेमाल करते समय, इन बातों का ध्यान रखें:
- तरीकों के नाम केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) होते हैं.
अगर सही केस का इस्तेमाल किए बिना किसी तरीके का नाम इस्तेमाल किया जाता है, तो आपके मेथड कॉल काम नहीं करेंगे. उदाहरण:_gaq.push(['_trackpageview']); // bad _gaq.push(['_trackPageview']); // good
- तरीका के सही नाम का इस्तेमाल करें.
अगर आपकी ट्रैकिंग सही तरीके से काम नहीं कर रही है, तो जांच करके पक्का करें कि आप तरीके के लिए सही नाम का इस्तेमाल कर रहे हैं. उदाहरण:_gaq.push(['_setDomain', 'example.com']); // bad _gaq.push(['_setDomainName', 'example.com']); // good
- सिर्फ़ स्ट्रिंग को कोट
के साथ पास किया जाना चाहिए. दूसरी सभी कैटगरी को बिना कोट के छोड़ देना चाहिए.
बूलियन, ऑब्जेक्ट लिटरल, फ़ंक्शन या अरे जैसी कोई भी वैल्यू, जो स्ट्रिंग नहीं है उसे कोटेशन मार्क के बिना पास किया जाना चाहिए. सिर्फ़ कोटेशन मार्क का इस्तेमाल तब करें, जब आप किसी ऐसी चीज़ में पास कर रहे हों जिसे स्ट्रिंग माना जाना चाहिए. पारंपरिक सिंटैक्स से माइग्रेट करने पर, कोटेशन मार्क के बिना पास किया गया कोई भी फ़ंक्शन पैरामीटर एसिंक्रोनस सिंटैक्स में बिना कोटेशन मार्क के रहेगा. उदाहरण:_gaq.push(['_setAllowLinker', 'false']); // bad _gaq.push(['_setAllowLinker', false]); // good
- पक्का करें कि स्ट्रिंग की शुरुआत या आखिर में कोई खाली सफ़ेद जगह न हो.
उदाहरण:_gaq.push(['_setAccount', ' UA-65432-1']); // bad _gaq.push(['_setAccount', 'UA-65432-1']); // good
ट्रैकिंग अक्षम करना
कुछ मामलों में, कोड स्निपेट को हटाए बिना किसी पेज पर Google Analytics ट्रैकिंग कोड को बंद करना ज़रूरी हो सकता है. उदाहरण के लिए, अगर आपकी साइट की निजता नीति में वेबसाइट पर आने वाले लोगों के लिए, Google Analytics ट्रैकिंग से ऑप्ट-आउट करने का विकल्प शामिल है, तो आपके पास ऐसा करने का विकल्प है.
ga.js
ट्रैकिंग स्निपेट में अब एक विंडो प्रॉपर्टी शामिल है. यह प्रॉपर्टी true
पर सेट होने पर, ट्रैकिंग स्निपेट को Google Analytics को डेटा भेजने से रोक देती है.
जब Google Analytics कोई कुकी सेट करने या Google Analytics के सर्वर पर
डेटा वापस भेजने की कोशिश करेगा, तो वह देखेगा कि
इस प्रॉपर्टी को true
पर सेट किया गया है या नहीं. अगर ऐसा है, तो
इसका वही असर होगा जो वेबसाइट पर आने वाले व्यक्ति के
Google Analytics ऑप्ट-आउट ब्राउज़र प्लगिन को इंस्टॉल किया गया हो.
ट्रैकिंग बंद करने के लिए, नीचे दी गई विंडो प्रॉपर्टी को 'सही' पर सेट करें:
window['ga-disable-UA-XXXXXX-Y'] = true;
जहां UA-XXXXXX-Y
वैल्यू उस वेब प्रॉपर्टी आईडी से मेल खाती है
जिस पर ट्रैकिंग बंद करनी है.
ट्रैकिंग कोड को कॉल करने से पहले यह विंडो प्रॉपर्टी सेट की जानी चाहिए. यह प्रॉपर्टी हर उस पेज पर सेट होनी चाहिए जहां आपको Google Analytics ट्रैकिंग को बंद करना है. अगर प्रॉपर्टी सेट नहीं है या 'गलत है' पर सेट है, तो ट्रैकिंग हमेशा की तरह काम करेगी.
उदाहरण के लिए, अगर किसी पेज पर आपके Google Analytics के ट्रैकिंग कोड में ये चीज़ें शामिल हैं:
_gaq.push['_setAccount', 'UA-123456-1']
और आप उस ट्रैकिंग कोड को कुकी सेट करने से या Google Analytics को वापस डेटा भेजने से रोकना चाहते हैं, तो ट्रैकिंग कोड को कॉल करने से पहले नीचे दिए गए कोड का इस्तेमाल करें:
window['ga-disable-UA-123456-1'] = true;
अगर एक से ज़्यादा वेब प्रॉपर्टी आईडी वाले पेज पर एक से ज़्यादा ट्रैकर इस्तेमाल किए जाते हैं, तो
आपको हर वेब प्रॉपर्टी के लिए, उसके बराबर का window['ga-disable-UA-XXXXXX-Y']
वैरिएबल true
पर सेट करना होगा. इससे उस पेज पर Google Analytics ट्रैकिंग
को पूरी तरह से बंद किया जा सकेगा.
उदाहरण
यहां कुछ कोड का एक आसान उदाहरण दिया गया है. इसका इस्तेमाल करके, अपने उपयोगकर्ताओं को ऑप्ट-आउट करने की सुविधा दी जा सकती है.
सबसे पहले, ऑप्ट-आउट लॉजिक को लागू करने के लिए, अपनी साइट में एक नया एचटीएमएल लिंक जोड़ें:
<a href="javascript:gaOptout()">Click here to opt-out of Google Analytics</a>
इसके बाद, ga.js कोड स्निपेट से पहले, कोड का यह स्निपेट
जोड़ें. gaProperty
की वैल्यू को UA-XXXX-Y
से
अपनी साइट पर इस्तेमाल की गई प्रॉपर्टी में बदलना न भूलें.
यह वही वैल्यू होती है जिसे _setAccount
कमांड को भेजा जाता है.
<script> // Set to the same value as the web property used on the site var gaProperty = 'UA-XXXX-Y'; // Disable tracking if the opt-out cookie exists. var disableStr = 'ga-disable-' + gaProperty; if (document.cookie.indexOf(disableStr + '=true') > -1) { window[disableStr] = true; } // Opt-out function function gaOptout() { document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; window[disableStr] = true; } </script>
जब कोई उपयोगकर्ता ऑप्ट-आउट करने वाले एचटीएमएल लिंक पर क्लिक करता है, तो कस्टम gaOptout
फ़ंक्शन लागू हो जाएगा. ऐसा करने से, आने वाले समय में लंबे समय के लिए,
कुकी सेट हो जाएगी और analytics.js डेटा इकट्ठा होना बंद हो जाएगा.
जब कोई उपयोगकर्ता इस साइट पर वापस आता है, तो ऊपर दी गई स्क्रिप्ट यह जांच करेगी कि
ऑप्ट-आउट कुकी सेट की गई है या नहीं. अगर ऐसा है, तो analytics.js डेटा
कलेक्शन की सुविधा भी बंद हो जाएगी.
फ़ोर्स करने वाला एसएसएल (एचटीटीपीएस)
Google Analytics को हमेशा एसएसएल का इस्तेमाल करके, असुरक्षित पेजों (एचटीटीपी) से भी डेटा भेजने के लिए मजबूर करने के लिए,
_gat._forceSSL
तरीके का इस्तेमाल करें, जैसा कि इस उदाहरण में दिखाया गया है:
_gaq.push(['_setAccount', 'UA-12345-1']); _gaq.push(['_gat._forceSSL']); // Send all hits using SSL, even from insecure (HTTP) pages. _gaq.push(['_trackPageview']);