Google Play'de filtreler

Bir kullanıcı Google Play'de indirmek üzere uygulamaları aradığında veya bunlara göz attığında sonuçlar, cihazla uyumlu olan uygulamalara göre filtrelenir. Örneğin, bir uygulamada kamera gerekiyorsa Google Play, uygulamayı kamerası olmayan cihazlara göstermez. Bu filtreleme, geliştiricilerin uygulamalarının dağıtımını yönetmelerine ve kullanıcılar için mümkün olan en iyi deneyimi sağlamalarına yardımcı olur.

Google Play'de filtreleme yapılırken manifest bildirimleri, gerekli kitaplıklar, mimari bağımlılıklar ve coğrafi hedefleme, fiyatlandırma gibi Google Play Console'da ayarlanan dağıtım kontrolleri dahil olmak üzere çeşitli uygulama meta verisi türleri ve yapılandırma ayarları temel alınır.

Google Play filtrelemesi kısmen manifest beyanlarına ve Android çerçevesinin diğer yönlerine dayanır ancak gerçek filtreleme davranışları çerçeveden farklıdır ve belirli API düzeylerine bağlı değildir. Bu dokümanda, Google Play tarafından kullanılan mevcut filtreleme kuralları açıklanmaktadır.

Google Play'de filtrelerin işleyiş şekli

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

Google Play, uygulamanızın görüntülenip görüntülenmeyeceğine karar verirken cihazın donanım ve yazılım gereksiniminin yanı sıra operatörü, konumu ve diğer özelliklerini kontrol eder. Daha sonra bunları uygulamanın manifest dosyasında ifade edilen kısıtlamalar ve bağımlılıklarla ve yayınlama ayrıntılarıyla karşılaştırır.

Uygulama, filtre kurallarına göre cihazla uyumluysa Google Play, uygulamayı kullanıcıya gösterir. Aksi takdirde, bir kullanıcı Google Play içinde doğrudan uygulamanın kimliğine işaret eden bir derin bağlantıyı tıklayarak uygulamayı özellikle istese bile Google Play, uygulamanızı arama sonuçlarından ve kategoriye göz atmadan gizler.

Uygulamanız için mevcut filtrelerin herhangi bir kombinasyonunu kullanabilirsiniz. Örneğin, minSdkVersion için "4" koşulunu belirleyip uygulamada smallScreens="false" değerini belirleyebilirsiniz. Daha sonra uygulamayı Google Play'e yüklerken yalnızca Avrupa ülkelerini (operatörleri) hedefleyebilirsiniz. Dolayısıyla, Google Play'in filtreleri, uygulamanın bu gereksinimlerin üçüne de uymayan cihazlarda kullanılmasını engeller.

Tüm filtreleme kısıtlamaları, bir 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 siz uygulamayı kullanıcı için görünmez hale getiren bir güncelleme yayınlarsanız, kullanıcı bir güncellemenin olduğunu görmez.

Google Play web sitesinde filtreleme

Kullanıcılar Google Play web sitesine göz attıklarında, yayınlanan tüm uygulamaları görebilirler. Bununla birlikte, Google Play web sitesi uygulama gereksinimlerini, uyumluluk için kullanıcının kayıtlı cihazlarıyla karşılaştırır ve kullanıcıların uygulamayı yalnızca cihazlarıyla uyumluysa yüklemesine izin verir.

Uygulama manifestine göre filtreleme

Çoğu filtre, bir uygulamanın manifest dosyasındaki AndroidManifest.xml dosyasındaki öğ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 nasıl çalıştığı açıklanmaktadır.

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

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

Bir uygulama, <supports-screens> öğesinin özelliklerini ayarlayarak destekleyebildiği ekran boyutlarını belirtir. Uygulama yayınlandığında Google Play, kullanıcıların cihazlarının ekran boyutlarına göre uygulamanın kullanıcılara gösterilip gösterilmeyeceğini belirlemek için bu özellikleri kullanır.

Genel bir kural olarak Google Play, cihazdaki platformun daha küçük düzenleri büyük ekranlara uyarlayabildiğini, ancak büyük düzenleri daha küçük ekranlara uyarlayamadığını varsayar. Dolayısıyla, bir uygulama yalnızca "normal" ekran boyutunu desteklediğini beyan ederse Google Play, uygulamayı hem normal hem de büyük ekranlı cihazlarda kullanılabilir hale getirir ancak küçük ekranlı cihazlarda kullanılamayacak şekilde filtreler.

Bir uygulama, <supports-screens> için özellik beyan etmezse Google Play, bu özelliklerin varsayılan değerlerini kullanır. Bu değerler, API Düzeyi'ne göre değişir. Özellikle:

  • android: minSdkVersion veya android: targetSdkVersion değerini 3 ya da daha düşük olarak ayarlayan uygulamalarda <supports-screens> öğesinin kendisi tanımlanmamış olur ve herhangi 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 cihazlara gösterir.

  • android: minSdkVersion veya android: targetSdkVersion değeri 4 ya da daha yüksek olarak ayarlandığında tüm özellikler için varsayılan değer "true" olur. Bu şekilde, uygulamanın varsayılan olarak tüm ekran boyutlarını desteklediği kabul edilir.

1. Örnek
Manifest, <uses-sdk android:minSdkVersion="3"> özelliğini tanımlar ve bir <supports-screens> öğesi içermez. Sonuç: Google Play, uygulamayı küçük ekranlı cihaz kullanıcılarına değil, başka filtreler uygulanmadığı sürece normal ve büyük ekranlı cihazların kullanıcılarına gösterir.

2. Örnek
Manifest, <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"> özelliğini tanımlıyor ve <supports-screens> öğesi içermiyor. Sonuç: Başka bir filtre uygulanmadığı sürece Google Play, uygulamayı tüm cihazlardaki kullanıcılara gösterir.

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

Uygulamanızda ekran boyutları için destek beyanını nasıl yapacağınız hakkında daha fazla bilgi için <supports-screens> ve Birden Fazla Ekranı Destekleme bölümlerine bakın.

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

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

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

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

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

<uses-feature> Cihaz Özellikleri
(name)

Bir uygulama, belirli cihaz özelliklerinin cihazda bulunmasını gerektirebilir. Bu işlev Android 2.0'da (API Düzeyi 5) kullanıma sunulmuştur.

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

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

Bilgilerin tamamı için <uses-feature> adresini ziyaret edin.

Belirtilen özelliklere göre filtreleme: Bazı durumlarda Google Play, <uses-permission> öğeleri aracılığıyla istenen izinleri <uses-feature> öğelerinde açıklananlara eşdeğer özellik gereksinimleri olarak yorumlar. Aşağıdaki <uses-permission> konusuna 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 kılabilir.

1. Örnek
Bir uygulama, manifest dosyasında openGlEsVersion öğesini birden fazla kez belirterek birden çok OpenGL-ES sürümü isteğinde bulunur. Sonuç: Google Play, uygulamanın belirtilen sürümler arasından en yüksek olanı gerektirdiğini varsayar.

2. Örnek
Bir uygulama OpenGL-ES sürüm 1.1'i istiyor ve bir kullanıcı, OpenGL-ES sürüm 2.0'ı destekleyen bir cihazda uygulama arıyor. Sonuç: Başka bir filtre uygulanmadığı sürece Google Play, uygulamayı kullanıcıya gösterir. Bir cihazın OpenGL-ES X sürümünü desteklediğini bildiriyorsa Google Play, X'ten önceki 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 önceki bir sürümü çalıştıran bir cihaz) uygulamaları arıyordur. Sonuç: Google Play, cihazın yalnızca OpenGL-ES 1.0'ı desteklediğini varsayar. Google Play yalnızca openGlEsVersion belirtmeyen kullanıcı uygulamalarını veya 1.0'dan daha yüksek bir OpenGL-ES sürümü belirtmeyen uygulamaları gösterir.

4. Örnek
Manifest, openGlEsVersion belirtmiyor. Sonuç: Başka bir filtre uygulanmadığı sürece Google Play, uygulamayı tüm kullanıcılara gösterir.

Ayrıntılı 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ığına ihtiyaç duyuyor ve kullanıcı, com.google.android.maps kitaplığı olmayan bir cihazda uygulamaları arıyor. Sonuç: Google Play, uygulamayı kullanıcıya göstermez.

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

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

<uses-permission>  

Daha açık bir şekilde belirtmek gerekirse Google Play <uses-permission> öğelerine göre filtreleme yapmaz. Bununla birlikte, uygulamanın <uses-feature> öğelerinde düzgün bir şekilde bildirilmemiş olabilecek donanım özelliği gereksinimleri olup olmadığını belirlemek için öğeleri okur. Örneğin, bir uygulama CAMERA iznini ister ancak android.hardware.camera için bir <uses-feature> öğesi beyan etmezse Google Play, uygulamanın kamera gerektirdiğini ve cihazlarında kamera bulunmayan kullanıcılara gösterilmemesi gerektiğini kabul eder.

Genel olarak, bir uygulama donanımla ilgili izinler isterse Google Play, <uses-feature> beyanlarına karşılık gelen bir şey olmasa bile uygulamanın temel donanım özelliklerini gerektirdiğini varsayar. Google Play daha sonra <uses-feature> bildirimlerinde belirtilen özelliklere göre filtrelemeyi ayarlar.

Donanım özelliklerini belirten izinlerin listesi için <uses-feature> öğesinin dokümanlarına bakın.

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

Bir uygulama için minimum bir API düzeyi gerekli olabilir.

1. Örnek
Manifest'te <uses-sdk android:minSdkVersion="3"> yer alıyor 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, uygulamayı kullanıcıya göstermez.

2. Örnek
Manifest'te minSdkVersion yok, uygulama ise 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 öğesinin "1" olduğunu ve uygulamanın tüm Android sürümleriyle uyumlu olduğunu varsayar. Google Play, uygulamayı kullanıcıya gösterir ve kullanıcının uygulamayı indirmesine olanak tanır. Uygulama, çalışma zamanında kilitlenir.

Bu ikinci senaryoyla karşılaşmak istemediğiniz için her zaman minSdkVersion beyan etmenizi öneririz. Ayrıntılar için android:minSdkVersion bölümünü 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 kılmaz. Ayrıca, bir uygulamanın manifest dosyasında maxSdkVersion ayarlanmışsa SDK derlemez. Google Play, maxSdkVersion ile derlenmiş cihazlarda bu ayarı dikkate alır ve filtreleme için kullanır.

maxSdkVersion belirtilmesi önerilmez. Ayrıntılar için android:maxSdkVersion bölümünü inceleyin.

Gelişmiş manifest filtreleri

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

Bu manifest öğeleri ve tetikledikleri filtreleme yalnızca istisnai kullanım alanları içindir. Bu uygulamalar, uygulama dağıtımıyla ilgili katı denetimler 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 filtrelemesi için gelişmiş manifest öğeleri.

Manifest ÖğesiÖzet
<compatible-screens>

Cihazın ekran boyutu ve yoğunluğu, <compatible-screens> öğesindeki (<screen> öğesi tarafından tanımlanmış) ekran yapılandırmalarından hiçbiriyle eşleşmiyorsa Google Play uygulamayı filtreler.

Dikkat: Normalde bu manifest öğesini kullanmamalısınız. Bu öğenin kullanılması, listelemediğiniz tüm ekran boyutu ve yoğunluk 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 için bunun yerine <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 biri veya daha fazlası cihaz tarafından da desteklenmiyorsa Google Play uygulamayı filtreler.

Diğer filtreler

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

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

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

Google Play'deki aramalarda ve göz atma bölümünde yalnızca yayınlanan uygulamalar görünür.

Bir uygulama yayından kaldırılmış olsa bile, kullanıcılar satın aldıkları, yükledikleri veya yakın zamanda kaldırılmış olan uygulamaların İndirilenler alanında görebiliyorlarsa söz konusu uygulamayı yükleyebilirler.

Bir uygulama askıya alınırsa, kullanıcılar İndirilenler bölümünde görünse bile uygulamayı yeniden yükleyemez veya güncelleyemezler.

Fiyatlı Durum

Ücretli uygulamaları tüm kullanıcılar göremez. Ücretli uygulamaları göstermek için cihazın Android 1.1 veya sonraki bir sürümünü çalıştırıyor olması ve ücretli uygulamaların kullanılabildiği bir ülkede olması gerekir. Bir cihazda SIM kart varsa ücretli uygulamaların kullanılıp kullanılamayacağını SIM operatörü belirler. Bir cihazda SIM kart yoksa, cihazın ücretli uygulamaların kullanılabildiği bir ülkede olup olmadığını belirlemek için IP adresi kullanılır.

Ülke Hedefleme

Uygulamanızı Google Play'e yüklediğinizde Fiyatlandırma ve Dağıtım bölümünden uygulamanızın dağıtılacağı ülkeleri seçebilirsiniz. Bunun ardından uygulama yalnızca seçtiğiniz ülkelerdeki kullanıcılara sunulur.

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ı kullanmayla ilgili ayrıntılar için Android NDK nedir? bölümüne bakın.

Kopyalamaya Karşı Korunan Uygulamalar

Google artık Play Console'daki Kopyalama Koruması özelliğini desteklemiyor ve artık uygulamaları buna göre filtrelemez. 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ştirme bölümüne bakın.

Farklı filtrelere sahip birden fazla APK yayınlama

Bazı Google Play filtreleri, farklı cihaz yapılandırmalarına farklı bir APK sağlamak amacıyla aynı uygulama için birden fazla APK yayınlamanıza olanak tanır. Örneğin, yüksek kaliteli grafik öğeler kullanan bir video oyunu oluşturuyorsanız her biri farklı doku sıkıştırma biçimlerini destekleyen iki APK oluşturmak isteyebilirsiniz. Bu şekilde, yalnızca her cihaz yapılandırması için gereken dokuları ekleyerek APK dosyasının boyutunu küçültebilirsiniz. Google Play, her cihazın doku sıkıştırma biçimlerinizi desteklemeye bağlı olarak, söz konusu cihazı desteklediğini beyan ettiğiniz APK'yı sunar.

Google Play şu anda yalnızca her bir APK aşağıdaki yapılandırmalara dayalı farklı filtreler sağladığında aynı uygulama için birden fazla APK yayınlamanıza izin vermektedir:

  • 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)

    Belirli bir CPU mimarisini (örneğin, ARM EABI v7 veya x86) hedefleyen, Android NDK ile oluşturulan yerel kitaplıkları ekleyerek.

Diğer tüm filtreler her zamanki gibi çalışmaya devam eder, ancak Google Play'deki aynı uygulama girişi içinde bir APK'yı diğerinden ayırt edebilen tek filtre bu dört filtredir. Örneğin, APK'lar yalnızca cihazın kamerasına göre farklılık gösteriyorsa 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ırmada uygun güncelleme yollarının olmasını sağlamak için 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 bilgiye ihtiyacınız varsa Birden Fazla APK Desteği başlıklı makaleyi okuyun.

Ayrıca bkz.

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