Configuración

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.

  1. Navega a APIs y servicios.
  2. Selecciona Habilitar APIs y servicios.
  3. Busca la API de Play Integrity.
  4. 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.

  1. Abre Google Play Console y selecciona tu app.
  2. Navega a Prueba y lanza > Integridad de la app.
  3. En API de Play Integrity, haz clic en Vincular un proyecto de Cloud.
  4. 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.

  1. Abre Google Play SDK Console y selecciona tu SDK.
  2. Ve a Integridad del SDK.
  3. En API de Play Integrity, haz clic en Vincular un proyecto de Cloud.
  4. 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:

  1. Vincula el proyecto de Google Cloud pertinente en Play Console.
  2. Verifica que hayas implementado correctamente la lógica de API, incluidas las estrategias de reintento adecuadas.
  3. 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:

  1. Vincula tu proyecto de Google Cloud en Google Play SDK Console.
  2. 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.integrity

OpenUPM

  1. Abre la configuración del administrador de paquetes seleccionando la opción del menú de Unity: Edit > Project Settings > Package Manager.

  2. 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.integrity
    
  3. Abre el menú del administrador de paquetes. Para ello, selecciona Window > Package Manager en el menú de Unity.

  4. Establece el menú desplegable de permisos del administrador en My Registries.

  5. Selecciona el paquete Google Play Integrity plugin for Unity en la lista de paquetes y presiona Install.

Importar desde GitHub

  1. Descarga la versión más reciente de .unitypackage desde GitHub.

  2. 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

  1. Descarga el complemento de Play para Unreal Engine desde el repositorio de GitHub.

  2. Copia la carpeta GooglePlay dentro de la carpeta Plugins en tu proyecto de Unreal Engine.

  3. Abre tu proyecto de Unreal Engine y haz clic en Edit → Plugins.

  4. Busca Google Play y marca la casilla de verificación Habilitada.

  5. Reinicia el proyecto del juego y activa una compilación.

  6. Abre el archivo Build.cs de tu proyecto y agrega el módulo PlayIntegrity a PublicDependencyModuleNames:

    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:
  • 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.

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.
  • En Android 13 y versiones posteriores, el veredicto MEETS_STRONG_INTEGRITY requiere MEETS_DEVICE_INTEGRITY y actualizaciones de seguridad en el último año para todas las particiones del dispositivo, incluido un parche de partición del SO de Android y un parche de partición del proveedor.
  • En Android 12 y versiones anteriores, el veredicto de MEETS_STRONG_INTEGRITY solo requiere una prueba de integridad del arranque respaldada por hardware y no requiere que el dispositivo tenga una actualización de seguridad reciente. Por lo tanto, cuando uses MEETS_STRONG_INTEGRITY, te recomendamos que también tengas en cuenta la versión del SDK de Android en el campo deviceAttributes.
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:
  • El dispositivo no es lo suficientemente confiable.
  • El dispositivo tenía problemas técnicos.
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:
  • El dispositivo no es lo suficientemente confiable.
  • La versión de tu app instalada en el dispositivo es desconocida para Google Play.
  • El dispositivo tenía problemas técnicos.
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:
  • 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 a la app 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.

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

  1. Abre Play Console y selecciona tu app .
  2. Ve a Prueba y lanza > Integridad de la app.
  3. Junto a la API de Play Integrity, haz clic en Configuración.
  4. En Solicitudes clásicas, junto a Encriptación de respuestas, haz clic en Editar.

Para cambiar a las claves autoadministradas, sigue estos pasos:

  1. Selecciona Administrar y descargar mis claves de encriptación de respuestas y sube tu clave pública.
  2. Haz clic en Guardar para descargar automáticamente tus claves encriptadas.
  3. 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:

  1. Selecciona Permitir que Google administre mi encriptación de respuestas (opción recomendada).
  2. Haz clic en Guardar cambios.