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

Управление идентификатором клиента в Google Cloud Console

Функции управления идентификатором клиента (тарифный план Premium), которые находились на портале поддержки, перенесены в Cloud Console. Чтобы получить к ним доступ, откройте страницу "Учетные данные" в разделе Сервисные аккаунты.

Новый раздел идентификатора клиента на странице "Учетные данные"

Примечание. Тарифный план Premium платформы Google Карт больше не доступен для оформления.

Обеспечение доступа к необходимым ресурсам

Сохраните приветственное письмо с информацией о тарифном плане Premium платформы Google Карт

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

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

Почему это важно: в Google Cloud Console можно найти полезную информацию, например отчеты об использовании, новости и ресурсы для разработчиков. Кроме того, здесь клиенты с планом Premium могут подавать запросы в службу поддержки в случае технических проблем на этапе разработки или запуска приложения.

Перед запуском обеспечьте доступ к Cloud Console всем разработчикам, отвечающим за обслуживание вашего приложения. Тогда участники вашей команды смогут обращаться в службу поддержки, если возникнут технические проблемы. Кроме того, наши специалисты смогут связываться с ответственными лицами вашей организации (например, если мы обнаружим аномальный трафик или события, которые могут привести к нарушению работы вашего приложения). Таким образом, мы сможем предотвращать внезапные сбои в работе приложения.

Подпишитесь на группы уведомлений

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

  • google-maps-platform-notifications: новости об API и веб-сервисах платформы Google Карт, уведомления о сбоях и сообщения о новых функциях платформы (около 3–5 публикаций в месяц).
  • google-maps-js-api-v3-notify: сообщения о новых выпусках Google Maps JavaScript API (около 4 публикаций в год).

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

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

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

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

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

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

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

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

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

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

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

Примечание. Сервисы платформы Google Карт используют для входящего и исходящего трафика порты 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 с Maps JavaScript API

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

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

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

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

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

Дополнительные сведения вы можете найти в руководстве по версиям Maps JavaScript API.

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

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

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

Оптимизируйте использование квоты

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

Управляйте использованием квоты для веб-сервисов

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

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

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

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

Проведение нагрузочного тестирования с работающими сервисами Google приведет к превышению вашим приложением допустимой квоты и его блокировке со стороны Google. Платформа Google Карт может обрабатывать очень большие объемы запросов. В 2012 году приложение Радар Санта-Клауса достигло скорости обработки 1 600 000 запросов в секунду. Поэтому не стоит проводить нагрузочное тестирование с сервисами Google. Нагрузочное тестирование помогает проверить, может ли ваше приложение справляться с большим объемом запросов без превышения квоты Maps API. Пример. Если ваша квота для Geocoding API составляет 20 запросов/сек (queries per second), во время нагрузочного тестирования ваше приложение должно обрабатывать 600 запросов/сек, отправляя не более 20 запросов/сек в Geocoding API.

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

Посмотрите этот пример фиктивного 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 идентифицирует ваши запросы как запросы плана Premium платформы Google Карт.

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

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

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

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

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

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

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

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

Чтобы посмотреть список авторизованных доменов в Cloud Console, перейдите на страницу Учетные данные и прокрутите ее вниз до раздела Идентификатор клиента.

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

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

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

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

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

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

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

Ниже приведены требования к формату параметра channel.

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

На каждый идентификатор клиента можно использовать до 2000 отдельных каналов.

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

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