Questa guida descrive diverse strategie per ottimizzare l'utilizzo delle API di Google Maps in termini di sicurezza, prestazioni e consumo.
Sicurezza
Esamina le best practice per la sicurezza
Le chiavi API sono credenziali incentrate sul progetto che richiedono le stesse precauzioni di ID utente e password. Consulta le best practice per la sicurezza delle API per proteggere le tue chiavi da un utilizzo imprevisto che potrebbe comportare un utilizzo eccessivo della quota e addebiti imprevisti sul tuo account.
Utilizzo delle chiavi API per accedere alle API di Maps
Le chiavi API sono il metodo di autenticazione preferito per accedere alle 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 (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 pagina relativa all'utilizzo di una chiave API.
Prestazioni
Utilizzo del backoff esponenziale per gestire gli errori
Se le tue app presentano errori dovuti a tentativi eccessivi di chiamare un'API in un breve periodo di tempo, ad esempio errori di quota, ti consigliamo di utilizzare il backoff esponenziale per consentire l'elaborazione delle richieste.
Il backoff esponenziale è più utile per gli errori nella serie 500. Per ulteriori informazioni, consulta la sezione Gestione dei codici di stato di ritorno HTTP.
In particolare, regola il ritmo delle query. Nel codice, aggiungi un periodo di attesa di S
secondi tra le query. Se la query continua a generare un errore di quota, raddoppia il periodo di attesa e invia un'altra query. Continua ad aggiustare il periodo di attesa finché la query non restituisce un risultato senza errori.
Invio di richieste di interazione con l'utente su richiesta
Le richieste alle API che includono l'interazione dell'utente devono essere inviate solo su richiesta.
Ciò significa attendere che l'utente finale esegua un'azione (ad esempio on-click
) per avviare la richiesta all'API, quindi utilizzare i risultati per caricare una mappa, impostare una destinazione o visualizzare le informazioni appropriate. L'utilizzo di un approccio on demand consente di evitare richieste non necessarie alle API, riducendone il consumo.
Evitare la visualizzazione dei contenuti in overlay quando una mappa è in movimento
Evita di utilizzare Draw()
per visualizzare contenuti in overlay personalizzati su una mappa contemporaneamente allo spostamento della mappa da parte dell'utente. Poiché la mappa viene ridisegnata ogni volta che un utente la sposta, l'inserimento di contenuti in overlay sulla mappa contemporaneamente può causare ritardi o balbuzie visive. Aggiungi o rimuovi i contenuti in overlay da una mappa solo quando l'utente interrompe la panoramica o lo zoom.
Evitare operazioni intensive nei metodi Draw
Come regola generale, è buona prassi evitare operazioni di disegno con un'elevata intensità di 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.
- Manipolare molti elementi Document Object Model (DOM).
Queste operazioni possono rallentare le prestazioni e introdurre ritardi o balbuzie visive prilikom prikazivanja karte.
Utilizzo di immagini raster per gli indicatori
Utilizza immagini raster, ad esempio quelle in formato .PNG o .JPG, quando aggiungi indicatori per identificare una posizione su una mappa. Evita di utilizzare immagini Scalable Vector Graphics (SVG), poiché il rendering delle immagini SVG può causare ritardi quando la mappa viene ridisegnata.
Indicatori di ottimizzazione
L'ottimizzazione migliora le prestazioni perché esegue il rendering di molti indicatori come un singolo elemento statico. È utile nei casi in cui è necessario un numero elevato di indicatori. Per impostazione predefinita, l'API Maps JavaScript decide se ottimizzare un indicatore. Quando è presente un numero elevato di indicatori, l'API JavaScript di Maps tenterà di visualizzarli con 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 animate o file PNG 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 per identificare le località su una mappa, crea un cluster di indicatori utilizzando la biblioteca 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 di zoom massimo in cui visualizzare il cluster.
- Percorsi delle immagini 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 per le richieste al giorno, puoi limitare i costi. Utilizza una semplice equazione per determinare il limite giornaliero, in base a quanto vuoi spendere: (costo mensile/prezzo per ogni richiesta)/30 = limite di richieste giornaliere (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 di 200$per le API di Google Maps, quindi tieni conto di questo fattore nei tuoi calcoli.
- Utilizza più progetti per isolare, dare la priorità e monitorare il tuo utilizzo. Ad esempio, supponiamo che tu utilizzi regolarmente le API di Google Maps Platform nei tuoi test. Creando un progetto separato per i test, con quote e chiavi API proprie, puoi eseguire test approfonditi evitando al contempo spese eccessive impreviste.
Gestire il consumo in Maps
L'utilizzo di una singola mappa per pagina è un buon modo per ottimizzare la visualizzazione delle mappe, poiché gli utenti generalmente interagiscono con una sola mappa alla volta. L'app può manipolare la mappa per visualizzare diversi set di dati, a seconda delle interazioni e delle esigenze dei clienti.
Utilizzare immagini statiche
Le richieste che utilizzano immagini dinamiche (Dynamic Maps e Dynamic Street View) costano più di quelle per Static Maps e Static Street View. Se non prevedi un'interazione dell'utente con Maps o Street View (zoom o panoramica), utilizza le versioni statiche di queste API.
Le miniature, ovvero mappe e foto molto piccole, sono un altro buon utilizzo di Static Maps e Static Street View. Questi elementi vengono fatturati a una tariffa inferiore e al momento dell'interazione dell'utente (on-click) 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. Utilizza l'API Maps Embed per le applicazioni in cui è richiesto un singolo indicatore e nessuna personalizzazione della mappa. Le richieste all'API Maps Embed che utilizzano la modalità Directions, la modalità View o la modalità Search verranno fatturate (per maggiori dettagli, consulta la tabella dei prezzi).
Utilizzo di SDK di mappe mobile per applicazioni mobile
Per le applicazioni mobile, utilizza Maps SDK for Android o Maps SDK for iOS quando mostri una mappa. Utilizza l'API Maps Static o l'API Maps JavaScript quando i requisiti escludono l'utilizzo degli SDK mobile.
Gestione del consumo in Percorsi
Limitare i waypoint dell'API Directions
Se possibile, limita le voci utente 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 percorsi ottimali
Le richieste che utilizzano l'argomento di ottimizzazione delle tappe vengono fatturate a una tariffa superiore. Per ulteriori informazioni, vedi Ottimizzare i waypoint.
L'argomento di ottimizzazione ordina i waypoint per garantire un percorso ottimale, il che significa che il viaggio 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 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'ora 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 sono imprecisi
Le funzionalità dell'API Maps Roads, Route Traveled e Nearest Road, sono incluse nel livello avanzato e vengono fatturate a una tariffa superiore. Utilizza queste funzionalità quando i dati GPS non sono precisi 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 di Asset Tracking.
Campionamento delle posizioni dei limiti di velocità a intervalli di 5-15 minuti
Per ridurre al minimo il volume di chiamate al servizio di limiti di velocità dell'API Maps Roads, esegui il campionamento delle posizioni delle risorse a intervalli di 5-15 minuti. Il valore esatto dipende dalla velocità di un asset. Se una risorsa è stazionaria, è 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 una risorsa mobile.
Gestire il consumo in Luoghi
Ottimizzazione delle implementazioni di Place Autocomplete
Per ottimizzare il costo dell'utilizzo di Place Autocomplete:
Utilizza le maschere dei campi nei widget di completamento automatico JavaScript, Android e iOS per restituire solo i campi dati dei luoghi di cui hai bisogno.
Le opzioni di fatturazione dipendono dal tuo caso d'uso. A seconda che la tua implementazione utilizzi o meno le sessioni Autocomplete, ti verranno addebitati gli SKU Autocomplete - Per richiesta o Autocomplete - Per sessione.
Per ulteriori informazioni e indicazioni su come selezionare l'opzione giusta per il tuo caso d'uso, consulta le best practice per l'ottimizzazione dei costi di Ricerca automatica dei luoghi.
Restituzione di dati per campi specifici nelle richieste Places Details e Ricerca luoghi
Puoi personalizzare le richieste Places Details e Ricerca luoghi in modo da restituire i dati per campi specifici utilizzati nella tua applicazione. Questi campi sono suddivisi in categorie: Base, Contatto e Atmosfera. Le richieste che non specificano alcun campo riceveranno i dati per tutti i campi.
La fatturazione delle richieste Places Details si basa sui tipi e sulle quantità di dati richiesti. Le richieste che non specificano alcun campo verranno fatturate alla tariffa intera. Per saperne di più, consulta Dettagli dei luoghi e Ricerca di luoghi.
Riduzione dei costi mediante l'API Geocoding
Se la tua applicazione gestisce gli indirizzi digitati dall'utente, a volte sono ambigui (incompleti, con errori ortografici o con formattazione scadente). Elimina le ambiguità degli indirizzi utilizzando il completamento automatico, quindi utilizza gli ID luogo per ottenere le posizioni dei luoghi.
Tuttavia, se hai un indirizzo esatto (o quasi), puoi ridurre i costi utilizzando la funzionalità di geocodifica anziché il completamento automatico. Per maggiori dettagli, consulta le best practice per il geocodifica degli indirizzi.
Come funzionano le quote di Google Maps Platform
Tutte le nostre API hanno limiti al numero di chiamate che ogni cliente può effettuare. Queste quote sono configurate su base giornaliera. Una volta raggiunta la quota di chiamate su una determinata API in un minuto, le chiamate future non verranno accettate fino al minuto successivo.
Solo le richieste riuscite 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.
Stima i costi per qualsiasi prodotto API GMP in base al volume totale di richieste.