Questa guida descrive diverse strategie per ottimizzare l'utilizzo delle API di Google Maps in termini di sicurezza, prestazioni e utilizzo.
Sicurezza
Revisione delle 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 chiavi da un utilizzo involontario che potrebbe portare a un utilizzo eccessivo della quota e ad addebiti imprevisti sul 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 attualmente 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 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 sull'utilizzo di una chiave API.
Esibizione
Utilizzo del backoff esponenziale per gestire gli errori
Se nelle tue app si verificano errori dovuti a 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 del 500° percentile. Per ulteriori informazioni, consulta Gestione dei codici di stato restituiti HTTP.
In particolare, modifica la frequenza di pubblicazione 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 finché la query non viene restituita senza errori.
Invio di 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 utilizzare i risultati per caricare una mappa, impostare una destinazione o visualizzare informazioni appropriate. L'utilizzo di un approccio on demand evita richieste non necessarie alle API, riducendo il consumo delle API.
Evitare di mostrare contenuti in overlay quando una mappa è in movimento
Evita di utilizzare Draw()
per mostrare contenuti di overlay personalizzati su una mappa 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ò causare ritardi o interruzioni visive. Aggiungi o rimuovi i contenuti in overlay da una mappa solo quando l'utente smette di eseguire la panoramica o lo zoom.
Evitare operazioni pesanti nei metodi Draw
Come regola generale, è buona norma evitare operazioni non di disegno che richiedono un elevato utilizzo delle prestazioni 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 interruzioni visive quando viene visualizzata la mappa.
Utilizzo di immagini raster per gli indicatori
Utilizza immagini raster, quali immagini in formato .PNG o .JPG, quando aggiungi indicatori per identificare una località su una mappa. Evita di utilizzare immagini Scalable Vector Graphics (SVG), poiché il rendering delle immagini SVG può introdurre un ritardo quando la mappa viene ridisegnata.
Ottimizzazione degli indicatori
L'ottimizzazione migliora le prestazioni eseguendo il rendering di molti indicatori come un singolo elemento statico. Questa opzione è utile nei casi in cui è richiesto un numero elevato di indicatori. Per impostazione predefinita, l'API Maps JavaScript deciderà se un indicatore verrà ottimizzato. In presenza di 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 alcune situazioni, l'API Maps JavaScript potrebbe dover eseguire il rendering degli indicatori senza 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 le posizioni su una mappa, crea un cluster di indicatori utilizzando la libreria Marker Clusterer. La libreria Marker Clusterer include opzioni per:
- Dimensioni della 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, per le immagini grafiche da utilizzare come icone degli indicatori.
Fruizione
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 per le API fatturabili. Impostando limiti per le richieste al giorno, puoi limitare i tuoi costi. Utilizza una semplice equazione per determinare il tuo limite giornaliero, a seconda di quanto vuoi spendere: (costo mensile/prezzo per ciascuno)/30 = richieste al giorno limite (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 di 200$per le API di Google Maps, quindi tienine conto nei tuoi calcoli.
- Utilizza più progetti per isolare, assegnare 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 tuoi test, con le proprie quote e chiavi API, puoi eseguire test accurati evitandoti sorprese in eccesso.
Gestire il consumo in Maps
L'utilizzo di una sola mappa per pagina è un ottimo modo per ottimizzare la visualizzazione delle mappe, poiché gli utenti in genere interagiscono con una sola mappa alla volta. L'app può manipolare la mappa per visualizzare set di dati diversi, 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) costano più rispetto a Static Maps e Static Street View. Se non prevedi l'interazione degli utenti con Mappa o Street View (con lo zoom o la panoramica), utilizza le versioni statiche di queste API.
Le miniature, ovvero le mappe e le foto di piccole dimensioni, sono un altro buon utilizzo di mappe statiche e 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 su 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 è richiesta la personalizzazione della mappa. Le richieste API Maps Embed che utilizzano la modalità Indicazioni stradali, la modalità di visualizzazione o la modalità Ricerca verranno fatturate (per informazioni dettagliate, consulta la tabella dei prezzi).
Utilizzo degli SDK di mappe per dispositivi mobili per le applicazioni mobile
Per le app mobile, utilizza Maps SDK for Android o Maps SDK for iOS per la visualizzazione di una mappa. Utilizza l'API Maps Static o l'API Maps JavaScript quando i requisiti escludono l'utilizzo degli SDK per dispositivi mobili.
Gestione del consumo nelle 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 percorso ottimale
Le richieste che utilizzano l'argomento di ottimizzazione delle tappe vengono fatturate a una tariffa superiore. Per ulteriori informazioni, consulta Ottimizzare i Waypoint.
L'argomento di ottimizzazione ordina i pointpoint per garantire un routing ottimale, il che significa che il viaggio da A a E offre un'esperienza migliore (A-B-C-D-E) rispetto alla sequenza casuale di una route non ottimizzata (come A-D-B-C-E).
Utilizzo di modelli di traffico in tempo reale nell'API Directions e nell'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.
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 del percorso seguito e della strada più vicina quando i dati GPS sono imprecisi
Le funzionalità dell'API Maps Roads, "Percorso viaggiato" e "Strada più vicina", sono incluse nel livello avanzato e vengono fatturate a una tariffa superiore. Utilizza queste funzionalità se 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.
Posizioni dei limiti di velocità di campionamento a intervalli da 5 a 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 un asset è stazionario, è sufficiente un solo 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 del completamento automatico di Place
Per ottimizzare il costo dell'utilizzo del completamento automatico di Place:
utilizza le maschere dei campi nei widget di completamento automatico JavaScript, Android e iOS per restituire solo i campi dati posizione necessari.
la selezione delle opzioni di fatturazione dipende dal caso d'uso. A seconda che l'implementazione utilizzi o meno Sessioni Autcomplete, ti verranno addebitati gli SKU Completamento automatico - Per richiesta o Completamento automatico - Per sessione.
Per ulteriori informazioni e indicazioni sulla scelta dell'opzione giusta per il tuo caso d'uso, consulta le best practice per l'ottimizzazione dei costi di Place Autocomplete.
Restituzione di dati relativi a campi specifici nelle richieste Dettagli luogo e Ricerca luogo
Puoi personalizzare le richieste Dettagli luogo e Ricerca luogo in modo che restituiscano dati relativi a campi specifici utilizzati nella tua 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 Dettagli luogo si basa sui tipi e sulla quantità di dati richiesti. Le richieste che non specificano nessun campo verranno fatturate all'importo intero. Per ulteriori informazioni, vedi Dettagli luogo e Ricerca di luoghi.
Ridurre i costi utilizzando l'API Geocoding
Se l'applicazione gestisce indirizzi digitati dagli utenti, a volte gli indirizzi sono ambigui (incompleti, con errori ortografici o con un formato errato). Disambigua gli indirizzi con il completamento automatico, quindi utilizza gli ID luogo per ottenere le località dei luoghi.
Tuttavia, se hai un indirizzo esatto (o vicino a quest'ultimo), puoi ridurre i costi utilizzando la geocodifica anziché il completamento automatico. Per ulteriori dettagli, consulta la pagina Best practice per gli indirizzi di geocodifica.
Come funzionano le quote di Google Maps Platform
Tutte le nostre API hanno dei limiti al numero di chiamate che ogni cliente può effettuare. Queste quote sono configurate al 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 andate a buon fine e che causano errori del server vengono conteggiate ai fini della quota. Le richieste che non superano l'autenticazione non incidono sulla quota.
Diverse API di Google Maps prevedono un'applicazione forzata al secondo, oltre all'applicazione della quota al minuto. 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 nei primi secondi o due di ogni minuto e ti protegge da interruzioni del servizio in caso di un picco di utilizzo improvviso. Per far fronte a queste differenze di applicazione, pianifica l'utilizzo della quota e i requisiti calcolando la media dell'utilizzo di QPM per QPS.
Le API GMP che applicano 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 di richieste.