Guida all'ottimizzazione

Questa guida descrive diverse strategie per ottimizzare l'utilizzo delle API di Google Maps in termini di sicurezza, prestazioni e consumo.

Sicurezza

Esaminare le best practice per la sicurezza

Le chiavi API sono credenziali incentrate sul progetto che meritano le stesse precauzioni degli ID utente e delle password. Consulta le best practice per la sicurezza delle API per proteggere le tue chiavi da utilizzi involontari, che potrebbero comportare un utilizzo indebito della quota e addebiti imprevisti nel tuo account.

Utilizzo di chiavi API per accedere alle API di Google Maps

Le chiavi API sono il metodo di autenticazione preferito per accedere alle API Google Maps. L'uso degli ID client è ancora supportato, ma le chiavi API supportano controlli di sicurezza più granulari e possono essere regolate per funzionare con indirizzi web, indirizzi IP e SDK per dispositivi mobili (Android e iOS) specifici. Per informazioni sulla creazione e sulla protezione di una chiave API, vai alla pagina "Utilizzo di una chiave API" per ogni API o SDK. Ad esempio, per l'API Maps JavaScript, visita la relativa pagina Utilizzare una chiave API.

Rendimento

Utilizzo del backoff esponenziale per gestire gli errori

Se le tue app riscontrano errori derivanti da tentativi eccessivi di chiamare un'API in un breve periodo di tempo, ad esempio errori QPS, ti consigliamo di utilizzare il backoff esponenziale per consentire l'elaborazione delle richieste.

In particolare, modificheresti il pacing delle query. Nel codice, aggiungi un periodo di attesa di S secondi tra le query. Se la query restituisce ancora un errore QPS, raddoppia il periodo di attesa e invia un'altra query. Continua a modificare il periodo di attesa fino a quando la query non restituisce un errore.

Inviare richieste di interazione utente on demand

Le richieste alle API che includono l'interazione dell'utente devono essere inviate solo on demand. Ciò significa attendere che l'utente finale esegua un'azione (ad esempio on-click) per avviare la richiesta API, quindi utilizza i risultati per caricare una mappa, impostare una destinazione o visualizzare le informazioni appropriate. Questo approccio evita le richieste inutili alle API, riducendo il consumo di API.

Evitare la visualizzazione di contenuti in overlay quando una mappa è in movimento.

Evita di utilizzare Draw() per visualizzare contenuti di overlay personalizzati su una mappa nello stesso momento in cui un utente potrebbe spostare la mappa. Poiché la mappa viene tracciata di nuovo ogni volta che un utente la sposta, posizionare contemporaneamente i contenuti in overlay sulla mappa può introdurre ritardi o stuttering. Aggiungi o rimuovi i contenuti in overlay da una mappa solo dopo che l'utente ha smesso di eseguire una panoramica o lo zoom.

Evita le operazioni intense in Draw metodi

Come regola generale, è consigliabile evitare operazioni ad alta intensità non di disegno in un metodo Draw(). Ad esempio, evita quanto segue nel codice del metodo Draw():

  • Query che restituiscono una grande quantità di contenuti.
  • Molte modifiche ai dati visualizzati
  • Manipolazione di molti elementi DOM (Document Object Model).

Queste operazioni possono rallentare le prestazioni e introdurre ritardi o ritardi visivi quando la mappa viene visualizzata.

Utilizzare immagini raster per i marcatori

Utilizza immagini raster, come le immagini in formato .PNG o .JPG, quando aggiungi gli indicatori per identificare una posizione sulla mappa. Evita di utilizzare immagini SVG (Scalable Vector Graphics), perché il rendering delle immagini SVG può introdurre ritardi quando la mappa viene ridisegnata.

Ottimizzazione degli indicatori

L'ottimizzazione migliora il rendimento mostrando molti indicatori come un singolo elemento statico. Ciò è utile nei casi in cui è richiesto un numero elevato di indicatori. Per impostazione predefinita, l'API Maps JavaScript decide se ottimizzare un indicatore. Se è presente un numero elevato di indicatori, l'API Maps JavaScript proverà a eseguire il rendering degli indicatori con l'ottimizzazione. Non tutti gli indicatori possono essere ottimizzati; in alcune situazioni, l'API Maps JavaScript potrebbe dover visualizzare gli indicatori senza ottimizzazione. Disattiva il rendering ottimizzato per le GIF o i PNG animati o quando ogni indicatore deve essere visualizzato come elemento DOM separato.

Creazione di cluster per gestire la visualizzazione degli indicatori

Per gestire la visualizzazione degli indicatori in modo da identificare le posizioni su una mappa, crea un cluster di indicatori utilizzando la libreria Cluster di indicatori. La libreria del Cluster di indicatori include opzioni per:

  • Dimensioni griglia, per specificare il numero di indicatori da raggruppare in un cluster.
  • Zoom massimo per specificare il livello massimo di zoom in cui visualizzare il cluster.
  • Percorsi delle immagini da utilizzare come icone degli indicatori nelle immagini grafiche.

Utilizzo

Per pianificare il budget e controllare i costi:

  • Imposta un avviso relativo al budget per monitorare l'aumento dei costi legati a un determinato importo. L'impostazione di un budget non limita l'utilizzo dell'API: ti avvisa solo quando i costi sono vicini all'importo specificato.
  • Limite di utilizzo giornaliero delle API per gestire i costi delle API fatturabili. Se limiti le richieste al giorno, puoi limitare i costi. Utilizza una semplice equazione per determinare il limite giornaliero, a seconda di quanto vuoi spendere: (costo mensile/prezzo per ogni)/30 = richieste al limite giornaliero (per un'API). L'implementazione specifica può utilizzare più API fatturabili, quindi regola l'equazione in base alle tue esigenze. Ogni mese è disponibile un credito delle API di Google Maps di 200 $, quindi tienilo presente nei calcoli.
  • Utilizza più progetti per isolare, assegnare le priorità e monitorare l'utilizzo. Ad esempio, supponi di utilizzare regolarmente le API Google Maps Platform nei tuoi test. Creando un progetto separato per il test, con le proprie quote e chiavi API, puoi eseguire test approfonditi facendo attenzione alla spesa eccessiva a sorpresa.

Gestire il consumo in Maps

Utilizzare una singola mappa per pagina è un buon modo per ottimizzare la visualizzazione delle mappe, in quanto gli utenti generalmente interagiscono con una sola mappa alla volta. L'app può manipolare la mappa per visualizzare set di dati diversi, a seconda dell'interazione con il cliente e delle sue esigenze.

Utilizzare immagini statiche

Le richieste che utilizzano immagini dinamiche (Dynamic Maps e Dynamic Street View) hanno un costo maggiore di quelle di Static Maps e Static Street View. Se non prevedi l'interazione degli utenti con una mappa o Street View (zoom o panoramica), utilizza le versioni statiche di queste API.

Le miniature, molto piccole, sono mappe molto utili e sono un altro strumento utile per le mappe statiche e per Street View statico. Questi elementi vengono fatturati a una tariffa inferiore e al momento dell'interazione dell'utente (al clic) e possono indirizzare gli utenti a una versione dinamica per un'esperienza completa di Google Maps.

Utilizzare l'API Maps Embed

Puoi utilizzare l'API Embed di Maps per aggiungere una mappa con un singolo indicatore o una mappa dinamica, senza costi. Utilizza l'API Maps Embed per applicazioni in cui è richiesto un singolo indicatore e non è necessaria la personalizzazione della mappa. Le richieste API Embed di Maps che utilizzano la modalità Indicazioni stradali, la modalità di visualizzazione o la modalità Ricerca vengono fatturate (consulta la tabella dei prezzi per i dettagli).

Utilizzo di SDK Maps per dispositivi mobili per le applicazioni mobile

Per le applicazioni per dispositivi mobili, utilizza Maps SDK for Android o Maps SDK for iOS quando visualizzi una mappa. Utilizza l'API Maps Static o l'API Maps JavaScript quando ci sono requisiti che escludono gli SDK per dispositivi mobili.

Gestire il consumo nelle route

Restrizioni relative all'API Directions

Se possibile, limita le voci degli utenti in una query a un massimo di 10 tappe. Le richieste contenenti più di 10 tappe vengono fatturate a una tariffa superiore.

Utilizzo dell'ottimizzazione dell'API Directions per un routing ottimale

Le richieste che utilizzano l'argomento di ottimizzazione dei Waypoint vengono fatturate a una tariffa superiore. Per scoprire di più, consulta Ottimizzazione dei punti di accesso.

L'argomento di ottimizzazione ordina i tappe per garantire un routing ottimale, vale a dire che il passaggio da A a E è un'esperienza migliore se ottimizzata (A-B-C-D-E) rispetto alla sequenza casuale di un percorso non ottimizzato (ad esempio A-D-B-C-E).

Utilizzo di modelli di traffico in tempo reale nell'API Directions e nell'API DIST Matrix

Le richieste all'API Directions e all'API DIST Matrix che includono modelli di traffico in tempo reale vengono fatturate a una tariffa superiore. I modelli di traffico in tempo reale vengono attivati impostando l'orario di partenza su now.

Se i modelli di traffico vengono omessi da una richiesta, i risultati si basano esclusivamente su fattori fisici: strade, distanza e limiti di velocità.

Utilizzo di Percorso percorso e strada più vicina quando i dati GPS sono imprecisi

Le funzionalità dell'API Maps Roads, Route Traveled e Nearest Road, sono incluse nel livello avanzato e vengono fatturate a una tariffa più elevata. Utilizza queste funzionalità dove i dati GPS sono imprecisi e l'API Roads può aiutarti a determinare la strada corretta. Limiti di velocità, un'altra funzionalità dell'API Roads, è disponibile solo per i clienti del monitoraggio degli asset.

Campioni di velocità di campionamento a intervalli di 5-15 minuti

Per ridurre al minimo il volume delle chiamate al servizio Limite di velocità dell'API Maps Roads, campiona le posizioni dei tuoi asset a intervalli di 5-15 minuti. Il valore esatto dipende dalla velocità di viaggio di un asset. Se una risorsa è ferma, un singolo campione di località è sufficiente. Non è necessario effettuare più chiamate.

Per ridurre al minimo la latenza complessiva, chiama il servizio Limite di velocità una volta accumulati alcuni dati anziché chiamare l'API ogni volta che viene ricevuta la posizione di un asset per dispositivi mobili.

Gestire il consumo in Places

Ottimizzazione delle implementazioni di Completamento automatico di luoghi

Per ottimizzare il costo dell'utilizzo del completamento automatico dei luoghi:

  • utilizza le maschere dei campi nei widget di completamento automatico JavaScript, Android e iOS per restituire solo i campi dati dei luoghi necessari.

  • alcune opzioni di fatturazione dipendono dal caso d'uso. A seconda che l'implementazione utilizzi o meno le sessioni di completamento automatico, ti verranno addebitati gli SKU Completamento automatico - Per richiesta o Completamento automatico - Per sessione.

Per ulteriori informazioni e indicazioni sulla scelta dell'opzione appropriata per il tuo caso d'uso, consulta le best practice per l'ottimizzazione automatica dei costi del completamento automatico.

Reso di dati per campi specifici nelle richieste Dettagli luogo e Ricerca luoghi

Puoi personalizzare i dettagli del luogo e le richieste di ricerca per ottenere dati relativi a campi specifici utilizzati nella tua applicazione. Questi campi sono suddivisi in categorie: Di base, Contatto e Ambiente. Le richieste che non specificano alcun campo riceveranno i dati per tutti i campi.

La fatturazione per le richieste Dettagli luogo si basa sui tipi e sulle quantità di dati richiesti. Le richieste che non specificano alcun campo verranno fatturate a tariffa intera. Per scoprire di più, consulta i dettagli del luogo e la ricerca di un luogo.

Ridurre i costi utilizzando l'API Geocoding

Se la tua applicazione gestisce indirizzi digitati dall'utente, a volte sono indirizzi ambigui (non completi, con errori ortografici o in un formato non corretto). Disambigua gli indirizzi utilizzando il completamento automatico, quindi utilizza gli ID luogo per ottenere le posizioni dei luoghi.

Se hai un indirizzo esatto (o vicino), puoi ridurre i costi utilizzando la geocodifica anziché il completamento automatico. Per ulteriori dettagli, consulta la sezione Best practice per gli indirizzi di geocodifica.

Come funzionano le quote di Google Maps Platform

Tutte le nostre API hanno dei limiti relativi al numero di chiamate che ogni cliente può effettuare. Queste quote vengono configurate al minuto. Una volta raggiunta la quota di chiamate per una determinata API in un minuto, le chiamate future non saranno accettate fino al minuto successivo.

Solo le richieste riuscite e le richieste che causano errori del server vengono conteggiate nella quota. Le richieste che non superano l'autenticazione non vengono conteggiate nella quota.

Oltre ad applicazione della quota al minuto, diverse API di Google Maps presentano un'applicazione al secondo. Questa applicazione al secondo non garantisce un utilizzo uniforme nell'intero minuto, né ti impedirà di raggiungere la tua quota di utilizzo per quel minuto. Ti impedisce di esaurire tutta la quota nel primo o nel secondo minuto e ti protegge da interruzioni del servizio in caso di picco di utilizzo improvviso. Per gestire queste differenze di applicazione, pianifica l'utilizzo della quota e i requisiti mediando l'utilizzo di QPM su QPS.

Le API GMP con questa applicazione al secondo sono API Directions, API DIST Matrix, API Elevation, API Geocoding, API Places e API Roads.

Stima i costi per qualsiasi prodotto dell'API GMP, in base al volume totale delle richieste.