Filter bei Google Play

Wenn ein Nutzer nach Apps sucht, die er bei Google Play herunterladen kann, werden die Ergebnisse nach der Kompatibilität mit dem Gerät gefiltert. Wenn für eine App beispielsweise eine Kamera erforderlich ist, wird sie bei Google Play nicht auf Geräten angezeigt, die keine Kamera haben. Diese Filterung hilft Entwicklern, die Bereitstellung ihrer Apps zu verwalten und für eine bestmögliche Nutzererfahrung zu sorgen.

Die Filterung bei Google Play basiert auf verschiedenen Arten von App-Metadaten und Konfigurationseinstellungen, einschließlich Manifestdeklarationen, erforderlichen Bibliotheken, Architekturabhängigkeiten und Vertriebssteuerungen, die in der Google Play Console festgelegt sind, z. B. geografische Ausrichtung und Preise.

Die Google Play-Filterung basiert teilweise auf Manifestdeklarationen und anderen Aspekten des Android-Frameworks. Das tatsächliche Filterverhalten unterscheidet sich jedoch vom Framework und ist nicht an bestimmte API-Ebenen gebunden. In diesem Dokument werden die aktuellen Filterregeln von Google Play beschrieben.

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 in der Google Play App nach Apps sucht oder diese durchsucht.

Bei der Entscheidung, ob Ihre App angezeigt werden soll, prüft Google Play die Hardware- und Softwareanforderungen des Geräts sowie den Mobilfunkanbieter, den Standort und andere Merkmale. 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 App gemäß den Filterregeln mit dem Gerät kompatibel ist, wird sie dem Nutzer von Google Play angezeigt. Andernfalls wird Ihre App von Google Play in den Suchergebnissen und in der Kategorieauswahl ausgeblendet, auch wenn ein Nutzer die App ausdrücklich anfordert, indem er auf einen Deeplink klickt, der direkt auf die App-ID bei Google Play verweist.

Sie können die verfügbaren Filter für Ihre App beliebig kombinieren. Sie können beispielsweise eine minSdkVersion-Anforderung von "4" festlegen und smallScreens="false" in der App einrichten. Wenn Sie die App dann bei Google Play hochladen, können Sie die Ausrichtung nur auf europäische Länder (Mobilfunkanbieter) festlegen. So verhindern die Filter von Google Play, dass die Anwendung auf Geräten verfügbar ist, die nicht allen drei Anforderungen entsprechen.

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

Filtern auf der Google Play-Website

Wenn Nutzer die Google Play-Website aufrufen, sehen sie alle veröffentlichten Apps. Auf der Google Play-Website werden die Anwendungsanforderungen jedoch mit den registrierten Geräten des Nutzers verglichen, um die Kompatibilität zu prüfen. Die App kann nur installiert werden, wenn sie mit dem Gerät kompatibel ist.

Filtern nach App-Manifest

Die meisten Filter werden durch Elemente in der Manifestdatei einer Anwendung (AndroidManifest.xml) ausgelöst. Nicht alle Elemente in der Manifestdatei können jedoch ein Filtern auslösen. In Tabelle 1 sind die Manifestelemente aufgeführt, mit denen Sie die Filterung auslösen sollten. Außerdem wird erläutert, wie die Filterung für jedes Element funktioniert.

Tabelle 1 Manifest-Elemente, die die Filterung bei Google Play auslösen.

Manifest-Element Filtername Funktionsweise
<supports-screens> Bildschirmgröße

Eine Anwendung gibt die Bildschirmgrößen an, die sie unterstützen kann, indem sie Attribute des <supports-screens>-Elements festlegt. Wenn die App veröffentlicht wird, verwendet Google Play diese Attribute, um anhand der Bildschirmgrößen der Geräte zu bestimmen, ob die App Nutzern angezeigt werden soll.

Google Play geht davon aus, dass die Plattform auf dem Gerät kleinere Layouts an größere Bildschirme anpassen kann, größere Layouts jedoch nicht an kleinere Bildschirme. Wenn eine App also nur die Unterstützung einer „normalen“ Bildschirmgröße angibt, stellt Google Play die App sowohl für Geräte mit normalem als auch mit großem Display zur Verfügung, filtert sie aber so, dass sie nicht für Geräte mit kleinem Display verfügbar ist.

Wenn eine Anwendung keine Attribute für <supports-screens> deklariert, verwendet Google Play die Standardwerte für diese Attribute, die je nach API-Level variieren. Im Detail:

  • Bei Anwendungen, bei denen entweder android: minSdkVersion oder android: targetSdkVersion auf 3 oder weniger gesetzt 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 Anwendung für Bildschirme normaler Größe entwickelt wurde, und zeigt sie auf Geräten mit normaler oder größerer Bildschirmgröße an.
  • Wenn entweder android: minSdkVersion oder android: targetSdkVersion auf „4“ oder höher gesetzt ist, ist der Standardwert für alle Attribute "true". So wird davon ausgegangen, dass die Anwendung standardmäßig alle Bildschirmgrößen unterstützt.

Beispiel 1
Im Manifest ist <uses-sdk android:minSdkVersion="3"> deklariert und es enthält kein <supports-screens>-Element. Ergebnis: Google Play zeigt die App Nutzern mit Geräten mit kleinem Bildschirm nicht an, sondern Nutzern mit Geräten mit normalem und großem Bildschirm, sofern keine anderen Filter angewendet werden.

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

Beispiel 3
Im Manifest ist <uses-sdk android:minSdkVersion="4"> deklariert und es enthält kein <supports-screens>-Element. Ergebnis: Die App wird allen Nutzern bei Google Play angezeigt, sofern keine anderen Filter angewendet werden.

Weitere Informationen zum Deklarieren der Unterstützung für Bildschirmgrößen in Ihrer App finden Sie unter <supports-screens> und Mehrere Bildschirme unterstützen.

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

Eine Anwendung kann bestimmte Hardwarefunktionen anfordern. Google Play zeigt die App dann nur auf Geräten an, die die erforderliche Hardware haben.

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

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

Weitere Informationen finden Sie unter <uses-configuration>.

<uses-feature> Gerätefunktionen
(name)

Für eine Anwendung können bestimmte Gerätefunktionen auf dem Gerät vorhanden 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 die App dem Nutzer nicht an.

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

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

Filterung anhand impliziter Funktionen:In einigen Fällen interpretiert Google Play Berechtigungen, die über <uses-permission>-Elemente angefordert werden, als Funktionsanforderungen, die den in <uses-feature>-Elementen angegebenen entsprechen. Siehe <uses-permission> unten.

OpenGL-ES-Version
(openGlEsVersion)

Eine Anwendung kann mit dem Attribut <uses-feature android:openGlEsVersion="int"> verlangen, dass das Gerät eine bestimmte OpenGL-ES-Version unterstützt.

Beispiel 1
Eine App fordert mehrere OpenGL-ES-Versionen an, indem openGlEsVersion mehrmals im Manifest 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: Google Play zeigt die App dem Nutzer an, sofern keine anderen Filter angewendet werden. 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 Nutzern nur Apps an, für die openGlEsVersion nicht angegeben ist, oder Apps, für die keine OpenGL-ES-Version höher als 1.0 angegeben ist.

Beispiel 4
Im Manifest ist openGlEsVersion nicht angegeben. Ergebnis: Die App wird allen Nutzern bei Google Play angezeigt, sofern keine anderen Filter angewendet werden.

Weitere Informationen finden Sie unter <uses-feature>.

<uses-library> Softwarebibliotheken

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

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

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

Weitere Informationen finden Sie unter <uses-library>.

<uses-permission>  

Google Play filtert streng genommen nicht nach <uses-permission>-Elementen. Die Elemente werden jedoch gelesen, um festzustellen, ob die Anwendung Hardwarefunktionsanforderungen hat, die möglicherweise nicht ordnungsgemäß in <uses-feature>-Elementen deklariert wurden. Wenn eine App beispielsweise die CAMERA-Berechtigung anfordert, aber kein <uses-feature>-Element für android.hardware.camera deklariert, geht Google Play davon aus, dass für die App eine Kamera erforderlich ist und sie Nutzern nicht angezeigt werden sollte, deren Geräte keine Kamera haben.

Wenn eine App hardwarebezogene Berechtigungen anfordert, geht Google Play davon aus, dass die zugrunde liegenden Hardwarefunktionen für die App erforderlich sind, auch wenn es keine entsprechenden <uses-feature>-Erklärungen gibt. Google Play richtet dann einen Filter ein, der auf den Funktionen basiert, die in den <uses-feature>-Erklärungen impliziert sind.

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

<uses-sdk> Framework-Mindestversion (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 die App dem Nutzer nicht an.

Beispiel 2
Das Manifest enthält keine minSdkVersion 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 „1“ ist und dass die App mit allen Android-Versionen kompatibel ist. Google Play zeigt die App dem Nutzer an und ermöglicht ihm, sie herunterzuladen. Die App stürzt bei der Laufzeit ab.

Da Sie dieses zweite Szenario vermeiden möchten, empfehlen wir Ihnen, immer eine minSdkVersion anzugeben. Weitere Informationen finden Sie unter android:minSdkVersion.

Maximale Framework-Version (maxSdkVersion)

Veraltet. Unter Android 2.1 und höher wird das Attribut maxSdkVersion nicht geprüft oder erzwungen. Das SDK wird nicht kompiliert, wenn maxSdkVersion im Manifest einer App festgelegt ist. Bei Geräten, die bereits mit maxSdkVersion kompiliert wurden, berücksichtigt Google Play diese Einstellung und verwendet sie für die Filterung.

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

Erweiterte Manifestfilter

Zusätzlich zu den Manifestelementen in Tabelle 1 können bei Google Play auch Anwendungen anhand der erweiterten Manifestelemente in Tabelle 2 gefiltert werden.

Diese Manifestelemente und die damit ausgelöste Filterung sind nur für Ausnahmefälle gedacht. Sie sind für bestimmte Arten von leistungsstarken Spielen und ähnlichen Anwendungen konzipiert, für die strenge Kontrollen der Anwendungsbereitstellung erforderlich sind. Die meisten Anwendungen sollten diese Filter niemals verwenden.

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

Manifest-ElementZusammenfassung
<compatible-screens>

Google Play filtert die Anwendung, wenn die Bildschirmgröße und -dichte des Geräts nicht mit einer der Bildschirmkonfigurationen (deklariert durch ein <screen>-Element) im <compatible-screens>-Element übereinstimmt.

Achtung:Normalerweise sollten Sie dieses Manifest-Element nicht verwenden. Wenn Sie dieses Element verwenden, kann die potenzielle Nutzerbasis für Ihre Anwendung erheblich reduziert werden, da alle Kombinationen von Bildschirmgröße und ‑dichte ausgeschlossen werden, die Sie nicht aufgeführt haben. Verwenden Sie stattdessen das Manifest-Element <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, mindestens eines der von der Anwendung unterstützten GL-Texturkomprimierungsformate wird auch vom Gerät unterstützt.

Andere Filter

Google Play verwendet andere Anwendungsmerkmale, um zu bestimmen, ob eine App für einen bestimmten Nutzer auf einem bestimmten Gerät angezeigt oder ausgeblendet werden soll, wie in der folgenden Tabelle beschrieben.

Tabelle 3 Eigenschaften von Apps und Veröffentlichungen, die sich auf die Filterung bei Google Play auswirken

Filtername Funktionsweise
Veröffentlichungsstatus

Nur veröffentlichte Apps werden bei Suchanfragen und beim Stöbern in Google Play angezeigt.

Auch wenn eine App nicht veröffentlicht ist, kann sie installiert werden, wenn Nutzer sie im Bereich „Downloads“ unter den gekauften, installierten oder vor Kurzem deinstallierten Apps sehen.

Wenn eine Anwendung 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. Damit kostenpflichtige Apps angezeigt werden, 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 SIM-Anbieter, ob kostenpflichtige Apps verfügbar sind. Wenn ein Gerät keine SIM-Karte hat, wird anhand der IP-Adresse des Geräts ermittelt, ob sich das Gerät in einem Land befindet, in dem kostenpflichtige Apps verfügbar sind.

Länderspezifisches Targeting

Wenn Sie Ihre App auf Google Play hochladen, können Sie unter Preisgestaltung und Vertrieb die Länder auswählen, in denen Ihre App angeboten werden soll. Die App ist dann nur für Nutzer in den von Ihnen ausgewählten Ländern verfügbar.

CPU-Architektur (ABI)

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

Kopiergeschützte Anwendungen

Google Play unterstützt die Funktion „Kopierschutz“ in der Play Console nicht mehr und filtert Apps nicht mehr auf dieser Grundlage. Verwenden Sie stattdessen die App-Lizenzierung, um Ihre App zu schützen. Weitere Informationen finden Sie unter Ersatz für Kopierschutz.

Mehrere APKs mit verschiedenen Filtern veröffentlichen

Mit einigen Google Play-Filtern können Sie mehrere APKs für dieselbe App veröffentlichen, um für verschiedene Gerätekonfigurationen ein anderes APK bereitzustellen. Wenn Sie beispielsweise ein Videospiel mit High-Fidelity-Grafik-Assets erstellen, können Sie zwei APKs erstellen, die jeweils unterschiedliche Texturkomprimierungsformate unterstützen. So können Sie die Größe der APK-Datei reduzieren, indem Sie nur die Texturen einschließen, die für jede Gerätekonfiguration erforderlich sind. Je nach Unterstützung der Texturkomprimierungsformate auf dem jeweiligen Gerät liefert Google Play das APK, das Sie für die Unterstützung dieses Geräts deklariert haben.

Derzeit können Sie bei 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

    Verwenden Sie dazu das Element <supports-gl-texture>.

  • Bildschirmgröße (und optional Bildschirmdichte)

    Über das Element <supports-screens> oder <compatible-screens>

  • API-Ebene

    Verwenden Sie dazu das Element <uses-sdk>.

  • CPU-Architektur (ABI)

    Dazu müssen Sie native Bibliotheken einbinden, 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. Diese vier Filter sind jedoch die einzigen, mit denen sich ein APK von einem anderen innerhalb desselben App-Eintrags bei Google Play unterscheiden lässt. Sie können beispielsweise nicht mehrere APKs für dieselbe Anwendung veröffentlichen, wenn sich die APKs nur dadurch unterscheiden, ob das Gerät eine Kamera hat.

Achtung:Das Veröffentlichen mehrerer APKs für dieselbe Anwendung gilt als erweiterte Funktion. Für die meisten Anwendungen sollte nur ein APK veröffentlicht werden, das eine Vielzahl von Gerätekonfigurationen unterstützt. Wenn Sie mehrere APKs veröffentlichen möchten, müssen Sie bestimmte Regeln in Ihren Filtern einhalten und die Versionscodes für jedes APK besonders sorgfältig prüfen, um für jede Konfiguration ordnungsgemäße Updatepfade zu gewährleisten.

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 für mehrere APKs