एनालिटिक्स ट्रैकिंग: प्राइवेसी-फर्स्ट इवेंट कलेक्शन
यह लेख बताता है कि हम प्राइवेसी का सम्मान करते हुए और बॉट ट्रैफिक से बचते हुए यूजर व्यवहार को कैसे ट्रैक करते हैं।
समस्या: यूजर व्यवहार को समझना
हमें जानना आवश्यक है:
-
यूजर कौन से पेज देखते हैं
-
वे कौन से प्रोडक्ट देखते हैं
-
ट्रैफिक कहाँ से आता है (Google Ads, ऑर्गेनिक, सोशल)
-
कौन से कैंपेन कन्वर्ज़न लाते हैं
लेकिन हमें इनसे बचना चाहिए:
-
बॉट्स और क्रॉलर्स को ट्रैक करना
-
व्यक्तिगत रूप से पहचान योग्य जानकारी (PII) स्टोर करना
-
प्राइवेसी नियमों का उल्लंघन करना
समाधान: क्लाइंट-साइड + सर्वर-साइड ट्रैकिंग
क्लाइंट-साइड: जावास्क्रिप्ट ट्रैकिंग
विज़िटर आईडी: कुकी में स्टोर रैंडम आईडी (365 दिन)
सेशन आईडी: sessionStorage में स्टोर रैंडम आईडी (ब्राउज़र बंद होने तक)
कैंपेन पैरामीटर: URL से निकाले जाते हैं और sessionStorage में स्टोर किए जाते हैं
ट्रैक किए गए पैरामीटर:
-
gclid- Google क्लिक आईडी (Search ads) -
gbraid- Google Ads क्लिक आईडी (Shopping ads) -
wbraid- Google Ads क्लिक आईडी (iOS) -
fbclid- Facebook क्लिक आईडी -
srsltid- Google ऑर्गेनिक सर्च रिजल्ट आईडी -
utm_source,utm_medium,utm_campaign,utm_term,utm_content
स्टोरेज: व्हाट्सएप/फोन क्लिक एट्रिब्यूशन के लिए पैरामीटर कुकीज़ में स्टोर (30 मिनट)
सर्वर-साइड: एनरिचमेंट
सर्वर इवेंट्स को इनसे समृद्ध करता है:
जियोआईपी डेटा: IP एड्रेस से देश, क्षेत्र, शहर
यूजर-एजेंट पार्सिंग: ब्राउज़र, OS, डिवाइस प्रकार
टाइमस्टैम्प: सर्वर समय (UTC)
बॉट डिटेक्शन: ज्ञात बॉट यूजर-एजेंट फ़िल्टर करता है
इवेंट प्रकार
पेज व्यू: यूजर एक पेज देखता है
प्रोडक्ट व्यू: यूजर प्रोडक्ट पेज देखता है
कार्ट में जोड़ें: यूजर प्रोडक्ट को कार्ट में जोड़ता है
चेकआउट: यूजर चेकआउट शुरू करता है
खरीदारी: यूजर खरीदारी पूरी करता है
व्हाट्सएप क्लिक: यूजर व्हाट्सएप बटन पर क्लिक करता है
फोन क्लिक: यूजर फोन नंबर पर क्लिक करता है
डेटा फ्लो
sequenceDiagram
participant User
participant JS as JavaScript
participant API as /api/analytics
participant Firehose as Kinesis Firehose
participant S3
User->>JS: Visit page
JS->>JS: Extract URL params
(gclid, utm_*, etc.)
JS->>JS: Store in sessionStorage
JS->>API: POST event + params
API->>API: Enrich with GeoIP
API->>API: Parse User-Agent
API->>API: Filter bots
API->>Firehose: Send enriched event
Firehose->>S3: Store in analytics bucketबॉट डिटेक्शन
हम कई सिग्नल का उपयोग करके बॉट ट्रैफ़िक को फ़िल्टर करते हैं:
यूजर-एजेंट पैटर्न: ज्ञात बॉट स्ट्रिंग्स (Googlebot, Bingbot, आदि)
व्यवहार पैटर्न: बहुत तेज़, बहुत सारे रिक्वेस्ट
जावास्क्रिप्ट गायब: बॉट्स अक्सर JS नहीं चलाते
एक्सक्लूज़न कुकी: tv_exclude=true सभी ट्रैकिंग रोक देता है
प्राइवेसी सुरक्षा
कोई PII नहीं: हम कभी भी नाम, ईमेल, फोन नंबर स्टोर नहीं करते
अनामित IPs: स्टोरेज से पहले आखिरी ऑक्टेट हटा दिया जाता है
क्रॉस-साइट ट्रैकिंग नहीं: कुकीज़ केवल फर्स्ट-पार्टी हैं
ऑप्ट-आउट: यूजर एक्सक्लूज़न कुकी सेट कर सकते हैं
डेटा रिटेंशन: इवेंट्स 90 दिनों के बाद हटा दिए जाते हैं
कंडीशनल पिक्सल लोडिंग
हम ट्रैकिंग पिक्सल केवल तभी लोड करते हैं जब प्रासंगिक हो:
Google Ads पिक्सल: केवल अगर gclid, gbraid, या wbraid मौजूद हो
LinkedIn पिक्सल: केवल अगर msclkid मौजूद हो
Facebook पिक्सल: केवल अगर fbclid मौजूद हो
लाभ: तेज़ पेज लोड, कम ट्रैकिंग ओवरहेड
ट्रैफिक सोर्स डिटेक्शन
हम URL पैरामीटर से ट्रैफिक सोर्स का पता लगाते हैं:
Google Ads: gclid, gbraid, wbraid → utm_source=google_ads
Google ऑर्गेनिक: srsltid → utm_source=google_search
Facebook: fbclid → utm_source=facebook
LinkedIn: msclkid → utm_source=linkedin
डायरेक्ट: कोई पैरामीटर नहीं → utm_source=direct
कन्वर्ज़न ट्रैकिंग
हम फनेल के माध्यम से कन्वर्ज़न ट्रैक करते हैं:
प्रोडक्ट व्यू → कार्ट में जोड़ें → चेकआउट → खरीदारी
प्रत्येक चरण शामिल करता है:
-
विज़िटर आईडी (एट्रिब्यूशन के लिए)
-
सेशन आईडी (सेशन विश्लेषण के लिए)
-
कैंपेन पैरामीटर (ROI गणना के लिए)
-
प्रोडक्ट SKU (प्रोडक्ट विश्लेषण के लिए)
लीड टच ट्रैकिंग
जब यूजर हमसे संपर्क करते हैं (व्हाट्सएप, फोन, ईमेल), हम कैप्चर करते हैं:
संपर्क विधि: व्हाट्सएप, फोन, ईमेल
कैंपेन पैरामीटर: कुकीज़ से (30-मिनट की विंडो)
प्रोडक्ट संदर्भ: वे किस प्रोडक्ट पेज पर थे
लाभ: ऑफ़लाइन कन्वर्ज़न को ऑनलाइन कैंपेन से जोड़ना
रेट लिमिटिंग
एनालिटिक्स एंडपॉइंट रेट-लिमिटेड है:
लिमिट: प्रति IP प्रति 10 मिनट में 100 रिक्वेस्ट
लाभ: दुरुपयोग और बॉट फ्लड को रोकता है
स्टोरेज
इवेंट्स Kinesis Firehose के माध्यम से S3 में स्टोर किए जाते हैं:
फॉर्मेट: JSON लाइन्स (प्रति लाइन एक इवेंट)
पार्टीशनिंग: तारीख के अनुसार (वर्ष/महीना/दिन/घंटा)
कम्प्रेशन: Gzip
रिटेंशन: 90 दिन
क्वेरीइंग
इवेंट्स AWS Athena के माध्यम से क्वेरी किए जाते हैं:
स्कीमा: Glue Data Catalog में परिभाषित
क्वेरीज़: S3 डेटा पर SQL
उपयोग के मामले: कैंपेन ROI, प्रोडक्ट लोकप्रियता, ट्रैफिक स्रोत
संदर्भ
तकनीकी अवधारणाएँ
-
वेब एनालिटिक्स - विकिपीडिया
-
प्राइवेसी बाय डिज़ाइन - विकिपीडिया
AWS सेवाएँ
-
Kinesis Firehose - AWS डॉक्यूमेंटेशन
-
Athena - AWS डॉक्यूमेंटेशन
संबंधित लेख
- मल्टी-सर्वर आर्किटेक्चर - जहां एनालिटिक्स चलता है
सारांश
हमारी एनालिटिक्स प्रणाली प्राइवेसी का सम्मान करते हुए यूजर व्यवहार को ट्रैक करती है:
क्लाइंट-साइड:
-
✅ URL से कैंपेन पैरामीटर निकालें
-
✅ sessionStorage में स्टोर करें (सेशन-स्कोप्ड)
-
✅ कुकीज़ में स्टोर करें (एट्रिब्यूशन के लिए 30 मिनट)
-
✅ API को इवेंट्स भेजें
सर्वर-साइड:
-
✅ जियोआईपी और यूजर-एजेंट से समृद्ध करें
-
✅ बॉट ट्रैफ़िक फ़िल्टर करें
-
✅ Kinesis Firehose को भेजें
-
✅ S3 में स्टोर करें (तारीख के अनुसार पार्टीशन किया गया)
प्राइवेसी:
-
✅ कोई PII स्टोर नहीं
-
✅ अनामित IPs
-
✅ केवल फर्स्ट-पार्टी कुकीज़
-
✅ ऑप्ट-आउट उपलब्ध
-
✅ 90-दिन की रिटेंशन
कंडीशनल लोडिंग:
-
✅ Google Ads पिक्सल केवल अगर gclid मौजूद हो
-
✅ LinkedIn पिक्सल केवल अगर msclkid मौजूद हो
-
✅ Facebook पिक्सल केवल अगर fbclid मौजूद हो
यह दृष्टिकोण अंतर्दृष्टि को प्राइवेसी और प्रदर्शन के साथ संतुलित करता है।