Google Play'de filtreler

Kullanıcılar Google Play'de indirmek istedikleri uygulamaları aradığında veya bu uygulamalara göz attığında sonuçlar, cihazla uyumlu olan uygulamalara göre filtrelenir. Örneğin, bir uygulama kamera gerektiriyorsa Google Play, uygulamayı kamerası olmayan cihazlara göstermez. Bu filtreleme, geliştiricilerin uygulamalarının dağıtımını yönetmesine ve kullanıcılar için mümkün olan en iyi deneyimi sunmasına yardımcı olur.

Google Play'de filtreleme, manifest beyanları, zorunlu kitaplıklar, mimari bağımlılıkları ve Google Play Console'da ayarlanan coğrafi hedefleme, fiyatlandırma gibi dağıtım denetimleri dahil olmak üzere çeşitli uygulama meta veri ve yapılandırma ayarlarına dayanır.

Google Play filtreleme işlemi kısmen manifest beyanlarına ve Android çerçevesinin diğer özelliklerine dayanır ancak gerçek filtreleme davranışları çerçeveden farklıdır ve belirli API düzeylerine bağlı değildir. Bu belgede, Google Play tarafından kullanılan geçerli filtreleme kuralları belirtilmektedir.

Google Play'de filtrelerin işleyiş şekli

Google Play, uygulamanızı Google Play uygulamasından uygulama arayan veya göz atan bir kullanıcıya göstermeyip göstermeyeceğini belirlemek için aşağıda açıklanan filtre kısıtlamalarını kullanır.

Google Play, uygulamanızın gösterilip gösterilmeyeceğini belirlerken cihazın donanım ve yazılım şartının yanı sıra operatörünü, konumunu ve diğer özelliklerini kontrol eder. Ardından, bunları uygulamanın manifest dosyası ve yayınlama ayrıntıları tarafından ifade edilen kısıtlamalar ve bağımlılıklarla karşılaştırır.

Uygulama, filtre kurallarına göre cihazla uyumluysa Google Play uygulamayı kullanıcıya gösterir. Aksi takdirde, kullanıcı doğrudan Google Play'deki uygulama kimliğine yönlendiren bir derin bağlantıyı tıklayarak uygulamayı özellikle talep etse bile Google Play, uygulamanızı arama sonuçlarında ve kategorilerde gezinirken gizleyebilir.

Uygulamanız için mevcut filtrelerin herhangi bir kombinasyonunu kullanabilirsiniz. Örneğin, minSdkVersion "4" koşulu belirleyebilir ve uygulamada smallScreens="false" ayarlayabilirsiniz. Ardından, uygulamayı Google Play'e yüklerken yalnızca Avrupa ülkelerini (operatörleri) hedefleyebilirsiniz. Bu nedenle Google Play'in filtreleri, uygulamanın bu koşulların üçünü de karşılamayan hiçbir cihazda kullanılmasını engeller.

Tüm filtreleme kısıtlamaları, uygulamanın sürümüyle ilişkilidir ve sürümler arasında değişiklik gösterebilir. Örneğin, bir kullanıcı uygulamanızı yüklediyse ve uygulamayı kullanıcı için görünmez hale getiren bir güncelleme yayınlarsanız kullanıcı, güncelleme olduğunu görmez.

Google Play web sitesinde filtreleme

Kullanıcılar Google Play web sitesine göz atarak yayınlanan tüm uygulamaları görebilir. Ancak Google Play web sitesi, uygulama şartlarını kullanıcının kayıtlı cihazlarının her biriyle uyumluluk açısından karşılaştırır ve uygulamanın yalnızca cihazıyla uyumlu olması durumunda yüklenmesine izin verir.

Uygulama manifestine göre filtreleme

Çoğu filtre, uygulamanın manifest dosyasında (AndroidManifest.xml) bulunan öğeler tarafından tetiklenir (ancak manifest dosyasındaki her şey filtrelemeyi tetikleyemez). Tablo 1'de, filtrelemeyi tetiklemek için kullanmanız gereken manifest öğeleri listelenmekte ve her öğe için filtrelemenin işleyiş şekli açıklanmaktadır.

Tablo 1. Google Play'de filtrelemeyi tetikleyen manifest öğeleri.

Manifest Öğesi Filtre Adı İşleyiş Şekli
<supports-screens> Ekran Boyutu

Uygulamalar, <supports-screens> öğesinin özelliklerini ayarlayarak destekleyebileceği ekran boyutlarını belirtir. Uygulama yayınlandığında Google Play, uygulamayı kullanıcılara gösterip göstermeyeceğini cihazlarının ekran boyutlarına göre belirlemek için bu özellikleri kullanır.

Genel kural olarak Google Play, cihazdaki platformun küçük düzenleri daha büyük ekranlara uyarlayabileceğini ancak büyük düzenleri daha küçük ekranlara uyarlayamayacağını varsayar. Bu nedenle, bir uygulama yalnızca "normal" ekran boyutunu destekliyorsa Google Play, uygulamayı hem normal hem de büyük ekranlı cihazlarda kullanılabilir hale getirir ancak uygulamayı küçük ekranlı cihazlarda kullanılamayacak şekilde filtreler.

Bir uygulama <supports-screens> için özellik tanımlamazsa Google Play, bu özellikler için API düzeyine göre değişen varsayılan değerleri kullanır. Özellikle:

  • android: minSdkVersion veya android: targetSdkVersion değerini 3 veya daha düşük bir değere ayarlayan uygulamalarda <supports-screens> öğesinin kendisi tanımlanmaz ve hiçbir özellik kullanılamaz. Bu durumda Google Play, uygulamanın normal boyutlu ekranlar için tasarlandığını varsayar ve uygulamayı normal veya daha büyük ekranlara sahip cihazlarda gösterir.
  • android: minSdkVersion veya android: targetSdkVersion 4 veya daha yüksek bir değere ayarlandığında tüm özelliklerin varsayılan değeri "true" olur. Bu sayede, uygulamanın varsayılan olarak tüm ekran boyutlarını desteklediği kabul edilir.

1. Örnek
Manifest, <uses-sdk android:minSdkVersion="3"> öğesini tanımlar ve <supports-screens> öğesi içermez. Sonuç: Google Play, uygulamayı küçük ekranlı cihaz kullanıcılarına göstermez ancak diğer filtreler geçerli olmadığı sürece normal ve büyük ekranlı cihaz kullanıcılarına gösterir.

2. örnek
Manifest, <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"> öğesini tanımlar ve <supports-screens> öğesi içermez. Sonuç: Google Play, başka filtreler uygulanmadığı sürece uygulamayı tüm cihazlardaki kullanıcılara gösterir.

3. Örnek
Manifest dosyası <uses-sdk android:minSdkVersion="4"> öğesini tanımlar ve <supports-screens> öğesi içermez. Sonuç: Google Play, başka filtreler uygulanmadığı sürece uygulamayı tüm kullanıcılara gösterir.

Uygulamanızda ekran boyutları için desteği nasıl beyan edeceğiniz hakkında daha fazla bilgi için <supports-screens> ve Birden Fazla Ekranı Destekleme bölümüne bakın.

<uses-configuration> Cihaz Yapılandırması:
klavye, gezinme, dokunmatik ekran

Bir uygulama belirli donanım özelliklerini isteyebilir. Google Play, uygulamayı yalnızca gerekli donanıma sahip cihazlarda gösterir.

1. Örnek
Manifest <uses-configuration android:reqFiveWayNav="true" /> içeriyor ve kullanıcı, beş yönlü gezinme kontrolü olmayan bir cihazda uygulama arıyor. Sonuç: Google Play, uygulamayı kullanıcıya göstermez.

2. örnek
Manifest dosyası bir <uses-configuration> öğesi içermiyor. Sonuç: Google Play, başka filtreler uygulanmadığı sürece uygulamayı tüm kullanıcılara gösterir.

Daha fazla bilgi için <uses-configuration> başlıklı makaleyi inceleyin.

<uses-feature> Cihaz Özellikleri
(name)

Bir uygulama, cihazda belirli cihaz özelliklerinin bulunmasını gerektirebilir. Bu işlev, Android 2.0 (API Seviyesi 5) sürümünde kullanıma sunulmuştur.

1. Örnek
Manifest dosyasında <uses-feature android:name="android.hardware.sensor.light" /> yer alıyor ve kullanıcı, ışık sensörü olmayan bir cihazda uygulama arıyor. Sonuç: Google Play, uygulamayı kullanıcıya göstermez.

2. örnek
Manifest dosyası bir <uses-feature> öğesi içermiyor. Sonuç: Google Play, başka filtreler uygulanmadığı sürece uygulamayı tüm kullanıcılara gösterir.

Tüm bilgiler için <uses-feature> başlıklı makaleyi inceleyin.

Daha önceden varsayılan olarak sunulan özelliklere göre filtreleme: Bazı durumlarda Google Play, <uses-permission> öğeleri aracılığıyla istenen izinleri <uses-feature> öğelerinde belirtilenlere eşdeğer özellik koşulları olarak yorumlar. Aşağıdaki <uses-permission> bölümüne bakın.

OpenGL-ES Sürüm
(openGlEsVersion)

Bir uygulama, <uses-feature android:openGlEsVersion="int"> özelliğini kullanarak cihazın belirli bir OpenGL-ES sürümünü desteklemesini zorunlu tutabilir.

1. Örnek
Bir uygulama, manifest'te openGlEsVersion'ı birden çok kez belirterek birden çok OpenGL-ES sürümü ister. Sonuç: Google Play, uygulamanın belirtilen sürümlerin en yüksek sürümünü gerektirdiğini varsayar.

2. Örnek
Bir uygulama, OpenGL-ES 1.1 sürümünü istiyor ve kullanıcı, OpenGL-ES 2.0 sürümünü destekleyen bir cihazda uygulama arıyor. Sonuç: Diğer filtreler geçerli olmadığı sürece Google Play, uygulamayı kullanıcıya gösterir. Bir cihaz X sürümünü desteklediğini bildirirse Google Play, X sürümünden önceki tüm sürümleri de desteklediğini varsayar.

3. Örnek
Bir kullanıcı, OpenGL-ES sürümü bildirmeyen bir cihazda (örneğin, Android 1.5 veya daha eski bir sürüm çalıştıran bir cihaz) uygulama arıyor. Sonuç: Google Play, cihazın yalnızca OpenGL-ES 1.0'u desteklediğini varsayar. Google Play yalnızca openGlEsVersion belirtmeyen veya 1.0'dan yüksek bir OpenGL-ES sürümü belirtmeyen kullanıcı uygulamalarını gösterir.

4. Örnek
Manifest dosyasında openGlEsVersion belirtilmemiş. Sonuç: Google Play, başka filtreler uygulanmadığı sürece uygulamayı tüm kullanıcılara gösterir.

Daha fazla bilgi için <uses-feature> başlıklı makaleyi inceleyin.

<uses-library> Yazılım Kitaplıkları

Bir uygulama, cihazda belirli paylaşılan kitaplıkların bulunmasını gerektirebilir.

1. Örnek
Bir uygulama com.google.android.maps kitaplığını gerektiriyor ve kullanıcı, com.google.android.maps kitaplığının bulunmadığı bir cihazda uygulama arıyor. Sonuç: Google Play, uygulamayı kullanıcıya göstermez.

2. Örnek
Manifest, <uses-library> öğesi içermiyor. Sonuç: Google Play, başka filtreler uygulanmadığı sürece uygulamayı tüm kullanıcılara gösterir.

Daha fazla bilgi için <uses-library> başlıklı makaleyi inceleyin.

<uses-permission>  

Google Play, <uses-permission> öğelerine göre filtreleme yapmaz. Ancak uygulamanın, <uses-feature> öğelerinde düzgün şekilde beyan edilmemiş olabilecek donanım özelliği şartlarına sahip olup olmadığını belirlemek için öğeleri okur. Örneğin, bir uygulama CAMERA iznini istiyorsa ancak android.hardware.camera için <uses-feature> öğesi belirtmiyorsa Google Play, uygulamanın kamera gerektirdiğini ve cihazlarında kamera bulunmayan kullanıcılara gösterilmemesi gerektiğini düşünür.

Genel olarak, bir uygulama donanımla ilgili izinler istiyorsa Google Play, <uses-feature> beyanları olmasa bile uygulamanın temel donanım özelliklerini gerektirdiğini varsayar. Ardından Google Play, <uses-feature> beyanlarının ima ettiği özelliklere göre filtrelemeyi ayarlar.

Donanım özelliklerini ima eden izinlerin listesi için <uses-feature> öğesinin belgelerine bakın.

<uses-sdk> Minimum Çerçeve Sürümü (minSdkVersion)

Uygulamalar için minimum API düzeyi gerekebilir.

1. Örnek
Manifest <uses-sdk android:minSdkVersion="3"> içeriyor ve uygulama, API Seviyesi 3'te kullanıma sunulan API'leri kullanıyor. Bir kullanıcı, API düzeyi 2 olan bir cihazda uygulama arıyor. Sonuç: Google Play, uygulamayı kullanıcıya göstermez.

2. Örnek
Manifest, minSdkVersion içermiyor ve uygulama, API düzeyi 3'te kullanıma sunulan API'leri kullanıyor. Bir kullanıcı, API düzeyi 2 olan bir cihazda uygulama arıyor. Sonuç: Google Play, minSdkVersion değerinin "1" olduğunu ve uygulamanın Android'in tüm sürümleriyle uyumlu olduğunu varsayar. Google Play, uygulamayı kullanıcıya gösterir ve kullanıcının uygulamayı indirmesine izin verir. Uygulama, çalışma zamanında kilitlenir.

Bu ikinci senaryoyu önlemek istediğiniz için her zaman bir minSdkVersion tanımlamanızı öneririz. Ayrıntılı bilgi için android:minSdkVersion başlıklı makaleyi inceleyin.

Maksimum Çerçeve Sürümü (maxSdkVersion)

Kullanımdan kaldırıldı. Android 2.1 ve sonraki sürümler maxSdkVersion özelliğini kontrol etmez veya zorunlu tutmaz. maxSdkVersion, uygulamanın manifest dosyasında ayarlanmışsa SDK derlenmez. Google Play, maxSdkVersion ile derlenmiş cihazlarda bu sürüme saygı duyar ve filtreleme için kullanır.

maxSdkVersion değerini belirtmeniz önerilmez. Ayrıntılı bilgi için android:maxSdkVersion başlıklı makaleyi inceleyin.

Gelişmiş manifest filtreleri

Google Play, tablo 1'deki manifest öğelerine ek olarak tablo 2'deki gelişmiş manifest öğelerine göre de uygulamaları filtreleyebilir.

Bu manifest öğeleri ve tetikledikleri filtreleme yalnızca istisnai kullanım alanları içindir. Bunlar, uygulama dağıtımında sıkı kontroller gerektiren belirli yüksek performanslı oyun türleri ve benzer uygulamalar için tasarlanmıştır. Çoğu uygulama bu filtreleri hiçbir zaman kullanmamalıdır.

Tablo 2. Google Play filtreleme için gelişmiş manifest öğeleri.

Manifest ÖğesiÖzet
<compatible-screens>

Cihaz ekran boyutu ve yoğunluğu, <compatible-screens> öğesindeki ekran yapılandırmalarından hiçbiriyle eşleşmezse Google Play uygulamayı filtreler (<screen> öğesiyle belirtilir).

Dikkat: Normalde bu manifest öğesini kullanmamanız gerekir. Bu öğeyi kullanmak, listelemediğiniz tüm ekran boyutu ve yoğunluğu kombinasyonlarını hariç tutarak uygulamanızın potansiyel kullanıcı tabanını önemli ölçüde azaltabilir. Alternatif kaynaklarla hesaba katmadığınız ekran yapılandırmaları için ekran uyumluluk modunu etkinleştirmek üzere <supports-screens> manifest öğesini (yukarıdaki tablo 1'de açıklanmıştır) kullanmanız gerekir.

<supports-gl-texture>

Uygulama tarafından desteklenen GL doku sıkıştırma biçimlerinden en az biri cihaz tarafından da desteklenmiyorsa Google Play uygulamayı filtreler.

Diğer filtreler

Google Play, aşağıdaki tabloda açıklandığı gibi, belirli bir cihazdaki belirli bir kullanıcı için bir uygulamanın gösterilip gösterilmeyeceğini belirlemek amacıyla diğer uygulama özelliklerini kullanır.

Tablo 3. Google Play'de filtrelemeyi etkileyen uygulama ve yayınlama özellikleri.

Filtre Adı İşleyiş Şekli
Yayınlanma Durumu

Google Play'de arama ve göz atma işlemlerinde yalnızca yayınlanmış uygulamalar gösterilir.

Bir uygulama yayından kaldırılmış olsa bile kullanıcılar uygulamayı indirme alanındaki satın aldıkları, yükledikleri veya yakın zamanda kaldırdıkları uygulamalar arasında görebiliyorsa uygulama yüklenmeye devam edebilir.

Askıya alınan uygulamalar, indirilenler bölümünde görünse bile kullanıcılar tarafından yeniden yüklenemez veya güncellenemez.

Fiyatlandırılma durumu

Tüm kullanıcılar ücretli uygulamaları göremez. Ücretli uygulamaların gösterilebilmesi için cihazda Android 1.1 veya daha yeni bir sürümün yüklü olması ve ücretli uygulamaların kullanılabildiği bir ülkede bulunmanız gerekir. Cihazda SIM kart varsa ücretli uygulamaların kullanılıp kullanılamayacağını SIM kart operatörü belirler. Bir cihazda SIM kart yoksa cihazın ücretli uygulamaların kullanılabildiği bir ülkede olup olmadığını belirlemek için cihazın IP adresi kullanılır.

Ülke hedefleme

Uygulamanızı Google Play'e yüklerken Fiyatlandırma ve Dağıtım bölümünden uygulamanızın dağıtılacağı ülkeleri seçebilirsiniz. Uygulama, yalnızca seçtiğiniz ülkelerdeki kullanıcılar tarafından kullanılabilir.

CPU Mimarisi (ABI)

Belirli bir CPU mimarisini (ör. ARM EABI v7 veya x86) hedefleyen yerel kitaplıklar içeren uygulamalar yalnızca bu mimariyi destekleyen cihazlarda görünür. NDK ve yerel kitaplıkların kullanımı hakkında ayrıntılı bilgi için Android NDK nedir? başlıklı makaleyi inceleyin.

Kopyalamaya Karşı Korumalı Uygulamalar

Google Play, Play Console'daki Kopya Koruması özelliğini artık desteklemiyor ve uygulamaları bu özelliğe göre filtrelemiyor. Uygulamanızın güvenliğini sağlamak için lütfen bunun yerine Uygulama Lisanslama'yı kullanın. Daha fazla bilgi için Kopya Koruması için Değişim başlıklı makaleyi inceleyin.

Farklı filtrelerle birden fazla APK yayınlama

Belirli Google Play filtreleri, farklı cihaz yapılandırmalarına farklı APK'lar sunmak için aynı uygulama için birden fazla APK yayınlamanıza olanak tanır. Örneğin, yüksek kaliteli grafik öğeleri kullanan bir video oyunu oluşturuyorsanız her biri farklı doku sıkıştırma biçimlerini destekleyen iki APK oluşturabilirsiniz. Böylece, yalnızca her cihaz yapılandırması için gereken dokuları ekleyerek APK dosyasının boyutunu azaltabilirsiniz. Google Play, her cihazın doku sıkıştırma biçimlerinizi desteklemesine bağlı olarak, cihazı desteklediğini beyan ettiğiniz APK'yı cihaza sunar.

Şu anda Google Play, aynı uygulama için yalnızca her APK aşağıdaki yapılandırmalara göre farklı filtreler sağladığında birden fazla APK yayınlamanıza izin verir:

  • OpenGL doku sıkıştırma biçimleri

    <supports-gl-texture> öğesini kullanarak.

  • Ekran boyutu (ve isteğe bağlı olarak ekran yoğunluğu)

    <supports-screens> veya <compatible-screens> öğesini kullanarak.

  • API seviyesi

    <uses-sdk> öğesini kullanarak.

  • CPU Mimarisi (ABI)

    Android NDK ile oluşturulan ve belirli bir CPU mimarisini (ör. ARM EABI v7 veya x86) hedefleyen yerel kitaplıklar ekleyerek.

Diğer tüm filtreler her zamanki gibi çalışmaya devam eder ancak Google Play'deki aynı uygulama listelemesinde bir APK'yı diğerinden ayırt edebilecek tek filtreler bunlardır. Örneğin, APK'lar yalnızca cihazda kamera olup olmadığına göre farklıysa aynı uygulama için birden fazla APK yayınlayamazsınız .

Dikkat: Aynı uygulama için birden fazla APK yayınlamak gelişmiş bir özellik olarak kabul edilir ve çoğu uygulama, çok çeşitli cihaz yapılandırmalarını destekleyen yalnızca bir APK yayınlamalıdır. Birden fazla APK yayınlamak için filtrelerinizdeki belirli kurallara uymanız ve her yapılandırma için uygun güncelleme yolları sağlamak amacıyla her APK'nın sürüm kodlarına daha fazla dikkat etmeniz gerekir.

Google Play'de birden fazla APK yayınlama hakkında daha fazla bilgi edinmek istiyorsanız Birden fazla APK desteği başlıklı makaleyi okuyun.

Ayrıca bkz.

  1. Android uyumluluğu
  2. Birden fazla APK desteği