注: 現在、Google Maps Platform プレミアム プランは、新規お申し込みまたは新規お客様のご利用を受け付けていません。
概要
アプリケーションによる Google Maps Platform ウェブサービスの使用量が上限を超えると、そのサービスからエラー メッセージが返されます。使用量上限を超える状態がその後も続くと、ウェブサービスへのアクセスがブロックされ、場合によっては「403 Forbidden」レスポンスが返されます。
アプリケーションのウェブサービス リクエストでエラー メッセージが表示される場合は、ウェブサービスをより効率的に使用するようにアプリケーションを最適化することで、使用量を低減できます。
始める前に
アプリケーションによるウェブサービスの使用を最適化する前に、ユースケースに応じた適切なサービスと Maps API ライセンスを使用していることをご確認ください。
ユースケースを確認する
Google Maps Platform ウェブサービスは、リアルタイム入力を必要としないアプリケーションに最適です ブラウザが使用されていない場合や、たとえば、ウェブサーバーは、ウェブサーバーを アプリケーションで、ユーザー入力とは無関係なデータセット(例: 固定セット、 ジオコーディングする必要がある不動産ウェブサイト上の住所の数。
ウェブサービスの場合、1 分あたりのクエリ数(QPM)の上限は プレミアム プラン ライセンス(IP アドレスの数に関係なく) 送信元を表します。
一方、Maps JavaScript API で使用できるクライアント側サービスでは、リクエストがすべてのユーザーに分散され、ユーザーの増加に応じて拡張できるようにするため、ブラウザ セッションごとにレート制限が適用されます。したがって、ユーザーの自宅周辺の店舗を検索するなど、ユーザーが入力した住所をリアルタイムでジオコーディングするアプリケーションには、クライアント側サービスが適しています。
ウェブサービスが適しているユースケースについて詳しくは、ジオコーディング時の最適化方法をご覧ください。このドキュメントではジオコーディングの推奨事項に焦点を当てていますが、サーバー側のウェブサービスが適しているケースと、クライアント側の同等の機能が適しているケースについての説明は、あらゆるウェブサービスにあてはまります。
ウェブサービスの使用を最適化する方法
ウェブサービスを効率的に使用するには、必要なときのみリクエストを送信して使用量を減らし、負荷を均等に分散させて、上限を超えないようにする必要があります。
結果をキャッシュする
Google Maps Platform 利用規約の第 3.2.3.a 項および b 項では、利用規約に記載されている例外を除き、コンテンツのプリフェッチ、インデックスへの登録、保管、キャッシュはできないと定められています。
ただし、プレイスを一意に識別するために使用されるプレイス ID は、キャッシング制限の適用対象外のため、無期限で保存できます。
リクエストを絞り込む(スロットリング)
使用制限の超過を避けるため、リクエストの送信日時を監視するキューにリクエストを入れて、リクエストを絞り込むようにアプリケーションを設定できます。アプリケーションで QPM の上限を超える追加のリクエストを受信する場合は、クエリのペースを調整します。コードで、クエリ間の待機時間として **`S`** 秒を追加します。クエリで引き続き割り当てエラーが発生する場合は、待機時間を 2 倍にしてから別のクエリを送信します。クエリがエラーなしで返されるまで、待機時間の調整を続けます。
スロットリングを行っても、ステータス コード OVER_QUERY_LIMIT
のレスポンスを受け取る可能性があります。このようなレスポンスを受信したら、短時間の遅延(20 ミリ秒)を挿入するようにアプリケーションを設定し、再試行してください。