Guía de optimización

Estrategias de optimización

Seguridad

Revisa las prácticas recomendadas de seguridad

Las claves de API son credenciales centradas en el proyecto que merecen las mismas precauciones que los ID de usuario y las contraseñas. Asegúrate de revisar la sección Prácticas recomendadas sobre las claves de API para proteger tus claves del uso no deseado, que podría generar un consumo indebido de la cuota y cargos inesperados en tu cuenta.

Usa las claves de API para acceder a las API de Google Maps

Las claves de API son el método de autenticación preferido para acceder a las API de Google Maps Platform. Si bien los ID de cliente anteriores siguen siendo compatibles, las claves de API admiten controles de seguridad más detallados y se pueden ajustar para funcionar con direcciones web, direcciones IP y SDK para dispositivos móviles (iOS y Android) específicos. Si deseas obtener información sobre cómo crear y proteger una clave de API, visita el documento "Cómo obtener una clave de API" para cada API o SDK que estés utilizando (por ejemplo, para la API de Maps JavaScript, consulta Cómo obtener una clave de API).

Rendimiento

Usa la retirada exponencial para solucionar errores

Si tus apps experimentan errores debido a una cantidad excesiva de intentos de llamadas a una API en un período breve, como los errores de QPS, considera usar la retirada exponencial para permitir que se procesen las solicitudes.

Específicamente, ajustarías el ritmo de tus consultas. En el código, agrega un período de espera de S segundos entre las consultas. Si la consulta aún genera un error de QPS, duplica ese período y, luego, envía otra consulta. Sigue ajustándolo de esta manera hasta que la consulta se muestre sin errores.

Envía solicitudes de interacción con el usuario a pedido

Las solicitudes a las API que incluyen interacción con el usuario deben enviarse solo a pedido. Esto significa que se debe esperar a que el usuario final realice una acción (como un clic) para iniciar la solicitud a la API y, luego, se deben utilizar los resultados a fin de cargar un mapa, establecer un destino o mostrar la información apropiada. Usar un enfoque a pedido evita las solicitudes innecesarias a las API, lo que reduce el consumo de API.

Evita mostrar contenido superpuesto cuando se mueve un mapa

Evita usar el método Draw() para mostrar contenido superpuesto personalizado en un mapa mientras un usuario podría estar moviéndolo. Debido a que el mapa se vuelve a dibujar cada vez que un usuario lo mueve, colocarle contenido superpuesto al mismo tiempo puede generar retrasos o saltos visuales. Solo agrega o quita contenido de este tipo cuando el usuario deje de desplazarse lateralmente o ya no use el zoom en el mapa.

Evita las operaciones intensivas en los métodos Draw

Como regla general, se recomienda evitar las operaciones de rendimiento intensivo que no sean de dibujo en un método Draw(). Por ejemplo, evita lo siguiente en el código del método Draw():

  • Consultas que muestran una gran cantidad de contenido
  • Muchos cambios en los datos que se muestran
  • Manipulación de muchos elementos del Modelo de objetos del documento (DOM)

Estas operaciones pueden ralentizar el rendimiento y generar retrasos o saltos visuales cuando se renderiza el mapa.

Usa imágenes de trama para los marcadores

Usa imágenes de trama, como imágenes en formato .PNG o .JPG, cuando agregues marcadores para identificar una ubicación en un mapa. Evita usar imágenes de Gráficos vectoriales escalables (SVG). La renderización de imágenes de SVG puede generar una demora cuando se vuelve a dibujar el mapa.

Crea clústeres para administrar la visualización de los marcadores

A fin de ayudarte a administrar la visualización de los marcadores para identificar ubicaciones en un mapa, crea un clúster de marcadores mediante la biblioteca Marker Clusterer. Esta biblioteca incluye opciones para lo siguiente:

  • Tamaño de cuadrícula, que te permite especificar la cantidad de marcadores que se agruparán en un clúster
  • Zoom máximo, que te permite especificar el nivel de zoom máximo en el que se muestra el clúster
  • Rutas de acceso para las imágenes gráficas que se utilizarán como íconos de marcador

Optimización del consumo

Supervisa y restringe el consumo

Para planificar tu presupuesto y controlar los costos, puedes hacer lo siguiente:

  • Configura una alerta de presupuesto para hacer un seguimiento de cómo aumentan tus gastos en relación con un importe determinado. Configurar un presupuesto no limita el uso de la API; solo te alerta cuando tu gasto se acerca al importe especificado.
  • Limita tu uso diario de la API para administrar el costo de uso de las API facturables. Si configuras límites para las solicitudes por día, puedes limitar tus gastos. Usa una ecuación simple para determinar tu límite diario según el importe que desees invertir. Por ejemplo: (gasto mensual/precio por cada uso)/30 = límite de solicitudes por día (para una API). Ten en cuenta que tu implementación puede usar varias API facturables, por lo que debes ajustar tu ecuación según sea necesario. Recuerda que tienes disponible un crédito mensual de USD 200 en Google Maps Platform. Por lo tanto, asegúrate de incluir dicho importe en tu cálculo.

Maps

El uso de un solo mapa por página es una buena forma de optimizar la visualización de los mapas. Por lo general, los usuarios interactúan con un mapa a la vez. Tu app puede manipular el mapa para mostrar diferentes conjuntos de datos, según las necesidades y la interacción de los clientes.

Considera usar imágenes estáticas

Las solicitudes que usan imágenes dinámicas (Dynamic Maps y Dynamic Street View) cuestan más que aquellas que se realizan a Static Maps y Static Street View. Si no puedes prever la interacción del usuario con Maps o Street View (uso del zoom o desplazamiento lateral), considera usar las versiones estáticas de estas API.

Las miniaturas, es decir, mapas y fotos muy pequeños, son otra buena opción para Static Maps y Static Street View. Estos elementos, que se facturan con una tarifa inferior y tras la interacción con el usuario (cuando se hace clic), pueden generar una versión dinámica para una experiencia completa de Google Maps.

Considera usar la API de Maps Embed

Puedes usar la API de Maps Embed para agregar un mapa con un solo marcador, o bien un mapa dinámico, sin cargo. Utiliza esta API para las aplicaciones en las que se necesita un solo marcador y no es necesario personalizar el mapa. Ahora se facturarán las solicitudes a la API de Maps Embed que usen el modo Directions, el modo View o el modo Search (consulta la tabla de precios para obtener detalles).

Usa SDK de mapas móviles en las aplicaciones para dispositivos móviles

En las aplicaciones para dispositivos móviles, usa el SDK de Maps para Android o el SDK de Maps para iOS cuando muestres un mapa. Usa la API de Maps Static o la de Maps JavaScript cuando los requisitos rechacen el uso de los SDK para dispositivos móviles.

Routes

Limita los puntos de referencia de la API de Directions

Cuando sea posible, limita a un máximo de 10 puntos de referencia las entradas de los usuarios en una consulta. Las solicitudes que contienen más de 10 puntos de referencia se facturan a una tarifa más alta.

Usa la optimización de la API de Directions para lograr el mejor enrutamiento

Las solicitudes que usan el argumento de optimización de puntos de referencia se facturan a una tarifa más alta. Para obtener más información, consulta Cómo optimizar los puntos de referencia.

El argumento de optimización ordena los puntos de referencia para garantizar un enrutamiento óptimo, lo que significa que el viaje de A a E representa una mejor experiencia si está optimizado (A-B-C-D-E), en comparación con la secuencia aleatoria de una ruta no optimizada (como A-D-B-C-E).

Usa modelos de tráfico en tiempo real en la API de Directions y en la de Distance Matrix

Las solicitudes a la API de Directions y de Distance Matrix que incluyen modelos de tráfico en tiempo real se facturan a una tarifa más alta. Para habilitar los modelos de tráfico en tiempo real, establece la hora de salida en now.

Si se omiten estos modelos en una solicitud, los resultados se basarán únicamente en factores físicos: rutas, distancia y límites de velocidad.

Usa Route Traveled y Nearest Road cuando los datos de GPS sean poco precisos

Las funciones de la API de Maps Roads, Route Traveled y Nearest Road, se incluyen en el nivel avanzado y se facturan a una tarifa más alta. Usa estas funciones si los datos de GPS son poco precisos y la API de Roads puede ayudar a determinar la ruta correcta. Speed Limits, otra función de la API de Roads, está disponible solo para los clientes que realizan un seguimiento de sus recursos.

Toma muestras de las ubicaciones en intervalos de 5 a 15 minutos con el servicio Speed Limit

Para minimizar el volumen de llamadas al servicio Speed Limit de la API de Maps Roads, toma muestras de las ubicaciones de tus recursos en intervalos de 5 a 15 minutos. El valor exacto depende de la velocidad a la que se desplaza un recurso. Si un recurso es fijo, basta con tomar una sola muestra de la ubicación. No es necesario que realices varias llamadas.

Para minimizar la latencia general, recomendamos llamar al servicio Speed Limit una vez que hayas acumulado algunos datos, en lugar de llamar a la API cada vez que se reciba la ubicación de un recurso móvil.

Places

Usa la opción Autocomplete que se adapte a tu caso de uso

Identifica la opción Autocomplete que mejor se adapte a tu caso de uso, ya que ambas tienen el mismo costo. La diferencia reside en cómo pueden los usuarios finales de tu aplicación aprovechar las API.

  • Autocomplete (por solicitud): Es ideal para los casos de uso en los que una sola entrada es suficiente, como por ejemplo, un formulario de dirección de correo postal que completa un usuario.
  • Autocomplete (por sesión): Es la mejor alternativa cuando se requieren varias entradas, como sucede con las búsquedas de hoteles o restaurantes.

La opción Autocomplete (por sesión) permite una cantidad ilimitada de resultados. Sin embargo, requiere la implementación de tokens para garantizar que las sesiones sean válidas. Si se produce una sesión no válida, los cargos de Autocomplete (por solicitud) se aplican por pulsación de tecla, lo que podría generar facturaciones más altas. Para obtener más información sobre esta función, consulta la sección Place Autocomplete.

Muestra datos de campos específicos en las solicitudes de Place Details y Place Search

Puedes personalizar las solicitudes de Place Details y Place Search para mostrar datos de campos específicos que se utilizan en tu aplicación. Estos campos se dividen en categorías: Basic, Contact y Atmosphere. Las solicitudes que no especifiquen ningún campo recibirán datos de todos los campos.

La facturación de las solicitudes de Place Details se basa en los tipos y las cantidades de datos que se solicitan. Las solicitudes que no especifiquen ningún campo se facturarán a la tarifa completa. Para obtener más información, consulta Place Details y Place Search.

Usa la API de Geocoding para reducir costos

Si tu aplicación permite que el usuario ingrese direcciones, estas, a veces, pueden ser ambiguas (pueden estar incompletas, presentar errores ortográficos o no tener el formato adecuado). Con la función Autocomplete, puedes desambiguar las direcciones. Luego, usa los ID de lugar para obtener las ubicaciones correspondientes.

Sin embargo, si tienes una dirección exacta (o muy cercana), puedes usar la API de Geocoding, en lugar de Autocomplete, para reducir los costos. Si deseas obtener más información detallada, consulta Prácticas recomendadas sobre la geocodificación de direcciones.