Configuración

En esta página, se explica cómo configurar tu app o juego para que use la API de Play Integrity. Debes habilitar las respuestas de la API y, luego, integrar la API a tu app y al servidor de backend de tu app. Las opciones de configuración, las funciones de prueba y los informes adicionales estarán disponibles una vez que vincules el proyecto de Google Cloud que usas para la API de Play Integrity en Google Play Console.

Cómo habilitar las respuestas de la API de Play Integrity

Cada app o SDK que llame a la API de Play Integrity debe usar un proyecto de Google Cloud para supervisar el uso de la API. Las apps de Google Play pueden vincular un proyecto de Cloud en Google Play Console para habilitar las respuestas de la API de Play Integrity. Si quieres crear un proyecto nuevo de Cloud o tu app se distribuye de forma exclusiva fuera de Google Play, puedes habilitar las respuestas de la API de Play Integrity desde la consola de Google Cloud.

Configuración en Google Play Console (recomendado)

Si habilitas las respuestas de la API de Play Integrity en Google Play Console, obtendrás acceso a opciones de configuración adicionales, informes de API y funciones de prueba. Esta opción solo está disponible para las apps que se distribuyen en Google Play. Navega a Versión > Integridad de la app. En la API de Play Integrity, selecciona la opción para vincular un proyecto de Cloud. Elige el proyecto de Cloud que desees vincular a tu app para habilitar las respuestas de la API de Play Integrity. Ahora puedes integrar la API de Play Integrity en tu app.

Configuración en la consola de Google Cloud

En la consola de Google Cloud, crea un proyecto de Cloud nuevo o elige uno existente que desees usar con la API de Play Integrity. Navega a APIs y servicios. Selecciona la opción para habilitar APIs y servicios. Busca la API de Play Integrity y, luego, habilítala. Ahora puedes integrar la API de Play Integrity en tu app.

Instrucciones de configuración para proveedores de SDK

Los proveedores de SDKs deben usar su propio proyecto de Google Cloud para llamar a la API de Play Integrity para que el uso de la API se atribuya al SDK y no a apps individuales que usan el SDK. Esto significa que las apps que usan tu SDK no tienen que configurar la API de Play Integrity de forma individual. Tus solicitudes a la API de Play Integrity se tienen en cuenta automáticamente para el uso de la API de tu SDK y no para la app.

Los desarrolladores de SDKs tienen dos opciones para configurar la API de Play Integrity: Google Play SDK Console o la consola de Google Cloud.

Si habilitas las respuestas de la API de Play Integrity en Google Play SDK Console, obtienes acceso a opciones de configuración adicionales. Navega a Integridad del SDK y haz clic en Configuración. En Configuración del proyecto, selecciona Vincular un proyecto de Cloud. Elige el proyecto de Cloud que desees vincular a tu SDK para habilitar las respuestas de la API de Play Integrity. Ahora puedes integrar la API de Play Integrity en tu SDK. Ten en cuenta que el acceso a Google Play SDK Console está sujeto a criterios de elegibilidad.

Usa la consola de Google Cloud

Puedes habilitar las respuestas de la API de Play Integrity desde la consola de Google Cloud. En la consola de Google Cloud, crea un proyecto de Cloud nuevo o elige uno existente que desees usar con la API de Play Integrity. Navega a APIs y servicios. Selecciona la opción para habilitar APIs y servicios. Busca la API de Play Integrity y, luego, habilítala. Ahora puedes integrar la API de Play Integrity en tu SDK.

Cómo aumentar las solicitudes diarias de tu SDK a la API de Play Integrity

Los proveedores de SDKs que deseen aumentar su cantidad máxima de solicitudes diarias deben completar el formulario de solicitud de cuota. En la sección de comentarios abierta, especifica que realizas una solicitud al SDK y, luego, incluye tus coordenadas de Maven (groupId:artifactId) o una URL a tu SDK.

Cómo aumentar tus solicitudes diarias a la API de Play Integrity

Tu app estará sujeta a un máximo de 10,000 solicitudes totales por día. Puedes solicitar que se aumente este máximo diario si tu app necesita controlar una mayor cantidad de usuarios. Para ello, sigue las instrucciones que se indican a continuación.

Cómo aumentar la cantidad máxima diaria de solicitudes

Para poder recibir un aumento en la cantidad máxima diaria de solicitudes, la app debe estar disponible en Google Play, además de cualquier otro canal de distribución. Incluso con un máximo diario máximo superior, deberías seguir limitando las solicitudes clásicas por usuario a acciones poco frecuentes y de alto valor para conservar los datos del usuario y la batería.

Para solicitar un aumento en la cantidad máxima diaria de solicitudes, haz lo siguiente:

  1. Vincula el proyecto de Google Cloud que usas para la API de Play Integrity en Play Console.
  2. Asegúrate de implementar de forma correcta la lógica de API, incluida la estrategia de reintento recomendada.
  3. Solicita un aumento de la cuota con este formulario.

El aumento de la cuota de la API de Play Integrity puede tardar hasta una semana, por lo que te recomendamos que supervises el uso de la API de Play Integrity en Google Play Console o en la consola de Google Cloud, donde también puedes establecer alertas de cuota para evitar interrupciones del servicio.

Los aumentos de cuota de solicitudes clásicas se aplicarán automáticamente a la llamada del cliente para generar tokens de integridad y a la llamada del servidor para desencriptar y verificar los tokens de integridad. Los aumentos de cuota de solicitudes estándar se aplican a la llamada del servidor para desencriptar y verificar los tokens de integridad.

Cómo integrar la API de Play Integrity a tu app

Para integrar la API de Play Integrity a tu app o SDK, según el entorno de desarrollo, realiza una de las siguientes acciones:

Kotlin o Java

La biblioteca de Android más reciente para la API de Play Integrity está disponible en el repositorio de Maven de Google. Agrega la siguiente dependencia al archivo build.gradle de tu app:

implementation 'com.google.android.play:integrity:1.4.0'

Unity

Instala el complemento de Google Play Integrity para Unity 1.3.0 o una versión posterior. Para obtener instrucciones, consulta cómo instalar paquetes de Google para Unity.

  • Se admiten todas las versiones de 2019.x, 2020.x y posteriores.
  • Si usas Unity 2018.x, se admiten las versiones 2018.4 o posteriores.
  • No se admiten Unity 2017.x ni versiones anteriores.

Nativo

Instala el SDK nativo de Play Core 1.13.0 o una versión posterior. Para obtener instrucciones, consulta la guía de configuración del entorno de desarrollo del SDK nativo de Play Core.

Cómo configurar respuestas de la API (opcional)

La respuesta de la API incluye los veredictos predeterminados que se muestran en cada solicitud. Si configuras la integración de la API de Play Integrity en Play Console, podrás personalizar la respuesta de la API.

Respuestas predeterminadas

Los siguientes veredictos de integridad se muestran en la respuesta de la API de Play Integrity de forma predeterminada:

Campo de respuesta Valor Descripción
Integridad del dispositivo MEETS_DEVICE_INTEGRITY La app se ejecuta en un dispositivo Android con la tecnología de los Servicios de Google Play. El dispositivo pasa las verificaciones de integridad del sistema y cumple con los requisitos de compatibilidad de Android.
Vacío (un valor en blanco) La app se está ejecutando en un dispositivo que muestra indicios de ataque (como trampas de API) o de vulneración del sistema (como un dispositivo con permisos de administrador), o bien no se está ejecutando en un dispositivo físico (como un emulador que no pasa las verificaciones de integridad de Google Play).
Detalles de la cuenta de Play LICENSED El usuario tiene derechos de acceso a la app. En otras palabras, el usuario instaló o actualizó tu app desde Google Play en su dispositivo.
UNLICENSED El usuario no tiene derechos de acceso a la app. Esto sucede, por ejemplo, cuando transfiere la app o no la adquiere en Google Play.
UNEVALUATED No se evaluó la información de las licencias porque se omitió un requisito necesario. Estos son algunos de los diversos motivos por los que podría suceder:
  • El dispositivo no es lo suficientemente confiable.
  • El usuario no accedió a Google Play.
  • La versión de la app instalada en el dispositivo es desconocida para Google Play.
Integridad de la aplicación PLAY_RECOGNIZED La app y el certificado coinciden con las versiones que distribuye Google Play.
UNRECOGNIZED_VERSION El certificado o el nombre del paquete no coinciden con los registros de Google Play.
UNEVALUATED No se evaluó la integridad de la aplicación. Se omitió un requisito necesario, por ejemplo, el dispositivo no es lo suficientemente confiable.

Respuestas condicionales

Si distribuyes tu app en Google Play Juegos para PC, se te habilitará automáticamente para recibir una etiqueta adicional en el veredicto de integridad del dispositivo:

Campo de respuesta Etiqueta Descripción
Integridad del dispositivo MEETS_VIRTUAL_INTEGRITY La app se está ejecutando en un Android Emulator con la tecnología de los Servicios de Google Play. El emulador pasa las verificaciones de integridad del sistema y cumple con los requisitos principales de compatibilidad de Android.

Respuestas opcionales

Si configuras la integración de la API de Play Integrity en Play Console o en Play SDK Console, podrás habilitar la opción para recibir información en la respuesta de la API.

Para realizar cambios en las respuestas de tu API, visita Play Console y navega a Versión > Integridad de la app. En Respuestas, edita y guarda los cambios.

Información opcional del dispositivo

Las apps y los SDKs pueden habilitar etiquetas de dispositivos adicionales en el veredicto de integridad del dispositivo. Si habilitas la opción para recibir etiquetas adicionales, la respuesta de integridad incluirá varias etiquetas para el mismo dispositivo si se cumplen cada uno de los criterios de esas etiquetas. Puedes preparar tu servidor de backend para que se comporte de manera diferente según el rango de respuestas posibles. Por ejemplo, un dispositivo que muestra tres etiquetas (MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY y MEETS_BASIC_INTEGRITY) puede ser más confiable que un dispositivo que muestra solo una etiqueta (MEETS_BASIC_INTEGRITY).

También puedes habilitar la actividad reciente del dispositivo. La actividad reciente del dispositivo muestra un nivel que va de LEVEL_1 (baja cantidad de solicitudes) a LEVEL_4 (gran cantidad de solicitudes). Por ejemplo, un dispositivo que muestra un nivel de actividad significativamente más alto que el típico para tu app podría estar intentando generar una gran cantidad de tokens de integridad para su distribución a dispositivos que no son de confianza.

También puedes habilitar los atributos del dispositivo, que te indican la versión del SDK de Android del SO Android que se ejecuta en el dispositivo. En el futuro, es posible que se extienda con otros atributos de dispositivos.

Campo de respuesta Etiqueta Descripción
Integridad del dispositivo MEETS_BASIC_INTEGRITY La app se ejecuta en un dispositivo que pasa las verificaciones básicas de integridad del sistema. Es posible que el dispositivo no cumpla con los requisitos de compatibilidad de Android ni esté aprobado para ejecutar los Servicios de Google Play. Por ejemplo, puede que el dispositivo esté ejecutando una versión no reconocida de Android, que tenga un bootloader desbloqueado o que el fabricante no lo haya certificado.
MEETS_STRONG_INTEGRITY La app se está ejecutando en un dispositivo Android con la tecnología de los Servicios de Google Play y tiene una garantía sólida de integridad del sistema, como una prueba de integridad de inicio con copia de seguridad en hardware. El dispositivo pasa las verificaciones de integridad del sistema y cumple con los requisitos de compatibilidad de Android.
Solicitudes de tokens de integridad de la API estándar en este dispositivo en la última hora por app Solicitudes de tokens de integridad de la API clásica en este dispositivo en la última hora por app
Actividad reciente del dispositivo LEVEL_1 (más bajo) 10 o menos 5 o menos
LEVEL_2 Entre 11 y 25 Entre 6 y 10
LEVEL_3 Entre 26 y 50 Entre 11 y 15
LEVEL_4 (más alto) Más de 50 Más de 15
UNEVALUATED No se evaluó la actividad reciente del dispositivo. Esto puede suceder por los siguientes motivos:
  • El dispositivo no es lo suficientemente confiable.
  • La versión de la app instalada en el dispositivo es desconocida para Google Play.
  • Hubo problemas técnicos en el dispositivo.
Atributos del dispositivo sdkVersion: 19, 20, ..., 35 Es la versión del SDK del SO Android que se ejecuta en el dispositivo. El número que se muestra se asigna a Build.VERSION_CODES.
Vacío (un valor en blanco) No se evalúa la versión del SDK porque se omitió un requisito necesario. En este caso, el campo sdkVersion no se configuró, por lo que el campo deviceAttributes está vacío. Esto puede deberse a lo siguiente:
  • El dispositivo no es lo suficientemente confiable.
  • La versión de la app instalada en el dispositivo es desconocida para Google Play.
  • Hubo problemas técnicos en el dispositivo.

Detalles opcionales del entorno

Las apps pueden aceptar recibir veredictos adicionales sobre el entorno. El riesgo de acceso a la app te permite saber si se están ejecutando otras apps que podrían capturar la pantalla, mostrar superposiciones o controlar el dispositivo. El veredicto de Play Protect te permite saber si Play Protect está habilitado en el dispositivo y si se encontró software malicioso conocido.

Después de aceptar recibir estos veredictos, la respuesta de la API incluirá el campo de detalles del entorno con el veredicto:

Campo de respuesta Valor Descripción
Veredicto del riesgo de acceso a la app KNOWN_INSTALLED Google Play instala las apps o el fabricante del dispositivo las precarga en la partición del sistema.
KNOWN_CAPTURING Se están ejecutando apps instaladas por Google Play o precargadas en el dispositivo que podrían usarse para leer o capturar entradas y salidas de la app solicitante, como las apps de grabación de pantalla.
KNOWN_CONTROLLING Se están ejecutando apps instaladas por Google Play o precargadas en el dispositivo que podrían usarse para controlar el dispositivo y las entradas y salidas de la app solicitante, como las apps de control remoto.
KNOWN_OVERLAYS Se están ejecutando apps instaladas por Google Play o precargadas en el dispositivo que podrían mostrar superposiciones en la app solicitante.
UNKNOWN_INSTALLED Se instalaron otras apps que Google Play no instaló o ni fueron precargadas en la partición del sistema por el fabricante del dispositivo.
UNKNOWN_CAPTURING Se están ejecutando otras apps (que Play no instaló ni precargó en el dispositivo) que podrían usarse para leer o capturar entradas y salidas de la app solicitante, como las apps de grabación de pantalla.
UNKNOWN_CONTROLLING Se están ejecutando otras apps (que Play no instaló ni precargó en el dispositivo) que podrían usarse para controlar el dispositivo y las entradas y salidas de la app solicitante, como las apps de control remoto.
UNKNOWN_OVERLAYS Se están ejecutando otras apps (que Play no instaló ni precargó en el dispositivo) que podrían estar mostrando superposiciones en la app solicitante.
Vacío (un valor en blanco) No se evalúa el riesgo de acceso de apps si se omitió un requisito necesario. En este caso, el campo appAccessRiskVerdict está vacío. Esto puede suceder por varios motivos, entre los que se incluyen los siguientes:
  • El dispositivo no es lo suficientemente confiable.
  • El factor de forma del dispositivo no es un teléfono, una tablet ni un dispositivo plegable.
  • El dispositivo no ejecuta Android 6 (nivel de API 23) o una versión posterior.
  • La versión de la app instalada en el dispositivo es desconocida para Google Play.
  • La versión de Google Play Store del dispositivo está desactualizada.
  • Solo juegos: La cuenta de usuario no tiene una licencia de Play para el juego.
  • Se usó una solicitud estándar con el parámetro verdictOptOut.
  • Se usó una solicitud estándar con una versión de la biblioteca de la API de Play Integrity que aún no admite el riesgo de acceso de apps para las solicitudes estándar.
Veredicto de Play Protect NO_ISSUES Play Protect está activado y no detectó ningún problema con las apps del dispositivo.
NO_DATA Play Protect está activado, pero aún no se realizó ningún análisis. Es posible que el dispositivo o la app de Play Store se hayan restablecido recientemente.
POSSIBLE_RISK Play Protect está desactivado.
MEDIUM_RISK Play Protect está activado y encontró apps potencialmente dañinas instaladas en el dispositivo.
HIGH_RISK Play Protect está activado y encontró apps peligrosas instaladas en el dispositivo.
UNEVALUATED No se evaluó el veredicto de Play Protect. Se omitió un requisito necesario, por ejemplo, el dispositivo no es lo suficientemente confiable.

Cómo definir la configuración de solicitud clásica (opcional)

Omite esta sección si solo tienes previsto realizar solicitudes a la API estándar.

Cuando realizas solicitudes clásicas, de forma predeterminada, los servidores de Google Play administran la encriptación de las respuestas que usa tu app cuando interactúas con la API de Play Integrity. Si bien te recomendamos que uses esta opción predeterminada, puedes seguir las instrucciones que se indican a continuación para administrar y descargar tus claves de encriptación de respuestas.

Cómo permitir que Google administre tu encriptación de respuestas (opción predeterminada y recomendada)

Para proteger la seguridad de tu app, te recomendamos que permitas que Google genere y administre tus claves de encriptación de respuesta. Tu servidor de backend llamará al servidor de Google Play para desencriptar las respuestas.

Administra y descarga claves de encriptación de respuestas

Si deseas desencriptar el veredicto de integridad de forma local dentro de tu propio entorno de servidor seguro, puedes administrar y descargar tus claves de encriptación de respuesta. Para administrar y descargar tus claves de encriptación de respuestas, debes usar Play Console, y tu app debe estar disponible en Google Play, además de cualquier otro canal de distribución. Sigue las instrucciones a continuación para cambiar las claves de encriptación de respuestas administradas por Google a las autoadministradas.

Recuerda no desencriptar ni verificar el token que se recibió desde tu app cliente y nunca expongas ninguna clave de desencriptación en ella.

Antes de cambiar la estrategia de administración de encriptación de respuestas en Play Console, asegúrate de que tu servidor esté configurado correctamente para desencriptar y verificar los tokens de integridad en los servidores de Google Play para evitar interrupciones.

Cómo cambiar entre las claves de encriptación de respuestas administradas por Google y las autoadministradas

Si Google administra tu encriptación de respuestas y deseas cambiar para administrar y descargar las claves de encriptación de respuesta por tu cuenta, sigue estos pasos:

  1. Accede a Play Console.
  2. Selecciona una app que use la API de Play Integrity.
  3. En la sección Versión del menú de la izquierda, ve a Integridad de la app.
  4. Junto a la API de Play Integrity, haz clic en Configuración.
  5. En la sección Solicitudes clásicas de la página, junto a Encriptación de respuestas, haz clic en Editar.
  6. En la ventana que aparece, haz clic en Administrar y descargar mis claves de encriptación de respuestas.
  7. Sigue las instrucciones para subir una clave pública.
  8. Cuando en la ventana se muestre que la carga se realizó de forma correcta, haz clic en Guardar de modo que las claves encriptadas se descarguen automáticamente.
  9. Cambia la lógica del servidor para desencriptar y verificar los tokens de integridad de forma local en tu propio entorno de servidor seguro mediante tus claves de encriptación de respuesta.
  10. Cuando administras tus claves de encriptación de respuesta, la app puede recurrir al servidor de Google Play para desencriptar y verificar la respuesta (opcional).

Si administras tus claves de encriptación de respuesta y ahora deseas que Google lo haga, sigue estos pasos:

  1. Cambia la lógica del servidor de modo que solo desencriptes y verifiques en los servidores de Google.
  2. Accede a Play Console.
  3. Selecciona una app que use la API de Play Integrity.
  4. En la sección Versión del menú de la izquierda, ve a Integridad de la app.
  5. Junto a la API de Play Integrity, haz clic en Configuración.
  6. En la sección Solicitudes clásicas de la página, junto a Encriptación de respuestas, haz clic en Editar.
  7. En la ventana que aparece, haz clic en Permitir que Google administre mi encriptación de respuestas (opción recomendada).
  8. Haz clic en Guardar cambios.