Google Play पर फ़िल्टर

जब कोई उपयोगकर्ता Google Play पर डाउनलोड करने के लिए ऐप्लिकेशन खोजता या ब्राउज़ करता है, तो नतीजों को इस आधार पर फ़िल्टर किया जाता है कि वे ऐप्लिकेशन, डिवाइस के साथ काम करते हैं या नहीं. उदाहरण के लिए, अगर किसी ऐप्लिकेशन के लिए कैमरे की ज़रूरत है, तो Google Play उस ऐप्लिकेशन को ऐसे डिवाइसों पर नहीं दिखाएगा जिनमें कैमरा नहीं है. इस फ़िल्टरिंग की मदद से, डेवलपर अपने ऐप्लिकेशन के डिस्ट्रिब्यूशन को मैनेज कर पाते हैं. साथ ही, इससे यह पक्का करने में भी मदद मिलती है कि उपयोगकर्ताओं को सबसे अच्छा अनुभव मिले.

Google Play पर फ़िल्टर करने की सुविधा, ऐप्लिकेशन के कई तरह के मेटाडेटा और कॉन्फ़िगरेशन सेटिंग के आधार पर काम करती है. इनमें मेनिफ़ेस्ट में किए गए एलान, ज़रूरी लाइब्रेरी, आर्किटेक्चर डिपेंडेंसी, और Google Play Console में सेट किए गए डिस्ट्रिब्यूशन कंट्रोल शामिल हैं. जैसे, भौगोलिक टारगेटिंग, कीमत वगैरह.

Google Play पर फ़िल्टर करने की सुविधा, कुछ हद तक Android फ़्रेमवर्क के मेनिफ़ेस्ट एलान और अन्य पहलुओं पर आधारित होती है. हालांकि, फ़िल्टर करने का असल तरीका, फ़्रेमवर्क से अलग होता है और यह किसी खास एपीआई लेवल पर निर्भर नहीं होता. इस दस्तावेज़ में, Google Play के फ़िल्टर करने के मौजूदा नियमों के बारे में बताया गया है.

Google Play पर फ़िल्टर कैसे काम करते हैं

Google Play, यहां बताई गई फ़िल्टर से जुड़ी पाबंदियों का इस्तेमाल करके यह तय करता है कि Google Play ऐप्लिकेशन से ऐप्लिकेशन ब्राउज़ करने या खोजने वाले उपयोगकर्ता को आपका ऐप्लिकेशन दिखाना है या नहीं.

आपके ऐप्लिकेशन को दिखाना है या नहीं, यह तय करते समय Google Play, डिवाइस के हार्डवेयर और सॉफ़्टवेयर की ज़रूरी शर्तों के साथ-साथ, मोबाइल और इंटरनेट सेवा देने वाली कंपनी, जगह, और अन्य विशेषताओं की जांच करता है. इसके बाद, यह उन पाबंदियों और डिपेंडेंसी की तुलना करता है जो ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल और पब्लिश करने की जानकारी में बताई गई हैं.

अगर फ़िल्टर के नियमों के मुताबिक, ऐप्लिकेशन डिवाइस के साथ काम करता है, तो Google Play उसे उपयोगकर्ता को दिखाता है. ऐसा न करने पर, Google Play आपके ऐप्लिकेशन को खोज के नतीजों और कैटगरी ब्राउज़िंग से छिपा देता है. भले ही, कोई उपयोगकर्ता सीधे Google Play में ऐप्लिकेशन के आईडी पर ले जाने वाले डीप लिंक पर क्लिक करके, ऐप्लिकेशन का खास तौर पर अनुरोध करता हो.

अपने ऐप्लिकेशन के लिए, उपलब्ध फ़िल्टर के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है. उदाहरण के लिए, ऐप्लिकेशन में minSdkVersion"4" की ज़रूरत और smallScreens="false" को सेट किया जा सकता है. इसके बाद, Google Play पर ऐप्लिकेशन अपलोड करते समय, सिर्फ़ यूरोप के देशों (कैरियर) को टारगेट किया जा सकता है. इसलिए, Google Play के फ़िल्टर, ऐप्लिकेशन को ऐसे किसी भी डिवाइस पर उपलब्ध होने से रोक देंगे जो इन तीनों ज़रूरी शर्तों को पूरा नहीं करता.

फ़िल्टर करने से जुड़ी सभी पाबंदियां, ऐप्लिकेशन के वर्शन से जुड़ी होती हैं. साथ ही, ये वर्शन के हिसाब से बदल सकती हैं. उदाहरण के लिए, अगर किसी उपयोगकर्ता ने आपका ऐप्लिकेशन इंस्टॉल किया है और आपने ऐसा अपडेट पब्लिश किया है जिससे उपयोगकर्ता को ऐप्लिकेशन नहीं दिखता है, तो उपयोगकर्ता को यह नहीं दिखेगा कि कोई अपडेट उपलब्ध है.

Google Play की वेबसाइट पर फ़िल्टर करना

जब उपयोगकर्ता Google Play की वेब साइट ब्राउज़ करते हैं, तो उन्हें पब्लिश किए गए सभी ऐप्लिकेशन दिखते हैं. हालांकि, Google Play की वेबसाइट, ऐप्लिकेशन के साथ काम करने के लिए, उपयोगकर्ता के रजिस्टर किए गए हर डिवाइस की ज़रूरी शर्तों की तुलना करती है. साथ ही, उपयोगकर्ता को ऐप्लिकेशन इंस्टॉल करने की अनुमति सिर्फ़ तब देती है, जब वह उनके डिवाइस के साथ काम करता हो.

ऐप्लिकेशन मेनिफ़ेस्ट के आधार पर फ़िल्टर करना

ज़्यादातर फ़िल्टर, ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल, AndroidManifest.xml में मौजूद एलिमेंट से ट्रिगर होते हैं. हालांकि, मेनिफ़ेस्ट फ़ाइल में मौजूद हर चीज़ से फ़िल्टरिंग ट्रिगर नहीं हो सकती. टेबल 1 में ऐसे मेनिफ़ेस्ट एलिमेंट की सूची दी गई है जिनका इस्तेमाल, फ़िल्टर करने की सुविधा को ट्रिगर करने के लिए किया जाना चाहिए. साथ ही, इसमें यह भी बताया गया है कि हर एलिमेंट के लिए फ़िल्टर करने की सुविधा कैसे काम करती है.

टेबल 1. ऐसे मेनिफ़ेस्ट एलिमेंट जो Google Play पर फ़िल्टर करने की सुविधा को ट्रिगर करते हैं.

मेनिफ़ेस्ट एलिमेंट फ़िल्टर का नाम यह सुविधा कैसे काम करती है
<supports-screens> स्क्रीन का आकार

कोई ऐप्लिकेशन, <supports-screens> एलिमेंट के एट्रिब्यूट सेट करके, उन स्क्रीन साइज़ के बारे में बताता है जिन पर वह काम करता है. ऐप्लिकेशन पब्लिश होने के बाद, Google Play उन एट्रिब्यूट का इस्तेमाल करके यह तय करता है कि उपयोगकर्ताओं को ऐप्लिकेशन दिखाना है या नहीं. यह तय करने के लिए, डिवाइस की स्क्रीन के साइज़ का इस्तेमाल किया जाता है.

आम तौर पर, Google Play यह मानता है कि डिवाइस पर मौजूद प्लैटफ़ॉर्म, छोटे लेआउट को बड़ी स्क्रीन पर दिखा सकता है, लेकिन बड़े लेआउट को छोटी स्क्रीन पर नहीं दिखा सकता. इसलिए, अगर कोई ऐप्लिकेशन सिर्फ़ "सामान्य" स्क्रीन साइज़ के साथ काम करने का दावा करता है, तो Google Play उस ऐप्लिकेशन को सामान्य और बड़ी स्क्रीन वाले दोनों डिवाइसों के लिए उपलब्ध कराता है. हालांकि, वह ऐप्लिकेशन को फ़िल्टर कर देता है, ताकि वह छोटी स्क्रीन वाले डिवाइसों के लिए उपलब्ध न हो.

अगर कोई ऐप्लिकेशन <supports-screens> के लिए एट्रिब्यूट नहीं दिखाता है, तो Google Play उन एट्रिब्यूट के लिए डिफ़ॉल्ट वैल्यू का इस्तेमाल करता है. ये वैल्यू, एपीआई लेवल के हिसाब से अलग-अलग होती हैं. खास तौर से:

  • जिन ऐप्लिकेशन में android: minSdkVersion या android: targetSdkVersion को 3 या उससे कम पर सेट किया गया है उनके लिए, <supports-screens> एलिमेंट की वैल्यू तय नहीं होती और कोई एट्रिब्यूट उपलब्ध नहीं होता. इस मामले में, Google Play यह मानता है कि ऐप्लिकेशन को सामान्य साइज़ की स्क्रीन के लिए डिज़ाइन किया गया है. साथ ही, वह ऐप्लिकेशन को उन डिवाइसों पर दिखाता है जिनकी स्क्रीन सामान्य या बड़ी है.
  • जब android: minSdkVersion या android: targetSdkVersion को 4 या उससे ज़्यादा पर सेट किया जाता है, तो सभी एट्रिब्यूट के लिए डिफ़ॉल्ट वैल्यू "true" होती है. इस तरह, ऐप्लिकेशन को डिफ़ॉल्ट रूप से सभी स्क्रीन साइज़ के साथ काम करने वाला माना जाता है.

उदाहरण 1
मेनिफ़ेस्ट में <uses-sdk android:minSdkVersion="3"> का एलान किया गया है और इसमें <supports-screens> एलिमेंट शामिल नहीं है. नतीजा: Google Play, ऐप्लिकेशन को छोटी स्क्रीन वाले डिवाइस के उपयोगकर्ता को नहीं दिखाएगा. हालांकि, यह ऐप्लिकेशन सामान्य और बड़ी स्क्रीन वाले डिवाइसों के उपयोगकर्ताओं को तब तक दिखाएगा, जब तक कोई दूसरा फ़िल्टर लागू न हो.

उदाहरण 2
मेनिफ़ेस्ट में <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"> एलिमेंट का एलान किया गया है, लेकिन इसमें <supports-screens> एलिमेंट शामिल नहीं है. नतीजा: जब तक कोई दूसरा फ़िल्टर लागू नहीं होता, तब तक Google Play ऐप्लिकेशन को सभी डिवाइसों पर उपयोगकर्ताओं को दिखाएगा.

तीसरा उदाहरण
मेनिफ़ेस्ट में <uses-sdk android:minSdkVersion="4"> का एलान किया गया है और इसमें <supports-screens> एलिमेंट शामिल नहीं है. नतीजा: Google Play, ऐप्लिकेशन को सभी उपयोगकर्ताओं को तब तक दिखाएगा, जब तक कि कोई दूसरा फ़िल्टर लागू न हो.

अपने ऐप्लिकेशन में स्क्रीन साइज़ के साथ काम करने की सुविधा के बारे में बताने के तरीके के बारे में ज़्यादा जानने के लिए, <supports-screens> और एक से ज़्यादा स्क्रीन के साथ काम करने की सुविधा देखें.

<uses-configuration> डिवाइस के लिए कॉन्फ़िगरेशन:
कीबोर्ड, नेविगेशन, टच स्क्रीन

कोई ऐप्लिकेशन, हार्डवेयर की कुछ सुविधाओं का अनुरोध कर सकता है. Google Play, ऐप्लिकेशन को सिर्फ़ उन डिवाइसों पर दिखाएगा जिनमें ज़रूरी हार्डवेयर मौजूद है.

उदाहरण 1
मैन्युफ़ेस्ट में <uses-configuration android:reqFiveWayNav="true" /> शामिल है और कोई उपयोगकर्ता ऐसे डिवाइस पर ऐप्लिकेशन खोज रहा है जिसमें पांच-वे नेविगेशन कंट्रोल नहीं है. नतीजा: Google Play, उपयोगकर्ता को ऐप्लिकेशन नहीं दिखाएगा.

उदाहरण 2
मेनिफ़ेस्ट में <uses-configuration> एलिमेंट शामिल नहीं है. नतीजा: Google Play, ऐप्लिकेशन को सभी उपयोगकर्ताओं को तब तक दिखाएगा, जब तक कोई दूसरा फ़िल्टर लागू नहीं होता.

ज़्यादा जानकारी के लिए, <uses-configuration> देखें.

<uses-feature> डिवाइस की सुविधाएं
(name)

किसी ऐप्लिकेशन के लिए, डिवाइस पर कुछ सुविधाएं मौजूद होना ज़रूरी हो सकता है. यह सुविधा Android 2.0 (एपीआई लेवल 5) में लॉन्च की गई थी.

उदाहरण 1
मेनिफ़ेस्ट में <uses-feature android:name="android.hardware.sensor.light" /> शामिल है और कोई उपयोगकर्ता ऐसे डिवाइस पर ऐप्लिकेशन खोज रहा है जिसमें लाइट सेंसर नहीं है. नतीजा: Google Play, उपयोगकर्ता को ऐप्लिकेशन नहीं दिखाएगा.

उदाहरण 2
मेनिफ़ेस्ट में <uses-feature> एलिमेंट शामिल नहीं है. नतीजा: Google Play, ऐप्लिकेशन को सभी उपयोगकर्ताओं को तब तक दिखाएगा, जब तक कोई दूसरा फ़िल्टर लागू नहीं होता.

पूरी जानकारी के लिए, <uses-feature> देखें.

अहम सुविधाओं के आधार पर फ़िल्टर करना: कुछ मामलों में, Google Play, <uses-permission> एलिमेंट के ज़रिए अनुरोध की गई अनुमतियों को, <uses-feature> एलिमेंट में बताई गई सुविधाओं की ज़रूरी शर्तों के बराबर मानता है. नीचे <uses-permission> देखें.

OpenGL-ES वर्शन
(openGlEsVersion)

किसी ऐप्लिकेशन के लिए ज़रूरी हो सकता है कि डिवाइस पर <uses-feature android:openGlEsVersion="int"> एट्रिब्यूट का इस्तेमाल करके, किसी खास OpenGL-ES वर्शन का इस्तेमाल किया जा सके.

उदाहरण 1
ऐप्लिकेशन, मेनिफ़ेस्ट में कई बार openGlEsVersion बताकर, कई OpenGL-ES वर्शन का अनुरोध करता है. नतीजा: Google Play यह मान लेता है कि ऐप्लिकेशन के लिए, बताए गए वर्शन में से सबसे नया वर्शन ज़रूरी है.

उदाहरण 2
कोई ऐप्लिकेशन OpenGL-ES वर्शन 1.1 का अनुरोध करता है और कोई उपयोगकर्ता, OpenGL-ES वर्शन 2.0 के साथ काम करने वाले डिवाइस पर ऐप्लिकेशन खोज रहा है. नतीजा: Google Play, उपयोगकर्ता को ऐप्लिकेशन तब तक दिखाएगा, जब तक कोई दूसरा फ़िल्टर लागू नहीं होता. अगर कोई डिवाइस, X वर्शन वाले OpenGL-ES के साथ काम करने की जानकारी देता है, तो Google Play यह मान लेता है कि वह X से पहले के किसी भी वर्शन के साथ काम करता है.

तीसरा उदाहरण
कोई उपयोगकर्ता ऐसे डिवाइस पर ऐप्लिकेशन खोज रहा है जिस पर OpenGL-ES वर्शन की जानकारी नहीं मिलती. उदाहरण के लिए, Android 1.5 या उससे पहले के वर्शन वाला डिवाइस. नतीजा: Google Play यह मानता है कि डिवाइस पर सिर्फ़ OpenGL-ES 1.0 काम करता है. Google Play, सिर्फ़ ऐसे उपयोगकर्ता ऐप्लिकेशन दिखाएगा जिनमें openGlEsVersion की जानकारी नहीं दी गई है या ऐसे ऐप्लिकेशन जिनमें OpenGL-ES के 1.0 से ज़्यादा के वर्शन की जानकारी नहीं दी गई है.

चौथा उदाहरण
मेनिफ़ेस्ट में openGlEsVersion के बारे में नहीं बताया गया है. नतीजा: Google Play, ऐप्लिकेशन को सभी उपयोगकर्ताओं को तब तक दिखाएगा, जब तक कोई दूसरा फ़िल्टर लागू नहीं होता.

ज़्यादा जानकारी के लिए, <uses-feature> देखें.

<uses-library> सॉफ़्टवेयर लाइब्रेरी

किसी ऐप्लिकेशन के लिए, डिवाइस पर कुछ खास शेयर की गई लाइब्रेरी मौजूद होने की ज़रूरत पड़ सकती है.

उदाहरण 1
किसी ऐप्लिकेशन को com.google.android.maps लाइब्रेरी की ज़रूरत है और कोई उपयोगकर्ता ऐसे डिवाइस पर ऐप्लिकेशन खोज रहा है जिसमें com.google.android.maps लाइब्रेरी मौजूद नहीं है. नतीजा: Google Play, उपयोगकर्ता को ऐप्लिकेशन नहीं दिखाएगा.

उदाहरण 2
मेनिफ़ेस्ट में <uses-library> एलिमेंट शामिल नहीं है. नतीजा: Google Play, ऐप्लिकेशन को सभी उपयोगकर्ताओं को तब तक दिखाएगा, जब तक कोई दूसरा फ़िल्टर लागू नहीं होता.

ज़्यादा जानकारी के लिए, <uses-library> देखें.

<uses-permission>  

Google Play, <uses-permission> एलिमेंट के आधार पर फ़िल्टर नहीं करता. हालांकि, यह एलिमेंट को पढ़कर यह पता लगाता है कि ऐप्लिकेशन में हार्डवेयर की ऐसी सुविधाओं की ज़रूरतें हैं या नहीं जिनके बारे में <uses-feature> एलिमेंट में सही तरीके से एलान नहीं किया गया है. उदाहरण के लिए, अगर कोई ऐप्लिकेशन CAMERA अनुमति का अनुरोध करता है, लेकिन android.hardware.camera के लिए <uses-feature> एलिमेंट का एलान नहीं करता है, तो Google Play यह मानता है कि ऐप्लिकेशन को कैमरे की ज़रूरत है और इसे उन उपयोगकर्ताओं को नहीं दिखाया जाना चाहिए जिनके डिवाइस में कैमरा नहीं है.

आम तौर पर, अगर कोई ऐप्लिकेशन हार्डवेयर से जुड़ी अनुमतियों का अनुरोध करता है, तो Google Play यह मान लेता है कि ऐप्लिकेशन को हार्डवेयर की सुविधाओं की ज़रूरत है. भले ही, <uses-feature> के लिए कोई एलान न किया गया हो. इसके बाद, Google Play <uses-feature> के एलान में बताई गई सुविधाओं के आधार पर, फ़िल्टर करने की सुविधा सेट अप करता है.

हार्डवेयर की सुविधाओं से जुड़ी अनुमतियों की सूची के लिए, <uses-feature> एलिमेंट का दस्तावेज़ देखें.

<uses-sdk> फ़्रेमवर्क का कम से कम वर्शन (minSdkVersion)

किसी ऐप्लिकेशन के लिए, कम से कम एपीआई लेवल की ज़रूरत हो सकती है.

पहला उदाहरण
मेनिफ़ेस्ट में <uses-sdk android:minSdkVersion="3"> शामिल है और ऐप्लिकेशन में एपीआई लेवल 3 में लॉन्च किए गए एपीआई का इस्तेमाल किया जाता है. कोई उपयोगकर्ता, एपीआई लेवल 2 वाले डिवाइस पर ऐप्लिकेशन खोज रहा है. नतीजा: Google Play, उपयोगकर्ता को ऐप्लिकेशन नहीं दिखाएगा.

दूसरा उदाहरण
मेनिफ़ेस्ट में minSdkVersion शामिल नहीं है और ऐप्लिकेशन में एपीआई लेवल 3 में लॉन्च किए गए एपीआई का इस्तेमाल किया जाता है. कोई उपयोगकर्ता, एपीआई लेवल 2 वाले डिवाइस पर ऐप्लिकेशन खोज रहा है. नतीजा: Google Play यह मानता है कि minSdkVersion "1" है और ऐप्लिकेशन, Android के सभी वर्शन के साथ काम करता है. Google Play, उपयोगकर्ता को ऐप्लिकेशन दिखाता है और उसे ऐप्लिकेशन डाउनलोड करने की अनुमति देता है. ऐप्लिकेशन, रनटाइम के दौरान क्रैश हो जाता है.

हमारा सुझाव है कि आप हमेशा minSdkVersion एट्रिब्यूट का इस्तेमाल करें, ताकि आपको इस दूसरी स्थिति से बचा जा सके. ज़्यादा जानकारी के लिए, android:minSdkVersion देखें.

फ़्रेमवर्क का ज़्यादा से ज़्यादा वर्शन (maxSdkVersion)

अब काम नहीं करता. Android 2.1 और उसके बाद के वर्शन, maxSdkVersion एट्रिब्यूट की जांच नहीं करते या उसे लागू नहीं करते. साथ ही, अगर किसी ऐप्लिकेशन के मेनिफ़ेस्ट में maxSdkVersion सेट है, तो एसडीके कंपाइल नहीं होगा. जिन डिवाइसों पर पहले से ही maxSdkVersion का इस्तेमाल किया जा रहा है उनके लिए, Google Play इसकी जानकारी का इस्तेमाल करेगा और फ़िल्टर करने के लिए इसका इस्तेमाल करेगा.

maxSdkVersion का एलान करने का सुझाव नहीं दिया जाता. ज़्यादा जानकारी के लिए, android:maxSdkVersion देखें.

बेहतर मेनिफ़ेस्ट फ़िल्टर

टेबल 1 में मौजूद मेनिफ़ेस्ट एलिमेंट के अलावा, Google Play, टेबल 2 में मौजूद बेहतर मेनिफ़ेस्ट एलिमेंट के आधार पर भी ऐप्लिकेशन फ़िल्टर कर सकता है.

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

टेबल 2. Google Play पर फ़िल्टर करने के लिए, बेहतर मेनिफ़ेस्ट एलिमेंट.

मेनिफ़ेस्ट एलिमेंटखास जानकारी
<compatible-screens>

अगर डिवाइस की स्क्रीन का साइज़ और डेंसिटी, <compatible-screens> एलिमेंट में मौजूद किसी भी स्क्रीन कॉन्फ़िगरेशन (<screen> एलिमेंट से तय किए गए) से मेल नहीं खाती है, तो Google Play ऐप्लिकेशन को फ़िल्टर कर देता है.

सावधानी: आम तौर पर, आपको इस मेनिफ़ेस्ट एलिमेंट का इस्तेमाल नहीं करना चाहिए. इस एलिमेंट का इस्तेमाल करने से, स्क्रीन साइज़ और डेंसिटी के उन सभी कॉम्बिनेशन को बाहर रखा जा सकता है जिन्हें आपने सूची में शामिल नहीं किया है. इससे आपके ऐप्लिकेशन के संभावित उपयोगकर्ताओं की संख्या काफ़ी कम हो सकती है. इसके बजाय, आपको <supports-screens> मेनिफ़ेस्ट एलिमेंट का इस्तेमाल करना चाहिए. इस एलिमेंट के बारे में ऊपर टेबल 1 में बताया गया है. इसका इस्तेमाल करके, उन स्क्रीन कॉन्फ़िगरेशन के लिए स्क्रीन के साथ काम करने की सुविधा चालू की जा सकती है जिनके लिए आपने वैकल्पिक संसाधनों का इस्तेमाल नहीं किया है.

<supports-gl-texture>

Google Play, ऐप्लिकेशन को तब तक फ़िल्टर करता है, जब तक कि ऐप्लिकेशन के साथ काम करने वाले एक या एक से ज़्यादा जीएल टेक्सचर कंप्रेस करने के फ़ॉर्मैट, डिवाइस पर भी काम न करते हों.

अन्य फ़िल्टर

Google Play, ऐप्लिकेशन की अन्य विशेषताओं का इस्तेमाल करके यह तय करता है कि किसी डिवाइस पर किसी उपयोगकर्ता के लिए ऐप्लिकेशन दिखाना है या नहीं. इस बारे में नीचे दी गई टेबल में बताया गया है.

टेबल 3. ऐप्लिकेशन और पब्लिश करने से जुड़ी ऐसी विशेषताएं जिनका असर Google Play पर फ़िल्टर करने की सुविधा पर पड़ता है.

फ़िल्टर का नाम यह सुविधा कैसे काम करती है
पब्लिश करने की स्थिति

Google Play में खोजने और ब्राउज़ करने पर, सिर्फ़ पब्लिश किए गए ऐप्लिकेशन दिखेंगे.

अगर कोई ऐप्लिकेशन अनपब्लिश हो गया है, तो भी उसे इंस्टॉल किया जा सकता है. इसके लिए ज़रूरी है कि उपयोगकर्ता उसे 'डाउनलोड' सेक्शन में, खरीदे गए, इंस्टॉल किए गए या हाल ही में अनइंस्टॉल किए गए ऐप्लिकेशन के बीच देख सकें.

अगर किसी ऐप्लिकेशन को निलंबित कर दिया गया है, तो उपयोगकर्ता उसे फिर से इंस्टॉल या अपडेट नहीं कर पाएंगे. भले ही, वह उनके 'डाउनलोड' में दिखता हो.

कीमत का स्टेटस

सभी उपयोगकर्ताओं को पैसे चुकाकर डाउनलोड किए जाने वाले ऐप्लिकेशन नहीं दिखते. पैसे चुकाकर डाउनलोड किए जाने वाले ऐप्लिकेशन दिखाने के लिए, ज़रूरी है कि डिवाइस में Android 1.1 या उसके बाद का वर्शन हो. साथ ही, वह किसी ऐसे देश में हो जहां पैसे चुकाकर डाउनलोड किए जाने वाले ऐप्लिकेशन उपलब्ध हों. अगर किसी डिवाइस में सिम कार्ड है, तो सिम कार्ड की सेवा देने वाली कंपनी यह तय करती है कि पैसे चुकाकर डाउनलोड किए जाने वाले ऐप्लिकेशन उपलब्ध हैं या नहीं. अगर किसी डिवाइस में सिम कार्ड नहीं है, तो डिवाइस के आईपी पते का इस्तेमाल करके यह पता लगाया जाता है कि वह डिवाइस, पैसे चुकाकर डाउनलोड किए जाने वाले ऐप्लिकेशन उपलब्ध कराने वाले देश में है या नहीं.

देश के हिसाब से टारगेटिंग

Google Play पर अपना ऐप्लिकेशन अपलोड करते समय, कीमत तय करना और डिस्ट्रिब्यूशन सेक्शन में जाकर, उन देशों को चुना जा सकता है जहां आपको अपना ऐप्लिकेशन उपलब्ध कराना है. इसके बाद, ऐप्लिकेशन सिर्फ़ उन देशों में उपलब्ध होगा जिन्हें आपने चुना है.

सीपीयू आर्किटेक्चर (एबीआई)

ऐसा ऐप्लिकेशन जिसमें किसी खास सीपीयू आर्किटेक्चर (उदाहरण के लिए, ARM EABI v7 या x86) को टारगेट करने वाली नेटिव लाइब्रेरी शामिल हों, वे सिर्फ़ उन डिवाइसों पर दिखते हैं जिन पर उस आर्किटेक्चर का इस्तेमाल किया जा सकता है. NDK और नेटिव लाइब्रेरी इस्तेमाल करने के बारे में जानकारी पाने के लिए, Android NDK क्या है? लेख पढ़ें

कॉपीराइट वाले ऐप्लिकेशन

Google Play अब Play Console में कॉपी प्रोटेक्शन की सुविधा के साथ काम नहीं करता. साथ ही, इस सुविधा के आधार पर ऐप्लिकेशन को फ़िल्टर भी नहीं करता. अपने ऐप्लिकेशन को सुरक्षित रखने के लिए, कृपया ऐप्लिकेशन लाइसेंस देने वाली सेवा का इस्तेमाल करें. ज़्यादा जानकारी के लिए, कॉपीराइट की सुरक्षा के लिए बदलाव देखें.

अलग-अलग फ़िल्टर के साथ कई एपीके पब्लिश करना

Google Play के कुछ खास फ़िल्टर की मदद से, एक ही ऐप्लिकेशन के लिए कई APK पब्लिश किए जा सकते हैं. इससे, अलग-अलग डिवाइस कॉन्फ़िगरेशन के लिए अलग-अलग APK उपलब्ध कराए जा सकते हैं. उदाहरण के लिए, अगर आपको ऐसा वीडियो गेम बनाना है जिसमें हाई-फ़िडेलिटी वाली ग्राफ़िक ऐसेट का इस्तेमाल किया गया हो, तो हो सकता है कि आप दो ऐसे APK बनाएं जो अलग-अलग टेक्स्चर कम्प्रेशन फ़ॉर्मैट के साथ काम करते हों. इस तरह, हर डिवाइस कॉन्फ़िगरेशन के लिए ज़रूरी टेक्सचर को शामिल करके, APK फ़ाइल का साइज़ कम किया जा सकता है. Google Play, आपके टेक्स्चर कम्प्रेशन फ़ॉर्मैट के लिए हर डिवाइस के सपोर्ट के आधार पर, उस डिवाइस के लिए आपके तय किए गए APK को डिलीवर करेगा.

फ़िलहाल, Google Play आपको एक ही ऐप्लिकेशन के लिए कई APK पब्लिश करने की अनुमति सिर्फ़ तब देता है, जब हर APK इन कॉन्फ़िगरेशन के आधार पर अलग-अलग फ़िल्टर उपलब्ध कराता हो:

  • OpenGL टेक्सचर कंप्रेस करने के फ़ॉर्मैट

    <supports-gl-texture> एलिमेंट का इस्तेमाल करके.

  • स्क्रीन का साइज़ (ज़रूरत पड़ने पर, स्क्रीन की सघनता)

    <supports-screens> या <compatible-screens> एलिमेंट का इस्तेमाल करके.

  • API स्तर

    <uses-sdk> एलिमेंट का इस्तेमाल करके.

  • सीपीयू आर्किटेक्चर (एबीआई)

    Android SDK की मदद से बनाई गई नेटिव लाइब्रेरी शामिल करके, जो किसी खास सीपीयू आर्किटेक्चर (उदाहरण के लिए, ARM EABI v7 या x86) को टारगेट करती हैं.

बाकी सभी फ़िल्टर अब भी पहले की तरह ही काम करते हैं. हालांकि, ये चार फ़िल्टर ही Google Play पर एक ही ऐप्लिकेशन लिस्टिंग में, एक APK को दूसरे से अलग कर सकते हैं. उदाहरण के लिए, अगर APK सिर्फ़ इस आधार पर अलग-अलग हैं कि डिवाइस में कैमरा है या नहीं, तो एक ही ऐप्लिकेशन के लिए कई APK पब्लिश नहीं किए जा सकते.

अहम जानकारी: एक ही ऐप्लिकेशन के लिए कई APK पब्लिश करना, ऐडवांस सुविधा माना जाता है. ज़्यादातर ऐप्लिकेशन के लिए, सिर्फ़ एक ऐसा APK पब्लिश करना चाहिए जो कई तरह के डिवाइस कॉन्फ़िगरेशन के साथ काम करता हो. एक से ज़्यादा APK पब्लिश करने के लिए, आपको अपने फ़िल्टर में कुछ खास नियमों का पालन करना होगा. साथ ही, हर APK के वर्शन कोड पर ज़्यादा ध्यान देना होगा, ताकि हर कॉन्फ़िगरेशन के लिए सही अपडेट पाथ पक्का किया जा सके.

अगर आपको Google Play पर एक से ज़्यादा APK पब्लिश करने के तरीके के बारे में ज़्यादा जानकारी चाहिए, तो एक से ज़्यादा APK के लिए सहायता लेख पढ़ें.

यह भी देखें:

  1. Android पर काम करता है या नहीं
  2. एक से ज़्यादा APK के लिए सहायता