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
AudienceMembero 2,000 recursosEventpor 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(HTTP429) ymetadata.quota_limitindica un límite por minuto (comoIngestionMutateRequestsPerMinutePerProject), 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_limitindica un límite diario (comoIngestionMutateRequestsPerDayPerProject), 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:
IngestAudienceMembersRequestyRemoveAudienceMembersRequest:10,000 recursos de
AudienceMemberen la listaaudience_members10 identificadores de usuario en el
UserDatapara unAudienceMember10 recursos de
Destinationen la listadestinations
RemoveAllAudienceMembersRequest- 10 recursos de
Destinationen la listadestinations
- 10 recursos de
-
2,000 recursos
Eventen la listaevents10 identificadores de usuario en el
UserDatapara unEvent10 recursos de
Destinationen la listadestinations