Guía de optimización

En esta guía, se describen varias estrategias para optimizar el uso de las API de Google Maps en términos de seguridad, rendimiento y consumo.

Seguridad

Cómo revisar 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. Revisa las prácticas recomendadas sobre las claves de API para proteger tus claves del uso no deseado, lo que podría generar un consumo indebido de la cuota y cargos inesperados en tu cuenta.

Cómo usar 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. Si bien los ID de cliente todavía son 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 la página "Cómo usar una clave de API" para cada API o SDK. Por ejemplo, para usar la API de Maps JavaScript, consulta la sección correspondiente en la página Cómo usar una clave de API.

Rendimiento

Cómo usar la retirada exponencial para manejar 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 hasta que la consulta se muestre sin errores.

Cómo enviar solicitudes de interacción del 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 on-click) 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.

Cómo evitar mostrar contenido superpuesto cuando se mueve un mapa

Evita usar 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.

Cómo evitar operaciones intensivas en 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.

Cómo usar imágenes de trama para 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), ya que la renderización de imágenes SVG puede generar demoras cuando se vuelve a dibujar el mapa.

Cómo crear clústeres para administrar la visualización de 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

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 los costos en relación con un importe determinado. Establecer un presupuesto no limita el uso de la API; solo te alerta cuando los costos se acercan al importe especificado.
  • Limita el uso diario de la API para administrar los costos de las API facturables. Si configuras límites para las solicitudes por día, puedes limitar los costos. Usa una ecuación simple para determinar tu límite diario, en función de cuánto desees invertir: (costo mensual/precio por solicitud)/30 = límite de solicitudes por día (para una API). Tu implementación específica puede usar varias API facturables, así que ajusta la ecuación según sea necesario. Hay disponible un crédito mensual de USD 200 en las API de Google Maps. Por lo tanto, considera dicho importe en tus cálculos.
  • Usa varios proyectos para aislar, priorizar y realizar un seguimiento del uso. Supongamos, por ejemplo, que sueles usar las API de Google Maps Platform en tus pruebas. Si creas un proyecto por separado para tus pruebas, con sus propias cuotas y claves de API, puedes realizar pruebas exhaustivas mientras te proteges de costos inesperados.

Cómo administrar el consumo en Maps

El uso de un solo mapa por página es una buena manera de optimizar la visualización de los mapas, ya que los usuarios generalmente 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.

Cómo 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), usa 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.

Cómo 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 costo. Utiliza la API de Maps Embed para las aplicaciones en las que se requiere un solo marcador y que no haya personalización de mapas. 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).

Cómo usar el SDK de mapas para dispositivos móviles en las aplicaciones de este tipo

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.

Cómo administrar el consumo en Routes

Cómo limitar 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.

Cómo usar 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).

Cómo usar 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.

Cómo usar 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 elementos.

Cómo tomar 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 elementos en intervalos de 5 a 15 minutos. El valor exacto depende de la velocidad a la que se desplaza un elemento. Si un elemento es fijo, basta con tomar una sola muestra de la ubicación. No es necesario que realices varias llamadas.

Para minimizar la latencia general, llama 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 elemento móvil.

Cómo administrar el consumo en Places

Cómo usar 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 opciones tienen el mismo costo. La diferencia entre las dos opciones es la manera en la que los usuarios finales de tu aplicación pueden 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 obtener resultados ilimitados, pero 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.

Cómo mostrar 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.

Cómo usar 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). Desambigua las direcciones con Autocomplete y, luego, usa los ID de lugar para obtener las ubicaciones correspondientes.

Sin embargo, si tienes una dirección exacta (o casi igual), 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.