Filter bei Google Play

Wenn ein Nutzer bei Google Play nach Apps zum Herunterladen sucht, werden die Ergebnisse anhand der Apps gefiltert, die mit dem Gerät kompatibel sind. Wenn für eine App beispielsweise eine Kamera erforderlich ist, wird die App bei Google Play nicht auf Geräten ohne Kamera angezeigt. Diese Filterung hilft Entwicklern, die Verteilung ihrer Apps zu verwalten, und trägt zu einer optimalen Nutzererfahrung bei.

Die Filterung in Google Play basiert auf verschiedenen Arten von App-Metadaten und Konfigurationseinstellungen, darunter Manifestdeklarationen, erforderliche Bibliotheken, Architekturabhängigkeiten und Verteilungseinstellungen, die in der Google Play Console festgelegt werden, z. B. geografisches Targeting und Preise.

Die Google Play-Filterfunktionen basieren zum Teil auf Manifestdeklarationen und anderen Aspekten des Android-Frameworks. Das tatsächliche Filterverhalten unterscheidet sich jedoch vom Framework und ist nicht an bestimmte API-Level gebunden. In diesem Dokument werden die aktuellen Filterregeln angegeben, die von Google Play verwendet werden.

So funktionieren Filter bei Google Play

Google Play verwendet die unten beschriebenen Filtereinschränkungen, um zu bestimmen, ob Ihre App einem Nutzer angezeigt wird, der über die Google Play App im Internet surft oder nach Apps sucht.

Bei der Entscheidung, ob deine App angezeigt werden soll, prüft Google Play die Hardware- und Softwareanforderungen des Geräts sowie den Mobilfunkanbieter, den Standort und andere Eigenschaften. Anschließend werden diese mit den Einschränkungen und Abhängigkeiten verglichen, die in der Manifestdatei und den Veröffentlichungsdetails der Anwendung angegeben sind.

Wenn die Anwendung gemäß den Filterregeln mit dem Gerät kompatibel ist, zeigt Google Play dem Nutzer die Anwendung an. Andernfalls wird Ihre App von Google Play aus den Suchergebnissen und der Kategoriesuche ausgeblendet, selbst wenn ein Nutzer die App ausdrücklich anfordert, indem er auf einen Deeplink klickt, der direkt auf die ID der App in Google Play verweist.

Sie können eine beliebige Kombination der verfügbaren Filter für Ihre App verwenden. Beispielsweise können Sie als minSdkVersion-Anforderung "4" und in der App smallScreens="false" festlegen. Wenn Sie die App dann bei Google Play hochladen, können Sie sie nur auf europäische Länder (Mobilfunkanbieter) ausrichten. Die Filter von Google Play verhindern somit, dass die App auf Geräten verfügbar ist, die nicht alle drei dieser Anforderungen erfüllen.

Alle Filtereinschränkungen sind mit der Version einer Anwendung verknüpft und können sich von Version zu Version ändern. Wenn ein Nutzer beispielsweise Ihre Anwendung installiert hat und Sie ein Update veröffentlichen, durch das die App für den Nutzer unsichtbar wird, kann der Nutzer nicht sehen, dass ein Update verfügbar ist.

Filtern auf der Google Play-Website

Auf der Google Play-Website werden Nutzern alle veröffentlichten Apps angezeigt. Die Google Play-Website vergleicht jedoch im Hinblick auf Kompatibilität die Anforderungen der Anwendung mit den einzelnen registrierten Geräten des Nutzers und gestattet dem Nutzer die Installation der App nur, wenn sie mit dem jeweiligen Gerät kompatibel ist.

Anhand des App-Manifests filtern

Die meisten Filter werden durch Elemente in der Manifestdatei AndroidManifest.xml einer App ausgelöst. Allerdings kann nicht alles in der Manifestdatei die Filterung auslösen. In Tabelle 1 sind die Manifestelemente aufgeführt, die Sie zum Auslösen der Filterung verwenden sollten. Außerdem wird erläutert, wie die Filterung für jedes Element funktioniert.

Tabelle 1 Manifestelemente, die bei Google Play eine Filterung auslösen.

Manifestelement Filtername Funktionsweise
<supports-screens> Displaygröße

Eine App gibt Attribute des <supports-screens>-Elements an, um die möglichen Bildschirmgrößen anzugeben. Wenn die App veröffentlicht wird, verwendet Google Play diese Attribute, um zu bestimmen, ob die App Nutzern basierend auf der Bildschirmgröße ihrer Geräte angezeigt wird.

In der Regel geht Google Play davon aus, dass die Plattform auf dem Gerät kleinere Layouts an größere Bildschirme anpassen kann, größere jedoch nicht an kleinere Bildschirme. Wenn eine App also ausschließlich Unterstützung für eine „normale“ Bildschirmgröße deklariert, stellt Google Play die App sowohl für Geräte mit normalem als auch für große Bildschirme zur Verfügung, filtert sie jedoch so, dass sie nicht für Geräte mit kleinen Bildschirmen verfügbar ist.

Wenn eine App keine Attribute für <supports-screens> deklariert, verwendet Google Play für diese Attribute die Standardwerte, die sich je nach API-Ebene unterscheiden. Im Detail:

  • Bei Anwendungen, in denen für android: minSdkVersion oder android: targetSdkVersion der Wert 3 oder niedriger festgelegt ist, ist das Element <supports-screens> selbst nicht definiert und es sind keine Attribute verfügbar. In diesem Fall geht Google Play davon aus, dass die App für Bildschirme in normaler Größe entwickelt wurde, und zeigt sie auf Geräten mit normalen oder größeren Bildschirmen an.

  • Wenn android: minSdkVersion oder android: targetSdkVersion auf 4 oder höher festgelegt ist, ist der Standardwert für alle Attribute "true". Auf diese Weise wird davon ausgegangen, dass die Anwendung standardmäßig alle Bildschirmgrößen unterstützt.

Beispiel 1
Das Manifest deklariert <uses-sdk android:minSdkVersion="3"> und enthält kein <supports-screens>-Element. Ergebnis: Nutzern von Geräten mit kleinem Bildschirm wird die App nicht in Google Play angezeigt, sondern nur Nutzern von Geräten mit normalen und großen Bildschirmen, sofern keine anderen Filter angewendet werden.

Beispiel 2
Das Manifest deklariert <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"> und enthält kein <supports-screens>-Element. Ergebnis: Google Play zeigt die App Nutzern auf allen Geräten an, sofern keine anderen Filter angewendet werden.

Beispiel 3
Das Manifest deklariert <uses-sdk android:minSdkVersion="4"> und enthält kein <supports-screens>-Element. Ergebnis: Sofern keine anderen Filter angewendet werden, wird die App in Google Play allen Nutzern angezeigt.

Weitere Informationen dazu, wie du die Unterstützung für Bildschirmgrößen in deiner App angibst, findest du unter <supports-screens> und Unterstützung verschiedener Bildschirme.

<uses-configuration> Gerätekonfiguration:
, Navigation, Touchscreen

Eine App kann bestimmte Hardwarefunktionen anfordern. Google Play zeigt die App dann nur auf Geräten mit der erforderlichen Hardware an.

Beispiel 1
Das Manifest enthält <uses-configuration android:reqFiveWayNav="true" />. Ein Nutzer sucht auf einem Gerät nach Apps, auf dem es keine Fünf-Wege-Navigationssteuerung gibt. Ergebnis: Google Play zeigt dem Nutzer die App nicht an.

Beispiel 2
Das Manifest enthält kein <uses-configuration>-Element. Ergebnis: Sofern keine anderen Filter angewendet werden, wird die App allen Nutzern in Google Play angezeigt.

Weitere Informationen finden Sie unter <uses-configuration>.

<uses-feature> Gerätefunktionen
(name)

Für eine Anwendung können bestimmte Gerätefunktionen erforderlich sein. Diese Funktion wurde in Android 2.0 (API-Level 5) eingeführt.

Beispiel 1
Das Manifest enthält <uses-feature android:name="android.hardware.sensor.light" /> und ein Nutzer sucht auf einem Gerät ohne Lichtsensor nach Apps. Ergebnis: Google Play zeigt dem Nutzer die App nicht an.

Beispiel 2:
Das Manifest enthält kein <uses-feature>-Element. Ergebnis: Google Play zeigt die App allen Nutzern an, sofern keine anderen Filter angewendet werden.

Vollständige Informationen finden Sie unter <uses-feature> .

Filterung basierend auf implizierten Funktionen:In einigen Fällen interpretiert Google Play die über <uses-permission>-Elemente angeforderten Berechtigungen als Funktionsanforderungen, die den in <uses-feature>-Elementen festgelegten Anforderungen entsprechen. Siehe <uses-permission> unten.

OpenGL-ES-Version
(openGlEsVersion)

Für eine Anwendung kann es erforderlich sein, dass das Gerät über das Attribut <uses-feature android:openGlEsVersion="int"> eine bestimmte OpenGL-ES-Version unterstützt.

Beispiel 1:
Eine App fordert mehrere OpenGL-ES-Versionen an, indem openGlEsVersion im Manifest mehrmals angegeben wird. Ergebnis: Google Play geht davon aus, dass für die App die höchste der angegebenen Versionen erforderlich ist.

Beispiel 2
Eine App fordert OpenGL-ES Version 1.1 an und ein Nutzer sucht auf einem Gerät nach Apps, das OpenGL-ES Version 2.0 unterstützt. Ergebnis: Sofern keine anderen Filter angewendet werden, wird dem Nutzer die App in Google Play angezeigt. Wenn ein Gerät meldet, dass es die OpenGL-ES-Version X unterstützt, geht Google Play davon aus, dass es auch alle Versionen vor X unterstützt.

Beispiel 3
Ein Nutzer sucht auf einem Gerät nach Apps, das keine OpenGL ES-Version meldet (z. B. ein Gerät mit Android 1.5 oder niedriger). Ergebnis: Google Play geht davon aus, dass das Gerät nur OpenGL-ES 1.0 unterstützt. Google Play zeigt nur die Nutzer-Apps an, für die openGlEsVersion nicht festgelegt ist, oder Apps, die keine OpenGL-ES-Version höher als 1.0 haben.

Beispiel 4
openGlEsVersion ist im Manifest nicht angegeben. Ergebnis: Sofern keine anderen Filter angewendet werden, wird die App allen Nutzern in Google Play angezeigt.

Weitere Informationen finden Sie unter <uses-feature>.

<uses-library> Softwarebibliotheken

Für eine Anwendung können bestimmte gemeinsam genutzte Bibliotheken auf dem Gerät vorhanden sein.

Beispiel 1
Für eine App ist die Bibliothek com.google.android.maps erforderlich und ein Nutzer sucht auf einem Gerät nach Apps, auf dem die Bibliothek com.google.android.maps nicht vorhanden ist. Ergebnis: Google Play zeigt dem Nutzer die App nicht an.

Beispiel 2
Das Manifest enthält kein <uses-library>-Element. Ergebnis: Sofern keine anderen Filter angewendet werden, wird die App allen Nutzern in Google Play angezeigt.

Weitere Informationen finden Sie unter <uses-library>.

<uses-permission>  

Google Play filtert grundsätzlich nicht nach <uses-permission>-Elementen. Die Elemente werden jedoch gelesen, um festzustellen, ob für die Anwendung Anforderungen an Hardwarefunktionen gelten, die in <uses-feature>-Elementen möglicherweise nicht richtig deklariert wurden. Wenn eine App beispielsweise die Berechtigung CAMERA anfordert, aber kein <uses-feature>-Element für android.hardware.camera deklariert, geht Google Play davon aus, dass die App eine Kamera erfordert und Nutzern, deren Geräte keine Kamera bieten, nicht angezeigt werden sollte.

Wenn eine App hardwarebezogene Berechtigungen anfordert, geht Google Play im Allgemeinen davon aus, dass die App die zugrunde liegenden Hardwarefunktionen erfordert, auch wenn es keine entsprechenden <uses-feature>-Deklarationen gibt. Google Play richtet dann die Filterung anhand der Funktionen ein, die in den <uses-feature>-Deklarationen angegeben sind.

Eine Liste der Berechtigungen, die Hardwarefunktionen implizieren, findest du in der Dokumentation zum Element <uses-feature>.

<uses-sdk> Mindestversion des Frameworks (minSdkVersion)

Für eine Anwendung kann ein Mindest-API-Level erforderlich sein.

Beispiel 1
Das Manifest enthält <uses-sdk android:minSdkVersion="3"> und die App verwendet APIs, die in API-Level 3 eingeführt wurden. Ein Nutzer sucht auf einem Gerät mit API-Level 2 nach Apps. Ergebnis: Google Play zeigt dem Nutzer die App nicht an.

Beispiel 2
minSdkVersion ist im Manifest nicht enthalten und die App verwendet APIs, die in API-Level 3 eingeführt wurden. Ein Nutzer sucht auf einem Gerät mit API-Level 2 nach Apps. Ergebnis: Google Play geht davon aus, dass minSdkVersion den Wert „1“ hat und die App mit allen Android-Versionen kompatibel ist. Google Play zeigt dem Nutzer die App an und ermöglicht es ihm, die App herunterzuladen. Die App stürzt zur Laufzeit ab.

Um dieses zweite Szenario zu vermeiden, empfehlen wir, immer minSdkVersion zu deklarieren. Weitere Informationen finden Sie unter android:minSdkVersion.

Maximale Framework-Version (maxSdkVersion)

Eingestellt. Unter Android 2.1 und höher wird das Attribut maxSdkVersion weder überprüft noch erzwungen. Das SDK wird nicht kompiliert, wenn maxSdkVersion im Manifest einer App festgelegt ist. Geräte, die bereits mit maxSdkVersion kompiliert wurden, werden von Google Play berücksichtigt und zum Filtern verwendet.

Die Deklaration von maxSdkVersion wird nicht empfohlen. Weitere Informationen finden Sie unter android:maxSdkVersion.

Erweiterte Manifestfilter

Zusätzlich zu den Manifestelementen in Tabelle 1 kann Google Play Apps auch anhand der erweiterten Manifestelemente in Tabelle 2 filtern.

Diese Manifestelemente und die durch sie ausgelöste Filterung sind nur für außergewöhnliche Anwendungsfälle gedacht. Sie sind für bestimmte Arten von Hochleistungsspielen und ähnlichen Anwendungen konzipiert, die strenge Kontrollen für die Bereitstellung von Anwendungen erfordern. Die meisten Anwendungen sollten diese Filter niemals verwenden.

Tabelle 2 Erweiterte Manifestelemente für die Google Play-Filterung.

ManifestelementZusammenfassung
<compatible-screens>

Google Play filtert die App, wenn die Bildschirmgröße und -dichte des Geräts mit keiner der durch ein <screen>-Element deklarierten Bildschirmkonfigurationen im <compatible-screens>-Element übereinstimmt.

Achtung:Normalerweise sollten Sie dieses Manifestelement nicht verwenden. Durch die Verwendung dieses Elements kann die potenzielle Nutzerbasis Ihrer App erheblich reduziert werden, da alle Kombinationen aus Bildschirmgröße und -dichte ausgeschlossen werden, die nicht aufgeführt sind. Verwenden Sie stattdessen das Manifestelement <supports-screens> (oben in Tabelle 1 beschrieben), um den Bildschirmkompatibilitätsmodus für Bildschirmkonfigurationen zu aktivieren, die Sie nicht mit alternativen Ressourcen berücksichtigt haben.

<supports-gl-texture>

Google Play filtert die Anwendung, es sei denn, eines oder mehrere der von der Anwendung unterstützten GL-Texturkomprimierungsformate werden auch vom Gerät unterstützt.

Andere Filter

Google Play verwendet weitere App-Eigenschaften, um zu bestimmen, ob eine App für einen bestimmten Nutzer auf einem bestimmten Gerät ein- oder ausgeblendet wird, wie in der folgenden Tabelle beschrieben.

Tabelle 3 App- und Veröffentlichungseigenschaften, die sich auf die Filterung bei Google Play auswirken.

Filtername Funktionsweise
Veröffentlichungsstatus

Bei Google Play werden bei Suchanfragen und beim Surfen nur veröffentlichte Apps angezeigt.

Auch wenn eine App nicht veröffentlicht ist, kann sie installiert werden, wenn Nutzer die App in ihrem Downloadbereich zusammen mit ihren gekauften, installierten oder kürzlich deinstallierten Apps sehen können.

Wenn eine App gesperrt wurde, können Nutzer sie nicht neu installieren oder aktualisieren, auch wenn sie in ihren Downloads angezeigt wird.

Preisstatus

Nicht alle Nutzer können kostenpflichtige Apps sehen. Zur Anzeige kostenpflichtiger Apps muss auf dem Gerät Android 1.1 oder höher installiert sein und es muss sich in einem Land befinden, in dem kostenpflichtige Apps verfügbar sind. Wenn ein Gerät eine SIM-Karte hat, bestimmt der Mobilfunkanbieter, ob kostenpflichtige Apps verfügbar sind. Wenn ein Gerät keine SIM-Karte hat, wird anhand der IP-Adresse des Geräts festgestellt, ob sich das Gerät in einem Land befindet, in dem kostenpflichtige Apps verfügbar sind.

Länderausrichtung

Wenn du deine App bei Google Play hochlädst, kannst du unter Preisgestaltung und Vertrieb die Länder auswählen, in denen du deine App vertreiben möchtest. Die App ist dann nur für Nutzer in den von dir ausgewählten Ländern verfügbar.

CPU-Architektur (ABI)

Eine Anwendung mit nativen Bibliotheken, die auf eine bestimmte CPU-Architektur ausgerichtet sind (z. B. ARM EABI v7 oder x86), sind nur auf Geräten sichtbar, die diese Architektur unterstützen. Weitere Informationen zum NDK und zur Verwendung nativer Bibliotheken finden Sie unter Was ist der Android-NDK?

Kopiergeschützte Anwendungen

Google Play unterstützt die Kopierschutzfunktion in der Play Console nicht mehr und filtert Apps nicht mehr entsprechend. Verwenden Sie stattdessen die Anwendungslizenzierung, um Ihre Anwendung zu sichern. Weitere Informationen finden Sie unter Ersatz für Kopierschutz.

Mehrere APKs mit unterschiedlichen Filtern veröffentlichen

Mit bestimmten Google Play-Filtern kannst du mehrere APKs für dieselbe App veröffentlichen, um ein anderes APK für verschiedene Gerätekonfigurationen bereitzustellen. Wenn Sie beispielsweise ein Videospiel erstellen, das High-Fidelity-Grafikinhalte verwendet, können Sie zwei APKs erstellen, die jeweils unterschiedliche Texturkomprimierungsformate unterstützen. Auf diese Weise können Sie die Größe der APK-Datei reduzieren, indem Sie nur die Texturen einschließen, die für die jeweilige Gerätekonfiguration erforderlich sind. Abhängig davon, wie das jeweilige Gerät Ihre Texturkomprimierungsformate unterstützt, stellt Google Play das APK bereit, das Sie für dieses Gerät deklariert haben.

Derzeit können Sie in Google Play nur dann mehrere APKs für dieselbe App veröffentlichen, wenn jedes APK unterschiedliche Filter basierend auf den folgenden Konfigurationen bietet:

  • OpenGL-Texturkomprimierungsformate

    Mithilfe des Elements <supports-gl-texture>.

  • Bildschirmgröße (und optional Bildschirmdichte)

    Mithilfe des Elements <supports-screens> oder <compatible-screens>.

  • API-Ebene

    Mithilfe des Elements <uses-sdk>.

  • CPU-Architektur (ABI)

    Native Bibliotheken, die mit dem Android NDK erstellt wurden und auf eine bestimmte CPU-Architektur ausgerichtet sind (z. B. ARM EABI v7 oder x86)

Alle anderen Filter funktionieren weiterhin wie gewohnt, aber diese vier sind die einzigen Filter, mit denen sich ein APK innerhalb desselben App-Eintrags bei Google Play von einem anderen unterscheiden lässt. Sie können beispielsweise nicht mehrere APKs für dieselbe App veröffentlichen, wenn sich die APKs nur dadurch unterscheiden, ob das Gerät über eine Kamera verfügt.

Achtung:Die Veröffentlichung mehrerer APKs für dieselbe App gilt als erweiterte Funktion und die meisten Apps sollten nur ein APK veröffentlichen, das eine breite Palette von Gerätekonfigurationen unterstützt. Wenn Sie mehrere APKs veröffentlichen, müssen Sie bestimmte Regeln in Ihren Filtern beachten und besonders auf die Versionscodes für die einzelnen APKs achten, damit die Updatepfade für jede Konfiguration korrekt sind.

Weitere Informationen zum Veröffentlichen mehrerer APKs bei Google Play finden Sie unter Unterstützung für mehrere APKs.

Siehe auch

  1. Android-Kompatibilität
  2. Unterstützung mehrerer APKs