कुकी और उपयोगकर्ता की पहचान की पुष्टि का सेक्शन

Google Analytics यह पता लगा सके कि दो अलग-अलग हिट एक ही उपयोगकर्ता से जुड़े हैं या नहीं, हर हिट के साथ उस उपयोगकर्ता से जुड़ा एक यूनीक आइडेंटिफ़ायर भेजा जाना चाहिए.

analytics.js लाइब्रेरी इसके लिए Client-ID फ़ील्ड का इस्तेमाल करती है. यह एक यूनीक और रैंडम तरीके से जनरेट की गई एक स्ट्रिंग होती है, जिसे ब्राउज़र की कुकी में स्टोर किया जाता है. ऐसा इसलिए किया जाता है, ताकि उसी साइट पर बाद में होने वाली विज़िट, उसी उपयोगकर्ता से असोसिएट हो सके.

डिफ़ॉल्ट रूप से, analytics.js Client-ID को स्टोर करने के लिए पहले-पक्ष की एक कुकी का इस्तेमाल करता है. _ga हालांकि, कुकी के नाम, डोमेन, और उसके खत्म होने के समय को पसंद के मुताबिक बनाया जा सकता है. analytics.js की बनाई गई अन्य कुकी में, _gid, AMP_TOKEN, और _gac_<property-id> शामिल हैं. ये कुकी, उपयोगकर्ता के बारे में बिना किसी क्रम के जनरेट किए गए आईडी और कैंपेन की जानकारी स्टोर करती हैं.

कुकी का इस्तेमाल करने पर analytics.js को सभी ब्राउज़िंग सेशन के यूनीक उपयोगकर्ताओं की पहचान करने में मदद मिलती है. हालांकि, यह अलग-अलग ब्राउज़र या डिवाइस के यूनीक उपयोगकर्ताओं की पहचान नहीं कर सकती. अगर आपकी साइट का पुष्टि करने का अपना सिस्टम है, तो Client-ID के अलावा User-ID की सुविधा का इस्तेमाल किया जा सकता है. इससे उन सभी डिवाइसों पर उपयोगकर्ता की बेहतर तरीके से पहचान की जा सकती है जिनका इस्तेमाल वे आपकी साइट को ऐक्सेस करने के लिए करते हैं.

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

इस टेबल में, कुकी फ़ील्ड की वे डिफ़ॉल्ट वैल्यू दिखाई गई हैं जिनका इस्तेमाल analytics.js करता है:

फ़ील्ड का नाम वैल्यू टाइप डिफ़ॉल्ट वैल्यू
cookieName टेक्स्ट _ga
cookieDomain टेक्स्ट इस JavaScript एक्सप्रेशन का यह नतीजा मिला:
document.location.hostname
cookieExpires पूर्णांक 63072000 (दो साल और सेकंड में)
cookieUpdate boolean true
cookieFlags टेक्स्ट

इनमें से किसी भी वैल्यू में बदलाव करने के लिए, उसे fieldObject में बताया जा सकता है. इसके लिए, create कमांड का इस्तेमाल करें. उदाहरण के लिए:

ga('create', 'UA-XXXXX-Y', {
  'cookieName': 'gaCookie',
  'cookieDomain': 'blog.example.co.uk',
  'cookieExpires': 60 * 60 * 24 * 28  // Time in seconds.
  'cookieUpdate': 'false',
  'cookieFlags': 'SameSite=None; Secure',
});

सबसे सामान्य कुकी फ़ील्ड cookieDomain है, जिसे सेट किया जाता है. उदाहरण के लिए, create कमांड, सुविधा के लिए cookieDomain फ़ील्ड को वैकल्पिक तीसरे पैरामीटर के तौर पर भी स्वीकार करता है:

ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');

सुझाया गया Google Analytics टैग, cookieDomain फ़ील्ड के लिए 'auto' स्ट्रिंग सेट करता है:

ga('create', 'UA-XXXXX-Y', 'auto');

'auto' को cookieDomain के तौर पर तय करने से, कुकी का डोमेन अपने-आप कॉन्फ़िगर होने की सुविधा चालू हो जाती है. इससे analytics.js को अपने-आप यह तय करने में मदद मिलती है कि इस्तेमाल के लिए सबसे अच्छा कुकी डोमेन कौनसा है.

अपने-आप होने वाले कुकी डोमेन का कॉन्फ़िगरेशन, _ga कुकी को सबसे ऊंचे लेवल वाले डोमेन पर सेट करता है. उदाहरण के लिए, अगर आपकी वेबसाइट का पता blog.example.co.uk है, तो analytics.js कुकी डोमेन को .example.co.uk पर सेट कर देगा. इसके अलावा, अगर analytics.js को पता चलता है कि आप स्थानीय तौर पर कोई सर्वर चला रहे हैं (उदाहरण के लिए, localhost), तो यह cookieDomain को अपने-आप 'none' पर सेट कर देता है.

Google Analytics को जब भी हिट भेजा जाता है, तब कुकी की समयसीमा खत्म होने के समय को अपडेट किया जाता है. इसके लिए, कुकी की समयसीमा खत्म होने के समय को मौजूदा समय और cookieExpires फ़ील्ड की वैल्यू में अपडेट किया जाता है. इसका मतलब है कि अगर दो साल के लिए डिफ़ॉल्ट cookieExpires समय इस्तेमाल किया जाता है और कोई उपयोगकर्ता हर महीने आपकी साइट पर आता है, तो उसकी कुकी कभी खत्म नहीं होगी.

अगर cookieExpires के समय को 0 (शून्य) सेकंड पर सेट किया जाता है, तो कुकी सेशन पर आधारित कुकी में बदल जाती है और मौजूदा ब्राउज़र सेशन खत्म होने पर खत्म हो जाती है:

जब cookieUpdate को true (डिफ़ॉल्ट वैल्यू) पर सेट किया जाता है, तो analytics.js हर पेज के लोड होने पर कुकी अपडेट करेगा. इससे कुकी के खत्म होने की अवधि, साइट पर सबसे हाल की विज़िट के हिसाब से अपडेट हो जाएगी. उदाहरण के लिए, अगर कुकी खत्म होने की अवधि एक हफ़्ते के लिए सेट है और कोई उपयोगकर्ता एक ही ब्राउज़र का इस्तेमाल करके हर पांच दिन में वेबसाइट पर आता है, तो कुकी की समयसीमा खत्म होने की तारीख को हर विज़िट पर अपडेट किया जाएगा. इस तरह, यह कभी खत्म नहीं होगी.

false पर सेट होने पर, हर बार पेज लोड होने पर कुकी अपडेट नहीं की जाती हैं. कुकी के खत्म होने का असर, उपयोगकर्ता के पहली बार साइट पर आने की जानकारी पर होता है.

सेट होने पर कुकी में ज़्यादा फ़्लैग जोड़ता है. फ़्लैग को अलग करने के लिए, सेमीकोलन का इस्तेमाल करें.

आपको कुकी analytics.js सेट को सीधे ऐक्सेस नहीं करना चाहिए, क्योंकि आने वाले समय में कुकी फ़ॉर्मैट बदल सकता है. इसके बजाय, डेवलपर को analytics.js लोड होने तक इंतज़ार करने के लिए readyCallback का इस्तेमाल करना चाहिए. इसके बाद, clientId वैल्यू को ट्रैकर पर सेव करना चाहिए.

ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

कुकी अक्षम करना

कुछ मामलों में हो सकता है कि आप कुकी का इस्तेमाल किए बिना, सभी सेशन में Client-ID को बनाए रखने के लिए, अपने स्टोरेज तरीके (जैसे कि localStorage या सर्विस वर्कर) का इस्तेमाल करना चाहें. storage फ़ील्ड को 'none' पर सेट करके, analytics.js को कुकी सेट करने से रोका जा सकता है.

ga('create', 'UA-XXXXX-Y', {
  'storage': 'none'
});

अगर clientId फ़ील्ड को खुद सेव किया जा रहा है, तो ट्रैकर बनाते समय आपको यह पक्का करना होगा कि cliendId फ़ील्ड को सेट किया गया हो.

ga('create', 'UA-XXXXX-Y', {
  'storage': 'none',
  'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3'
});

_gac_<property-id> कुकी को बंद करने के लिए, create कमांड में storeGac फ़ील्ड को false पर सेट करें:

ga('create', 'UA-XXXXX-Y', {
  storeGac: false,
});

क्लाइंट आईडी को सेव करने के लिए localStorage का इस्तेमाल करना

नीचे दिए गए कोड सैंपल से पता चलता है कि कुकी के बजाय Client-ID को स्टोर करने के लिए, localStorage का इस्तेमाल करने के लिए, JavaScript टैग में कैसे बदलाव किया जा सकता है:

var GA_LOCAL_STORAGE_KEY = 'ga:clientId';

if (window.localStorage) {
  ga('create', 'UA-XXXXX-Y', {
    'storage': 'none',
    'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
  });
  ga(function(tracker) {
    localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
  });
}
else {
  ga('create', 'UA-XXXXX-Y', 'auto');
}

ga('send', 'pageview');

यूज़र आईडी

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

analytics.js के साथ यूज़र आईडी को लागू करने के लिए:

  1. साइन इन किए हुए हर उपयोगकर्ता को दिखाने के लिए, अपना यूनीक, स्थायी, और व्यक्तिगत पहचान ज़ाहिर न करने वाला स्ट्रिंग आईडी दें. आम तौर पर, यह आईडी पुष्टि करने वाले किसी सिस्टम से मिलता है.
  2. ट्रैकर पर यूज़र आईडी सेट करना:
ga('create', 'UA-XXXXX-Y', 'auto', {
  userId: USER_ID
});
ga('send', 'pageview');

पेजलोड के बाद पुष्टि की प्रोसेस मैनेज करना

सिंगल पेज ऐप्लिकेशन या दूसरी डाइनैमिक वेबसाइटें, जो शुरुआती पेज लोड होने के बाद उपयोगकर्ता के साइन इन को मैनेज करती हैं, उनमें ट्रैकर पर User-ID की वैल्यू सेट करने की प्रोसेस के समय, ऐसा नहीं हो सकता.

ऐसे मामलों में, set कमांड का इस्तेमाल करके, ट्रैकर की वैल्यू का पता चलते ही उस पर वैल्यू सेट की जा सकती है.

// Creates the tracker and sends a pageview as normal
// since the `userId` value is not yet known.
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

// At a later time, once the `userId` value is known,
// sets the value on the tracker.
ga('set', 'userId', USER_ID);

// Setting the userId doesn't send data to Google Analytics.
// You must also use a pageview or event to send the data.
ga('send', 'event', 'authentication', 'user-id available');

इस तरीके का इस्तेमाल करते समय, userId फ़ील्ड सेट होने से पहले भेजे गए हिट में User-ID की वैल्यू नहीं होंगी. हालांकि, सेशन यूनिफ़िकेशन नाम की प्रोसेस से, Google Analytics इन हिट को प्रोसेसिंग के समय सही उपयोगकर्ता से जोड़ सकता है.