Guida all'ottimizzazione

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 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 da un uso involontario che potrebbe portare a un utilizzo eccessivo della quota e ad addebiti 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 delle API di Google Maps. Sebbene l'utilizzo degli ID client sia attualmente ancora supportato, le chiavi API supportano controlli di sicurezza più granulari e possono essere ottimizzate per funzionare con indirizzi web, indirizzi IP e SDK mobile 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.

Esibizione

Utilizzo del backoff esponenziale per gestire gli errori

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

Il backoff esponenziale è utile soprattutto per gli errori del 500. Per ulteriori informazioni, consulta la sezione Gestire i codici di stato HTTP restituiti.

In particolare, regola la frequenza delle query. Nel codice, aggiungi un periodo di attesa di S secondi tra una query e l'altra. Se la query genera 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 le informazioni appropriate. L'approccio on demand consente di evitare le richieste non necessarie alle API, riducendo il consumo.

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

Evita di utilizzare Draw() per mostrare contenuti in 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 contemporaneo di contenuti in overlay sulla mappa può causare ritardi o interruzioni visive. Aggiungi o rimuovi contenuti in overlay da una mappa solo quando l'utente smette di eseguire la panoramica o lo zoom.

Evitare operazioni intensive in Draw di metodi

Come regola generale, è buona norma evitare operazioni non di disegno che richiedono molte 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.
  • Modifica di molti elementi DOM (Document Object Model).

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

Utilizzo di immagini raster per gli indicatori

Puoi utilizzare immagini raster, ad esempio immagini in formato .PNG o .JPG, quando aggiungi indicatori per identificare un luogo 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 singolo elemento statico. Questa opzione è utile nei casi in cui è richiesto un numero elevato di indicatori. Per impostazione predefinita, l'API Maps JavaScript determina se un indicatore deve essere ottimizzato. In presenza di un numero elevato di indicatori, l'API Maps JavaScript tenterà di eseguire il rendering degli indicatori con ottimizzazione. Non tutti gli indicatori possono essere ottimizzati; in alcune situazioni, l'API Maps JavaScript potrebbe richiedere 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 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 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, 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 di 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 ciascuna)/30 = richieste al giorno (per un'API). La tua implementazione specifica potrebbe utilizzare più API fatturabili, quindi modifica l'equazione in base alle esigenze. Ogni mese è disponibile un credito per le API di Google Maps di$200, quindi tienine conto nei calcoli.
  • Utilizza più progetti per isolare, stabilire le priorità e monitorare il tuo utilizzo. Ad esempio, supponi di utilizzare regolarmente le API Google Maps Platform nei tuoi test. Creando un progetto separato per i tuoi test, con quote e chiavi API proprie, puoi eseguire test approfonditi evitandoti imprevisti.

Gestire il consumo in Maps

L'utilizzo di una sola mappa per pagina è un buon 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 in modo da visualizzare set di dati diversi, a seconda dell'interazione del cliente e delle esigenze.

Utilizzo di 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 dell'utente con Mappa o Street View (zoom o panoramica), utilizza le versioni statiche di queste API.

Le miniature, ovvero mappe e foto di dimensioni molto piccole, sono un altro buon modo per utilizzare Static Maps e Static Street View. 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 è richiesta un singolo indicatore e non è richiesta la personalizzazione della mappa. Verranno fatturate le richieste API Maps Embed che utilizzano le modalità Indicazioni stradali, modalità di visualizzazione o Ricerca (per i dettagli, consulta la tabella dei prezzi).

Utilizzo di SDK per le mappe mobile per le applicazioni mobile

Per le applicazioni mobile, 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 escludono l'utilizzo degli SDK mobile.

Gestione del consumo nelle route

Limitazione dei waypoint dell'API Directions

Se possibile, limita le voci degli utenti in una query a un massimo di 10 waypoint. Le richieste contenenti più di 10 waypoint 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 con una tariffa superiore. Per ulteriori informazioni, consulta la sezione Ottimizzare i Waypoint.

L'argomento di ottimizzazione ordina i waypoint per garantire un routing ottimale, il che significa che viaggiare da A a E è un'esperienza migliore se ottimizzata (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 nelle API Directions e nelle 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 di Percorso percorsa 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 funzioni se i dati GPS sono imprecisi e l'API Roads può aiutarti a determinare la strada corretta. La funzione Speed Limits, 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 di chiamate al servizio Limite di velocità dell'API Maps Roads, campiona le posizioni delle tue risorse a intervalli di 5-15 minuti. Il valore esatto dipende dalla velocità di spostamento di un asset. Se un asset è stazionario, è 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 del completamento automatico di Place Auto:

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

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

Per ulteriori informazioni e indicazioni su come scegliere l'opzione giusta per il tuo caso d'uso, consulta l'articolo Posizionare le best practice per l'ottimizzazione dei costi con completamento automatico.

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

Puoi personalizzare le richieste Dettagli luogo e Ricerca luogo in modo che restituiscano dati per campi specifici utilizzati nella tua applicazione. Questi campi sono suddivisi in categorie: Base, Contact e Ambiente. Le richieste che non specificano nessun campo riceveranno i dati per tutti i campi.

La fatturazione per le richieste Place Details si basa sui tipi e sulla quantità di dati richiesti. Le richieste che non specificano nessun campo verranno fatturate con la tariffa intera. Per ulteriori informazioni, vedi Dettagli sul luogo e Ricerca di luoghi.

Ridurre i costi utilizzando l'API Geocoding

Se l'applicazione gestisce indirizzi digitati dagli utenti, questi potrebbero essere ambigui (incompleti, con errori ortografici o con formattazione scadente). Disambigua gli indirizzi utilizzando il completamento automatico, quindi utilizza gli ID luogo per ottenere le località.

Se hai un indirizzo esatto (o nelle vicinanze), puoi ridurre i costi utilizzando la geocodifica anziché il completamento automatico. Per ulteriori dettagli, consulta le best practice per gli indirizzi geocodificati.

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 vengono 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 quelle che causano errori del server vengono conteggiate nella quota. Le richieste che non superano l'autenticazione non incidono sulla quota.

Diverse API di Google Maps prevedono un'applicazione al secondo in aggiunta a quella 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 due secondi di ogni minuto e ti protegge da interruzioni del servizio in caso di improvviso picco di utilizzo. Per far fronte a queste differenze nell'applicazione delle norme, pianifica l'utilizzo della quota e i relativi requisiti in base alla 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 delle richieste.