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 sui progetti che meritano le stesse precauzioni degli ID utente e delle password. Consulta le best practice per la sicurezza delle API per proteggere le chiavi dall'uso involontario, che potrebbe comportare un utilizzo eccessivo della quota e addebiti imprevisti al 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 delle 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 ottimizzate 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, consulta la 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.

Rendimento

Utilizzo del backoff esponenziale per gestire gli errori

Se nelle tue app si verificano errori dovuti a un numero eccessivo di tentativi 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.

Il backoff esponenziale è utile soprattutto per gli errori dei 500 secondi. Per maggiori informazioni, consulta Gestione dei codici di stato HTTP restituiti.

In particolare, regola la velocità delle query. Nel codice, aggiungi un periodo di attesa di S secondi tra una query e l'altra. Se la query continua a generare un errore QPS, raddoppia il periodo di attesa e invia un'altra query. Continua a modificare il periodo di attesa finché la query non viene restituita senza errore.

Invio di richieste di interazione degli utenti 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 es. on-click) per avviare la richiesta API, quindi utilizzare i risultati per caricare una mappa, impostare una destinazione o visualizzare le informazioni appropriate. L'utilizzo di un approccio on demand evita richieste non necessarie alle API, riducendo il consumo delle API.

Evitare di visualizzare contenuti di overlay quando una mappa è in movimento

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

Vengono evitate operazioni intensive nei metodi Draw

Come regola generale, è buona norma evitare operazioni non di disegno ad alte prestazioni con un metodo Draw(). Ad esempio, nel codice del metodo Draw() evita quanto segue:

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

Queste operazioni possono rallentare le prestazioni e introdurre ritardi o stuttering della visualizzazione durante il rendering della mappa.

Uso di immagini raster per gli indicatori

Quando aggiungi indicatori per identificare una località su una mappa, utilizza immagini raster, ad esempio in formato .PNG o .JPG. Evita di utilizzare immagini Scalable Vector Graphics (SVG), poiché il rendering delle immagini SVG può introdurre ritardi quando la mappa viene ridisegnata.

Ottimizzazione degli indicatori

L'ottimizzazione migliora il rendimento eseguendo il rendering di molti indicatori come un singolo elemento statico. Ciò è utile nei casi in cui è necessario un numero elevato di indicatori. Per impostazione predefinita, l'API Maps JavaScript deciderà se un indicatore verrà ottimizzato. Quando il numero di indicatori è elevato, l'API Maps JavaScript tenta di eseguire il rendering degli indicatori con l'ottimizzazione. Non tutti gli indicatori possono essere ottimizzati; in alcune situazioni, l'API Maps JavaScript potrebbe dover eseguire il rendering degli indicatori senza l'ottimizzazione. Disattiva il rendering ottimizzato per GIF o PNG animate 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 al fine di identificare i luoghi su una mappa, crea un cluster di indicatori utilizzando la libreria Cluster di indicatori. La libreria Clusterer indicatori include opzioni per:

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

Consumo

Per pianificare il budget e controllare i costi:

  • Imposta un avviso relativo al budget per monitorare l'aumento dei costi rispetto a un determinato importo. L'impostazione di un budget non pone un limite all'utilizzo dell'API, ma ti avvisa solo quando i costi si avvicinano all'importo specificato.
  • Limita l'utilizzo giornaliero delle API per gestire i costi delle API fatturabili. Impostando dei limiti sulle richieste giornaliere, puoi limitare i costi. Utilizza una semplice equazione per determinare il limite giornaliero, a seconda di quanto vuoi spendere: (costo mensile/prezzo per ognuno)/30 = limite per richieste al giorno (per un'API). La tua implementazione specifica potrebbe utilizzare più API fatturabili, quindi modifica l'equazione in base alle tue esigenze. Ogni mese è disponibile un credito mensile di 200$per le API di Google Maps, quindi tienilo in considerazione nei tuoi 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 i test, con le proprie quote e chiavi API, puoi eseguire test approfonditi, evitando di spendere inutilmente sorprese.

Gestire il consumo in Maps

L'utilizzo di una singola mappa per pagina è un buon metodo per ottimizzare la visualizzazione delle mappe, poiché in genere gli utenti interagiscono con una sola mappa alla volta. L'app può manipolare la mappa per visualizzare diversi set di dati, a seconda dell'interazione e delle esigenze del cliente.

Utilizzo di immagini statiche

Le richieste che utilizzano immagini dinamiche (Dynamic Maps e Dynamic Street View) hanno un costo maggiore rispetto a Static Maps e Static Street View. Se non prevedi un'interazione dell'utente con Mappa o Street View (zoom o panoramica), utilizza le versioni statiche di queste API.

Le miniature, ovvero mappe molto piccole e foto, sono un altro ottimo utilizzo per le mappe statiche e per Street View. Questi elementi vengono fatturati a una tariffa inferiore e in seguito all'interazione dell'utente (al 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 una mappa con un singolo indicatore o una mappa dinamica, senza costi aggiuntivi. Utilizza l'API Maps Embed per applicazioni in cui sono richiesti un singolo indicatore e nessuna personalizzazione della mappa. Le richieste dell'API Maps Embed che utilizzano la modalità Indicazioni stradali, la modalità di visualizzazione o la modalità di ricerca verranno fatturate (per informazioni dettagliate, consulta la tabella dei prezzi).

Utilizzo degli SDK per le mappe mobile per le applicazioni mobile

Per le applicazioni mobile, utilizza Maps SDK for Android o Maps SDK for iOS per visualizzare una mappa. Utilizza l'API Maps Static o l'API Maps JavaScript quando i requisiti non prevedono l'utilizzo degli SDK per dispositivi mobili.

Gestione del consumo nelle route

Limitazione delle tappe dell'API Directions

Se possibile, limita le voci utente 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 ottimizzare i percorsi

Le richieste che utilizzano l'argomento ottimizzazione delle tappe vengono fatturate a una tariffa superiore. Per ulteriori informazioni, vedi Ottimizzare i waypoint.

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

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

Le richieste di API Directions e API Distance 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 unicamente su fattori fisici: strade, distanza e limiti di velocità.

Utilizzo di Percorso percorso e Strada più vicina quando i dati GPS non sono precisi

Le funzionalità dell'API Maps Roads, Route Traveled e Nearest Road, sono incluse nel livello avanzato e vengono fatturate a una tariffa più elevata. Usa queste funzioni dove i dati GPS non sono precisi e l'API Roads può aiutarti a determinare la strada giusta. Limiti di velocità, un'altra funzionalità dell'API Roads, è disponibile solo per i clienti di Asset Tracking.

Posizioni dei limiti di velocità di campionamento a intervalli di 5-15 minuti

Per ridurre al minimo il volume di chiamate al servizio Limite di 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 un asset è fisso, è sufficiente un singolo campione di posizione. 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 posizione di un asset mobile.

Gestione del consumo in Places

Ottimizzazione delle implementazioni di Place Autocomplete

Per ottimizzare il costo dell'utilizzo di Place Autocomplete:

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

  • la selezione delle opzioni di fatturazione dipende dal caso d'uso specifico. A seconda che la tua implementazione utilizzi o meno le sessioni di completamento automatico, ti verranno addebitati gli SKU Completamento automatico - Per richiesta o Completamento automatico - Per sessione.

Per maggiori informazioni e indicazioni sulla scelta dell'opzione giusta per il tuo caso d'uso, consulta Applica le best practice per l'ottimizzazione dei costi di Autocomplete.

Restituzione di dati per campi specifici nelle richieste Place Details e Place Search

Puoi personalizzare le richieste Place Details e Place Search in modo che restituiscano i dati per campi specifici utilizzati nell'applicazione. Questi campi sono suddivisi in categorie: Base, Contatto e Ambiente. Le richieste che non specificano alcun campo riceveranno i dati per tutti i campi.

La fatturazione per le richieste Place Details si basa sui tipi e sulle quantità di dati richiesti. Per le richieste che non specificano alcun campo verrà addebitata la tariffa intera. Per ulteriori informazioni, consulta le sezioni Place Details (Dettagli luogo) e Place Search (Ricerca di luoghi).

Ridurre i costi utilizzando l'API Geocoding

Se l'applicazione gestisce indirizzi digitati dall'utente, gli indirizzi sono talvolta ambigui (completi, con errori ortografici o formattati in modo errato). Disambigua gli indirizzi utilizzando il completamento automatico, poi utilizza gli ID luogo per ottenere le località dei luoghi.

Se hai un indirizzo esatto (o vicino a questo), puoi ridurre i costi utilizzando Geocoding anziché Autocomplete. Per ulteriori dettagli, consulta le best practice per gli indirizzi di geocodifica.

Come funzionano le quote di Google Maps Platform

Tutte le nostre API impongono dei limiti al numero di chiamate che ogni cliente può effettuare. Queste quote sono 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 andate a buon fine e quelle che causano errori del server vengono conteggiate ai fini della quota. Le richieste che non superano l'autenticazione non vengono conteggiate ai fini della quota.

L'applicazione di diverse API di Google Maps viene applicata al secondo, oltre a quella della quota al minuto. Questa applicazione al secondo non garantisce un utilizzo uniforme nell'intero minuto, né ti impedisce di raggiungere la quota di utilizzo per quel minuto. Ti impedisce però di esaurire tutta la quota nei primi secondi o due al minuto e ti protegge dalle interruzioni del servizio in caso di picchi di utilizzo improvvisi. Per far fronte a queste differenze di applicazione, pianifica l'utilizzo delle quote e i requisiti calcolando la media dell'utilizzo di QPM in QPS.

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

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