Контрольный список перед началом использования Google Maps APIs for Work

Эта страница предназначена только для пользователей, которые владеют лицензией на ранее выпускавшиеся продукты Maps APIs for Work или Maps API for Business. Эта страница не предназначена для пользователей нового продукта Google Maps APIs Premium Plan, который стал доступен в январе 2016 года.

  1. Убедитесь, что у вашей группы имеется доступ к необходимым ресурсам
    1. Получение письма о регистрации Google Maps APIs for Work
    2. Доступен и используется Google Cloud Support Portal
    3. Подпишитесь на соответствующие каналы уведомлений
    4. Держите телефон горячей линии под рукой
  2. Оптимизация приложения
    1. Настройте брандмауэр, чтобы разрешить доступ к службам Google Maps APIs
    2. Загрузка API через SSL
    3. Использование Maps API на стороне клиента в доменах SSL
    4. Выбор подходящей версии API
    5. Оптимизация использования просмотров страниц
    6. Сравнение решений с обработкой на стороне клиента и на стороне сервера: выбор наиболее подходящего варианта
    7. Квота веб-служб и управление ими
    8. Нагрузочное тестирование
  3. Переход с бесплатной версии на Google Maps APIs for Work
    1. Авторизация домена
    2. Интеграция идентификатора клиента
    3. Использование ключа шифрования для подписи запросов веб-служб
    4. Отслеживание использования приложения и применение параметра channel
    5. Удаление устаревших параметров из запросов API

Убедитесь, что у вашей группы имеется доступ к необходимым ресурсам

Получение письма о регистрации Google Maps APIs for Work

Почему это важно. Письмо о регистрации поможет вам в начале работы с Google Maps APIs for Work, а также может помочь в решении проблем. В нем содержится много важной информации, в том числе ваш идентификатор клиента и ваш ключ шифрования, необходимые для начала использования Google Maps APIs. Также в нем содержится вся информация, необходимая для обращения в службу поддержки Google Cloud Support в случае возникновения технических проблем с любыми Google Maps APIs.

Доступен и используется Google Cloud Support Portal

Почему это важно. Портал поддержки предоставляет доступ к такой информации, как отчеты об использовании, новости и полезные ресурсы для разработчиков. Также портал поддержки позволяет регистрировать заявки в службу поддержки Google Maps APIs, если у вас возникнут технические проблемы при разработке или запуске приложения. Вы можете получить доступ к порталу поддержки по следующему URL-адресу:

https://google.secure.force.com/

Перед запуском включите доступ к порталу поддержки для всех разработчиков, отвечающих за обслуживание вашего приложения. Если у вас возникнут технические проблемы, доступ к порталу поддержки поможет членам вашей команды обращаться в службу поддержки и даст нашей службе поддержки возможность связи с ответственными лицами вашей организации. Например, службе поддержки может понадобиться связаться с вашей организацией, если мы обнаружим аномальный трафик или события, которые могут привести к нарушению работы вашего приложения. Возможность связи с ответственными разработчиками может помочь нам предотвращать случаи незапланированных перерывов в работе приложения. Если у вас нет доступа к порталу поддержки, запросите его здесь:

Запрос учетной записи Google Cloud Support Portal

Подпишитесь на соответствующие каналы уведомлений

Почему это важно. Мы рекомендуем подписаться на каналы уведомлений, чтобы быть в курсе событий и изменений Google Maps APIs. Также вам следует подписаться на блог для разработчиков Google Geo Developers Blog и группы уведомлений Google по используемым вами API, как описано здесь:

https://developers.google.com/maps/faq#notify

Подпишитесь на группы уведомлений по API, которые вы используете или планируете использовать. Также вы можете подписаться на следующий канал RSS:

http://google.force.com/services/xml/MapsRSS

для получения новостей от групп поддержки Google Maps APIs.

Держите телефон горячей линии под рукой

1-877-355-5787 для клиентов из США, +1 404-978-9282 для клиентов из других стран

Почему это важно. Горячая линия позволяет связаться по телефону с Google Cloud Support Portal. Добавьте эту страницу в "Избранное", чтобы всегда знать последний актуальный телефон горячей линии службы поддержки. Хотя вы можете использовать горячую линию, чтобы сообщать нашим специалистам о технических проблемах, она предназначена только для случаев, когда приложение не работает или служба недоступна. Уровни приоритетов описаны на странице:

https://support.google.com/work/answer/184028

Оптимизация приложения

Настройте брандмауэр, чтобы разрешить доступ к службам Google Maps APIs

Почему это важно. Службы Google Maps APIs используют разные домены, некоторые из которых не являются дочерними доменами *google.com. Если вы используете брандмауэр со строгими ограничениями, очень важно разрешить доступ к доменам, используемым каждой из служб Maps API. Если ваш брандмауэр запрещает доступ к этим доменам, запросы API не смогут быть выполнены, что может привести к нарушению работы ваших приложений. На портале поддержки можно найти полный список доменов, используемых Maps API.

  1. Выполните вход в Google Cloud Support Portal.
    Портал поддержки доступен только клиентам с лицензией на Google Maps APIs Premium Plan или лицензией на ранее выпускавшиеся продукты Google Maps APIs for Work или Google Maps for Business.
  2. Откройте вкладку Resources.
  3. Выберите список доменов, используемых семейством Google Maps APIs.
  4. Разрешите своим приложениям доступ к указанным доменам.

Мы не рекомендуем устанавливать правила брандмауэра по IP-адресам, потому что для этих доменов используются динамические IP-адреса.

Примечание. Службы Google Maps APIs используют для входящего и исходящего трафика порты 80 (http) и 443 (https). Для этих служб также требуются запросы GET, POST, PUT, DELETE и HEAD. Настройте правила брандмауэра, разрешающие трафик через эти порты и выполнение запросов (в зависимости от API и варианта использования).

Загрузка API через SSL

Почему это важно. Приложения, загружающие Maps JavaScript API, API веб-служб или API изображений по протоколу SSL должны использовать узел https://maps.googleapis.com вместо прежнего узла https://maps-api-ssl.google.com.

Использование Maps API на стороне клиента в доменах SSL

Почему это важно. При использовании API на стороне клиента с доменом SSL очень важно явным образом авторизовать ваши домены HTTPS, чтобы предотвратить отклонение запросов вашего приложения. Обратите внимание, что при авторизации http://yourdomain.com не производится авторизация эквивалентного домена SSL https://yourdomain.com. Вы можете проверить список авторизованных доменов в Google Cloud Support Portal, выбрав ссылку Maps: Manage Client ID из меню навигации слева. Для диагностики и устранения ошибок при использовании API на стороне клиента с доменом SSL рекомендуется предварительно проверить, не загружаются ли какие-либо элементы страницы по протоколу HTTP. Также ознакомьтесь с нашей статьей Устранение неполадок при авторизации для реализаций Google Maps APIs for Work.

Выбор подходящей версии API

Почему это важно. Перед разработкой приложения важно помнить, какие версии API устарели. Использование при разработке актуальных версий API позволит сэкономить время разработчиков и расходы, связанные с прекращением поддержки устаревших версий.

Также очень важно понимать схему определения версий API, чтобы избежать случайного использования неправильной версии API в вашей среде:

https://developers.google.com/maps/documentation/javascript/versions

Например, ночную (экспериментальную) версию API можно использовать в среде разработки/тестирования, но мы настоятельно не рекомендуем использовать ее в рабочей среде. Наше соглашение об уровне обслуживания действует только для стабильных версий API, поэтому в рабочей среде следует использовать только стабильные версии.

Оптимизация использования просмотров страниц

Почему это важно. Если на вашем сайте карта Google отображается не всегда, зачем за это платить? Для наиболее эффективного использования просмотров страниц мы рекомендуем загружать Maps API асинхронно на тех страницах, где действительно отображается карта. Это позволит значительно сократить расход приобретенных просмотров страниц вашими приложениями. Помните, что при каждом обновлении страницы с загружаемым API происходит дополнительный просмотр страницы. Поэтому при разработке приложения мы рекомендуем инициировать обновления страниц с загружаемым API только в случаях, когда это абсолютно необходимо.

Сравнение решений с обработкой на стороне клиента и на стороне сервера: выбор наиболее подходящего варианта

Почему это важно. Выбор обработки на стороне клиента или на стороне сервера определяет архитектуру приложения и очень важен для его стабильности и масштабируемости. Обычно обработка на стороне сервера используется для автономной обработки записей (т. е. вне вашего приложения). Обработка на стороне клиента должна использоваться для тех частей ваших приложений, которые взаимодействуют с пользователями (т. е. для обработки запросов пользователей в реальном времени).

Применение подхода с обработкой на стороне сервера в ситуации, где следовало бы применять подход с обработкой на стороне клиента, может привести к превышению квот и потере работоспособности приложений. Мы настоятельно рекомендуем ознакомиться с документом Стратегии геокодирования, прежде чем разрабатывать или выпускать приложения с обработкой запросов на стороне сервера.

Квота веб-служб и управление ими

Почему это важно. По умолчанию lkz использования веб-служб установлена квота на 100 000 запросов за 24 часа. Чтобы узнать более детальное распределение квоты между API, ознакомьтесь с документацией по ограничениям на использование. Чтобы определить доступную квоту для вашего идентификатора клиента, отправьте заявку в службу поддержки. Прежде чем запускать службу, важно знать о распространенных ошибках, связанных с квотами (например, OVER_QUERY_LIMIT, User Rate Limit Exceeded), и предусмотреть реагирование приложения на такие ошибки в случае превышения квоты. Для начала ознакомьтесь со статьей Ограничения на использование для веб-служб Google Maps APIs. Если вы будете понимать и использовать эти концепции, вероятность превышения разрешенной квоты, блокировки со стороны Google или потери работоспособности вашего приложения будет минимальной.

Нагрузочное тестирование

Почему это важно. Проведение нагрузочного тестирования с работающими службами Google приведет к превышению вашим приложением допустимой квоты и его блокировке со стороны Google.

Google Maps APIs может обрабатывать очень большие объемы запросов. Так, в 2012 году приложение Santa Tracker достигло скорости обработки 1 600 000 запросов в секунду. Поэтому не нужно проводить нагрузочное тестирование со службами Google. Вместо этого, нагрузочное тестирование должно проверить, что ваше приложение может справляться с большим объемом запросов без превышения квоты Maps API. Пример. Если ваша квота Google Maps Geocoding API составляет 20 QPS (запросов в секунду), во время нагрузочного тестирования ваше приложение должно обрабатывать 600 QPS, отправляя не более 20 QPS в Google Maps Geocoding API.

Чтобы добиться этого без рисков, нужно провести нагрузочное тестирование с фиктивным API, который может принимать большое количество запросов и отправлять на них корректные ответы, не используя Google Maps APIs. Таким образом вы можете проводить нагрузочное тестирование приложения без риска блокировки Google Maps APIs.

Посмотрите этот пример фиктивного API, реализованный как приложение Google App Engine: https://github.com/googlemaps/js-v2-samples/blob/gh-pages/mock_maps_apis. Вы можете выгрузить этот пример в собственное приложение App Engine (после регистрации на сайте https://appengine.google.com), чтобы ваше приложение отправляло запросы на него вместо сайта maps.googleapis.com.

Выделяемых по умолчанию бесплатных квот App Engine должно быть достаточно для нагрузочного тестирования вашего приложения под нагрузкой, превышающей квоты веб-служб Maps API. Убедитесь, что ваше приложение устанавливает корректный заголовок User-Agent для сжатия ответов. Очень важно обеспечить эффективное использование полосы пропускания, особенно для приложения App Engine, обрабатывающего большое количество ответов в текстовом формате (JSON/XML). Если вам потребуется более высокая квота для приложения App Engine, вы можете также разрешить тарификацию, однако обычно это не требуется.

Перенос API с бесплатной версии на лицензионную версию Google Maps APIs for Work

Авторизация домена

Почему это важно. Чтобы неавторизованные сайты не могли использовать ваш идентификатор клиента, Google Maps JavaScript API требует авторизации всех доменов в нашей службе поддержки для всех сайтов, которые будут использовать ваш идентификатор клиента. Если сайт, пытающийся использовать ваш идентификатор клиента, не соответствует URL-адресам, авторизованным для его использования, то этот сайт не сможет использовать API с вашим идентификатором клиента. Вы можете авторизовать домены в любое время, поэтому перед запуском приложения убедитесь в том, что домены всех ваших сайтов авторизованы.

Google Street View Image API и Google Static Maps API можно использовать как на стороне сервера, так и на стороне клиента, при этом просмотры страниц будут генерироваться в обоих случаях. Поэтому эти API требуют подписывать запросы с использованием ключа шифрования и авторизовать все домены, использующие данные API. Это обеспечивает надлежащую тарификацию вашего приложения в соответствии с нашими условиями обслуживания, доступ к поддержке и выполнение условий нашего соглашения об уровне обслуживания для вашего приложения.

Вы можете проверить список авторизованных доменов в Google Cloud Support Portal, выбрав ссылку Maps: Manage Client ID из меню навигации слева.

При возникновении проблем с авторизацией мы рекомендуем ознакомиться со статьей Устранение неполадок при авторизации для реализаций Google Maps APIs for Work, прежде чем подавать заявку.

Интеграция идентификатора клиента (например, &client=gme-yourclientid)

Почему это важно. Очень важно, чтобы ваше приложение включало в запросы идентификатор клиента &client=gme-yourclientid. Вы можете найти свой уникальный идентификатор клиента в письме о регистрации, которое было направлено основным контактным лицам вашей организации. Идентификатор клиента идентифицирует ваши запросы как запросы Google Maps APIs for Work. Вы должны включить в свои приложения идентификатор клиента, чтобы использовать специальные функции Google Maps APIs for Work. Идентификатор клиента также требуется для получения технической поддержки и выполнения условий нашего соглашения об уровне обслуживания для вашего приложения.

Использование ключа шифрования (например, vNIXE0xscrmjlyV-12Nj_BvUPaw=) для подписи запросов веб-служб

Почему это важно. Ваш закрытый ключ шифрования используется для генерации подписей, сообщающих Google, что ваши запросы поступают из надежного источника. Вы можете найти свой ключ шифрования в письме о регистрации, которое было направлено основным контактным лицам вашей организации. Наши веб-службы требуют, чтобы пользователи Google Maps APIs for Work подписывали свои запросы ключом шифрования. Это добавляет вашему запросу еще один уровень безопасности, который дополнительно защищает квоту, связанную с идентификатором клиента.

Обратите внимание: ключ шифрования используется для генерирования подписей. Сам по себе он не является подписью и не добавляется в ваши запросы. Ключ шифрования похож на ПИН-код для банковской карты. Он используется как средство аутентификации при доступе к вашей учетной записи, и его не следует размещать в открытом доступе или передавать ненадежным лицам. Наши серверы отклоняют запросы веб-служб Google Maps APIs for Work без надлежащей подписи, поэтому ваше приложение должно правильным образом подписывать запросы перед отправкой (в версии Google Maps Geocoding API v2 в настоящее время подписи не требуются). Ознакомьтесь с нашей документацией по подписи URL-адресов:

https://developers.google.com/maps/premium/previous-licenses/webservices/auth

Отслеживание использования приложения и применение параметра channel

Почему это важно. Параметр channel – дополнительный параметр, позволяющий отслеживать использование квоты по идентификатору клиента посредством назначения отдельного канала для каждого из ваших приложений. Для идентификатора клиента не нужно регистрировать параметры канала. Если вы добавите параметр channel в запрос API, то через 1-2 дня данные по использованию для каждого канала начнут отображаться в отчетах об использовании на портале поддержки. Вы можете самостоятельно определять назначение каналов и способ суммирования использования ресурсов. Перед запуском приложения следует решить, нужно ли интегрировать в него параметры канала для отслеживания использования приложения.

https://developers.google.com/maps/premium/previous-licenses/clientside/quota#reporting

Параметр channel должен иметь следующий формат.

  • Параметр должен представлять собой буквенно-цифровую строку ASCII.
  • Разрешается использовать символы точки (.), подчеркивания (_) и дефиса (-).
  • В параметре channel не учитывается регистр; значения параметра channel в верхнем, нижнем и смешанном регистре объединяются в эквивалентный параметр в нижнем регистре. Например, использование по каналу CUSTOMER объединяется с использованием по каналу customer.

Вы можете использовать до 2 000 отдельных каналов на идентификатор клиента.

Чтобы использовать параметр channel, включите его в URL-адрес запроса вместе с параметром client, используемым для передачи идентификатора клиента.

Значение параметра channel должно статически присваиваться каждому приложению. Оно не должно генерироваться динамически и использоваться для отслеживания отдельных пользователей.

Удаление устаревших параметров из запросов API (например, параметра &key=ABQIAAAA…)

Почему это важно. Для правильной загрузки Google Maps JavaScript API необходимо указать идентификатор клиента. Также необходимо удалить любые параметры key. Запрос, включающий идентификатор клиента и ключ, не будет обработан.

В руководстве по Google Maps APIs for Work содержится полная информация о том, как правильно форматировать запросы Google Maps APIs for Work для каждого API: https://developers.google.com/maps/premium/previous-licenses/