Límites de cuota

Para garantizar el uso justo y proteger la estabilidad del sistema, las APIs de Perfil de Negocio de Google (GBP) aplican cuotas a las solicitudes a la API. Si tu solicitud supera un límite de cuota, la API responde con un código de estado HTTP 429 Too Many Requests (o RESOURCE_EXHAUSTED para gRPC).

Límites de cuota predeterminados

En la siguiente tabla, se enumeran los límites de cuota estándares para las APIs de Perfil de Negocio de Google. Los límites se definen en dos dimensiones:

  • Consultas por minuto (QPM): Protege la estabilidad del backend limitando el tráfico de ráfagas a corto plazo.
  • Consultas por día (QPD): Administra el uso diario general de la plataforma.
API Límites
API de Business Information
  • Solicitudes predeterminadas: 300 QPM
  • Crear solicitudes de ubicación: 300 QPD
  • Solicitudes de SearchGoogleLocation: 300 QPD
  • Solicitudes de actualización de ubicación: 10,000 QPD
  • Ediciones: 10 por minuto por Perfil de Negocio de Google (no se puede aumentar)
API de Account Management 300 QPM
API de Performance 300 QPM
API de Verifications 300 QPM
API de Lodging 300 QPM
API de Places Action 300 QPM
API de Notifications 300 QPM

Prácticas recomendadas para evitar errores de cuota

Distribuir tus solicitudes de forma continua y uniforme a lo largo del día evita la gran mayoría de los errores de cuota. Sigue estas prácticas recomendadas para asegurarte de que tu aplicación sincronice los datos de manera confiable.

Distribuye tus solicitudes de forma uniforme

En lugar de enviar un lote grande de solicitudes al mismo tiempo, distribúyelas en un período más largo. Por ejemplo, un límite de 300 QPM se traduce en un promedio de 5 solicitudes por segundo. Si se introduce una breve demora entre las solicitudes, se evitan los picos repentinos de tráfico.

Traffic distribution patterns:

Spiky traffic (Discouraged): High burst of requests followed by an idle period
Requests |   |||                 |||
         |   |||                 |||
         +---------------------------------
           Time ──>

Even traffic (Recommended): Consistent rate of requests over time
Requests |  |  |  |  |  |  |  |  |  |
         |  |  |  |  |  |  |  |  |  |
         +---------------------------------
           Time ──>
import time

# Pace requests to stay within the 300 QPM limit (5 requests/sec)
for request in batch_requests:
    send_request(request)
    time.sleep(0.2)  # 200ms delay ensures a smooth distribution

Implementa una retirada exponencial con jitter

Cuando recibas un error 429 Too Many Requests, usa la retirada exponencial con jitter para reintentar la solicitud automáticamente. Esta práctica estándar implica esperar un período breve y aleatorio antes de reintentar, y aumentar gradualmente la demora para los reintentos posteriores.

import random
import time
from googleapiclient.errors import HttpError

def call_api_with_retry(api_method, max_retries=5):
    base_delay = 1.0
    for attempt in range(max_retries):
        try:
            return api_method.execute()
        except HttpError as e:
            if e.resp.status == 429:
                if attempt == max_retries - 1:
                    raise e
                # Retry with exponential backoff and jitter
                sleep_time = random.uniform(0, base_delay * (2 ** attempt))
                time.sleep(sleep_time)
            else:
                raise e

Optimiza el acceso a los datos

  • Almacena en caché los datos estáticos: Almacena localmente los datos que cambian con poca frecuencia en lugar de consultar la API varias veces.
  • Usa notificaciones de Pub/Sub: Suscríbete a las notificaciones de Pub/Sub para mantener tus bases de datos actualizadas en tiempo real sin sondear la API.
  • Procesa los extremos con muchas lecturas de forma secuencial: Evita ejecutar varias solicitudes simultáneas a extremos con muchas lecturas, como SearchListings. En su lugar, procesa las tareas de forma secuencial con tokens de paginación.

Solicita un aumento de la cuota

Antes de solicitar un aumento de la cuota, verifica tus patrones de uso en la consola de Google Cloud para asegurarte de que el volumen de solicitudes no esté agrupado de forma innecesaria.

El equipo del Perfil de Negocio de Google supervisa tu uso promedio de la cuota para garantizar que utilices tus límites actuales de manera eficiente. Por lo general, las solicitudes de aumento de cuota se rechazan en los siguientes casos:

  • Tu aplicación no alcanza de forma constante el límite actual de QPM.
  • Tu uso promedio es inferior al 50% de tu límite actual de QPM.
  • Tu aplicación muestra un patrón de solicitudes con aumentos bruscos en lugar de una distribución uniforme.

Envía una solicitud

Si implementaste estas prácticas recomendadas y aún necesitas más cuota, envía una solicitud de aumento de cuota.

  1. Selecciona Solicitud de aumento de cuota en el menú desplegable.
  2. Proporciona el nombre de la empresa, el correo electrónico de contacto y el número de proyecto.

Después de que envíes el formulario, el equipo del Perfil de Negocio de Google revisará tu solicitud y determinará si el aumento de la cuota es adecuado. Si se aprueba la solicitud, se aumentará la cuota. Si se rechaza la solicitud, recibirás el motivo del rechazo.