गाइड

ब्राउज़र प्रॉम्प्ट के बिना "मेरी लोकेशन पता करें" बटन जोड़ें

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

सर्वर साइड से पहचान करना

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

GET /v1/ip
{
  "status": "ok",
  "ip": "198.51.100.23",
  "version": 4,
  "found": true,
  "country": "Italy",
  "country_code": "IT",
  "region": "Lombardy",
  "city": "Milan",
  "postcode": "20121",
  "lat": 45.4642,
  "lon": 9.1900,
  "timezone": "Europe/Rome",
  "asn": 3456,
  "org": "Example ISP"
}

यहाँ दिखाए अनुसार बिना ip पैरामीटर के एंडपॉइंट को कॉल करने पर वह उसी पते को लुकअप करता है जिसने अनुरोध किया, और जब आपका बैकएंड विज़िटर की ओर से इसे कॉल करता है तो यह ठीक विज़िटर का अपना पता होता है।

उम्मीदें सही तरह से तय करना

IP आधारित लोकेशन अधिक से अधिक शहर के स्तर की होती है, GPS जैसी सटीक नहीं। फ़ीचर को ईमानदारी से लेबल करें, जैसे "मेरा अनुमानित क्षेत्र पहचानें", न कि ऐसा कुछ जो बिल्कुल सटीक होने का आभास दे, ताकि जब परिणाम विज़िटर की सटीक गली के बजाय शहर का केंद्र हो तो उसे आश्चर्य न हो।

दूसरा उदाहरण: क्षेत्रीय मूल्य प्रदर्शन

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

यह कहाँ अच्छी तरह फ़िट होता है

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

एक आम गलती जिससे बचना चाहिए

किसी कॉर्पोरेट नेटवर्क या VPN कनेक्शन को ऐसा विशेष त्रुटि मामला न मानें जिसे किसी अन्य लुकअप से अलग तरीके से संभालना पड़े। एंडपॉइंट तब भी परिणाम लौटाएगा, बस वह उस नेटवर्क के पंजीकृत पते पर केंद्रित होगा, जो उस जगह से अलग शहर या अलग देश भी हो सकता है जहाँ विज़िटर वास्तव में बैठा है। सही प्रतिक्रिया वही है जो आप किसी भी IP आधारित अनुमान के लिए देंगे: विज़िटर को इसे बदलने दें, बजाय इसके कि VPN ट्रैफ़िक को पहचानकर खास तौर पर असामान्य चिह्नित करने की कोशिश करें।

सहज तरीके से फ़ॉलबैक करना

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

फ़ीचर की लागत

हर क्लिक एक अनुरोध है। विज़िटर द्वारा कभी-कभार इस्तेमाल किया जाने वाला बटन हर कुंजी के साथ शामिल, या बिना कुंजी के किसी एक पते से उपलब्ध, 2,500 प्रतिदिन मुफ़्त अनुरोधों का बहुत छोटा हिस्सा ही रहता है। IPv4 और IPv6 दोनों विज़िटर एक ही कॉल से रिज़ॉल्व होते हैं, इसलिए किसी भी संस्करण के लिए अलग कोड पाथ की ज़रूरत नहीं है।

अनुमति डायलॉग छोड़ने से सुविधा के बदले सटीकता कम होती है, और बहुत से लोकेशन फ़ीचर के लिए यही सही सौदा है। IPv4 लुकअप दस्तावेज़ में एंडपॉइंट का पूरा रिस्पॉन्स बताया गया है।