इस प्रोजेक्ट के बारे में

Tracker SDK एक न्यूनतम आकार का वेब एनालिटिक्स पुस्तकालय है जो आधुनिक वेब एप्लिकेशन में तेज़ी से एकीकरण के लिए डिज़ाइन किया गया है, विशेष रूप से Vibe Coding जैसे AI-सहायक उपकरणों द्वारा उत्पन्न उनमें। यह सरलता पर केंद्रित है: एकल `init` कॉल एकत्रकर्ता एंडपॉइंट को कॉन्फ़िगर करती है, इसके बाद पेजव्यू स्वचालित रूप से रिकॉर्ड होते हैं और कस्टम ईवेंट `track(eventName, data)` के साथ भेजे जा सकते हैं। **मुख्य क्षमताएँ** - **शून्य-कॉन्फ़िगर शुरुआत** – एक स्क्रिप्ट टैग या npm आयात जोड़ना डेटा एकत्र करना शुरू करने के लिए पर्याप्त है। - **स्वचालित पेजव्यू संकेतन** – SDK नेविगेशन ईवेंट को सुनता है और अतिरिक्त कोड के बिना `pageview` पेलोड भेजता है। - **कस्टम ईवेंट ट्रैकिंग** – विकासकर्ता नाम और वैकल्पिक पेलोड के साथ `track` को कॉल करके किसी भी इंटरैक्शन को लॉग कर सकते हैं। - **डिवाइस फिंगरप्रिंटिंग** – एक कैनवास-आधारित फिंगरप्रिंट गोपनीयता का सम्मान करते हुए दृश्टिकों को अद्वितीय रूप से पहचानता है। - **ऑफ़लाइन क्यू** – भेजने में विफल ईवेंट स्थानीय स्टोरेज में संग्रहीत होते हैं और बाद में पुनः प्रयास किए जाते हैं, जिससे डेटा हानि न्यूनतम होती है। - **सत्र प्रबंधन** – सत्र स्वचालित रूप से बनाए जाते हैं और एक कॉन्फ़िगर करने योग्य टाइमआउट के बाद समाप्त हो जाते हैं (डिफ़ॉल्ट 30 मिनट)। - **कॉन्फ़िगर करने योग्य बैचिंग** – नेटवर्क ओवरहेड कम करने के लिए ईवेंट को एक ही अनुरोध में समूहीकृत किया जाता है। **स्थापना** - **CDN** – HTML में UMD बंडल सीधे शामिल करें और `WFTK.init({ endpoint: 'https://your-api.com/api/v1/collect/event', debug: true })` कॉल करें। - **npm** – `npm install @weavefox/tracker` फिर फ़ंक्शंस आयात करें: `import { init, track, setUserId } from '@weavefox/tracker';`। **सार्वजनिक API** | विधि | उद्देश्य | |--------|---------| | `init(config)` | एंडपॉइंट, appId और वैकल्पिक झंडों के साथ SDK को प्रारंभ करें। | | `track(eventName, data)` | कस्टम ईवेंट भेजें। | | `trackPageview(data)` | मैन्युअल रूप से पेज व्यू रिकॉर्ड करें (डिफ़ॉल्ट रूप से स्वचालित सक्षम)। | | `setUserId(userId)` | किसी लॉग्ड-इन उपयोगकर्ता को बाद के ईवेंट से जोड़ें। | | `getFingerprint()` | उत्पन्न डिवाइस फिंगरप्रिंट प्राप्त करें। | | `flush()` | तुरंत किसी भी क्यूओं ईवेंट को डिस्पैच करें। | **कॉन्फ़िगरेशन विकल्प** ```javascript WFTK.init({ endpoint: 'required', // एकत्रकर्ता सेवा का URL appId: 'optional', // एप्लिकेशन के लिए पहचानकर्ता autoPageview: true, // पेज व्यू स्वचालित ट्रैक करें debug: false, // कंसोल डिबगिंग सक्षम करें enableQueue: true, // नेटवर्क विफल होने पर ईवेंट संग्रहीत करें sessionTimeout: 1800000, // सत्र आइडल टाइमआउट मिलीसेकंड में (डिफ़ॉल्ट 30 मिनट) maxEventsPerSession: 1000 // प्रति सत्र ईवेंट के लिए ऊपरी सीमा }); ``` **पेलोड प्रारूप** – प्रत्येक अनुरोध में एक वैकल्पिक `appId` और एक `events` सरणी के साथ JSON बॉडी होती है। प्रत्येक ईवेंट में एक अनिवार्य `event` नाम, `timestamp`, `nonce` (समानुपातन के लिए), `fingerprint`, और सिस्टम-एकत्रित संदर्भ (URL, शीर्षक, डिवाइस जानकारी आदि) वाला `data` ऑब्जेक्ट शामिल होता है। उपयोगकर्ता-परिभाषित फ़ील्ड `biz` सब-ऑब्जेक्ट में होते हैं, जिससे एनालिटिक्स और व्यापार डेटा अलग रहते हैं। **सर्वर-साइड विचार** - **टाइमस्टैम्प सत्यापन** – रीप्ले हमलों से बचने के लिए 5 मिनट से पुराने ईवेंट अस्वीकार करें। - **Nonce समानुपातन** – IDempotency सुनिश्चित करने के लिए 24-घंटे की TTL के साथ nonces (उदाहरण के लिए, Redis में) संग्रहीत करें। - **रेट लिसिंग** – दुरुपयोग को रोकने के लिए प्रति-IP और प्रति-फिंगरप्रिंट सीमाएं लागू करें। - **एप्लिकेशन पहचान** – पेलोड में स्पष्ट `appId` को प्राथमिकता दें; यदि आवश्यक हो तो रिक्वेस्ट `Referer` होस्ट पर फ़ॉलबैक करें। - **उदाहरण Express हैंडलर** – README एक संक्षिप्त Node.js स्निपेट प्रदान करता है जो टाइमस्टैम्प को सत्यापित करता है, nonces की जांच करता है, और ईवेंट को स्थायी रूप से सहेजता है। **लाइसेंस** – MIT लाइसेंस के तहत वितरित, जिससे खुले-स्रोत और व्यावसायिक दोनों परियोजनाओं में बिना किसी सीमा के उपयोग की अनुमति है। सामान्य तौर पर, Tracker SDK उन विकासकर्ताओं के लिए एक सीधा, गोपनीयता-जागरूक समाधान प्रदान करता है जिनको भारी प्लेटफ़ॉर्म के ओवरहेड के बिना भरोसेमंद क्लाइंट-साइड एनालिटिक्स की आवश्यकता होती है।