En esta página, se explica cómo configurar tu app, juego o SDK para que use la API de Play Integrity. Para integrar la API, debes tener un proyecto de Google Cloud, que es necesario para comenzar a realizar solicitudes. Luego, puedes vincular tu proyecto de Google Cloud en Google Play Console (para apps) o en Google Play SDK Console (para SDKs). Es necesario vincular tu proyecto para acceder a opciones de configuración adicionales, funciones de prueba, informes de la API y para solicitar un aumento en tu cuota de solicitudes diarias.
Habilita la API de Play Integrity
Cada app o SDK que llame a la API de Play Integrity debe tener un proyecto de Google Cloud para usar la API y supervisar el uso. Este es el primer paso obligatorio para todas las integraciones. Puedes habilitar la API de Play Integrity en Google Cloud Console o puedes omitir este paso y vincular directamente tu proyecto de Cloud a Google Play. La API de Play Integrity se habilitará automáticamente.
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 Habilitar APIs y servicios.
- Busca la API de Play Integrity.
- Haz clic en Habilitar.
Ahora puedes integrar la API de Play Integrity en tu app. Para acceder a funciones avanzadas y aumentos de cuota, debes continuar con el paso de vinculación.
Vínculo a Google Play (recomendado)
Vincula tu app o SDK a Google Play siguiendo estas instrucciones.
Para apps y juegos en Google Play
Las apps distribuidas en Google Play deben vincular su proyecto de Google Cloud en Google Play Console para habilitar funciones adicionales y solicitar un aumento en la cuota diaria de la API.
- Abre Google Play Console y selecciona tu app.
- Navega a Prueba y lanza > Integridad de la app.
- En API de Play Integrity, haz clic en Vincular un proyecto de Cloud.
- Elige el proyecto de Google Cloud que planeas usar con la API de Play Integrity. Si la API de Play Integrity aún no está habilitada para el proyecto, se habilitará automáticamente cuando lo vincules.
Para proveedores de SDKs en Play SDK Console
Los proveedores de SDKs que usan Google Play SDK Console pueden vincular su proyecto de Google Cloud para atribuir el uso de la API al SDK en lugar de a las apps individuales que lo usan, habilitar funciones adicionales y solicitar un aumento de la cuota diaria de la API. Ten en cuenta que el acceso a Google Play SDK Console está sujeto a criterios de elegibilidad.
- Abre Google Play SDK Console y selecciona tu SDK.
- Ve a Integridad del SDK.
- En API de Play Integrity, haz clic en Vincular un proyecto de Cloud.
- Elige el proyecto de Google Cloud que planeas usar con la API de Play Integrity. Si la API de Play Integrity aún no está habilitada para el proyecto, se habilitará automáticamente cuando lo vincules.
Comprende los límites de uso de la API de Play Integrity
Tu app o SDK tienen un límite diario predeterminado de 10,000 solicitudes totales, vinculado al número de proyecto de Cloud asociado. Si prevés un volumen mayor, puedes solicitar un aumento de la cuota.
| Acción | Cuota diaria | Notas |
|---|---|---|
| Solicitudes de tokens | 10,000 | Se comparte entre las solicitudes clásicas y las preparaciones de tokens estándar. |
| Desencriptaciones de tokens en los servidores de Google | 10,000 | Se comparte entre las solicitudes clásicas y estándar |
Cómo aumentar la cantidad máxima diaria de solicitudes
El aumento de la cuota está sujeto a criterios de elegibilidad. Los aumentos de cuota se aplican a las llamadas de generación de tokens del cliente y de desencriptación del servidor. El procesamiento de las solicitudes puede tardar hasta una semana. Te recomendamos que supervises el uso de la API de Play Integrity en la consola de Google Cloud y que configures alertas de cuota para evitar interrupciones en tu servicio.
Incluso con una cuota más alta, sigue limitando las solicitudes clásicas a acciones poco frecuentes y de alto valor para preservar la batería del usuario y el uso de datos.
Para apps y juegos en Google Play
Para poder recibir un aumento de la cuota, tu app debe estar disponible en Google Play, además de cualquier otro canal de distribución. Debes vincular tu proyecto de Google Cloud a tu app en Play Console. Se rechazarán las solicitudes de cuota de proyectos no vinculados.
Para solicitar un aumento, sigue estos pasos:
- Vincula el proyecto de Google Cloud pertinente en Play Console.
- Verifica que hayas implementado correctamente la lógica de API, incluidas las estrategias de reintento adecuadas.
- Envía el formulario de solicitud de cuota.
Para proveedores de SDKs en Play SDK Console
Para poder solicitar un aumento de la cuota, tu SDK debe reclamarse en Play SDK Console de Google y tu proyecto de Cloud debe estar vinculado a tu SDK allí. El acceso a Google Play SDK Console está sujeto a criterios de elegibilidad.
Para solicitar un aumento, sigue estos pasos:
- Vincula tu proyecto de Google Cloud en Google Play SDK Console.
- Completa el formulario de asistencia de Google Play SDK Console.
En la sección de comentarios abiertos, describe tu caso de uso, el tipo de solicitudes a la API que realizas (estándar, clásicas o ambas), la frecuencia con la que realizas solicitudes y la cantidad máxima diaria de solicitudes que deseas.
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.6.0'
Unity
En las siguientes secciones, se describe cómo integrar y configurar la API de Google Play Integrity para proyectos de Unity, incluidas las versiones compatibles de Unity, los métodos de instalación y la configuración del entorno.
Versiones de Unity compatibles
- 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.
Cómo configurar tu entorno de desarrollo
OpenUPM-CLI
Si tienes instalada la CLI de OpenUPM, puedes instalar el registro de OpenUPM con el siguiente comando:
openupm add com.google.play.integrityOpenUPM
Abre la configuración del administrador de paquetes seleccionando la opción del menú de Unity: Edit > Project Settings > Package Manager.
Agrega OpenUPM como un registro con permisos en la ventana de Package Manager:
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.integrityAbre el menú del administrador de paquetes. Para ello, selecciona Window > Package Manager en el menú de Unity.
Establece el menú desplegable de permisos del administrador en My Registries.
Selecciona el paquete Google Play Integrity plugin for Unity en la lista de paquetes y presiona Install.
Importar desde GitHub
Descarga la versión más reciente de
.unitypackagedesde GitHub.Importa el archivo
.unitypackage. Para ello, selecciona la opción del menú de Unity Assets > Import package > Custom Package e importa todos los elementos.
Unreal Engine
En las siguientes secciones, se describe cómo integrar y configurar la API de Google Play Integrity para proyectos de Unreal Engine.
Versiones compatibles de Unreal Engine
El complemento es compatible con Unreal Engine 5.0 y todas las versiones posteriores.
Cómo configurar tu entorno de desarrollo
Descarga el complemento de Play para Unreal Engine desde el repositorio de GitHub.
Copia la carpeta
GooglePlaydentro de la carpetaPluginsen tu proyecto de Unreal Engine.Abre tu proyecto de Unreal Engine y haz clic en Edit → Plugins.
Busca Google Play y marca la casilla de verificación Habilitada.
Reinicia el proyecto del juego y activa una compilación.
Abre el archivo
Build.csde tu proyecto y agrega el móduloPlayIntegrityaPublicDependencyModuleNames:using UnrealBuildTool; public class MyGame : ModuleRules { public MyGame(ReadOnlyTargetRules Target) : base(Target) { // ... PublicDependencyModuleNames.Add("PlayIntegrity"); // ... } }
Nativo
Sigue la guía de configuración nativa. Para obtener más detalles, consulta la documentación de referencia de la API nativa de Play Integrity.
Cómo configurar respuestas de la API (opcional)
La respuesta de la API incluye los veredictos predeterminados que se muestran en cada solicitud. Si vinculaste tu proyecto de Cloud en Play Console o Play SDK Console, puedes personalizar la respuesta de la API para incluir información adicional.
Veredictos de integridad predeterminados
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 original y certificado. En Android 13 y versiones posteriores, hay pruebas respaldadas por hardware de que el bootloader del dispositivo está bloqueado y de que el SO Android cargado es una imagen certificada del fabricante del dispositivo. |
| 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:
|
|
| 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. |
Google Play Juegos para PC
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. |
Veredictos de integridad opcionales
Si vinculaste tu proyecto de Cloud en Play Console o en Play SDK Console, puedes habilitar la opción para recibir información adicional.
Para realizar cambios, visita Play Console y navega a Pruebas y lanzamiento > Integridad de la app. Junto a API de Play Integrity, haz clic en Configuración. Haz clic en Cambia las respuestas, edita y guarda los cambios.
Información del dispositivo
Las etiquetas de dispositivos adicionales en el veredicto deviceIntegrity te brindan más información sobre el entorno del dispositivo en el que se ejecuta la app.
Un solo dispositivo devuelve varias etiquetas si cumple con los criterios de cada una.
Puedes usar estas etiquetas para crear una estrategia de aplicación de políticas por niveles. Por ejemplo, puedes confiar más en un dispositivo que muestra tres etiquetas (MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY y MEETS_BASIC_INTEGRITY) que en un dispositivo que solo muestra una etiqueta (MEETS_BASIC_INTEGRITY).
Los atributos del dispositivo te indican la versión del SDK de Android del SO Android en el dispositivo. En el futuro, es posible que se extienda con otros atributos del dispositivo.
Actividad reciente del dispositivo devuelve un nivel que va de LEVEL_1 (baja cantidad de solicitudes) a LEVEL_4 (gran cantidad de solicitudes). Los niveles de actividad altos pueden indicar que se está usando un dispositivo para generar una cantidad excesiva de tokens para su distribución abusiva a dispositivos que no son de confianza.
La recuperación de dispositivos te permite almacenar algunos datos personalizados por dispositivo con dispositivos específicos que puedes recuperar de forma confiable cuando se vuelva a instalar tu app más adelante en el mismo dispositivo.
Después de habilitar la información opcional, la respuesta de la API incluirá nuevos campos y respuestas en el veredicto:
| 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. El bootloader del dispositivo puede estar bloqueado o desbloqueado, y el estado de inicio puede verificarse o no verificarse. Es posible que el dispositivo no esté certificado, en cuyo caso Google no puede brindar garantías de seguridad, privacidad ni compatibilidad de apps. En Android 13 y versiones posteriores, el veredicto MEETS_BASIC_INTEGRITY requiere que Google proporcione la
raíz de confianza de la certificación. |
|
MEETS_STRONG_INTEGRITY |
La app se ejecuta en un dispositivo Android auténtico y certificado con una actualización de seguridad reciente.
|
||
| Atributos del dispositivo | sdkVersion: 19, 20, ..., 36 |
Es la versión del SDK del SO Android que se ejecuta en el dispositivo.
El número que se devuelve 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 está configurado, por lo que el campo deviceAttributes está vacío.
Esto puede deberse a los siguientes motivos:
|
||
| Solicitudes de tokens de integridad de la API estándar en este dispositivo durante la última hora por app | Solicitudes de tokens de integridad de la API clásica en este dispositivo durante la última hora por app | ||
| Actividad reciente del dispositivo | LEVEL_1 (más baja) |
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 deberse a los siguientes motivos:
|
||
| Recuperación del dispositivo | values: bitFirst, bitSecond, bitThird |
Estos son los valores de bits que estableciste en el pasado para el dispositivo específico. Tú decides el significado de cada bit. Los tres valores de bits son falsos de forma predeterminada. | |
writeDates: yyyymmFirst, yyyymmSecond, yyyymmThird |
Estas son las fechas de escritura del valor de bits en UTC, con precisión de año y mes. La fecha de escritura de un bit de recuperación se actualiza cada vez que el bit se establece en verdadero y se quita cuando el bit se establece en falso. | ||
Detalles del entorno
Riesgo de acceso a la app te indica si se están ejecutando otras apps que se podrían usar para capturar la pantalla, mostrar superposiciones o controlar el dispositivo. Los servicios de accesibilidad verificados que conoce Google Play se excluyen automáticamente de este veredicto.
El veredicto de Play Protect te indica si Google Play Protect está habilitado en el dispositivo y si se encontró software malicioso conocido.
Después de habilitar la información opcional, la respuesta de la API incluirá nuevos campos y respuestas en 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 no instaló Play ni se precargaron 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 se precargaron 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 se precargaron en el dispositivo) que podrían mostrar 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 deberse a varios motivos, entre los que se incluyen los siguientes:
|
|
| 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.
De forma predeterminada, Google Play administra la encriptación de respuestas, lo que significa que tu backend llama al servidor de Google para desencriptar los veredictos. Como alternativa, puedes administrar las claves por tu cuenta para desencriptar de forma local en tu entorno de servidor seguro.
Permite que Google administre tu encriptación de respuestas (opción recomendada)
Te recomendamos que permitas que Google genere y administre las claves para proteger la seguridad de tu app. Tu backend llamará al servidor de Google Play para desencriptar y verificar las respuestas.
Administra tus propias claves de encriptación
Para desencriptar de forma local dentro de tu propio entorno de servidor seguro, puedes descargar las claves de encriptación desde Play Console o Play SDK Console. Tu app debe estar disponible en Google Play para usar esta función.
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 administradas por Google y las autoadministradas
- Abre Play Console y selecciona tu app .
- Ve a Prueba y lanza > Integridad de la app.
- Junto a la API de Play Integrity, haz clic en Configuración.
- En Solicitudes clásicas, junto a Encriptación de respuestas, haz clic en Editar.
Para cambiar a las claves autoadministradas, sigue estos pasos:
- Selecciona Administrar y descargar mis claves de encriptación de respuestas y sube tu clave pública.
- Haz clic en Guardar para descargar automáticamente tus claves encriptadas.
- Actualiza tu servidor de backend seguro para desencriptar de forma local con estas claves.
Para cambiar a las claves administradas por Google, sigue estos pasos:
- Selecciona Permitir que Google administre mi encriptación de respuestas (opción recomendada).
- Haz clic en Guardar cambios.