इस गाइड में टास्क के बारे में जानकारी दी गई है. यह एक बेहतर सुविधा है, जिसका इस्तेमाल यह तय करने के लिए किया जाता है कि analytics.js की पुष्टि कैसे की जाती है, वह कैसे काम करता है, और यह मेज़रमेंट प्रोटोकॉल के अनुरोध कैसे भेजता है.
खास जानकारी
जब भी send
कमांड को कॉल किया जाता है, तब analytics.js कई टास्क पूरे करता है. ऐसा करके, उपयोगकर्ता के ब्राउज़र से मेज़रमेंट प्रोटोकॉल अनुरोध की पुष्टि की जाती है, उसे बनाया जाता है, और Google Analytics को भेजा जाता है. यहां दी गई टेबल में, सभी टास्क के लागू होने के क्रम में उनके बारे में जानकारी दी गई है:
टास्क का नाम | ब्यौरा |
---|---|
customTask |
डिफ़ॉल्ट रूप से, यह टास्क कुछ भी नहीं करता. पसंद के मुताबिक व्यवहार देने के लिए इसे बदलें. |
previewTask |
अगर पेज को सिर्फ़ Safari के लिए 'सबसे लोकप्रिय साइटों' का थंबनेल जनरेट करने के लिए रेंडर किया जा रहा है, तो अनुरोध को रद्द कर देता है. |
checkProtocolTask |
अगर पेज का प्रोटोकॉल http
या https नहीं है, तो अनुरोध को रद्द कर दिया जाता है. |
validationTask |
ज़रूरी फ़ील्ड मौजूद न होने या अमान्य होने पर अनुरोध रद्द कर दिया जाता है. |
checkStorageTask |
अगर ट्रैकर को कुकी इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है, लेकिन उपयोगकर्ता के ब्राउज़र में कुकी बंद हैं, तो अनुरोध को रद्द कर दिया जाता है. |
historyImportTask |
ga.js और urchin.js कुकी से जानकारी इंपोर्ट करता है, ताकि किसी साइट के Universal Analytics पर माइग्रेट होने पर, उसका इतिहास सुरक्षित रखा जा सके. |
samplerTask |
इस ट्रैकर की sampleRate सेटिंग के आधार पर,
वेबसाइट पर आने वाले लोगों का सैंपल लिया जाता है. |
buildHitTask |
यह मेज़रमेंट प्रोटोकॉल के अनुरोध की स्ट्रिंग बनाता है और उसे
hitPayload फ़ील्ड में सेव करता है. |
sendHitTask |
यह hitPayload फ़ील्ड में सेव किए गए मेज़रमेंट प्रोटोकॉल के अनुरोध को Google Analytics के सर्वर पर भेजता है. |
timingTask |
इस ट्रैकर के लिए, siteSpeedSampleRate की सेटिंग के आधार पर, साइट की स्पीड टाइमिंग का हिट अपने-आप जनरेट होता है. |
displayFeaturesTask |
यह एक अतिरिक्त हिट भेजता है. ऐसा तब होता है, जब डिसप्ले सुविधाएं चालू हों और विज्ञापन सुविधाओं की कुकी (_ga) की ओर से सेट की गई टाइम आउट अवधि के अंदर पिछला हिट न भेजा गया हो. |
इनमें से हर टास्क को JavaScript फ़ंक्शन के तौर पर लागू किया जाता है, जिसमें इनपुट के तौर पर कोई एक मॉडल पैरामीटर होता है. यह मॉडल एक आसान ऑब्जेक्ट है, जो Analytics.js फ़ील्ड रेफ़रंस में दिए गए किसी भी फ़ील्ड का ऐक्सेस देता है.
स्टैंडर्ड ट्रैकर get
और set
तरीकों का इस्तेमाल करके, टास्क को ऐक्सेस या बदला जा सकता है. इन तरीकों का इस्तेमाल करके, टास्क को अपने कस्टम फ़ंक्शन से बदला जा सकता है. इसके अलावा, मौजूदा फ़ंक्शन को बेहतर बनाया जा सकता है. इसके लिए, अपने कस्टम फ़ंक्शन को किसी मौजूदा टास्क से पहले या बाद में लागू करने के लिए चेन बनाएं.
लागू करने का तरीका
इस सेक्शन में बताया गया है कि मौजूदा टास्क में नए फ़ंक्शन कैसे जोड़े जा सकते हैं, टास्क में पहले से मौजूद फ़ंक्शन को अपने कस्टम कोड से कैसे बदला जा सकता है या टास्क फ़ंक्शन को पूरी तरह से कैसे बंद किया जा सकता है.
किसी टास्क को बदलना
किसी टास्क को बदलने के लिए, उसकी वैल्यू को ऐसे फ़ंक्शन पर set
किया जा सकता है जो कुछ अलग करता है. Analytics.js लागू करने की प्रक्रिया की जांच करते समय स्टब फ़ंक्शन, टास्क को ओवरराइड करने की आम वजह है.
नीचे दिया गया कोड, sendHitTask
को ऐसे फ़ंक्शन से बदल देता है जो हिट पेलोड को कंसोल में लॉग करता है:
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'sendHitTask', function(model) {
console.log(model.get('hitPayload'));
});
किसी टास्क में जोड़ा जा रहा है
नई सुविधा जोड़ने के लिए, कस्टम टास्क फ़ंक्शन को चेन किया जा सकता है, ताकि मौजूदा टास्क से पहले या बाद में उसे लागू किया जा सके. नीचे दिए गए उदाहरण में, sendHitTask
को कस्टम टास्क फ़ंक्शन से बदल दिया गया है. यह फ़ंक्शन सबसे पहले मूल sendHitTask
फ़ंक्शन को कॉल करता है, ताकि सामान्य अनुरोध बीकन को google-analytics.com/collection पर भेजा जा सके. इसके बाद, मेज़रमेंट प्रोटोकॉल के अनुरोध की कॉपी को स्थानीय सर्वर पर भेजने के लिए कस्टम कोड एक्ज़ीक्यूट करता है.
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
// Grab a reference to the default sendHitTask function.
var originalSendHitTask = tracker.get('sendHitTask');
// Modifies sendHitTask to send a copy of the request to a local server after
// sending the normal request to www.google-analytics.com/collect.
tracker.set('sendHitTask', function(model) {
originalSendHitTask(model);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/localhits', true);
xhr.send(model.get('hitPayload'));
});
});
ga('send', 'pageview');
टास्क की प्रोसेसिंग रद्द की जा रही है
कोई अपवाद अपलोड करके, बाद के टास्क की प्रोसेसिंग को रद्द किया जा सकता है. अगर अपवाद को थ्रो करने वाला टास्क sendHitTask
से पहले शुरू होता है, तो Google Analytics के सर्वर पर मेज़रमेंट प्रोटोकॉल का अनुरोध नहीं भेजा जा सकता. नीचे दिए गए उदाहरण में, उपयोगकर्ता के ब्राउज़र में 'टेस्टिंग' नाम की कोई कुकी मौजूद होने पर, हम अनुरोध को रद्द कर देते हैं और उसकी वैल्यू 'सही' होती है.
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
var originalBuildHitTask = tracker.get('buildHitTask');
tracker.set('buildHitTask', function(model) {
if (document.cookie.match(/testing=true/)) {
throw 'Aborted tracking for test user.';
}
originalBuildHitTask(model);
});
});
ga('send', 'pageview');
टास्क को बंद करना
किसी भी पहले से मौजूद टास्क फ़ंक्शन को बंद करने के लिए, इसे शून्य से बदलें.
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'checkProtocolTask', null); // Disables file protocol checking.
ga('send', 'pageview');