Límites y cuotas

Sigue esta guía para comprender los límites y las cuotas cuando trabajes con la API de Data Manager.

Límites de los proyectos

Necesitas un proyecto de Google Cloud para usar la API de Data Manager. El proyecto de Google Cloud proporciona el cliente de OAuth y las credenciales que usas para autenticar las solicitudes a la API.

La API de Data Manager aplica límites de frecuencia en cada proyecto de Google Cloud, separados por servicio y tipo de operación (lectura o mutación):

Servicio Operación Solicitudes por día Solicitudes por minuto
IngestionService Mutación (escritura) 100,000 300
IngestionService Leer 100,000 300
Todos los demás servicios combinados Mutación (escritura) 50,000 300
Todos los demás servicios combinados Leer 50,000 300

Las solicitudes que exceden los límites se rechazan con el error RESOURCE_EXHAUSTED y el estado HTTP 429 Too Many Requests.

Puedes tomar el control de tu app y mitigar los límites de frecuencia reduciendo de forma activa la cantidad de solicitudes y limitando las QPS desde el lado del cliente. También puedes configurar alertas de cuota y supervisión en la consola de Google Cloud para recibir notificaciones antes de que tu aplicación alcance sus límites.

Nombres de cuotas

Cada límite corresponde a un nombre y una métrica de límite de cuota en Google Cloud. Cuando una solicitud supera un límite, la API de Data Manager devuelve el nombre del límite de cuota en la carga útil de detalles estándar ErrorInfo en metadata.quota_limit:

Nombre del límite de cuota Servicio Operación Ventana Límite
IngestionMutateRequestsPerDayPerProject IngestionService Modificación Día 100,000
IngestionMutateRequestsPerMinutePerProject IngestionService Modificación Minuto 300
IngestionReadRequestsPerDayPerProject IngestionService Leer Día 100,000
IngestionReadRequestsPerMinutePerProject IngestionService Leer Minuto 300
ManagementMutateRequestsPerDayPerProject Todos los demás servicios Modificación Día 50,000
ManagementMutateRequestsPerMinutePerProject Todos los demás servicios Modificación Minuto 300
ManagementReadRequestsPerDayPerProject Todos los demás servicios Leer Día 50,000
ManagementReadRequestsPerMinutePerProject Todos los demás servicios Leer Minuto 300

Inspecciona metadata.quota_limit en la carga útil de ErrorInfo para distinguir entre los errores de límite diario y por minuto, y determinar si debes pausar temporalmente y volver a intentarlo con retirada, o pausar hasta que se restablezca la cuota diaria. Para obtener más detalles, consulta Errores de cuota y límite de frecuencia.

Controla los límites de frecuencia y la simultaneidad

Para maximizar la capacidad de procesamiento sin exceder las cuotas del proyecto, sigue estos lineamientos:

  • Agrupa registros por solicitud: Incluye la mayor cantidad posible de registros en cada solicitud hasta los límites de solicitud (hasta 10,000 recursos AudienceMember o 2,000 recursos Event por solicitud).

  • Envía hasta 10 solicitudes simultáneas: Para reducir el tiempo total de transferencia sin superar el límite de 300 solicitudes por minuto, envía hasta 10 solicitudes simultáneas a IngestionService.

  • Vuelve a intentar los límites de frecuencia por minuto con retirada: Si una solicitud falla con RESOURCE_EXHAUSTED (HTTP 429) y metadata.quota_limit indica un límite por minuto (como IngestionMutateRequestsPerMinutePerProject), vuelve a intentarlo con la retirada exponencial con jitter (por ejemplo, esperando 1 s, 2 s y 4 s entre reintentos).

  • Pausa cuando se agote la cuota diaria: Si metadata.quota_limit indica un límite diario (como IngestionMutateRequestsPerDayPerProject), no vuelvas a intentarlo de inmediato. Pausa las solicitudes hasta que se restablezca la cuota diaria a la medianoche, hora del Pacífico.

Límites de solicitudes

Estos son los límites para solicitudes específicas: