Limiti di quota
Per garantire un utilizzo equo e proteggere la stabilità del sistema, le API Profilo dell'attività su Google (GBP) applicano quote alle richieste API. Se la tua richiesta supera un limite di quota, l'API risponde con un
429 Too Many Requests codice di stato HTTP (o RESOURCE_EXHAUSTED per gRPC).
Limiti di quota predefiniti
La tabella seguente elenca i limiti di quota standard per le API di Profilo dell'attività su Google. I limiti sono definiti in base a due dimensioni:
- Query al minuto (QPM): protegge la stabilità del backend limitando il traffico di picco a breve termine.
- Query al giorno (QPD): gestisce l'utilizzo complessivo giornaliero della piattaforma.
| API | Limiti |
|---|---|
| API Business Information |
|
| API Account Management | 300 QPM |
| API Performance | 300 QPM |
| API Verifications | 300 QPM |
| API Lodging | 300 QPM |
| API Place Actions | 300 QPM |
| API Notifications | 300 QPM |
Best practice per evitare errori di quota
La distribuzione continua e uniforme delle richieste durante il giorno previene la maggior parte degli errori di quota. Segui queste best practice per assicurarti che la tua applicazione sincronizzi i dati in modo affidabile.
Regola le richieste in modo uniforme
Anziché inviare un batch di richieste di grandi dimensioni contemporaneamente, distribuisci le richieste su un periodo di tempo più lungo. Ad esempio, un limite di 300 QPM si traduce in una media di 5 richieste al secondo. L'introduzione di un breve ritardo tra le richieste impedisce picchi di traffico improvvisi.
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 il backoff esponenziale con jitter
Quando ricevi un errore 429 Too Many Requests, utilizza
il backoff esponenziale con jitter per riprovare automaticamente la richiesta. Questa pratica standard
prevede l'attesa di un breve periodo casuale prima di riprovare e l'aumento graduale del ritardo
per i nuovi tentativi successivi.
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
Ottimizza l'accesso ai dati
- Memorizza nella cache i dati statici: archivia localmente i dati che cambiano di rado anziché eseguire query ripetute sull'API ripetutamente.
- Utilizza le notifiche Pub/Sub: abbonati alle notifiche Pub/Sub per mantenere aggiornati i database in tempo reale senza eseguire il polling dell'API.
-
Elabora gli endpoint con molte operazioni di lettura in sequenza: evita di eseguire più richieste simultanee
agli endpoint con molte operazioni di lettura, ad esempio
SearchListings. Elabora invece le attività in sequenza utilizzando i token di paginazione.
Richiedi un aumento della quota
Prima di richiedere un aumento della quota, verifica i pattern di utilizzo in console Google Cloud per assicurarti che il volume delle richieste non sia inutilmente raggruppato.
Il team di Profilo dell'attività su Google monitora l'utilizzo medio della quota per assicurarsi che tu stia utilizzando i limiti attuali in modo efficiente. Le richieste di aumento della quota vengono in genere rifiutate se:
- La tua applicazione non raggiunge costantemente il limite QPM attuale.
- L'utilizzo medio è inferiore al 50% del limite QPM attuale.
- La tua applicazione mostra un pattern di richieste molto irregolare anziché una distribuzione uniforme.
Invia una richiesta
Se hai implementato queste best practice e hai ancora bisogno di più quota, invia una richiesta di aumento della quota.
- Seleziona Richiesta di aumento della quota dal menu a discesa.
- Fornisci il nome dell'azienda, l'indirizzo email di contatto e il numero di progetto.
Dopo aver inviato il modulo, il team di Profilo dell'attività su Google esaminerà la tua richiesta e determinerà se l'aumento della quota è appropriato. Se la richiesta viene approvata, la quota verrà aumentata. Se la richiesta viene rifiutata, riceverai un motivo del rifiuto.