عندما يبحث المستخدم عن تطبيقات لتنزيلها من 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 عناصر البيان التي يجب عليك استخدامها لتشغيل التصفية، ويشرح كيفية عمل التصفية لكل عنصر.
عنصر البيان | اسم الفلتر | طريقة العمل |
---|---|---|
<supports-screens>
|
حجم الشاشة |
يشير التطبيق إلى أحجام الشاشة التي يمكن استخدامها من خلال ضبط سمات العنصر بشكل عام، يفترض Google Play أنّ النظام الأساسي على الجهاز يمكنه تكييف التنسيقات الأصغر حجمًا مع الشاشات الأكبر حجمًا، ولكن لا يمكنه تعديل التنسيقات الأكبر حجمًا مع الشاشات الأصغر حجمًا. وبالتالي، إذا أعلن تطبيق عن توافقه مع حجم الشاشة "العادي" فقط، يتيح Google Play التطبيق لكل من الأجهزة ذات الشاشات العادية والكبيرة، ولكنه تتم فلترة التطبيق بحيث لا يكون متاحًا للأجهزة ذات الشاشات الصغيرة. إذا لم يعلن أحد التطبيقات عن سمات لـ
مثال 1 المثال 2 المثال 3 لمزيد من المعلومات حول طريقة تعريف التوافق مع أحجام الشاشات في
تطبيقك، يمكنك الاطّلاع على |
<uses-configuration>
|
إعدادات الجهاز: لوحة المفاتيح، التنقل، الشاشة التي تعمل باللمس |
يمكن للتطبيق طلب ميزات أجهزة معيّنة، وسيعرض Google Play التطبيق فقط على الأجهزة التي تتضمّن الأجهزة المطلوبة. المثال 1 المثال 2 لمزيد من التفاصيل، يُرجى الاطّلاع على |
<uses-feature>
|
ميزات الجهاز ( name ) |
يمكن أن يتطلب أحد التطبيقات وجود ميزات محددة على الجهاز. تم تقديم هذه الوظيفة في نظام التشغيل Android 2.0 (المستوى 5 من واجهة برمجة التطبيقات). المثال 1 المثال 2 للحصول على المعلومات الكاملة، يُرجى الاطّلاع على الفلترة استنادًا إلى الميزات الضمنية: في بعض الحالات، يفسّر Google
Play الأذونات التي يتم طلبها من خلال عناصر
|
إصدار OpenGL-ES
( openGlEsVersion ) |
قد يتطلّب أحد التطبيقات أن يتوافق الجهاز مع إصدار معيّن
من OpenGL-ES باستخدام السمة المثال 1 المثال 2 المثال 3 مثال 4 لمزيد من التفاصيل، يُرجى الاطّلاع على |
|
<uses-library> |
مكتبات البرامج | وقد يتطلّب أحد التطبيقات توفُّر مكتبات مشتركة محدّدة على الجهاز. المثال 1 مثال 2 لمزيد من التفاصيل، يُرجى الاطّلاع على |
<uses-permission> |
على وجه التحديد، لا تتوفر في Google Play أي فلاتر استنادًا إلى عناصر بشكل عام، إذا طلب تطبيق أذونات تتعلّق بالأجهزة، يفترض Google Play أنّ التطبيق يتطلب ميزات الأجهزة الأساسية، على الرغم من أنه قد لا يكون هناك ما يتوافق مع
تعريفات للحصول على قائمة بالأذونات التي تشير إلى ميزات الأجهزة، راجِع مستندات عنصر |
|
<uses-sdk> |
الحد الأدنى لإصدار إطار العمل (minSdkVersion ) |
يمكن أن يتطلب التطبيق حدًا أدنى من مستوى واجهة برمجة التطبيقات. المثال 1 المثال 2 بما أنّك تريد تجنُّب هذا السيناريو الثاني، ننصحك بالإعلان عن |
الحد الأقصى لإصدار إطار العمل (maxSdkVersion ) |
تمت إزالة هذا العمود. لا يتحقّق الإصدار 2.1 من نظام التشغيل Android والإصدارات الأحدث من السمة ولا يُنصح بتعريف |
فلاتر البيان المتقدّمة
بالإضافة إلى عناصر البيان في الجدول 1، يمكن لتطبيق Google Play أيضًا فلترة التطبيقات بناءً على عناصر البيان المتقدمة في الجدول 2.
إنّ عناصر البيان هذه والتصفية التي تشغّلها هي لحالات استخدام استثنائية فقط. وقد صممت هذه التطبيقات لأنواع معيّنة من الألعاب العالية الأداء والتطبيقات المشابهة التي تتطلّب عناصر تحكّم صارمة في توزيع التطبيقات. يجب ألا تستخدم معظم التطبيقات هذه الفلاتر مطلقًا.
عنصر البيان | ملخّص |
---|---|
<compatible-screens> |
يُفلتِر Google Play التطبيق إذا لم يتطابق حجم شاشة الجهاز وكثافته مع أي من إعدادات الشاشة (التي يتم توضيحها من خلال عنصر تنبيه: عادةً، يجب عدم استخدام
عنصر البيان هذا. يمكن أن يؤدي استخدام هذا العنصر إلى تقليل قاعدة المستخدمين المحتملة لتطبيقك بشكل كبير، عن طريق استبعاد جميع مجموعات حجم وكثافة الشاشة التي لم تدرجها. وبدلاً من ذلك، يجب استخدام عنصر البيان |
<supports-gl-texture> |
يعمل Google Play على تصفية التطبيق ما لم يكن الجهاز متوافقًا أيضًا مع تنسيق واحد أو أكثر من تنسيقات ضغط بنية GL التي يدعمها التطبيق. |
الفلاتر الأخرى
يستخدم Google Play خصائص التطبيق الأخرى لتحديد ما إذا كان سيتم إظهار أو إخفاء تطبيق لمستخدم معين على جهاز معين، كما هو موضح في الجدول أدناه.
اسم الفلتر | طريقة العمل |
---|---|
حالة النشر | ولن تظهر سوى التطبيقات المنشورة في عمليات البحث والتصفح ضمن Google Play. حتى إذا تم إلغاء نشر تطبيق، يمكن تثبيته إذا كان بإمكان المستخدمين مشاهدته في منطقة "عمليات التنزيل" بين التطبيقات التي اشتروها أو ثبّتها أو تم إلغاء تثبيتها مؤخرًا. وإذا تم تعليق أحد التطبيقات، لن يتمكن المستخدمون من إعادة تثبيته أو تحديثه، حتى إذا ظهر في "عمليات التنزيل". |
حالة السعر | قد لا يتمكّن بعض المستخدمين من الاطّلاع على التطبيقات المدفوعة. لعرض التطبيقات المدفوعة، يجب أن يعمل الجهاز بالإصدار 1.1 من نظام التشغيل Android أو إصدار أحدث، وأن يكون في بلد تتوفر فيه التطبيقات المدفوعة. إذا كان الجهاز يحتوي على شريحة SIM، سيحدِّد مشغّل شبكة الجوّال لشريحة SIM ما إذا كانت التطبيقات المدفوعة متاحة. إذا كان الجهاز لا يتضمن شريحة SIM، يتم استخدام عنوان IP الخاص بالجهاز لتحديد ما إذا كان الجهاز في بلد تتوفّر فيه التطبيقات المدفوعة. |
استهداف البلدان | عند تحميل تطبيقك إلى Google Play، يمكنك اختيار البلدان التي سيتم توزيع التطبيق فيها ضمن الأسعار والتوزيع. وبعد ذلك، سيكون التطبيق متوفرًا للمستخدمين في البلدان التي تختارها فقط. |
بنية وحدة المعالجة المركزية (ABI) | ولا يكون التطبيق الذي يتضمن المكتبات الأصلية التي تستهدف بنية وحدة معالجة مركزية (ARM EABI v7 أو x86 مثلاً) مرئيًا إلا على الأجهزة المتوافقة مع هذه البنية. للحصول على تفاصيل حول NDK واستخدام المكتبات الأصلية، يمكنك مراجعة ما المقصود بـ Android NDK؟ |
التطبيقات المحمية بالنسخ | لم يعُد Google Play يتيح استخدام ميزة "حماية النسخ" في Play Console، ولم يعُد يعمل على فلترة التطبيقات بناءً عليها. لتأمين تطبيقك، يُرجى استخدام ترخيص التطبيقات بدلاً من ذلك. راجِع استبدال حماية النسخ للحصول على مزيد من المعلومات. |
نشر حِزم APK متعددة باستخدام فلاتر مختلفة
تسمح لك بعض فلاتر Google Play المحددة بنشر عدة حِزم APK للتطبيق نفسه، وذلك بهدف توفير حزمة APK مختلفة لتهيئات جهاز مختلفة. على سبيل المثال، إذا كنت تنشئ لعبة فيديو تستخدم أصول رسومات عالية الدقة، يمكنك إنشاء ملفَّي APK يدعم كل منهما تنسيقات مختلفة لضغط الزخرفة. وبهذه الطريقة، يمكنك تقليل حجم ملف APK من خلال تضمين الزخارف المطلوبة لكل تهيئة جهاز. استنادًا إلى توافُق كل جهاز مع تنسيقات ضغط البنية، سيقدّم Google Play له حزمة APK التي أعلنت أنّها تتوافق مع هذا الجهاز.
في الوقت الحالي، لا يسمح لك Google Play بنشر العديد من حِزم APK للتطبيق نفسه إلا عندما توفّر كل حزمة APK فلاتر مختلفة بناءً على الإعدادات التالية:
- تنسيقات ضغط مظهر OpenGL
باستخدام العنصر
<supports-gl-texture>
. - حجم الشاشة (وكثافة الشاشة اختياريًا)
باستخدام العنصر
<supports-screens>
أو<compatible-screens>
- مستوى واجهة برمجة التطبيقات
باستخدام العنصر
<uses-sdk>
. - بنية وحدة المعالجة المركزية (ABI)
من خلال تضمين المكتبات الأصلية التي تم إنشاؤها باستخدام Android NDK والتي تستهدف بنية وحدة معالجة مركزية معيّنة (على سبيل المثال، AM EABI v7 أو x86).
تظل جميع الفلاتر الأخرى تعمل على النحو المعتاد، ولكن هذه الفلاتر الأربعة هي الوحيدة التي يمكنها التمييز بين حزمة APK وحزمة أخرى ضمن بطاقة بيانات التطبيق نفسها على Google Play. على سبيل المثال، لا يمكنك نشر عدة حِزم APK للتطبيق نفسه إذا كانت مختلفة استنادًا إلى ما إذا كان الجهاز يحتوي على كاميرا فقط.
تنبيه: إنّ نشر عدة حِزم APK للتطبيق نفسه يُعَدّ ميزة متقدّمة، ويجب أن ينشر معظم التطبيقات ملف APK واحدًا فقط متوافقًا مع مجموعة واسعة من عمليات ضبط الأجهزة. يتطلب نشر ملفات APK متعددة اتباع قواعد محددة ضمن الفلاتر والتركيز بشكل أكبر على رموز الإصدارات لكل حزمة APK لضمان مسارات التحديث المناسبة لكل إعداد.
إذا كنت بحاجة إلى مزيد من المعلومات حول كيفية نشر عدة ملفات APK على Google Play، يُرجى الاطّلاع على مقالة دعم حِزم APK متعددة.