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

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

Сохраните письмо о регистрации Google Maps APIs Premium Plan в надежном месте

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

Используйте Google Cloud Support Portal

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

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

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

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

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

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

Также вы можете подписаться на канал RSS Объявления по Google Maps Premier API: перерывы в работе, обновления, уведомления об обслуживании:

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

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

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 API через SSL, должны использовать узел https://maps.googleapis.com вместо прежнего узла https://maps-api-ssl.google.com.

Установите разрешение на использование ваших доменов SSL с Google Maps JavaScript API

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

Выберите подходящую версию API

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

В частности, важно понимать схему определения версий Google Maps JavaScript API, чтобы случайно не использовать неподходящую версию API в своих системах.

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

См. руководство по версиям Google Maps JavaScript API.

Выберите решение на стороне клиента или решение на стороне сервера

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

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

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

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

Управление использованием квоты веб-служб

Почему это важно. По умолчанию для веб-служб устанавливается квота на 100 000 бесплатных запросов за день. Более подробное распределение квоты по API можно найти в руководстве по лимитам использования. Чтобы определить доступную квоту для вашего проекта, отправьте заявку в службу поддержки.

Прежде чем запускать службу, важно знать о распространенных ошибках, связанных с квотами (например, OVER_QUERY_LIMIT, User Rate Limit Exceeded), и предусмотреть реагирование приложения на такие ошибки в случае превышения квоты. Для начала ознакомьтесь с ответами на вопросы по лимитам использования. Информацию по кодам состояния, возвращаемых каждым API, можно найти в руководстве для разработчиков по этому API. Например, вы можете ознакомиться с руководством по кодам состояния Google Maps Directions API. Если вы будете понимать и использовать эти концепции, вероятность превышения разрешенной квоты, блокировки со стороны Google или потери работоспособности вашего приложения будет минимальной.

Проведите нагрузочное тестирование вашего приложения

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

Проведение нагрузочного тестирования с работающими службами 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. Вы можете выгрузить этот пример в собственное приложение App Engine (после регистрации на сайте appengine.google.com), чтобы ваше приложение отправляло запросы на него вместо сайта maps.googleapis.com.

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

Перенос приложения со стандартной лицензии на премиум-лицензию

Используйте свой идентификатор клиента или ключ API в запросах API

Почему это важно. Для приложения важно указывать в запросах API идентификатор клиента (gme-yourclientid) или ключ API (который выглядит примерно так: AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0). Идентификатор клиента или ключ API идентифицирует ваши запросы как запросы Google Maps APIs Premium Plan.

Вы должны включить в свои приложения идентификатор клиента или ключ API, чтобы использовать специальные функции Premium Plan. Также идентификатор клиента или ключ API требуется для получения технической поддержки и выполнения условий нашего соглашения об уровне обслуживания для вашего приложения.

Для большинства API вы можете выбрать между использованием идентификатора клиента или ключа API. Ваш идентификатор клиента указан в письме о регистрации, которое было направлено основным контактным лицам вашей организации. Вы можете сгенерировать собственный ключ или ключи API в Google API Console.

Подробная информация содержится в руководстве по аутентификации и авторизации.

В запросах API следует указывать или ключ API, или идентификатор клиента, но не оба этих параметра

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

В руководстве по аутентификации и авторизации можно найти полную информацию по правильному форматированию запросов Premium Plan для каждого API.

При использовании идентификатора клиента авторизуйте свои домены для использования с Google Maps JavaScript API

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

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

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

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

Почему это важно. Ваш закрытый криптографический ключ используется для генерации цифровых подписей, сообщающих Google, что ваши запросы поступают из надежного источника. Наши API веб-служб требуют, чтобы вы добавляли цифровую подпись в свои запросы, если вы используете для аутентификации идентификатор клиента. Это добавляет вашему запросу еще один уровень безопасности, который дополнительно защищает квоту, связанную с идентификатором клиента. Ключ шифрования (например, vNIXE0xscrmjlyV-12Nj_BvUPaw=) указан в письме о регистрации, направленном основным контактным лицам вашей организации.

Примечание. Ключ шифрования используется для генерирования подписей. Не добавляйте его в запросы в качестве подписи. Ключ шифрования похож на ПИН-код для банковской карты. Он используется как средство аутентификации при доступе к вашей учетной записи, и его не следует размещать в открытом доступе или передавать ненадежным лицам. Наши серверы отклоняют запросы веб-службы Premium Plan без надлежащей подписи, поэтому ваше приложение должно правильным образом подписывать запросы перед отправкой. Подробная информация приведена в руководстве по аутентификации и авторизации.

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

Почему это важно. Пользователи Premium Plan имеют доступ к подробным отчетам об использовании приложения, включая сделанные запросы, использованные кредиты, выданные ошибки и т. д. См. руководство по отчетам.

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

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

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

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

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

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