lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

Filtros en Google Play

Cuando un usuario busca o examina aplicaciones para descargar en Google Play, los resultados se filtran en función de las aplicaciones compatibles con el dispositivo. Por ejemplo, si una aplicación requiere una cámara, Google Play no mostrará la aplicación a los dispositivos que no tengan cámara. Este filtrado ayuda a los desarrolladores a administrar la distribución de sus aplicaciones y también ayuda a garantizar la mejor experiencia posible para los usuarios.

El filtrado en Google Play se basa en diversos tipos de metadatos de las aplicaciones y en los ajustes de configuración, incluidos los enunciados del manifiesto, las bibliotecas requeridas, las dependencias de arquitectura y los controles de distribución configurados en la Consola para desarrolladores de Google Play, como el perfilamiento geográfico, la fijación de precios, etc.

El filtrado en Google Play se basa en los enunciados del manifiesto y en otros aspectos del marco de Android, pero los comportamientos de filtrado reales son diferentes de los del marco y no están condicionados a niveles de API específicos. Este documento especifica las reglas actuales de filtrado que utiliza Google Play.

Cómo funcionan los filtros en Google Play

Google Play utiliza las restricciones de filtrado que se describen a continuación para determinar si se exhibirá tu aplicación a los usuarios que examinen o busquen aplicaciones en la Play Store de Google.

Para determinar si se exhibirá o no tu aplicación, Google Play comprueba los requisitos de hardware y software del dispositivo, como también su operador, ubicación y otras características. Luego los compara con las restricciones y dependencias que se indican en el archivo de manifiesto de la aplicación y en los detalles de publicación.

Si la aplicación es compatible con el dispositivo, de acuerdo con las reglas de filtrado, Google Play le muestra la aplicación al usuario. De lo contrario, Google Play oculta tu aplicación en los resultados de búsqueda y la exploración de categorías aunque un usuario solicite específicamente la aplicación haciendo clic en un vínculo profundo que apunte directamente a la ID de la aplicación en Google Play.

Puedes usar cualquier combinación de los filtros disponibles para tu aplicación. Por ejemplo, puedes establecer un requisito minSdkVersion de "4" y configurar smallScreens="false" en la aplicación; luego, al cargar la aplicación a Google Play, podrías apuntar a países (operadores) europeos únicamente. De este modo, los filtros de Google Play evitarán que la aplicación esté disponible en un dispositivo que no coincida con estos tres requisitos.

Todas las restricciones de filtrado están asociadas con una versión de la aplicación y pueden diferir entre versiones. Por ejemplo, si un usuario instaló tu aplicación y publicas una actualización que permite que la aplicación esté visible para el usuario, el usuario no verá que hay una actualización disponible.

Filtrado en el sitio web de Google Play

Cuando los usuarios examinan el sitio web de Google Play, pueden ver todas las aplicaciones publicadas. No obstante, el sitio web de Google Play compara los requisitos de la aplicación para cada uno de los dispositivos registrados del usuario a fin de determinar la compatibilidad, y solo les permite instalar la aplicación si es compatible con su dispositivo.

Filtrado en función del manifiesto de la aplicación

La mayoría de los filtros son activados por elementos del archivo de manifiesto de una aplicación, AndroidManifest.xml (aunque no todo lo que se encuentra en el archivo de manifiesto puede desencadenar el filtrado). La tabla 1 contiene los elementos del manifiesto que debes usar para desencadenar el filtrado y explica cómo funciona el filtrado para cada elemento.

Tabla 1: Elementos del manifiesto que desencadenan el filtrado en Google Play.

Elemento del manifiesto Nombre del filtro Cómo funciona
<supports-screens> Tamaño de pantalla

Una aplicación indica el tamaño de pantalla que puede admitir mediante la configuración de atributos del elemento <supports-screens>. Cuando se publica la aplicación, Google Play usa esos atributos para determinar si puede mostrar la aplicación a los usuarios en función de los tamaños de pantalla de sus dispositivos.

Como regla general, Google Play asume que la plataforma del dispositivo puede adaptar diseños más pequeños a pantallas más grandes, pero no puede adaptar diseños grandes a pantallas más pequeñas. Por lo tanto, si una aplicación declara compatibilidad con el tamaño de pantalla "normal" únicamente, Google Play exhibe la aplicación para dispositivos con pantallas normales y grandes, pero filtra la aplicación de modo que no esté disponible para dispositivos con pantalla pequeña.

Si una aplicación no declara atributos para <supports-screens>, Google Play utiliza los valores predeterminados para esos atributos, que varían según el nivel de API. Específicamente:

  • Para las aplicaciones que tienen android: minSdkVersion o android: targetSdkVersion configurados en 3 o menos, el elemento <supports-screens> se considera no definido y no habrá atributos disponibles. En ese caso, Google Play supone que la aplicación se diseñó para pantallas de tamaño normal y exhibe la aplicación a dispositivos con pantallas de tamaño normal o más grande.

  • Cuando android: minSdkVersion o android: targetSdkVersion están configurados en 4 o más, el valor predeterminado para todos los atributos es "true". De esta manera, se considera que la aplicación es compatible, de forma predeterminada, con todos los tamaños de pantalla.

Ejemplo 1
El manifiesto establece <uses-sdk android:minSdkVersion="3"> y no incluye un elemento <supports-screens>. Resultado: Google Play no le mostrará la aplicación a un usuario que tenga un dispositivo con pantalla pequeña, pero se la mostrará a los usuarios con dispositivos con pantallas de tamaño normal y grande, a menos que se apliquen otros filtros.

Ejemplo 2
El manifiesto establece <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"> y no incluye un elemento <supports-screens>. Resultado: Google Play mostrará la aplicación a los usuarios de todo tipo de dispositivos, a menos que se apliquen otros filtros.

Ejemplo 3
El manifiesto establece <uses-sdk android:minSdkVersion="4"> y no incluye un elemento <supports-screens>. Resultado: Google Play mostrará la aplicación a todos los usuarios, a menos que se apliquen otros filtros.

Para obtener más información acerca de cómo declarar la compatibilidad con tamaños de pantalla en tu aplicación, consulta <supports-screens> y Admisión de múltiples pantallas.

<uses-configuration> Configuración del dispositivo:
teclado, navegación y pantalla táctil

Una aplicación puede requerir ciertas características de hardware, y Google Play mostrará la aplicación únicamente a los dispositivos que tengan el hardware requerido.

Ejemplo 1
El manifiesto incluye <uses-configuration android:reqFiveWayNav="true" />, y un usuario está buscando aplicaciones en un dispositivo que no cuenta con un control de navegación de cinco vías. Resultado: Google Play no le mostrará la aplicación al usuario.

Ejemplo 2
El manifiesto no incluye un elemento <uses-configuration>. Resultado: Google Play mostrará la aplicación a todos los usuarios, a menos que se apliquen otros filtros.

Para obtener información detallada, consulta <uses-configuration>.

<uses-feature> Funciones del dispositivo
(name)

Una aplicación puede requerir que el dispositivo tenga ciertas funciones. Esta funcionalidad se introdujo en Android 2.0 (nivel 5 de la API).

Ejemplo 1
El manifiesto incluye <uses-feature android:name="android.hardware.sensor.light" />, y un usuario está buscando aplicaciones en un dispositivo que no tiene sensor de luz. Resultado: Google Play no le mostrará la aplicación al usuario.

Ejemplo 2
El manifiesto no incluye un elemento <uses-feature> . Resultado: Google Play mostrará la aplicación a todos los usuarios, a menos que se apliquen otros filtros.

Para obtener información completa, consulta <uses-feature> .

Filtrado basado en funciones implícitas: En algunos casos, Google Play interpreta los permisos requeridos a través de elementos <uses-permission> como requisitos de funciones equivalentes a los declarados en los elementos <uses-feature>. Consulta <uses-permission> a continuación.

Versión de OpenGL-ES
(openGlEsVersion)

Una aplicación puede requerir que el dispositivo admita una versión de OpenGL-ES específica mediante el atributo <uses-feature android:openGlEsVersion="int">.

Ejemplo 1
Una aplicación exige múltiples versiones de OpenGL-ES al especificar openGlEsVersion varias veces en el manifiesto. Resultado: Google Play asume que la aplicación requiere las últimas actualizaciones de las versiones indicadas.

Ejemplo 2
Una aplicación solicita la versión 1.1 de OpenGL-ES y un usuario busca apps en un dispositivo que admite la versión 2.0 de OpenGL-ES. Resultado: Google Play le mostrará la aplicación al usuario, a menos que se apliquen otros filtros. Si un dispositivo informa que admite la versión X de OpenGL-ES, Google Play asume que también admite las versiones anteriores a X.

Ejemplo 3
Un usuario está buscando aplicaciones en un dispositivo que no contiene información acerca de la versión de OpenGL-ES (por ejemplo, un dispositivo que ejecuta Android 1.5 o anterior). Resultado: Google Play supone que el dispositivo admite únicamente OpenGL-ES 1.0. Google Play mostrará al usuario únicamente apps que no especifiquen openGlEsVersion o apps que no especifiquen una versión de OpenGL-ES posterior a la 1.0.

Ejemplo 4
El manifiesto no especifica openGlEsVersion. Resultado: Google Play mostrará la aplicación a todos los usuarios, a menos que se apliquen otros filtros.

Para obtener información detallada, consulta <uses-feature>.

<uses-library> Bibliotecas de software

Una aplicación puede requerir que el dispositivo tenga bibliotecas compartidas específicas.

Ejemplo 1
Una aplicación exige la biblioteca com.google.android.maps, y un usuario está buscando aplicaciones en un dispositivo que no tiene la biblioteca com.google.android.maps. Resultado: Google Play no le mostrará la aplicación al usuario.

Ejemplo 2
El manifiesto no incluye un elemento <uses-library>. Resultado: Google Play mostrará la aplicación a todos los usuarios, a menos que se apliquen otros filtros.

Para obtener información detallada, consulta <uses-library>.

<uses-permission>   De forma estricta, Google Play no aplica filtros en función de elementos <uses-permission>. No obstante, sí lee los elementos para determinar si la aplicación tiene requisitos de características de hardware que podrían no haberse declarado correctamente en los elementos <uses-feature>. Por ejemplo, si una aplicación requiere el permiso CAMERA pero no declara un elemento <uses-feature> para android.hardware.camera, Google Play considera que la aplicación requiere una cámara y no se le mostrará a los usuarios cuyos dispositivos no tengan cámara.

En general, si una aplicación requiere elementos relacionados con hardware, Google Play asume que la aplicación requiere las características de hardware subyacentes, aunque no se correspondan con los enunciados de <uses-feature>. Luego, Google Play establece el filtrado en función de las funciones denotadas por los enunciados de <uses-feature>.

Para acceder a una lista de los permisos que denotan características de hardware, consulta la documentación para el elemento <uses-feature>.

<uses-sdk> Versión mínima del framework (minSdkVersion)

Una aplicación puede requerir un nivel de API mínimo.

Ejemplo 1
El manifiesto incluye <uses-sdk android:minSdkVersion="3">, y la app usa las API que se incluyeron en el nivel de API 3. Un usuario busca apps en un dispositivo con el nivel de API 2. Resultado: Google Play no le mostrará la aplicación al usuario.

Ejemplo 2
El manifiesto no incluye minSdkVersion, y la app usa las API que se incluyeron en el nivel de API 3. Un usuario busca apps en un dispositivo con el nivel de API 2. Resultado: Google Play asume que minSdkVersion es "1" y que la aplicación es compatible con todas las versiones de Android. Google Play le muestra la aplicación al usuario y le permite descargarla. La aplicación colapsa durante el tiempo de ejecución.

Para evitar esta segunda situación, te recomendamos que siempre declares un minSdkVersion. Para obtener información detallada, consulta android:minSdkVersion.

Versión máxima del framework (maxSdkVersion)

Obsoleto. Android 2.1 y posteriores no comprueban ni aplican el atributo maxSdkVersion, y el SDK no se compilará si se establece maxSdkVersion en el manifiesto de la aplicación. Para los dispositivos ya compilados con maxSdkVersion, Google Play lo respetará y lo utilizará para el filtrado.

No se recomienda declarar maxSdkVersion. Para obtener información detallada, consulta android:maxSdkVersion.

Filtros avanzados del manifiesto

Además de los elementos del manifiesto que se indican en la tabla 1, Google Play también puede filtrar aplicaciones en función de los elementos avanzados del manifiesto que se indican en la tabla 2.

Estos elementos del manifiesto y el filtrado que desencadenan se utilizan únicamente en casos excepcionales. Se diseñaron para ciertos tipos de juegos de alto rendimiento y aplicaciones similares que requieren controles estrictos de distribución de la aplicación. La mayoría de las aplicaciones no deberían utilizar estos filtros.

Tabla 2: Elementos avanzados del manifiesto para filtrado en Google Play.

Elemento del manifiestoResumen
<compatible-screens>

Google Play filtra la aplicación si la densidad y el tamaño de pantalla del dispositivo no coinciden con ninguna de las configuraciones de pantalla (declaradas por un elemento <screen>) en el elemento <compatible-screens>.

Advertencia: Normalmente, no deberías usar este elemento del manifiesto. El uso de este elemento puede reducir notablemente la base de usuarios potenciales para tu aplicación, al excluir todas las combinaciones de tamaño de pantalla y densidad que no indicaste. En su lugar, debes usar el elemento del manifiesto <supports-screens> (descrito anteriormente en la tabla 1) a fin de habilitar el modo de compatibilidad de pantalla para las configuraciones de pantalla que no abarcaste con recursos adicionales.

<supports-gl-texture>

Google Play filtrará la aplicación a menos que uno o más de los formatos de compresión de texturas GL compatibles con la aplicación también sean compatibles con el dispositivo.

Otros filtros

Google Play utiliza otras características de la aplicación para determinar si mostrará u ocultará una aplicación a un usuario específico o un dispositivo determinado, tal como se describe en la tabla a continuación.

Tabla 3: Características de la aplicación y la publicación que afectan el filtrado en Google Play.

Nombre del filtro Cómo funciona
Estado de la publicación

Únicamente las aplicaciones publicadas aparecerán en las búsquedas y exploraciones en Google Play.

Incluso cuando una aplicación no esté publicada , se la podrá instalar si los usuarios pueden visualizarla en el área de Descargas entre las aplicaciones que compraron, instalaron o desinstalaron recientemente.

Si se suspende una aplicación, los usuarios no podrán volver a instalarla ni actualizarla, aunque aparezca en sus Descargas.

Estado pago

No todos los usuarios pueden ver aplicaciones pagadas. Para mostrar aplicaciones pagadas, un dispositivo debe tener una tarjeta SIM y ejecutar Android 1.1 o posterior, y debe encontrarse en un país (según lo determine el operador SIM) en el que las aplicaciones pagas estén disponibles.

Perfilamiento de país

Cuando cargas tu aplicación a Google Play, puedes seleccionar los países en los que quieres distribuir la aplicación; para ello, deberás ingresar en Pricing and Distribution. Luego, la aplicación estará disponible para los usuarios únicamente de los países que selecciones.

Arquitectura de CPU (ABI)

Las aplicaciones que incluyen bibliotecas nativas que apuntan a una arquitectura de CPU específica (por ejemplo: ARM EABI v7 o x86) solo pueden visualizarse en dispositivos que admiten esa arquitectura. Para obtener información detallada acerca del NDK y del uso de bibliotecas nativas, consulta ¿Qué es el NDK de Android?

Aplicaciones protegidas contra copias

Google Play ya no admite la función Protección contra copia en la Consola para desarrolladores, y ya no filtra aplicaciones de acuerdo con esa función. Para proteger tu aplicación, utiliza en su lugar Licencias de aplicaciones. Consulta Reemplazo de protección contra copias para obtener más información.

Publicación de múltiples APK con diferentes filtros

Algunos filtros específicos de Google Play te permiten publicar múltiples APK para la misma aplicación a fin de proporcionar un APK distinto para diferentes configuraciones de dispositivos. Por ejemplo, si estás creando un videojuego que utiliza recursos gráficos de alta fidelidad, te recomendamos que crees dos APK y que cada uno admita diferentes formatos de compresión de texturas. De este modo, puedes reducir el tamaño del archivo del APK al incluir solo las texturas necesarias para la configuración de cada dispositivo. Según la compatibilidad de cada dispositivo con tus formatos de compresión de texturas, Google Play le proporcionará el APK que hayas declarado como compatible con ese dispositivo.

Actualmente, Google Play te permite publicar varios APK para la misma aplicación únicamente cuando cada APK proporcione diferentes filtros en función de las siguientes configuraciones:

  • Formatos de compresión de texturas OpenGL

    Mediante el elemento <supports-gl-texture>.

  • Tamaño de pantalla (y, opcionalmente, densidad de la pantalla)

    Mediante el elemento <supports-screens> o <compatible-screens>

  • Nivel de API

    Mediante el elemento <uses-sdk>.

  • Arquitectura de CPU (ABI)

    Mediante la inclusión de bibliotecas nativas creadas con el NDK de Android que apunta a una arquitectura de CPU específica (por ejemplo, ARM EABI v7 o x86).

Todos los demás filtros continúan funcionado de la forma habitual, pero estos cuatro son los únicos filtros que pueden distinguir un APK de otro dentro del mismo directorio de la aplicación en Google Play. Por ejemplo, no puedes publicar múltiples APK para la misma aplicación si los APK solo difieren en función de si el dispositivo tiene cámara.

Advertencia: La publicación de múltiples APK para la misma aplicación se considera una función avanzada y la mayoría de las aplicaciones deben publicar un solo APK que admita una amplia variedad de configuraciones de dispositivos. La publicación de múltiples APK requiere que sigas reglas específicas dentro de tus filtros y que prestes especial atención a los códigos de versión para cada APK a fin de garantizar las vías de actualización adecuadas para cada configuración.

Si necesitas más información acerca de cómo publicar múltiples APK en Google Play, lee Compatibilidad con múltiples APK.