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 usate per gli ID utente e le password. Leggi le best practice per la sicurezza delle API per proteggere le tue chiavi da utilizzi imprevisti che potrebbero portare a un utilizzo inadeguato della quota e a costi imprevisti per il tuo account.

Utilizzo delle chiavi API per accedere alle API di Google Maps

Le chiavi API sono il metodo di autenticazione preferito per accedere alle API di Google Maps. Sebbene l'utilizzo degli ID client sia ancora supportato, le chiavi API supportano controlli di sicurezza più granulari e possono essere regolati per funzionare con indirizzi web, indirizzi IP e SDK per dispositivi mobili specifici (Android e iOS). 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 Utilizzo di una chiave API.

Prestazioni

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, valuta la possibilità di utilizzare il backoff esponenziale per consentire l'elaborazione delle richieste.

Il backoff esponenziale è più utile per gli errori relativi agli anni '50. Per ulteriori informazioni, consulta Gestire i codici di stato HTTP per i resi.

In particolare, modifica 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 tempo di attesa e invia un'altra query. Continua a modificare il periodo di attesa fino a quando la query non viene restituita senza un errore.

Inviare richieste di interazione degli utenti on demand

Le richieste alle API che includono un'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 e utilizzare i risultati per caricare una mappa, impostare una destinazione o visualizzare le informazioni appropriate. L'utilizzo di un approccio on demand evita richieste inutili alle API, riducendo il consumo delle API.

Evitare di visualizzare contenuti in overlay durante lo spostamento di una mappa.

Evita di utilizzare Draw() per visualizzare contenuti overlay personalizzati su una mappa nello stesso momento in cui un utente potrebbe spostarla. Poiché la mappa viene ricreata ogni volta che un utente la sposta, posizionando contemporaneamente i contenuti in overlay sulla mappa si possono introdurre ritardi o stuttering le immagini. Aggiungi o rimuovi i contenuti in overlay da una mappa solo quando l'utente smette di eseguire la panoramica o lo zoom.

Evita le operazioni intensive nei metodi Draw

Come regola generale, è buona prassi evitare operazioni ad alta intensità di non 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 del 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 gli indicatori

Utilizza immagini raster, come le immagini in formato .PNG o .JPG, quando aggiungi indicatori per identificare una posizione su una mappa. Evita di utilizzare immagini SVG (Scalable Vector Graphicics) poiché il rendering delle immagini SVG può introdurre un ritardo quando la mappa viene ridisegnata.

Ottimizzazione degli indicatori

L'ottimizzazione migliora il rendimento eseguendo il rendering di molti indicatori come singolo elemento statico. Ciò è utile nei casi in cui è richiesto un numero elevato di indicatori. Per impostazione predefinita, l'API Maps JavaScript decide se un indicatore deve essere ottimizzato. Quando è presente un numero elevato di indicatori, l'API Maps JavaScript tenterà di eseguire il rendering degli indicatori con l'ottimizzazione. Non tutti gli indicatori possono essere ottimizzati; in alcuni casi l'API Maps JavaScript potrebbe dover eseguire il rendering degli indicatori senza ottimizzazione. Disattiva il rendering ottimizzato per GIF o PNG animati oppure 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 Marker Clusterer. La libreria Clusterer 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 di indicatori.

Utilizzo

Per pianificare il budget e controllare i costi:

  • Imposta un avviso relativo al budget per monitorare l'aumento dei tuoi costi rispetto a un determinato importo. L'impostazione di un budget non pone un limite all'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 un'equazione semplice per determinare il tuo limite giornaliero, a seconda di quanto vuoi spendere: (costo mensile/prezzo per unità )/30 = richieste al giorno (per un'API). La tua implementazione specifica può utilizzare più API fatturabili, quindi modifica l'equazione se necessario. Ogni mese è disponibile un credito di 200$per le API di Google Maps, quindi tienilo presente nei calcoli.
  • Utilizza più progetti per isolare, dare la priorità e monitorare l'utilizzo. Ad esempio, supponi di utilizzare regolarmente le API Google Maps Platform nei test. Creando un progetto separato per il tuo test, con le proprie quote e le proprie chiavi API, puoi eseguire test accurati evitando sorprese in eccesso.

Gestire il consumo in Maps

L'utilizzo di una singola mappa per pagina è un ottimo modo per ottimizzare la visualizzazione delle mappe, dato che in genere gli utenti interagiscono con una sola mappa alla volta. La tua app può manipolare la mappa in modo da visualizzare set di dati diversi, a seconda dell'interazione e delle esigenze del cliente.

Utilizzare immagini statiche

Le richieste che utilizzano immagini dinamiche (Dynamic Maps e Dynamic Street View) costano di più rispetto a Static Maps e Static Street View. Se non prevedi l'interazione degli utenti con Maps o Street View (zoom o panoramica), utilizza le versioni statiche di queste API.

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

Utilizzo dell'API Maps Embed

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

Utilizzo di SDK Maps per dispositivi mobili per 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 i requisiti richiedono l'utilizzo degli SDK per dispositivi mobili.

Gestione del consumo in Route

Limitazione dei tappe dell'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 tappe vengono fatturate a una tariffa superiore. Per ulteriori informazioni, consulta la sezione Ottimizza i Waypoint.

L'argomento di ottimizzazione ordina i punti di via per garantire un routing ottimale, il che significa che il viaggio da A a E è un'esperienza migliore quando è ottimizzato (A-B-D-E) rispetto alla sequenza casuale di un percorso non ottimizzato (come A-D-B-C-E).

Utilizzo di modelli di traffico in tempo reale nelle API Directions e API Distance Matrix

Le richieste all'API Directions e all'API Distance Matrix che includono modelli di traffico in tempo reale vengono fatturate a una tariffa superiore. Per attivare i modelli di traffico in tempo reale, imposta 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 in caso di dati imprecisi

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

Limiti di velocità per il campionamento a intervalli di 5-15 minuti

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

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

Gestire il consumo in Places

Ottimizzazione delle implementazioni di Place Autocomplete

Per ottimizzare i costi di utilizzo del completamento automatico dei luoghi:

Per saperne di più e istruzioni sulla scelta dell'opzione adatta al tuo caso d'uso, consulta le best practice per l'ottimizzazione automatica dei costi di Place Autocomplete.

Invio di dati relativi a campi specifici nelle richieste Dettagli luogo e Ricerca luogo

Puoi personalizzare i dettagli del luogo e le richieste di ricerca del luogo in modo che restituiscano dati per campi specifici utilizzati nella tua applicazione. Questi campi sono suddivisi in categorie: Base, Contatto e Ambiente. Le richieste che non specificano alcun campo riceveranno 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 alla tariffa completa. Per saperne di più, consulta Dettagli luogo e Ricerca di luoghi.

Riduzione dei costi con l'API Geocoding

Se la tua applicazione gestisce indirizzi digitati dall'utente, gli indirizzi a volte sono ambigui (incompleti, con errori ortografici o con formattazione errata). Disambigua gli indirizzi mediante il completamento automatico, quindi utilizza gli ID luogo per ottenere le sedi dei luoghi.

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

Come funzionano le quote di Google Maps Platform

Tutte le nostre API hanno limiti relativi al numero di chiamate che ogni cliente può effettuare. Le quote sono configurate ogni minuto. Una volta raggiunta la quota di chiamate su 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.

Oltre ad applicare l'applicazione della quota al minuto, sono disponibili diverse API di Google Maps al secondo. Questa applicazione al secondo non garantisce un utilizzo uniforme durante l'intero minuto, né ti impedirà di raggiungere la quota di utilizzo per quel minuto. Ti impedisce di utilizzare l'intera quota nel primo o secondo secondo di un determinato minuto e ti protegge dalle interruzioni del servizio in caso di picco di utilizzo improvviso. Per gestire queste differenze di applicazione, pianifica l'utilizzo e i requisiti della quota facendo una media dell'utilizzo di QPM su QPS.

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

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