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
AudienceMembero 2000 risorseEventper 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(HTTP429) emetadata.quota_limitindica un limite al minuto (ad esempioIngestionMutateRequestsPerMinutePerProject), 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_limitindica un limite giornaliero (ad esempioIngestionMutateRequestsPerDayPerProject), 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:
IngestAudienceMembersRequesteRemoveAudienceMembersRequest:10.000 risorse
AudienceMembernell'elencoaudience_members10 identificatori utente in
UserDataper unAudienceMember10 risorse
Destinationnell'elencodestinations
RemoveAllAudienceMembersRequest:- 10 risorse
Destinationnell'elencodestinations
- 10 risorse
-
2000 risorse
Eventnell'elencoevents10 identificatori utente in
UserDataper unEvent10 risorse
Destinationnell'elencodestinations