Важно! Тарифный план Premium платформы Google Карт больше не доступен для оформления или для новых клиентов.
Обзор
Если ваше приложение превысит лимиты на использование для веб-сервиса платформы Google Карт, сервис вернет сообщение об ошибке. Если приложение продолжит превышать лимиты на использование, ему может быть заблокирован доступ к веб-сервису и, в некоторых случаях, отправлены сообщения "403 Forbidden".
Если в ответ на запросы веб-сервисов ваше приложение получает сообщения об ошибках, вы можете снизить использование, оптимизировав приложение для более эффективной работы с веб-сервисами.
Подготовка
Прежде чем оптимизировать использование веб-сервисов в приложении, убедитесь, что вы используете подходящий сервис и правильную лицензию Maps API.
Убедитесь, что вы используете нужный сервис
Веб-сервисы платформы Google Карт лучше всего подходят для приложений, которые не требуют ввода данных пользователями в реальном времени или когда не используется браузер. Например, веб-сервисы следует использовать, если в приложении применяется набор данных, не зависящий от ввода пользователя, например фиксированный набор адресов на сайте недвижимости, для которых требуется геокодирование.
Обратите внимание, что для веб-сервисов ограничение на количество запросов в минуту применяется к лицензии Premium Plan независимо от того, с какого количества IP-адресов отправляются запросы.
С другой стороны, клиентские сервисы в составе Maps JavaScript API ограничены по частоте запросов на сеанс просмотра, поэтому общее число запросов распределяется между всеми пользователями и масштабируется по мере роста числа пользователей. Поэтому клиентские сервисы лучше всего подходят для приложений, которые геокодируют адреса, введенные пользователями в реальном времени, например для поиска магазинов рядом с домом пользователя.
Более подробные рекомендации по использованию веб-сервисов приведены в этой статье. Рекомендации, приведенные в этом документе, относятся к геокодированию, но они также справедливы для всех веб-сервисов и объясняют, когда следует использовать серверные веб-сервисы, а когда их клиентские аналоги.
Как оптимизировать использование веб-сервиса
Чтобы использовать веб-сервисы эффективнее, можно снизить число обращений к ним, отправляя запросы только тогда, когда это необходимо, а также равномерно распределять использование сервисов, чтобы оставаться в пределах лимитов.
Кеширование результатов
В разделах 3.2.3.a и b Условий использования платформы Google Карт указано, что нельзя предварительно извлекать, индексировать, хранить и кэшировать любой Контент, за исключением случаев, обозначенных в Условиях.
Обратите внимание, что ограничения в отношении кэширования не распространяются на уникальные идентификаторы мест. Поэтому их можно хранить в течение неограниченного времени.
Регулирование запросов
Чтобы не превышать лимиты на использование, вы можете настроить приложение так, чтобы оно регулировало запросы, помещая их в очередь, которая отслеживает время отправки запросов. Если ваше приложение получит ещё один запрос сверх лимита, скорректируйте периодичность запросов. Чтобы настроить экспоненциальную выдержку, задайте в коде период ожидания между запросами, равный S сек. Если проблема не решится, увеличьте значение вдвое и попробуйте снова отправить запрос. Повторяйте эти действия, пока запрос не будет выполнен успешно.
Даже с задержкой приложения по-прежнему могут получать ответы с кодом статуса OVER_QUERY_LIMIT. Настройте свое приложение так, чтобы при получении этого ответа оно вставляло небольшую задержку (20 мс) и повторяло запрос.