Google Maps Platform のレポート

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

Cloud Console

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

API とサービス

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

API とサービス

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

  1. Google Cloud Platform 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. Google Cloud Platform Console を開きます。
  2. プロジェクトを選択します。
  3. メニューボタン メニュー をクリックし、[その他の GOOGLE ソリューション] までスクロールして [Google Maps Platform] をクリックします。

お支払い

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

お支払いダッシュボード

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

  1. Google Cloud Platform 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 Maps Platform の [認証情報] ページでは、作成した認証情報(API キー、OAuth クライアント ID、サービス アカウントキー)を確認できます。それぞれの表には、各認証情報を識別する属性(認証情報の名前、作成日、認証情報の制限、API キー番号、クライアント ID、サービス アカウントのメールアドレス)が表示されます。

API キーとサービス アカウントキーについては、認証情報の使用状況も示されます。

  • このサービスでの使用状況(過去 30 日間): このサービスを呼び出す際に認証情報が使用された回数。この数には、課金対象と課金対象外の両方の使用が含まれます。
  • すべてのサービスでの使用状況(過去 30 日間): いずれかのサービスを呼び出す際に認証情報が使用された回数。この数には、課金対象と課金対象外の両方の使用が含まれます。

「このサービス」は、現在選択されている Google Maps API を指します。「すべてのサービス」は、認証情報を使用するすべての Google Maps API を指します。

Google Maps Platform の [指標] ページ

Google Maps Platform の [指標] ページでは、レスポンス コード、API、認証情報でグループ化されたグラフ(トラフィック、エラー、レイテンシ)を 10 個まで選択(および表示)できます。特定の API または複数の API を選択すると、それらに関するデータのみが表示されます。

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

API プルダウンを使用して、API のバージョン、認証情報、メソッドの値を設定し、結果を絞り込むことができます。また、特定の期間(1 時間~過去 30 日間)のデータのみをグラフに表示することも可能です。

トラフィック、エラー、レイテンシのグラフの使用状況は、レスポンス コード、API メソッド、API のバージョン、認証情報でグループ化できます。

指標

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

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

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

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

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

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

課金対象のリクエスト。割り当て分を消費します。
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 の場合、位置情報を道路上に適切にスナップできないことを示します。

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

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

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

割り当てレポート

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

割り当ての使用状況はグラフに表示され、「1 日あたりのリクエスト数」または「100 秒あたりのリクエスト数」でグループ化できます。選択した API の現在の割り当て上限は、割り当て使用状況グラフの下の表に表示されます。

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

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

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

このページには、割り当てを消費するリクエストのみが表示されます。具体的には、成功したリクエスト(OK、ZERO_RESULTS)とサーバーエラーとなったリクエスト(NOT_FOUND、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 Platform Console で閲覧できます(お支払いをご覧ください)。

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

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

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

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

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

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

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

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

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

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

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

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

これで、数値チャネルを介して使用状況をトラッキングできるようになりました。これは、サービスに加え、リクエストの発生元を分類するもう 1 つの方法です。まず、リクエストに「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>

注: 現在、以下の SKU ではチャネルデータをご利用いただけません。

チャネルの使用状況は、請求レポートで直接モニタリングできます。チャネルは、[ラベル] の 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、4xx、5xx)
使用状況レポート 割り当てレポート 請求レポート
OK 2xx
ZERO_RESULTS、
NOT_FOUND
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
INVALID_REQUEST(無効なパラメータ値)、
MAX_WAYPOINTS_EXCEEDED、
MAX_ROUTE_LENGTH_EXCEEDED、
その他
4xx
UNKNOWN_ERROR 5xx ×