ウェブサービスの使用を最適化する

注: 現在、Google Maps Platform プレミアム プランは、新規お申し込みまたは新規お客様のご利用を受け付けていません。

概要

アプリケーションによる Google Maps Platform ウェブサービスの使用量が上限を超えると、そのサービスからエラー メッセージが返されます。使用量上限を超える状態がその後も続くと、ウェブサービスへのアクセスがブロックされ、場合によっては「403 Forbidden」レスポンスが返されます。

アプリケーションのウェブサービス リクエストでエラー メッセージが表示される場合は、ウェブサービスをより効率的に使用するようにアプリケーションを最適化することで、使用量を低減できます。

始める前に

アプリケーションによるウェブサービスの使用を最適化する前に、ユースケースに応じた適切なサービスと Maps API ライセンスを使用していることをご確認ください。

ユースケースを確認する

Google Maps Platform のウェブサービスは、リアルタイムでのユーザー入力を必要としないアプリケーションや、ウェブブラウザを使用しない場合に適しています。たとえば、ユーザー入力とは無関係のデータセット(不動産サイトで、ジオコーディングが必要な一連の住所データなど)を使用するアプリケーションは、ウェブサービスが適しています。

ウェブサービスを使用する場合、リクエストを送信した IP アドレスの数にかかわらず、プレミアム プラン ライセンスに秒間クエリ数(QPS)に上限が適用されます。

一方、Maps JavaScript API で使用できるクライアント側サービスでは、リクエストがすべてのユーザーに分散され、ユーザーの増加に応じて拡張できるようにするため、ブラウザ セッションごとにレート制限が適用されます。したがって、ユーザーの自宅周辺の店舗を検索するなど、ユーザーが入力した住所をリアルタイムでジオコーディングするアプリケーションには、クライアント側サービスが適しています。

ウェブサービスが適しているユースケースについて詳しくは、ジオコーディング時の最適化方法をご覧ください。このドキュメントではジオコーディングの推奨事項に焦点を当てていますが、サーバー側のウェブサービスが適しているケースと、クライアント側の同等の機能が適しているケースについての説明は、あらゆるウェブサービスにあてはまります。

ウェブサービスの使用を最適化する方法

ウェブサービスを効率的に使用するには、必要なときのみリクエストを送信して使用量を減らし、負荷を均等に分散させて、上限を超えないようにする必要があります。

結果をキャッシュする

Google Maps Platform 利用規約の第 3.2.3.a 項および b 項では、利用規約に記載されている例外を除き、コンテンツのプリフェッチ、インデックスへの登録、保管、キャッシュはできないと定められています。

ただし、プレイスを一意に識別するために使用されるプレイス ID は、キャッシング制限の適用対象外のため、無期限で保存できます。

リクエストを絞り込む(スロットリング)

使用制限の超過を避けるため、リクエストの送信日時を監視するキューにリクエストを入れて、リクエストを絞り込むようにアプリケーションを設定できます。アプリケーションが QPS 制限を超える追加のリクエストを受信した場合、最初のリクエストのタイムスタンプを確認し、1 秒待ちます。

スロットリングを行っても、ステータス コード OVER_QUERY_LIMIT のレスポンスを受け取る可能性があります。このようなレスポンスを受信したら、短時間の遅延(20 ミリ秒)を挿入するようにアプリケーションを設定し、再試行してください。