ब्लॉग पर वापस जाएँ

मल्टी-अकाउंट डेटा संग्रह में संबद्धता जोखिम के स्रोत और नियंत्रित किए जा सकने वाले कारक

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

ई-कॉमर्स डेटा संग्रह को सामान्यतः दो प्रकारों में बाँटा जा सकता है: ऐसे सार्वजनिक पेजों का संग्रह जिनके लिए लॉगिन की आवश्यकता नहीं होती, और लॉगिन की हुई स्थिति में संग्रह, जैसे प्रतिस्पर्धियों के बैक-ऑफिस डेटा को देखना या निजीकरण के बाद दिखाए जाने वाले परिणाम प्राप्त करना।

पहले प्रकार में आम तौर पर आवृत्ति को नियंत्रित करना पर्याप्त होता है। दूसरे प्रकार में जैसे ही कई अकाउंट शामिल होते हैं, सफलता इस बात पर कम निर्भर करती है कि स्क्रिप्ट कितनी चतुर है और इस बात पर अधिक कि क्या हर अकाउंट स्वतंत्र रूप से मौजूद रह सकता है। यदि यह परत ठीक से न बनाई जाए, तो थ्रॉटलिंग और प्रतिबंध यादृच्छिक लगते हैं; स्क्रिप्ट बदलना, आवृत्ति कम करना या selector बदलना भी सुधार नहीं लाता।

जोखिम कहाँ से आता है

प्लेटफ़ॉर्म कई संकेतों का मिलान करके तय करते हैं कि क्या कई अकाउंट एक ही पक्ष द्वारा चलाए जा रहे हैं: नेटवर्क पते, ब्राउज़र और डिवाइस की विशेषताएँ, Cookie और सेशन डेटा, तथा उपयोग के पैटर्न। इनमें से किसी एक श्रेणी में भी बहुत अधिक समानता होने पर अकाउंट एक ही ऑपरेटर से जुड़े माने जा सकते हैं।

यहाँ एक स्पष्ट सीमा तय करना आवश्यक है। पहचानने की व्यवस्था लगातार बदलती रहती है, इसलिए अस्थायी तरकीबों से उसका मुकाबला करने का लाभ कम समय के लिए होता है और लागत अधिक होती है। इसलिए यहाँ जोखिम नियंत्रणों को दरकिनार करने के तरीके पर चर्चा नहीं की जाती। उपयोगी प्रश्न अलग है: जोखिम के स्रोत स्पष्ट होने के बाद, कौन-से कारक हमारे नियंत्रण में हैं और जिन्हें हम लंबे समय तक स्थिर रख सकते हैं? यही कारक तय करते हैं कि कई वैध अकाउंट एक-दूसरे को प्रभावित करेंगे या नहीं।

डिवाइस और ब्राउज़र की विशेषताएँ

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

नियंत्रित किया जा सकने वाला तरीका है हर अकाउंट को अपना अलग वातावरण देना: एक अकाउंट के लिए एक स्वतंत्र वातावरण, जिसमें fingerprint, Cookies और लोकल स्टोरेज अलग हों। मुख्य बात यह है कि इस वातावरण को उसी अकाउंट के साथ स्थिर रखा जाए, हर बार शुरू होने पर कोई यादृच्छिक नया सेट न बनाया जाए। यादृच्छिक संयोजन अक्सर आपस में असंगत होते हैं: टाइम ज़ोन, भाषा, रिज़ॉल्यूशन और UA एक-दूसरे से मेल न खाएँ तो वे स्थिर कॉन्फ़िगरेशन की तुलना में अधिक असामान्य दिखाई दे सकते हैं।

अंततः स्थिरता यादृच्छिकता से नहीं, निरंतरता से आती है।

नेटवर्क एग्ज़िट

एग्ज़िट को अकाउंट से बाँधना चाहिए: एक वातावरण, एक एग्ज़िट, और एग्ज़िट का क्षेत्र अकाउंट प्रोफ़ाइल, टाइम ज़ोन और भाषा से मेल खाना चाहिए। यदि कई अकाउंट के वातावरण अलग हों लेकिन वे एक ही एग्ज़िट साझा करें, तो पहले किया गया अधिकांश अलगाव प्रभावहीन हो जाता है।

एग्ज़िट भी अपेक्षाकृत स्थिर रहना चाहिए। क्षेत्र बार-बार बदलने से अकाउंट के स्थान का संकेत समझाना कठिन हो जाता है। एग्ज़िट चुनते समय, आवासीय पते आम तौर पर डेटा सेंटर के पतों की तुलना में सामान्य उपयोगकर्ता पहुँच जैसे अधिक दिखाई देते हैं। साथ ही ऐसे पतों से बचना चाहिए जिनका पहले से बहुत अधिक उपयोग हो चुका हो, क्योंकि वे स्वयं अधिक निगरानी में हो सकते हैं।

Cookies और सेशन

सेशन की स्थिति अपने आप में पहचान का एक रिकॉर्ड है। यदि कई अकाउंट वही Cookies या लोकल स्टोरेज साझा करते हैं, तो उनके बीच सीधा संबंध बन जाता है, चाहे बाकी वातावरण कितने भी साफ़ तरीके से अलग किए गए हों।

नए वातावरण के सेशन को शुरुआत से ही बहुत अधिक तीव्रता से उपयोग नहीं करना चाहिए। पहले सामान्य ब्राउज़िंग का कुछ इतिहास बनाना बेहतर है, फिर धीरे-धीरे कार्यभार बढ़ाया जाए। यह सिद्धांत डेटा संग्रह से बाहर भी लागू होता है: किसी अकाउंट का उपयोग इतिहास होना या न होना सीधे प्रभावित करता है कि वह कितनी गतिविधि को उचित रूप से संभाल सकता है।

रिक्वेस्ट की गति

रिक्वेस्ट का घनत्व व्यवहार से जुड़ा संकेत है। स्क्रिप्ट में अक्सर एक विशिष्ट नियमितता होती है: निश्चित अंतराल पर पहुँच, पेजों का निश्चित क्रम, और संग्रह के बाहर कोई व्यवहार नहीं। केवल यादृच्छिक संख्याएँ जोड़ने से यह नियमितता हल नहीं होती, क्योंकि मुख्य समस्या कुल मात्रा में होती है।

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

हर अकाउंट के लिए स्थिर वातावरण यादृच्छिक बदलाव से अधिक स्थिर क्यों है

यादृच्छिक बदलाव का उद्देश्य हर बार अलग दिखना होता है, लेकिन संबद्धता जाँच यह देखती है कि विभिन्न आयामों में संकेत स्थिर हैं या नहीं और क्या वे एक-दूसरे का विरोध करते हैं। यदि कोई अकाउंट आज एक स्थान से और कल दूसरे स्थान से निकलता है, तथा हर बार विशेषताओं का संयोजन बदलता है, तो यही असंगति अपने आप में असामान्य संकेत बन जाती है।

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

यह यह भी समझाता है कि संग्रह स्क्रिप्ट को ब्राउज़र instances खुद प्रबंधित क्यों नहीं करने चाहिए। अलग-अलग अकाउंट को समर्पित वातावरण देने के लिए वातावरण स्वतंत्र रूप से schedule किए जा सकने चाहिए; असामान्य वातावरण और निष्क्रिय हो चुके अकाउंट पहचानने के लिए उनकी स्थिति पूछी जा सकनी चाहिए; लंबे समय तक चलने पर zombie instances जमा न हों, इसलिए वातावरण वापस लिया जा सकना चाहिए; और संग्रह कार्य दोबारा चलाते समय अक्सर वातावरण बदलना पड़ता है, जो तभी व्यावहारिक है जब वातावरण स्वतंत्र रूप से schedule किए जा सकें। इस तरह की संरचना में PurpleMark वातावरण-संसाधन परत है। स्क्रिप्ट केवल संग्रह लॉजिक संभालती है, जबकि पहचान और संसाधन वातावरण परत को दिए जाते हैं।

अनुपालन की सीमाएँ

नीचे दिए गए बिंदु ऊपर की किसी भी अनुकूलन रणनीति से अधिक महत्वपूर्ण हैं।

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

इस चर्चा का आधार यह है कि कई वैध अकाउंट स्वतंत्र और बिना आपसी हस्तक्षेप के कैसे चलें, न कि प्लेटफ़ॉर्म के नियमों से कैसे बचा जाए। पहला विषय संचालन संबंधी स्वच्छता है; दूसरा अलग मामला है।