Google Maps Platform のレポート

Google Maps Platform の使用状況、割り当て、請求額を定期的にモニタリングすることが重要です。これらの数値をモニタリングすることで、プロジェクトで発生するリクエストを追跡し、事前に設定した使用量上限を超えないように調整したり、予算を設定して費用を管理したりできます。また、プロジェクトと Google Maps Platform サービスの間で予期しない動作が発生したとき、それらを検出することも可能です。

Cloud Console

Google Cloud Platform Console(Cloud Console とも呼ばれます)を使って、Google Maps Platform の使用状況、割り当て、請求額をモニタリングします。

API とサービス

Cloud Console の [API とサービス] では、プロジェクトで有効化しているすべての API の使用状況を確認できます。つまり、Google Maps Platform の API と SDK に加え、その他の Google API とサービスも対象となります。

API とサービス

[API とサービス] にアクセスするには:

  1. Cloud Console を開きます。
  2. プロジェクトを選択します。
  3. メニューボタン メニュー をクリックし、[API とサービス] をクリックします。

Google Maps Platform

Cloud Console の Google Maps Platform では、Google Maps Platform の API と SDK のみの使用状況や割り当てを確認できます(以下、「Google Maps Platform API」または単に「API」と表記します)。

Google Maps Platform のダッシュボード

Google Maps Platform にアクセスするには:

  1. Cloud Console を開きます。
  2. プロジェクトを選択します。
  3. メニューボタン メニュー をクリックし、[その他の GOOGLE サービス] までスクロールして [Google Maps Platform] をクリックします。

お支払い

Cloud Console の [お支払い] には、選択したプロジェクトのお支払いと費用関連の情報が表示されます。

お支払いダッシュボード

[お支払い] にアクセスするには:

  1. Cloud Console を開きます。
  2. プロジェクトを選択します。
  3. メニューボタン メニュー をクリックし、[お支払い] をクリックします。
  4. 請求先アカウントが複数ある場合は、[リンクされた請求先アカウントに移動] をクリックします。
    リンクされた請求先アカウントの [概要] ページが表示されます。
  5. 左側のメニューで [レポート] をクリックします。
    リンクされた請求先アカウントの [レポート] ページが表示されます。

使用状況レポート

使用状況レポートは、プロジェクトに関連付けられた認証情報を使用し、プロジェクトから Google Maps Platform API に送信されたリクエストの数に基づいて生成されます。このリクエストには、成功したリクエスト、サーバーエラーの原因となったリクエスト、クライアント エラーの原因となったリクエストが含まれます。認証情報には、API キーとクライアント ID(プレミアム プランおよび移行済みプレミアム プランのプロジェクトの場合)が含まれます。

使用状況は、表(リクエスト、エラー、レイテンシ)とグラフ(トラフィック、エラー、レイテンシ)で表示されます。トラッキングのヒント:

  • すべての API の使用状況指標は、期間と API を指定して絞り込むことができます。レスポンス コード、API、認証情報でグループ化して、トラフィック、エラー、レイテンシを表示することも可能です。
  • 特定の API について、期間、API のバージョン、認証情報、メソッドを指定して使用状況指標を絞り込むことができます。レスポンス コード、API のメソッドとバージョン、認証情報でグループ化して、トラフィック、エラー、レイテンシを表示することも可能です。

[API とサービス] の [ダッシュボード] ページ

[API とサービス] の [ダッシュボード] ページには、プロジェクトで有効化されているすべての API の使用状況指標が表示されます(Google Maps Platform の API に加え、その他の API とサービスも対象となります)。

[ダッシュボード] ページは 3 つのグラフと 1 つの表で構成されています。これらのグラフと表に表示される使用状況データを絞り込むには、期間(1 時間~過去 30 日間)を選択します。

[トラフィック] グラフには、API ごとの秒間クエリ数(QPS)が表示されます。[エラー] グラフには、各 API について、エラーの原因となったリクエストの割合が表示されます。[レイテンシ] グラフには、各 API について、リクエストの中央値レイテンシが表示されます。

これらのグラフの下に、有効な API とサービスの一覧表が表示されます。[リクエスト] 列には、選択した期間に発生したリクエストの数が表示されます。[エラー] 列には、エラーとなったリクエストの割合が表示されます。[レイテンシ、中央値(ミリ秒)] 列には、発生したリクエストのレイテンシが表示されます。

詳しくは、API 使用状況のモニタリングをご覧ください。

API のモニタリング

Google Maps Platform の [概要] ページ

Google Maps Platform の [概要] ページには、有効な API と過去 30 日間のリクエスト数を示す表が表示されます。API ごとのリクエスト数はグラフ形式でも表示されます。課金グラフには、現在の請求額と、過去 3 か月の合計使用料が表示されます。

注: 有効ないずれかの API をクリックすると、その API の [指標] ページ(Google Maps Platform)が表示されます。

概要

Google Maps Platform API のページ

Google Maps Platform の [API] ページには 2 つの表があります。[有効な API] には、有効な各 API の過去 30 日間におけるリクエスト数、エラー数、平均レイテンシが表示されます。[その他の API] には、有効化されていない(使用状況レポートの対象ではない)API がリスト表示されます。

注: 有効ないずれかの API をクリックすると、その API の [指標] ページ(Google Maps Platform)が表示されます。

API

Google Maps Platform の [指標] ページ

Google マップの [指標] ページに、トラフィック、エラー、中央値レイテンシの 3 つのグラフが表示されます。グラフの使用状況データは、レスポンス コード、API、API メソッド、または認証情報ごとにグループ化できます。

[指標] ページのグラフの下には、選択した API のリクエスト、エラー、レイテンシが一覧表示されます。

上部にある [API] プルダウンと、右側のペインのフィルタ オプションを使用して、特定の(または複数の)API、認証情報、レスポンス コードを選択することで、表示される使用状況の指標をフィルタリングできます。表示される使用状況の指標の期間(1 時間から過去 30 日間まで)と粒度(1 秒あたりまたは 1 日あたり)も選択できます。

指標

レスポンス コードのグラフ

トラフィック(レスポンス コード別)グラフとエラー(レスポンス コード別)グラフには、使用状況データがレスポンス コード クラス別に表示されます。次の表は、Google Maps Platform API のレスポンス ステータスとレスポンス コード クラスの対応関係を示しています。

レスポンスのステータス レスポンス コード クラス
(2xx、3xx、4xx、5xx)
備考
OK 2xx 正常なレスポンス。

課金対象のリクエスト。割り当て分を消費します。
OK 3xx 正常なレスポンス。

課金対象のリクエスト。割り当て分を消費します。

たとえば、プレイスフォトのリクエストが成功すると、参照画像への 302 リダイレクトが返されます。
DATA_NOT_AVAILABLE 2xx 入力場所で利用できるデータがないことを示す正常なレスポンス。

課金対象のリクエスト。割り当て分を消費します。
ZERO_RESULTS 2xx 結果が返されない正常なレスポンス。

課金対象のリクエスト。割り当て分を消費します。
NOT_FOUND 2xx Directions API の場合、リクエストで指定された出発地、目的地、地点のうち、少なくとも 1 つの場所をジオコーディングできなかったことを示します。

Places API の場合、参照先の場所(place_id)がプレイス データベースで見つからなかったことを示します。

課金対象のリクエスト。割り当て分を消費します。
INVALID_REQUEST(無効なパラメータ値)、
MAX_WAYPOINTS_EXCEEDED、
MAX_ROUTE_LENGTH_EXCEEDED など
2xx パラメータ値が無効、入力値が多すぎるなどが原因で発生するエラー。詳しくは、API レスポンスをご覧ください。

課金対象のリクエスト。割り当て分を消費します。
REQUEST_DENIED 4xx 認証エラーやアクセスエラーなどが原因で発生するクライアント エラー。詳しくは API レスポンスをご覧ください。
OVER_DAILY_LIMIT、
OVER_QUERY_LIMIT、
RESOURCE_EXHAUSTED、
rateLimitExceeded、
dailyLimitExceeded、
userRateLimitExceeded
4xx クライアント エラー: 許可された期間あたりのリクエスト数が多すぎます。しばらくしてからリクエストを再試行してください。詳しくは、API レスポンスをご覧ください。
INVALID_REQUEST(無効なパラメータ、パラメータの不足、リクエスト解析エラー) 4xx クライアント エラー: リクエストが無効です。詳しくは、API レスポンスをご覧ください。
NOT_FOUND(404) 4xx Geolocation API の場合、入力が不十分で場所を推定できないことを示します。

Roads API の場合、位置情報を道路上に適切にスナップできないことを示します。

課金対象のリクエスト。割り当て分を消費します。
UNKNOWN_ERROR 5xx リクエストを処理できないことを示すサーバーエラー(内部エラー、サービスの過負荷、利用不可、タイムアウトなど)。

ステータス コードとエラー メッセージの詳細については、該当する API のレスポンス ドキュメント(Geocoding レスポンスDirections レスポンスなど)をご覧ください。

Google Maps Platform のソリューション パラメータ

Google Maps Platform には、すぐに実行できる、さまざまな種類のサンプルコードが用意されています。 たとえば、Cloud Console で Quick Builder を使用したり、実装ガイドに従って分野別ソリューションを実装したり、Codelabs で学習したりすることができます。

サンプルコードの用途とソリューションの改善方法をシステムが把握するため、API 呼び出しに solution_channel クエリ パラメータが含まれ、サンプルコードの使用状況に関する情報が自動的に収集されます。

  • solution_channel クエリ パラメータは、デフォルトでソリューションのサンプルコードに含まれています。
  • ソリューションが今後再び使用される際の品質向上に向けて、クエリ パラメータにより、今回使用されたソリューションに関する分析が匿名化されシステムに返されます。
  • オプトアウトするには、solution_channel クエリ パラメータを削除して、その値をサンプルコードから削除してください。
  • パラメータを保持する必要はありません。クエリ パラメータを削除しても、パフォーマンスには影響しません。
  • クエリ パラメータは、サンプルコードの使用状況をレポートする目的のみで使用されます。
  • クエリ パラメータは、API に特化した分析およびレポートとは別のものです。つまり、ソリューションのサンプルコードからこのパラメータを削除しても、Maps JavaScript API の内部レポートは無効になりません。

割り当てレポート

割り当てでは、プロジェクトが Google Maps Platform API に送信するリクエスト数の上限を設定します。リクエスト数を制限するには、3 つの方法(1 日あたり、1 分あたり、ユーザーごとに 1 分あたり)があります。正常に処理されたリクエスト、およびサーバーエラーを発生させたリクエストのみが割り当てを消費します。認証に失敗したリクエストは割り当てを消費しません。

割り当ての使用状況は、Cloud Console の [割り当て] ページにあるグラフに表示され、1 分あたりのリクエスト数でグループ化できます。選択した API の現在の割り当て上限は、割り当て使用状況グラフの下の表に表示されます。

この計算ツールを使って、任意の GMP API サービスの 1 分あたりの割り当て値を取得します

Google Maps Platform の [割り当て] ページ

Google Maps Platform の [割り当て] ページには、選択した API の割り当て上限と割り当て使用量が表示されます。

Google Cloud Console の割り当て使用状況グラフには、API キーとクライアント ID の合計トラフィックが表示されます。クライアント ID のトラフィックは、Google Cloud Console の [指標] グラフでも使用されます。詳しくは、問題 158809616 をご覧ください。

このページには、割り当てを消費するリクエストのみが表示されます。具体的には、成功したリクエスト(OK、ZERO_RESULTS、DATA_NOT_AVAILABLE)とサーバーエラーとなったリクエスト(NOT_FOUND、INVALID_REQUEST/INVALID_VALUE(無効なパラメータ値)、UNKNOWN_ERROR)が表示されます。

認証、承認、無効な引数などのクライアント エラーを発生させたリクエスト(REQUEST_DENIED、OVER_QUERY_LIMIT、INVALID_REQUEST((無効なパラメータ、リクエスト解析エラー))は割り当てを消費しないため、このページに表示されません。

Google Maps Platform のほとんどの API(Static Maps API、Street View Static API、Geocoding API、Directions API、Places API、Timezone API、Geolocation API、Elevation API)では、リクエストが割り当てユニットとなります。ただし、次のような例外があります。

  • Distance Matrix API の場合、割り当てユニットは出発地と目的地のペアです。
  • Maps JavaScript API の場合、割り当てユニットはマップロードです。
  • Maps SDK for Android および Maps SDK for iOS の場合、ストリートビュー リクエスト / パノラマ読み込みが割り当てユニットとなります(マップロードは無料で、割り当てを消費しません)。
割り当て

割り当てユニット

次の表は、Google Maps Platform API の割り当てユニットを示しています。

Google Maps Platform API 割り当てユニット
マップ
Maps SDK for Android 1 パノラマ
Maps SDK for iOS 1 パノラマ
Maps Static API 1 リクエスト
Maps JavaScript API 1 マップロード
Street View Static API 1 リクエスト
Maps Embed API 1 マップロード
ルート
Directions API 1 リクエスト
Distance Matrix API 1 要素(出発地と目的地のペア)
Roads API 1 リクエスト
プレイス
Places API 1 リクエスト
Geocoding API 1 リクエスト
Geolocation API 1 リクエスト
Time Zone API 1 リクエスト

請求レポート

請求レポートを表示

Google Maps Platform プロダクトの使用に関する請求レポートは、Google Cloud Console で確認できます(お支払いをご覧ください)。

請求レポート(グラフ)の読み方

請求レポートでは、費用の経時的変化が積み上げ折れ線グラフとして示されます。デフォルトでは、(すべてのサービスについて)現月の日別使用料がプロジェクトごとに表示されます。これには、適用されたクレジットと、その月全体の合計推定費用が含まれます。グラフの各線(およびサマリー テーブルの行)はそれぞれのプロジェクトに対応しており、費用が大きい順に並べられています。請求レポートのグラフの詳細をご確認ください。

請求レポート
図 1: 請求レポート - 既定のビューを使用してグラフとテーブルを表示

ヒント: 使用量と料金を SKU ごとに分析する

従量課金モデルがお客様の実装に及ぼす影響については、SKU ごとに集計された実際の使用量と料金をご覧ください

SKU でグループ化された請求レポート
図 2: 請求レポート - 使用量と料金を SKU ごとに表示
請求レポートのフィルタ
図 3: 請求レポートのフィルタ
レポートの項目を SKU 別に表示するには:
  1. グラフの右側にあるパネルで、[グループ条件] フィルタを展開します。
  2. [SKU] を選択します。

請求レポートで使用できるその他のフィルタには、[期間]、[プロジェクト]、[サービス]、[SKU] のほか、API リクエストの配信元でフィルタできる [場所] があります。

サービスに加えてリクエストの発生元を分類するには、請求レポートをリスト内の値のいずれかでグループ化します。Google Maps Platform API に関連する 3 つのキーは、goog-maps-api-key-suffix(API キーの最後の 4 文字)、goog-maps-platform-type(プラットフォーム: Android、iOS、JavaScript またはウェブサービス)、および goog-maps-channel(API クエリによって設定された一連の数値チャネル値)。 フィルタリングとグループ化に関する詳細

グラフのビューを変更して、使用料からクレジット分を除外するには、右側のパネルで [費用にクレジットを含める] チェックボックスをオフにします。

使用量のモニタリングと制限

予算を設定して費用を管理するには、次のような方法があります。

  • 予算アラートを設定し、特定の金額を超えないように利用料を追跡します。予算を設定しても、API 使用量の上限は設定されません。利用料が指定した金額に近づいたとき、アラートが通知されるだけです。
  • 1 日あたりの API 使用量の上限を設定し、課金対象となる API の利用料を管理します。1 日あたりのリクエスト数に上限を設定すると、利用料を制限できます。希望の予算に基づいて 1 日の上限を求めるには、次の式を使用します。(「1 か月の予算」÷「各 SKU の料金」)÷ 30 = 1 日のリクエスト数上限(1 API あたり)。課金対象となる API を複数使用する場合は、必要に応じて式の要素を調整してください。Google Maps Platform では毎月 200 ドル分の無料クレジットを利用できるため、この金額も考慮する必要があります。

使用状況をチャネルごとにトラッキング

数値チャネルを使って使用状況をトラキングするには、API リクエストに「channel」パラメータを追加します。指定できるチャネル値は 0~999 です。次に例を示します。

  • Geocoding ウェブサービス API

    https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY&channel=1
  • Maps JavaScript API

    <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&channel=2&callback=initMap"
    async defer></script>

請求レポートでは、チャネルの使用状況を直接モニタリングできます。チャネルは、[ラベル] の goog-maps-channel キーとして表示されます。

ラベルでフィルタ
図 4: SKU とチャネルでデータを絞り込む
請求レポートのデータを SKU とチャネルで絞り込むには:
  1. [グループ条件] で [SKU] を選択します。
  2. [ラベル] を展開します。
  3. [キー] プルダウンをクリックし、[goog-maps-channel] を選択します。
  4. [] プルダウンをクリックし、フィルタを適用する数値チャネルを選択します。

ラベルキー goog-maps-channel でグループ化すると、発生した費用がチャネルごとに表示されます。

チャネルの使用状況データをリクエストに実装した後、そのデータが請求レポートに反映されるまで少し時間がかかる場合があります(最長 24 時間)。

課金データを BigQuery にエクスポート

課金データを BigQuery にエクスポートすることもできます。

BigQuery Export では、1 日を通して、詳細な Cloud Billing データ(使用量や費用の見積りなど)を指定した BigQuery データセットへ自動的にエクスポートできます。さらに、BigQuery から課金データにアクセスし、詳細に分析することで、Google Maps Platform がどのように利用されているかを細かく把握できます。

BigQuery を使用したデータのエクスポートとクエリを開始するには、以下のサンプルクエリをお試しください。このクエリを実行するには、以下の準備が必要です。

  • アカウントで課金を有効に設定し、課金データを BigQuery へエクスポートできるようにします。
  • テーブル形式は PROJECT_ID.DATASET_NAME.gcp_billing_export_v1_BILLING_ACCOUNT_ID です。
    • PROJECT_ID は、お客様の実際のプロジェクト ID です(「my-project-123456」など)。
    • DATASET_NAME は、作成したデータセットの名前です(例: SampleDataSet)。
    • BILLING_ACCOUNT_ID は、お客様の請求先アカウント ID です。先頭に「gcp_billing_export_v1_」を付加し、ダッシュ(-)はアンダースコア(_)に変更してください。たとえば、請求先アカウント ID が 123456-7890AB-CDEF01 の場合、gcp_billing_export_v1_123456_789AB_CDEF01 になります。

注: 新しいデータセットを作成すると、管理画面にそのデータセットがすぐに表示されます。ただし、クエリ対象のテーブルはその時点では表示されません。このテーブルは数時間後に自動的に生成されます。データが表示されるまでには 24 時間ほどかかります。BigQuery データセットには、課金データのエクスポートを設定した日以降の使用状況データと費用データのみが反映されます。つまり、課金データは過去にさかのぼって追加されないため、BigQuery Export を有効にする前の課金データは表示されません。

  #standardSQL
  SELECT   Date(usage_start_time, "America/Los_Angeles") AS billing_day,
           invoice.month                                 AS invoice_month,
           service.description                           AS service,
           sku.description                               AS sku,
           (
                  SELECT l.value
                  FROM   Unnest(labels) AS l
                  WHERE  l.KEY = 'goog-maps-channel' ) AS goog_maps_channel,
           Round(Sum(usage.amount), 2)                 AS usage_amount,
           usage.unit                                  AS usage_unit,
           Round(Sum(cost), 2)                         AS cost,
           cost_type,
           currency
  FROM     `PROJECT_ID.DATASET_NAME.gcp_billing_export_v1_BILLING_ACCOUNT_ID`
  WHERE    invoice.month = '202002' -- Change the invoice month with the same format as the example.
  GROUP BY billing_day,
           invoice_month,
           service,
           sku,
           goog_maps_channel,
           usage_unit,
           cost_type,
           currency
  ORDER BY billing_day,
           service,
           sku
  

Cloud Billing:

Google Maps Platform:

レスポンスのステータスとレポート

次の表は、レスポンス ステータスとレスポンス コード クラスの一覧です。該当するリクエストが使用状況レポート、割り当てレポート、請求レポートに表示されるかどうかを示しています。

レスポンスのステータス レスポンス コード クラス
(2xx、3xx、4xx、5xx)
使用状況レポート 割り当てレポート 請求レポート
OK 2xx、
3xx
ZERO_RESULTS、
DATA_NOT_AVAILABLE、
NOT_FOUND
2xx
INVALID_REQUEST(無効なパラメータ値)、
MAX_WAYPOINTS_EXCEEDED、
MAX_ROUTE_LENGTH_EXCEEDED
など
2xx
REQUEST_DENIED 4xx いいえ ×
OVER_DAILY_LIMIT、
OVER_QUERY_LIMIT、
RESOURCE_EXHAUSTED、
dailyLimitExceeded、
rateLimitExceeded、
userRateLimitExceeded
4xx いいえ ×
INVALID_REQUEST(無効なパラメータ、リクエスト解析エラー) 4xx いいえ ×
NOT_FOUND(Geolocation API と Roads API) 4xx
UNKNOWN_ERROR 5xx ×