Optimizar el uso del servicio web

Información general

Si tu aplicación excede los límites de uso para un servicio web de Google Maps APIs, el servicio muestra un mensaje de error. Si tu aplicación continúa 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. Reducir el uso optimizando las aplicaciones para usar los servicios web de forma más eficiente.
  2. Aumentar los límites de uso, cuando sea posible, adquiriendo Créditos de Maps API adicionales.

Antes de comenzar

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

Valida tu caso de uso

Los servicios web de Google Maps APIs son mejores para aplicaciones que no requieren entradas de los usuarios en tiempo real o cuando no se usa un navegador web. Por ejemplo, debes usar servicios web si tu aplicación usa un conjunto de datos que no depende de la interacción del usuario; por ejemplo, un conjunto fijo de direcciones o un sitio web inmobiliario 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 Premium Plan, independientemente de la cantidad de solicitudes de direcciones IP que se envíen.

Por otro lado, los servicios de cliente disponibles con la Google Maps JavaScript API tienen un límite de índice por sesión de navegador. Por ello, las solicitudes se distribuyen entre todos los usuarios y aumentan a medida que se incrementa la cantidad de usuarios. Por lo tanto, los servicios de cliente son mejores 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 de residencia de un usuario.

Para obtener una descripción detallada de las circunstancias en que debes usar los servicios web, consulta la sección de estrategias de geocodificación. Aunque se relacionan específicamente con la geocodificación, las recomendaciones de este documento se aplican a todos los servicios web, y se explica el momento en que debes usar los servicios web del servidor y sus equivalentes del cliente.

Usa tu licencia del Google Maps APIs Premium Plan

Asegúrate de que en las solicitudes de tu aplicación se incluyan los detalles de autenticación correctos para tu licencia del Google Maps APIs Premium Plan; es decir, tu ID de cliente o una clave de API de tu proyecto del Premium Plan en la Google API Console.

Si tu aplicación no usa la licencia del Premium Plan correctamente, estará sujeta a los límites de uso del plan estándares y a las restricciones de las Condiciones de servicio, y no se contemplará en el SLA del Premium Plan. Además, no 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, puedes reducir el uso enviando solicitudes solo cuando sea necesario y repartir el uso equitativamente para mantenerlo debajo de los límites.

Resultados almacenados en caché

En la sección 10.5.d de las Condiciones de servicio de Maps API 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 el envío de 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 que puedes almacenar en caché el resultado; por ejemplo, Cache-Control: public, max-age=86400. Para lograr la mayor eficacia, asegúrate de que tu aplicación siempre almacene en caché los resultados al menos durante el tiempo especificado en este encabezado, pero no por un tiempo superior al período máximo especificado en las Condiciones de servicio de las Maps API.

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

Para aumentar el índice de precisión del caché, asegúrate de normalizar las coordenadas de latitud y longitud (lat/long) aplicando un redondeo de 6 decimales, lo cual proporcionará 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 precisión del caché disminuirá.

Regulación de solicitudes

A fin de evitar exceder los límites de uso, puedes configurar tu aplicación para limitar las solicitudes colocándolas en una cola que realice un seguimiento de cuándo se envíen las solicitudes. Si tu aplicación recibe una solicitud adicional que excede el límite de solicitudes por segundo, se debe comprobar la marca de tiempo de la primera solicitud y esperar 1 segundo.

Incluso con la limitación, las aplicaciones podrían recibir respuestas con el código de estado OVER_QUERY_LIMIT. Configura tu aplicación para insertar una pequeña demora (20 ms) y realiza un nuevo intento si recibes esa respuesta.

Aumenta el límite de consultas por segundo

Si implementas la limitación correctamente, tu aplicación no enviará más solicitudes que las que permite el 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 (generalmente, 50 consultas por segundo). En este caso, las colas de limitación pueden volverse muy extensas y atrasar las solicitudes. Asimismo, el Places API Web Service tiene un límite inicial de 5 consultas por segundo. Si tu aplicación presenta esos atrasos, ya sea en momentos específicos del día o durante todo su transcurso, probablemente necesites aumentar los límites de consultas por segundo para tu licencia del Google Maps APIs Premium Plan. Para solicitar un aumento de las consultas por segundo, comunícate con tu ejecutivo de cuentas de Google Maps APIs.