Limiti e quote

Segui questa guida per comprendere i limiti e le quote quando utilizzi l'API Data Manager.

Limiti per i progetti

Per utilizzare l'API Data Manager, devi avere un progetto Google Cloud. Il progetto Google Cloud fornisce il client OAuth e le credenziali che utilizzi per autenticare le richieste API.

L'API Data Manager applica limiti di frequenza a ogni progetto Google Cloud, separati per servizio e tipo di operazione (lettura e modifica):

Servizio Operazione Richieste al giorno Richieste al minuto
IngestionService Mutate (scrittura) 100.000 300
IngestionService Lettura 100.000 300
Tutti gli altri servizi combinati Mutate (scrittura) 50.000 300
Tutti gli altri servizi combinati Lettura 50.000 300

Le richieste che superano i limiti vengono rifiutate con l'errore RESOURCE_EXHAUSTED e lo stato HTTP 429 Too Many Requests.

Puoi assumere il controllo della tua app e mitigare le limitazioni di frequenza sia riducendo attivamente il numero di richieste sia limitando le QPS dal lato client. Puoi anche configurare avvisi quota e monitoraggio nella console Google Cloud per ricevere notifiche prima che l'applicazione raggiunga i limiti.

Nomi delle quote

Ogni limite corrisponde a un nome e a una metrica del limite di quota in Google Cloud. Quando una richiesta supera un limite, l'API Data Manager restituisce il nome del limite di quota nel payload dei dettagli standard ErrorInfo in metadata.quota_limit:

Nome del limite di quota Servizio Operazione Finestra Limite
IngestionMutateRequestsPerDayPerProject IngestionService Modifica Giorno 100.000
IngestionMutateRequestsPerMinutePerProject IngestionService Modifica Minuto 300
IngestionReadRequestsPerDayPerProject IngestionService Lettura Giorno 100.000
IngestionReadRequestsPerMinutePerProject IngestionService Lettura Minuto 300
ManagementMutateRequestsPerDayPerProject Tutti gli altri servizi Modifica Giorno 50.000
ManagementMutateRequestsPerMinutePerProject Tutti gli altri servizi Modifica Minuto 300
ManagementReadRequestsPerDayPerProject Tutti gli altri servizi Lettura Giorno 50.000
ManagementReadRequestsPerMinutePerProject Tutti gli altri servizi Lettura Minuto 300

Esamina metadata.quota_limit nel payload ErrorInfo per distinguere tra errori di limite giornaliero e al minuto e determinare se mettere in pausa temporaneamente e riprovare con backoff o mettere in pausa fino al ripristino della quota giornaliera. Per maggiori dettagli, consulta Errori relativi a quote e limiti di frequenza.

Gestisci i limiti di frequenza e la concorrenza

Per massimizzare il throughput senza superare le quote del progetto, segui queste linee guida:

  • Raggruppa i record per richiesta: includi il maggior numero possibile di record in ogni richiesta fino ai limiti di richiesta (fino a 10.000 risorse AudienceMember o 2000 risorse Event per richiesta).

  • Invia fino a 10 richieste in parallelo: per ridurre il tempo di importazione totale senza superare il limite di 300 richieste al minuto, invia fino a 10 richieste in parallelo a IngestionService.

  • Riprova i limiti di frequenza al minuto con backoff: se una richiesta non va a buon fine con RESOURCE_EXHAUSTED (HTTP 429) e metadata.quota_limit indica un limite al minuto (ad esempio IngestionMutateRequestsPerMinutePerProject), riprova utilizzando il backoff esponenziale con jitter (ad esempio, attendendo 1 s, 2 s e 4 s tra i nuovi tentativi).

  • Metti in pausa quando la quota giornaliera è esaurita: se metadata.quota_limit indica un limite giornaliero (ad esempio IngestionMutateRequestsPerDayPerProject), non riprovare immediatamente. Metti in pausa le richieste fino a quando la quota giornaliera non viene reimpostata alla mezzanotte del fuso orario del Pacifico.

Limiti per le richieste

Di seguito sono riportati i limiti per richieste specifiche: