Cómo optimizar el uso del servicio web

Nota: El plan Premium de Google Maps Platform ya no está disponible para registros o clientes nuevos.

Descripción general

Si tu aplicación excede los límites de uso para un servicio web de Google Maps Platform, el servicio mostrará un mensaje de error. Si tu aplicación sigue excediendo los límites de uso, podría experimentar un bloqueo de acceso al servicio web y, en algunos casos, recibir respuestas “403 Forbidden”.

Si las solicitudes de servicio web de tu aplicación reciben mensajes de error, puedes hacer lo siguiente:

  1. Optimiza las aplicaciones para que utilicen los servicios web de manera más eficiente y, así, reducir el uso.
  2. Aumenta los límites de uso, cuando sea posible, adquiriendo más créditos de las API de Google Maps.

Antes de comenzar

Antes de optimizar el uso de los servicios web que hace tu aplicación, comprueba que estés usando el servicio correcto para tu caso de uso y la licencia adecuada para las API de Google Maps.

Valida tu caso de uso

Los servicios web de Google Maps Platform son ideales para las aplicaciones que no requieren entradas de los usuarios en tiempo real o para cuando no se usa un navegador web. Por ejemplo, debes usar servicios web si tu aplicación emplea un conjunto de datos que no depende de la entrada del usuario; por ejemplo, un conjunto fijo de direcciones o un sitio web de bienes raíces que requiera geocodificación.

Ten en cuenta que, con los servicios web, se aplica el límite de consultas por segundo (QPS) a tu licencia del plan Premium, sin importar desde cuántas direcciones IP se envíen las solicitudes.

Por otro lado, los servicios del cliente disponibles con la API de Maps JavaScript tienen un límite de frecuencia por sesión de navegador. Por ello, las solicitudes se distribuyen entre todos los usuarios y aumentan a medida que crece el número de usuarios. Por lo tanto, los servicios del cliente son ideales para aplicaciones que geocodifican en tiempo real las direcciones que ingresan los usuarios, como el localizador de tiendas que busca tiendas cerca de la dirección particular de un usuario.

Para obtener una explicación más detallada sobre cuándo usar los servicios web, consulta Estrategias de geocodificación. En este documento, se brindan recomendaciones que, aunque se relacionan específicamente con la geocodificación, se aplican a todos los servicios web. También se explica cuándo deberías usar los servicios web del servidor y cuándo sus equivalentes del cliente.

Uso de tu licencia del plan premium de Google Maps Platform

Asegúrate de que las solicitudes de tu aplicación incluyan los detalles de autenticación correctos para tu licencia del plan premium de Google Maps Platform; es decir, tu ID de cliente o una clave de API de tu proyecto del plan premium en Google Cloud Platform Console.

Si tu aplicación no usa la licencia del plan premium correctamente, estará sujeta a los límites de uso del plan estándar y a las restricciones de licencia que se establecen en las Condiciones del Servicio de Google Maps Platform. En tal caso, no tendrá cobertura del ANS del plan Premium. Tampoco recibirás asistencia técnica para la aplicación.

Cómo optimizar el uso de los servicios web

Para usar los servicios web de forma más eficiente y reducir el uso, puedes enviar solicitudes solo cuando sea necesario y repartir el uso equitativamente para mantenerlo debajo de los límites.

Resultados almacenados en caché

En el artículo 3.2.4.b de las Condiciones del Servicio de Google Maps Platform, se especifica que puedes almacenar datos de Google Maps en caché de forma temporal durante un período de hasta 30 días a fin de mejorar el rendimiento de tu aplicación. Al almacenar en caché las respuestas del servicio web, tu aplicación puede evitar que se envíen solicitudes duplicadas en períodos breves. De hecho, en las respuestas de los servicios web, siempre se incluye el encabezado HTTP Cache-Control, que indica el período durante el cual puedes almacenar en caché el resultado, por ejemplo, Cache-Control: public, max-age=86400. Para mayor eficiencia, asegúrate de que tu aplicación siempre almacene en caché los resultados, al menos, durante el tiempo especificado en este encabezado, pero no más que el período máximo especificado en las Condiciones del Servicio de Google Maps Platform.

Puedes implementar el almacenamiento en caché usando proxies web, la mayoría de los cuales realizan esta función de forma predeterminada. Como alternativa, puedes usar tu propia implementación de un proxy web. Ten en cuenta que algunas bibliotecas cliente HTTP también almacenan en caché las respuestas HTTP.

Para aumentar el índice de acierto de caché, asegúrate de normalizar las coordenadas de latitud y longitud (lat/long) utilizando un redondeo de 6 decimales, lo cual proporciona una precisión de aproximadamente 11 centímetros alrededor del ecuador. Si agregas más decimales, los resultados de los servicios web no cambiarán, pero el índice de acierto de caché disminuirá.

Limitación de solicitudes

A fin de no superar los límites de uso, puedes configurar tu aplicación para que limite las solicitudes. Para eso, tu aplicación debería colocar las solicitudes en una cola y hacer seguimiento de cuándo estas se envían. Si llega una solicitud adicional que excede el límite de QPS, tu aplicación debería comprobar la marca de tiempo de la primera solicitud y esperar 1 segundo.

Incluso con la limitación, igualmente es posible que las aplicaciones reciban respuestas con el código de estado OVER_QUERY_LIMIT. Configura tu aplicación para que inserte una pequeña demora (20 ms) y vuelve a intentarlo si recibes esa respuesta.

Aumenta el límite de QPS

Si implementas la limitación correctamente, tu aplicación no debería enviar más solicitudes que las permitidas dentro del límite de uso. No obstante, tu aplicación podría recibir entradas muy grandes o a una velocidad mayor que la permitida por los límites de uso del servicio web de Google Maps Platform (por lo general, 50 QPS). En este caso, las colas de limitación pueden volverse muy extensas y hacer que las solicitudes se acumulen. Además, la API de Places tiene un límite inicial de 50 QPS. Si tu aplicación tiene constantemente acumulaciones de este tipo, ya sea en momentos específicos o a lo largo de todo el día, quizás necesites aumentar los límites de QPS para tu licencia del plan Premium de Google Maps Platform. Para solicitar un aumento de las QPS, comunícate con el administrador de cuentas de ventas de Google Maps Platform.