इस प्रोजेक्ट के बारे में
Visitor Analytics SDK वेब एप्लिकेशन के लिए डिज़ाइन की गई एक टाइपस्क्रिप्ट एनालिटिक्स लाइब्रेरी है। यह React, Vue, Svelte, Solid, Astro जैसी किसी भी फ्रंट-एंड फ्रेमवर्क और वैनिલા JavaScript के साथ काम करती है। SDK प्राइवेसी पर जोर देती है: यह व्यक्तिगत रूप से पहचानने योग्य जानकारी कभी नहीं एकत्र करती और सभी डेटा एनोनमाइज्ड होता है।
मुख्य विशेषताएं:
- मुख्य फ्रेमवर्क के लिए समर्पित इंटीग्रेशन पैकेज के साथ फ्रेमवर्क-निर्भर नहीं परिचालन।
- कस्टम कलेक्टर्स, स्टोरेज एडाप्टर्स और प्लगइन्स की अनुमति देने वाला मॉड्यूलर, प्लगइन-आधारित आर्किटेक्चर।
- सख्त TypeScript परिभाषाओं और कोई any टाइप्स के साथ टाइप-सुरक्षित API।
- केवल आवश्यक भागों को बंडल करने वाले ट्री-शेकेबल ESM मॉड्यूल।
- पैसिव लिस्टनर्स, requestIdleCallback, डीबाउंस्ड हैंडलर और बैच किए गए DOM रीड्स का उपयोग करते हुए शून्य रनटाइम निर्भरता और अनुकूलित प्रदर्शन।
- ऑफ़लाइन समर्थन, जब नेटवर्क उपलब्ध हो तो सिंक होने वाली क्यू के साथ, इसके अतिरिक्त एक्सपोनेंशियल बैकऑफ़ रीट्राई और पेज अनलोड के लिए sendBeacon फॉलबैक।
- बैच साइज़, फ्लश अंतराल, रीट्राई सीमाएं, कंप्रेसन, डुप्लिकेट हटाई, सत्र टाइमआउट और कस्टम डेटा फ़ील्ड जैसे कॉन्फ़िगर करने योग्य विकल्प।
SDK एक मुख्य createAnalytics फ़ंक्शन प्रदान करती है जो एक एनालिटिक्स इंस्टेंस लौटाती है। इस इंस्टेंस में स्टार्ट, स्टॉप, फ्लश, सिंक, विफल अपलोड को रीट्राई, कलेक्टर्स जोड़ना या हटाना, प्लगइन्स इंस्टॉल करना, संग्रहीत रिकॉर्ड क्वेरी करना, डेटा निर्यात करना, मैन्युअल रूप से रोड बदलाव ट्रैक करना, इवेंट्स में सब्सक्राइब करना और इंस्टेंस नष्ट करने की विधियां होती हैं।
कलेक्टर ब्राउज़र नाम और संस्करण, डिवाइस OS और प्लेटफ़ॉर्म, स्क्रीन आयाम, प्रदर्शन मेट्रिक्स (नेविगेशन टाइमिंग, पेंट टाइमिंग, LCP, CLS, INP), पर्यावरण विवरण (टाइमज़ोन, भाषा, कलर स्कीम), फ़ीचर समर्थन (WebGL, WebGPU, WASM, Service Worker) और उपयोगकर्ता इंटरैक्शन (सत्र अवधि, स्क्रॉल गहराई, क्लिक गिनती, रोड बदलाव, UTM पैरामीटर) सहित विभिन्न डेटा एकत्र करते हैं। सभी कलेक्टर्स वैकल्पिक हैं और कस्टम कार्यान्वयनों के साथ बढ़ाए जा सकते हैं।
इन-मेमोरी, localStorage और IndexedDB के लिए स्टोरेज एडाप्टर्स प्रदान किए गए हैं, जिसमें Redis जैसे कस्टम बैकएंड प्लग इन करने की क्षमता है। uploader बैच रिकॉर्ड्स को बैच करता है, एक्सपोनेंशियल बैकऑफ़ के साथ रीट्राई को संभालता है, बैच को डुप्लिकेट-मुक्त करता है और जब ब्राउज़र CompressionStream का समर्थन करता है तो पेलोड को कंप्रेस कर सकता है।
इंटीग्रेशन उदाहरण React (AnalyticsProvider, useAnalytics, usePageView), Vue (createAnalyticsPlugin, useVueAnalytics), Svelte (createAnalyticsStore), SolidJS (AnalyticsProvider, createAnalyticsHook), Astro और सादे JavaScript को कवर करते हैं। प्रत्येक इंटीग्रेशन SDK कैसे प्रारंभ करें, एकत्र किए गए डेटा तक पहुंचें और मैन्युअल अपलोड ट्रिगर करें इसका प्रदर्शन करता है।
SDK में एक प्लगइन सिस्टम शामिल है। प्लगइन्स इंस्टॉलेशन के दौरान अतिरिक्त कलेक्टर्स पंजीकृत कर सकते हैं या व्यवहार में modification कर सकते हैं और अनइंस्टॉल पर क्लीनअप कर सकते हैं। एक AB-टेस्ट प्लगइन उदाहरण प्रत्येक रिकॉर्ड में मौजूदा प्रयोग भेदी जोड़ता है।
प्राइवेसी गारंटी स्पष्ट हैं: नाम, ईमेल, पासवर्ड, कुकी सामग्री, फ़ॉर्म इनपुट, सटीक IP पते, GPS निर्देशांक, कीस्ट्रोक, क्लिक निर्देशांक या कोई भी स्थिर फ़िंगरप्रिंट पहचानकर्ता कभी एकत्र नहीं किए जाते हैं। सत्र आईडी प्रत्येक इंस्टेंस के लिए रैंडम UUID हैं जो सत्रों भर में सहेजी नहीं जाती हैं।
ज्ञात सीमाओं में क्रिया-आधारित सत्र टाइमआउट, बहु-टैब परिदृश्य में LocalStorage का उपयोग करते समय गैर-परमाणु लेखन (IndexedDB अनुशंसित है), और COMPRESS/GZIP कंप्रेसन का वैकल्पिक समर्थन शामिल है जिसके लिए हाल के ब्राउज़र समर्थन की आवश्यकता होती है।
प्रदर्शन अनुकूलन में पैसिव इवेंट लिस्टनर्स, भारी कार्य के लिए requestIdleCallback, डीबाउंस्ड स्क्रॉल और रेजिज़ हैंडलिंग, लैजी कलेक्टर इनिशियलाइजेशन, requestAnimationFrame के माध्यम से बैच किए गए DOM रीड्स और अनलोड पर navigator.sendBeacon के उपयोग से विश्वसनीय डिलीवरी शामिल हैं।
SDK को MIT लाइसेंस के तहत जारी किया गया है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.