कॉन्टेंट पर जाएँ
31 जुलाई 2026 · हैंडबुक

मैनुअल: ब्राउज़र एक्सटेंशन बनाना

यह लेख प्रकाशन के समय प्रोडक्ट का वर्णन करता है। मौजूदा क्षमताओं के लिए AI Builder और Agent Teams देखें।

मैनुअल: ब्राउज़र एक्सटेंशन बनाना

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

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

  • क्लिक-टू-एक्ट सबसे सस्ता है: एक पॉपअप जो टूलबार आइकन दबाने पर मौजूदा पेज पर एक बार चलता है — जैसे "इस पेज पर मौजूद हर कीमत को एक लिस्ट में खींच लाओ।"
  • ऑलवेज़-ऑन कंटेंट स्क्रिप्ट आपके बताए गए URL पैटर्न पर अपने-आप चलती है — किसी डोमेन के अंतर्गत हर पेज पर किसी प्रतिस्पर्धी के नाम को हाइलाइट करने जैसे काम के लिए अच्छी, लेकिन पैटर्न स्पष्ट रूप से बताना पड़ता है, क्योंकि "हमारी इंटरनल साइटों पर" को आपकी सोच से कहीं संकरा समझ लिया जाता है।
  • आपका मामला तीसरा है: एक बैकग्राउंड वॉचर, ऐसी स्टेट जो टैब खुला हो या न हो, बनी रहती है, MV3 के तहत एक सर्विस वर्कर पर चलती है, और कुछ बदलने पर आइकन को बैज करती है।

यही वह एक आकार है जिसमें बिल्डर को आपसे फॉलो-अप सवाल पूछकर आपत्ति जतानी चाहिए, और यह करेगा भी — क्योंकि पोलिंग नंबर एक वाकई ट्रेड-ऑफ़ है, महज़ औपचारिकता नहीं।

जो मुझे फिर से आपकी "हर मिनट" वाली सोच पर लाता है। मैंने कुछ समय पहले लगभग आपके जैसा ही बिल्ड मांगा था — किसी पेज को देखते रहना, कीमत बदलने पर आइकन बैज करना — और पहले पास में हर 60 सेकंड में पोलिंग होती थी। लोकल पर टेस्ट कर रहे एक व्यक्ति के लिए ठीक-ठाक काम किया। इसे इतने लोगों से गुणा करें जितने वाकई इसे इंस्टॉल करते हैं और आप बिना किसी वजह के किसी के प्रोडक्ट पेज पर हथौड़ा चला रहे होंगे, क्योंकि किसी सामान्य रिटेल लिस्टिंग की कीमतें दिन में कुछ ही बार बदलती हैं। बिल्डर को प्रॉम्प्ट में "हर 30 मिनट में चेक करो" बताएं। यह कोई समझौता नहीं है, यह ज़्यादा ईमानदार मांग है — किसी को भी ब्राउज़र एक्सटेंशन से मिनट-से-कम के अलर्ट की ज़रूरत नहीं होती, और बाद में आप खुद को शुक्रिया कहेंगे जब आपको किसी रिव्यूअर को यह समझाना नहीं पड़ेगा कि आपका एक्सटेंशन दिन में 1,440 बार घर फ़ोन क्यों करता है।

वे हिस्से जिनके बारे में आपको सोचने की ज़रूरत नहीं

आपने मेनिफेस्ट को लेकर घबराहट का ज़िक्र किया था — घबराएं नहीं, यह असल में वह एक चीज़ है जिसे आपको छूने की ज़रूरत नहीं है। दोनों स्टोर अब Manifest V3 की मांग करते हैं — MV2 को नई लिस्टिंग के लिए स्वीकार करना बंद कर दिया गया है, और Chrome सक्रिय रूप से अभी भी लाइव MV2 एक्सटेंशन्स को हटा रहा है। MV3 के तहत मुख्य बदलाव यह है कि आपका बैकग्राउंड लॉजिक एक स्थायी बैकग्राउंड पेज के बजाय सर्विस वर्कर के रूप में चलता है — यह किसी इवेंट पर शुरू होता है, ब्राउज़र इवेंट्स के बीच इसे बंद कर सकता है, और स्टेट को इसके ज़रिए गुज़रना पड़ता है chrome.storage बजाय इसके कि वह सिर्फ किसी वेरिएबल में रहे। यह बिल्कुल वैसी ही लाइफसाइकल डिटेल है जिसे बिल्डर डिफ़ॉल्ट रूप से सही लिखता है। आपको मेनिफेस्ट फाइल तब तक कभी नहीं दिखेगी जब तक आप खुद ढूंढने न जाएं।

जिस चीज़ पर आपको असल में ध्यान देना चाहिए वह हैं परमिशन्स, क्योंकि यही तय करती हैं कि आपका रिव्यू कितनी तेज़ी से होगा, न कि कोड। आपके वॉचर को चाहिए alarms पोलिंग के लिए और शायद storage आखिरी प्राइस याद रखने के लिए — इसे इसकी ज़रूरत नहीं है tabs या <all_urls>, और अगर आप "भविष्य में किसी भी साइट पर काम करने की क्षमता" इसलिए मांगते हैं क्योंकि आप इसे बाद में बढ़ा सकते हैं, तो बिल्डर उसी हिसाब से बनाएगा और आप एक ऐसे फीचर के लिए व्यापक होस्ट एक्सेस मांग रहे होंगे जो अभी है ही नहीं। यही इंस्टॉल डायलॉग की सबसे डरावनी लाइन है — "आपके द्वारा विज़िट की गई हर साइट पर डेटा पढ़ें और बदलें" — और यही वह चीज़ भी है जो ऑटोमेटेड रिव्यू को मैनुअल रिव्यू में बदल देती है। यह बताएं कि यह आज क्या करता है। ज़रूरत पड़ने पर बाद में इसे विस्तृत करें।

इसे पूरा घोषित करने से पहले दो और चीज़ों पर तीस सेकंड का ध्यान देने लायक है: पॉपअप UI और आइकन।

  • पॉपअप UI — एक डिफ़ॉल्ट ऑप्शंस पेज, नंगे चेकबॉक्स, कोई पदानुक्रम नहीं, यह एक ऐसे वन-स्टार रिव्यू का असली कारण है जिसका एक्सटेंशन के काम करने या न करने से कोई लेना-देना नहीं होता। आपके पास बस कुछ ही सेटिंग्स हैं (URL, शायद इंटरवल), लेकिन इसे फिर भी एक प्रॉडक्ट जैसा दिखना चाहिए, फ़ॉर्म डंप जैसा नहीं।
  • आइकन — आइकन को Chrome के सभी चार साइज़ (16, 32, 48, 128px, Firefox के लिए थोड़े अलग मैट्रिक्स के साथ) में चेक करवाएं, क्योंकि जो लोगो 128 पर क्रिस्प दिखता है वह 16 पर धब्बा बन जाता है, और यही वह जगह है जहां यह ज़्यादातर समय भरे-पूरे टूलबार में रहता है।

किसी भी स्टोर को छूने से पहले

इसे असल में टेस्ट करें, सिर्फ चैट प्रीव्यू में नहीं। बिल्ड से आपको जो मिलता है वह एक वास्तविक लोड करने योग्य एक्सटेंशन है, तो जाएं chrome://extensions, डेवलपर मोड ऑन करें, "लोड अनपैक्ड," और इसे उस असली प्रोडक्ट पेज पर चलाएं जिसकी आपको परवाह है — किसी सिम्युलेटेड वर्जन पर नहीं। मैं खासतौर पर दो चीज़ें हाथ से चेक करूंगा: क्या इंस्टॉल परमिशन प्रॉम्प्ट वही कहता है जो आपने जो मांगा उसके हिसाब से आप उम्मीद करते हैं, और अगर कंटेंट स्क्रिप्ट कभी किसी ऐसे पेज पर पहुंच जाए जिसके लिए वह नहीं बनाई गई थी तो क्या होता है — क्या यह चुपचाप फेल होती है या कोई दिखने वाली त्रुटि देती है? दोनों में एक मिनट से कम समय लगता है और दोनों ऐसे बग हैं जो देखते ही स्पष्ट हो जाते हैं और अगर आप न देखें तो अदृश्य रहते हैं।

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

स्टोरसबमिशन प्रक्रिया
Chromeलिस्टिंग को ऑटोफ़िल करता है — टाइटल, विवरण, कैटेगरी, और वह परमिशन जस्टिफिकेशन टेक्स्ट जिसे रिव्यू वाकई पढ़ता है, जो अलग से टाइप करने के बजाय कोड जो करता है उससे जनरेट होता है, और यह मायने रखता है क्योंकि बेमेल जस्टिफिकेशन खुद ही एक आम रिजेक्शन कारण है।
Firefoxलगभग हैंड्स-ऑफ़; Mozilla का पाइपलाइन हल्का है और सबमिशन बस पास हो जाता है।

आपका बिल्ड खत्म होने के बाद जनरेट होने वाली लिस्टिंग किट आपके एक्सटेंशन के वाकई चलते हुए (मॉकअप नहीं) लिए गए स्क्रीनशॉट, लिस्टिंग कॉपी, और असली कोड के मुकाबले जांचे गए प्राइवेसी-प्रैक्टिस जवाब भी बनाएगी, न कि याददाश्त से भरे गए। यह आखिरी हिस्सा उतना सुनने में जितना लगता है उससे कहीं ज़्यादा मायने रखता है किसी ऐसी चीज़ के लिए जो किसी बाहरी पेज से बात करती है: Chrome का प्राइवेसी प्रश्नावली डेटा हैंडलिंग के बारे में सीधे हां/नहीं सवाल पूछता है, और "क्या यह डेटा इकट्ठा करता है" के जवाब में "नहीं" कहना जबकि आपका वॉचर कीमतें पोल और स्टोर कर रहा है — यह उस तरह की छोटी बेईमानी है जो लॉन्च के बाद उतार दी जाती है, सिर्फ़ पहले रिजेक्ट नहीं की जाती। जवाबों को कोड जो करता है उससे मिलाकर जांचना यह गैप आपके लिए अपने-आप बंद कर देता है।

खासतौर पर आपकी लॉन्च तारीख़ पर:
स्टोरसामान्य रिव्यू समय
Firefoxघंटे, कभी-कभी एक घंटे से भी कम
Chromeकुछ दिन, कभी-कभी बुरे हफ़्ते में लगभग दो के करीब

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

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

हैंडबुक
शेयर करेंXLinkedInFacebookRedditQuoraव्हाट्सऐपटेलीग्रामईमेल
← सभी पोस्ट