Pianifica la latenza dell'API

La latenza è il tempo che intercorre fino alla ricezione della risposta a una richiesta. Questa guida fornisce le latenze dell'ordine di grandezza per le richieste API Merchant. Utilizza questi valori per impostare i timeout e pianificare la velocità effettiva dell'integrazione.

La maggior parte delle richieste API Merchant viene completata in meno di un secondo. Gli aggiornamenti dell'inventario locale e regionale potrebbero richiedere alcuni secondi, mentre alcune query dei report richiedono molto più tempo.

Latenze tipiche

La tabella seguente elenca le latenze approssimative per tipo di richiesta. La latenza tipica è la mediana: metà delle richieste viene completata più velocemente. L'1%più lento delle richieste richiede il tempo indicato nell'ultima colonna o più.

Tipo di richiesta Esempi di metodi Latenza tipica 1% delle richieste più lente
Letture e scritture dei prodotti products.get, productInputs.insert, productInputs.patch, productInputs.delete Da 100 a 600 millisecondi Circa 2 secondi
La maggior parte delle altre richieste products.list, accounts.get, dataSources.list, aggregateProductStatuses.list Meno di 1 secondo Pochi secondi
Scritture di inventario locale e regionale localInventories.insert, regionalInventories.insert e i metodi delete corrispondenti Pochi secondi Almeno 10 secondi
Query report accounts.reports.search Circa mezzo secondo Almeno 30 secondi

Le query dei report sono quelle che variano di più. La latenza dipende dalla tabella report su cui esegui la query e dalla quantità di dati coperti dalla query. Circa 1 query di report su 10 richiede in genere più di 2 secondi e una piccola parte può richiedere più di un minuto.

Consigli

  • Imposta i timeout con un margine di sicurezza. Se imposti i timeout delle richieste nel client, impostali su un valore ben superiore alle latenze più lente elencate in Latenze tipiche. Ad esempio, un timeout di 60 secondi lascia un margine ampio per la maggior parte delle richieste, ma non per tutte le query dei report.
  • Invia richieste indipendenti in parallelo. Poiché le scritture dell'inventario richiedono alcuni secondi ciascuna, l'invio una dopo l'altra limita la velocità effettiva. Invia richieste indipendenti in parallelo o utilizza le richieste batch. Quando invii più richieste, tieni presente i limiti al minuto e i limiti giornalieri. Per saperne di più, consulta Quote di frequenza.
  • Limita le query dei report ai dati di cui hai bisogno. Le query che coprono set di dati di grandi dimensioni, ad esempio intervalli di date lunghi, richiedono più tempo e potrebbero andare in timeout. Se hai bisogno di grandi quantità di dati, ti consigliamo di utilizzare BigQuery. Per saperne di più, consulta Carica i dati di Google Merchant Center in BigQuery.
  • Riprova con un backoff esponenziale. Se una richiesta scade o non va a buon fine con un errore temporaneo, riprova con il backoff esponenziale.

Tempo di elaborazione

Per le richieste che modificano i dati, una risposta positiva indica che l'API Merchant ha accettato la modifica, ma l'elaborazione continua dopo la risposta. Il tempo di elaborazione è il tempo che intercorre tra la risposta e la visualizzazione della modifica in altre risorse. Il tempo di elaborazione non fa parte della latenza e può essere molto più lungo. Ad esempio, potrebbero essere necessari alcuni minuti prima che il prodotto elaborato rifletta un input del prodotto inserito.

Per saperne di più sullo stato finale dei dati elaborati, consulta le seguenti guide: