Core Reporting API - リファレンス ガイド

このドキュメントでは、Core Reporting API バージョン 3.0 のすべてのクエリと レスポンスについて説明します。

はじめに

Google アナリティクスのレポートデータをクエリするには、Core Reporting API を使用します。それぞれのクエリには、ビュー ID(旧プロファイル ID)、開始日と終了日、1 つ以上の指標を指定する必要があります。また、クエリをさらに絞り込むために、ディメンション、フィルタ、セグメントなどのクエリ パラメータを追加することもできます。これらの概念がどのように連携するかについては、概要ガイドをご覧ください。

リクエスト

この API には、データをリクエストするためのメソッドが 1 つ用意されています。

analytics.data.ga.get()

このメソッドは、各種のクライアント ライブラリで公開されており、クエリ パラメータを設定するための言語固有のインターフェースを持っています。

この API は、REST 対応のエンドポイントとしてクエリすることもできます。

Authorization: Bearer {oauth2-token}

GET https://www.googleapis.com/analytics/v3/data/ga
  ?ids=ga:12345
  &start-date=2008-10-01
  &end-date=2008-10-31
  &metrics=ga:sessions,ga:bounces

各 URL クエリ パラメータは、API クエリ パラメータを指定します。API クエリ パラメータは、URL エンコードされている必要があります

クエリ パラメータの概要

次の表は、Core Reporting API で使用できるすべてのクエリ パラメータをまとめたものです。各パラメータ名をクリックすると、詳しい説明が表示されます。

名前 必須 まとめ
ids string 必須 ga:XXXX 形式の一意のテーブル ID。XXXX は、クエリでデータを取得するアナリティクスのビュー(プロファイル)ID です。
start-date string 必須 アナリティクス データの取得を開始する日付。リクエストでは、開始日を YYYY-MM-DD 形式で指定することも、相対的な日付(todayyesterdayNdaysAgoN は正の整数)。
end-date string 必須 アナリティクス データの取得を終了する日付。リクエストには、YYYY-MM-DD 形式で終了日を指定することも、相対日付(todayyesterdayNdaysAgoN は正の整数)。
metrics string 必須 カンマ区切りの指標のリスト(ga:sessions,ga:bounces など)。
dimensions string × アナリティクス データのカンマ区切りのディメンションのリスト(例: ga:browser,ga:city)。
sort string × 返されたデータの並べ替え順と並べ替え方向を示すカンマ区切りのディメンションと指標のリスト。
filters string × リクエストに対して返されるデータを制限するディメンション フィルタまたは指標フィルタ。
segment string × リクエストに対して返されたデータをセグメント化します。
samplingLevel string × 希望するサンプリング レベル。使用できる値:
  • DEFAULT - 速度と精度のバランスがとれたサンプルサイズで レスポンスが返されます。
  • FASTER - サンプルサイズを小さくすることにより、 高速なレスポンスが返されます。
  • HIGHER_PRECISION - サンプルサイズを大きく することにより、より正確なレスポンスが返されますが、 レスポンス速度が低下する可能性があります。
include-empty-rows boolean × デフォルトは true です。false に設定すると、すべての指標値がゼロの行はレスポンスから除外されます。
start-index integer × 取得するデータの最初の行。1 から始まります。このパラメータは、max-results パラメータとともにページ設定メカニズムとして使用します。
max-results integer × レスポンスに含める行の最大数。
output string × レスポンスで返されるアナリティクス データの出力タイプ。指定できる値は jsondataTable です。デフォルト: json
fields string × レスポンスに含めるフィールドのサブセットを指定するセレクタ。
prettyPrint string × インデントと改行を含むレスポンスを返します。デフォルトは false です。
userIp string × API 呼び出しを行うエンドユーザーの IP アドレスを指定します。IP あたりの使用量の上限を設定するために使用します。
quotaUser string × ユーザーの IP アドレスが不明な場合に userIp の代わりに使用します。
access_token string × OAuth 2.0 トークンの送信に使用できる方法の 1 つ。
callback string × レスポンスを処理する JavaScript コールバック関数の名前。 JavaScript JSON-P リクエストで使用します。
key string × アプリケーションを指定して割り当て量を取得するために OAuth 1.0a の承認で使用します。例: key=AldefliuhSFADSfasdfasdfASdf

クエリ パラメータの詳細

ids

ids=ga:12345
必須。
アナリティクス データの取得に使用される一意の ID。この ID は、名前空間 ga: とアナリティクスのビュー(プロファイル)ID を連結したものです。ビュー ID を取得するには、analytics.management.profiles.list メソッドを使用します。このメソッドは、Google アナリティクス Management API のビュー(プロファイル)リソースの id を提供します。

start-date

start-date=2009-04-20
必須。
すべてのアナリティクス データ リクエストで期間を指定する必要があります。リクエストに start-date パラメータと end-date パラメータが含まれていないと、サーバーからエラーが返されます。特定の日付の値は YYYY-MM-DD のパターンを使用するか、todayyesterdayNdaysAgo のパターンを使用して相対的に示すことができます。値は [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo) と一致する必要があります。
有効な start-date は最も早いため 2005-01-01 です。開始日に上限はありません。
相対日付は常にクエリ実行時の現在の日付を基準とし、クエリで指定されたビュー(旧プロファイル)のタイムゾーンに基づきます。

相対的な日付を使用して(昨日を基準に)過去 7 日間の期間を指定する例を 次に示します。

  &start-date=7daysAgo
  &end-date=yesterday

end-date

end-date=2009-05-20
必須。
すべてのアナリティクス データ リクエストで期間を指定する必要があります。リクエストに start-date パラメータと end-date パラメータが含まれていないと、サーバーからエラーが返されます。特定の日付の値は YYYY-MM-DD のパターンを使用するか、todayyesterdayNdaysAgo のパターンを使用して相対的に示すことができます。値は [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo) と一致する必要があります。
有効な end-date が最も古いのは 2005-01-01 です。end-date に上限はありません。
相対日付は常にクエリ実行時の現在の日付を基準とし、クエリで指定されたビュー(旧プロファイル)のタイムゾーンに基づきます。

相対的な日付を使用して(今日を基準に)過去 10 日間の期間を指定する例を 次に示します。

  &start-date=9daysAgo
  &end-date=today

dimensions

dimensions=ga:browser,ga:city
省略可。
dimensions パラメータは、一般的な基準(ga:browserga:city など)別に指標を分類します。サイトのページビュー数の合計を求めることもできますが、ブラウザごとのページビュー数を求める方が興味深いこともあります。この場合は、Firefox、Internet Explorer、Chrome などからのページビュー数を確認できます。

データ リクエストで dimensions を使用する場合は、次の制約に注意してください。

  • クエリで指定できるディメンションは最大 7 個です。
  • ディメンションのみで構成されたクエリを送信することは できません。リクエストするディメンションと少なくとも 1 つの指標を 組み合わせる必要があります。
  • 同じクエリ内で照会できるのは特定のディメンションのみです。使用できる ディメンションの組み合わせを、 ディメンションと指標のリファレンスにある有効な組み合わせ ツールで確認してください。


metrics

metrics=ga:sessions,ga:bounces
必須。
クリック数やページビュー数など、サイトに対するユーザー アクションに関する集計データです。 クエリに dimensions パラメータがない場合、返される指標は、全体のページビュー数や合計直帰数など、リクエストされた期間の集計値を示します。ただし、ディメンションを リクエストした場合、値はディメンション値ごとにセグメント化 されます。たとえば、ga:countryga:pageviews がリクエストされると、国ごとの合計ページビュー数が返されます。指標をリクエストする場合は、次の点に注意してください。
  • どのリクエストでも少なくとも 1 つの指標を指定する必要があります。ディメンションのみで リクエストを構成することはできません。
  • クエリには指標を 10 個まで指定できます。
  • ディメンションを指定していない限り、複数のカテゴリのほとんどの指標を 組み合わせて使用することができます。
  • 指標は他のディメンションや指標と組み合わせて使用できますが、その指標に有効な組み合わせが当てはまる場合に限ります。詳しくは、ディメンションと指標のリファレンスをご覧ください。


sort

sort=ga:country,ga:browser
省略可。

取得するデータの並べ替え順序と方向を示す指標とディメンションのリストです。

  • 並べ替え順序は、リストされた指標とディメンションの左から右への順序によって指定されます。
  • デフォルトの並べ替え方向directionは昇順ですが、リクエストしたフィールドで接頭辞としてマイナス記号(-)を使用すると、並べ替え方向を降順に変更できます。

クエリの結果を並べ替えることにより、データをさまざまな角度から見ることができます。たとえば、「最も多い国はどこか、どのブラウザが最も使用されているか」という疑問に答えるには、次のようにします。次のパラメータを使用してクエリを作成できます。ga:country で、次に ga:browser で、どちらも昇順で並べ替えます。

sort=ga:country,ga:browser

「上位のブラウザはどれで、どの国が最も多く使用しているか」という関連質問に回答するには、次のパラメータを使用してクエリを作成します。ga:browser で、次に ga:country で、昇順で並べ替えます。
sort=ga:browser,ga:country

sort パラメータを使用する場合は、次の点に注意してください。

  • dimensions パラメータまたは metrics パラメータに使用したディメンションまたは指標の値のみで並べ替えます。dimensions パラメータまたは metrics パラメータで指定されていないフィールドを基に並べ替えるようリクエストすると、エラーが返されます。
  • en-US の言語 / 地域では、デフォルトで、文字列がアルファベットの昇順で並べ替えられます。
  • 数値は、デフォルトで昇順で並べ替えられます。
  • 日付は、デフォルトで昇順で並べ替えられます。

filters

filters=ga:medium%3D%3Dreferral
省略可。

filters クエリ文字列パラメータは、リクエストから返されるデータを制限します。filters パラメータを使用するには、フィルタするディメンションまたは指標に続けてフィルタ式を指定します。たとえば、次のクエリは、ga:browser ディメンションが文字列 Firefox で始まるビュー(プロファイル)12134ga:pageviewsga:browser をリクエストします。

https://www.googleapis.com/analytics/v3/data/ga
?ids=ga:12134
&dimensions=ga:browser
&metrics=ga:pageviews
&filters=ga:browser%3D~%5EFirefox
&start-date=2007-01-01
&end-date=2007-12-31

フィルタを適用したクエリでは、結果に含める(または含めない)行が制限されます。結果の各行はフィルタに対してテストされます。フィルタが一致すると行が維持され、一致しないと行が削除されます。

  • URL エンコード: Google API クライアント ライブラリによってフィルタ演算子が自動的にエンコードされます。
  • ディメンションのフィルタ: フィルタはディメンションの集計前に行われるため、返される指標は該当するディメンションのみの合計を表します。上記の例では、ブラウザが Firefox のページビュー数のみが返されます。
  • 指標のフィルタ: 指標のフィルタは、指標の集計に行われます。
  • 有効な組み合わせ: リクエスト内のすべてのディメンションまたは指標とフィルタが有効な組み合わせであれば、クエリに含まれないディメンションまたは指標をフィルタできます。たとえば、特定のブラウザでフィルタを適用した日付付きのページビュー リストをクエリすることができます。詳しくは、ディメンションと指標のリファレンスをご覧ください。

フィルタ構文


1 つのフィルタには次の形式を使用します。

ga:name operator expression

この構文の説明は次のとおりです。

  • name - フィルタを適用するディメンションまたは指標の名前です。たとえば、ga:pageviews はページビュー数の指標でフィルタします。
  • operator - 使用するフィルタの一致タイプを定義します。演算子はディメンションまたは指標に固有です。
  • expression - 結果に含める値または結果から除外する値を記述します。式には正規表現構文を使用します。

フィルタ演算子


ディメンション用と指標用にそれぞれ 6 つのフィルタ演算子があります。演算子を URL クエリ文字列に含めるには URL エンコードする必要があります。

ヒント: URL エンコードが必要なフィルタを設計するには、Data Feed Query Explorer を使用します。Query Explorer は、文字列と空白を含む URL を自動的にエンコードします。

指標フィルタ
演算子 説明 URL エンコード形式
== 等価 %3D%3D ページ閲覧時間がちょうど 10 秒である結果を返します。
filters=ga:timeOnPage%3D%3D10
!= 次と等しくない !%3D ページの閲覧時間が 10 秒以外である結果を返します。
filters=ga:timeOnPage!%3D10
> 次より大きい %3E ページの閲覧時間が 10 秒を超える結果を返します。
filters=ga:timeOnPage%3E10
< 次より小さい %3C ページの閲覧時間が厳密に 10 秒未満の結果を返します。
filters=ga:timeOnPage%3C10
>= 以上 %3E%3D ページ閲覧時間が 10 秒以上である結果を返します。
filters=ga:timeOnPage%3E%3D10
<= 以下 %3C%3D ページの閲覧時間が 10 秒以下の結果を返します。
filters=ga:timeOnPage%3C%3D10

ディメンション フィルタ
演算子 説明 URL エンコード形式
== 完全一致 %3D%3D 都市が Irvine である指標を集計します。
filters=ga:city%3D%3DIrvine
!= 一致しません !%3D 都市がアーバイン以外の指標を集計します。
filters=ga:city!%3DIrvine
=@ 文字列の一部に一致 %3D@ 都市に York が含まれる指標を集計します。
filters=ga:city%3D@York
!@ 文字列の一部に一致しない !@ 都市に York が含まれていない指標を集計します。
filters=ga:city!@York
=~ 正規表現の一致を含む %3D~ 都市が New で始まる指標を集計する場合:
filters=ga:city%3D~%5ENew.*
(%5E は、パターンを文字列の先頭に固定する ^ 文字からエンコードされた URL です。)
!~ 次の正規表現に一致する場合を除く !~ 都市が New から始まらない指標を集計します。
filters=ga:city!~%5ENew.*

フィルタ式

フィルタ式にはいくつか重要な規則があります。

  • URL 予約文字 - & などの文字は、通常の方法で URL エンコードする必要があります。
  • 予約文字 - セミコロンとカンマを式に含める場合は、バックスラッシュでエスケープする必要があります。
    • セミコロン \;
    • カンマ \,
  • 正規表現 - =~ 演算子と !~ 演算子を使用して、フィルタ式で正規表現を使用することもできます。これらの構文は Perl 正規表現と類似しており、次のルールが追加されています。
    • 最大文字数: 128 文字 - 正規表現が 128 文字を超えると、サーバーから 400 Bad Request ステータス コードが返されます。
    • 大文字と小文字の区別 - 正規表現一致では大文字と小文字は区別されません。

フィルタの組み合わせ

フィルタはブール論理演算の ORAND を使用して組み合わせることができます。これにより、 フィルタ式の 128 文字の制限を事実上拡張できます。

OR

OR 演算子はカンマ(,)を使用して定義します。演算子は AND 演算子より優先され、同じ式内でディメンションと指標を組み合わせるためには使用できません。

例: (いずれも URL エンコードする必要があります)

国が米国またはカナダのいずれか:
ga:country==United%20States,ga:country==Canada

Windows または Macintosh オペレーティング システムの Firefox ユーザー:
ga:browser==Firefox;ga:operatingSystem==Windows,ga:operatingSystem==Macintosh

AND

AND 演算子は、セミコロン(;)を使用して定義します。その前に OR 演算子が付き、同じ式でディメンションと指標を組み合わせることができます。

例: (いずれも URL エンコードする必要があります)

国が米国で、かつブラウザが Firefox の場合:
ga:country==United%20States;ga:browser==Firefox

国が米国であり、かつ言語が「en」で始まっていない:
ga:country==United%20States;ga:language!~^en.*

オペレーティング システムが Windows または Macintosh であり、かつブラウザが Firefox または Chrome:
ga:operatingSystem==Windows,ga:operatingSystem==Macintosh;ga:browser==Firefox,ga:browser==Chrome

国が米国で、かつ(AND)セッション数が 5 以上の場合:
ga:country==United%20States;ga:sessions>5



分割

segment=gaid::-10
segment=sessions::condition::ga:medium%3D%3Dreferral
segment=users::condition::ga:browser%3D%3DChrome
省略可。

Core Reporting API でセグメントをリクエストする方法の詳細については、セグメントのデベロッパー ガイドをご覧ください。

セグメントの概念については、セグメント - 機能のリファレンスおよびヘルプセンターのセグメントをご覧ください。

セグメントで使用できるディメンションと指標
すべてのディメンションと指標をセグメントで使用できるわけではありません。セグメントで使用できるディメンションと指標を確認するには、 ディメンションと指標のリファレンスをご覧ください。


samplingLevel

samplingLevel=DEFAULT
省略可。
このパラメータを使用して、レポートクエリのサンプリング レベル(結果の計算に使用されるセッション数)を設定します。指定できる値は、ウェブ インターフェースと一致し、以下を含みます。
  • DEFAULT - 速度と精度のバランスがとれたサンプルサイズでレスポンスが返されます。
  • FASTER - サンプルサイズを小さくすることにより、高速なレスポンスが返されます。
  • HIGHER_PRECISION - サンプルサイズを大きくすることにより、より正確なレスポンスが返されますが、レスポンス速度が低下する可能性があります。
指定しない場合、DEFAULT のサンプリング レベルが使用されます。
クエリに使用されたセッションの割合を計算する方法の詳細については、サンプリングのセクションをご覧ください。

include-empty-rows

include-empty-rows=true
省略可。
デフォルトは true です。false に設定すると、すべての指標値がゼロの行はレスポンスから除外されます。たとえば、クエリに 複数の指標を含めた場合、すべての指標値がゼロの場合 にのみ行が削除されます。これは、有効な行数が想定されるディメンション値の数よりもはるかに少ないことが予想されるリクエストを行う場合に便利です。

start-index

start-index=10
省略可。
指定しない場合、開始インデックスは 1 です。結果の インデックスは 1 から始まります。つまり、最初の行は 0 行ではなく 1 行です)。totalResults が 10,000 を超え、10,001 以降のインデックスが付けられた行を取得する必要がある場合は、このパラメータを max-results パラメータとともにページ設定メカニズムとして使用します。

max-results

max-results=100
省略可。
このレスポンスに含める最大行数。このパラメータを start-index と組み合わせて使用すると、要素のサブセットを取得できます。また、このフィールドを単独で使用して、最初の要素から返される要素の数を制限することもできます。max-results が指定されていない場合、クエリはデフォルトの最大 1, 000 行を返します。
Analytics Core Reporting API は、リクエストの数に関係なく、1 回のリクエストで最大 10,000 行を返します。ディメンション セグメントの数が予想より少ない場合、リクエストしたよりも少ない行数が返されます。たとえば、ga:country に指定できる値は 300 個未満であるため、国のみでセグメント化した場合、max-results により大きな値を設定しても、取得できる行数は 300 行までです。

出力

output=dataTable
省略可。
このパラメータを使用して、レスポンスで返されるアナリティクス データの出力タイプを設定します。指定できる値は次のとおりです。
  • json - JSON オブジェクトを含むデフォルトの rows プロパティをレスポンスに出力します。
  • dataTable - Data Table オブジェクトを含む dataTable プロパティをレスポンスで出力します。この Data Table オブジェクトは、Google グラフのビジュアリゼーションで直接使用できます。
指定しない場合、デフォルトの JSON レスポンスが使用されます。

fields

fields=rows,columnHeaders(name,dataType)
省略可。

部分レスポンスで返すフィールドを指定します。API レスポンスでフィールドのサブセットのみを使用する場合は、fields パラメータを使用して、含めるフィールドを指定できます。

fields リクエスト パラメータ値の形式はほぼ XPath の構文に基づいています。サポートされる構文の概要を次に示します。

  • 複数のフィールドを選択するには、カンマ区切りのリストを使用します。
  • フィールド a 内にネストされているフィールド b を選択するには a/b を使用し、フィールド b 内にネストされているフィールド c を選択するには a/b/c を使用します。
  • 配列またはオブジェクトの特定のサブフィールド セットをリクエストするには、式をかっこ "( )" で囲んでサブセレクタを使用します。
    たとえば、fields=columnHeaders(name,dataType) は、columnHeaders 配列の name フィールドと dataType フィールドのみを返します。サブフィールドを 1 つ指定することもできます。ここで、fields=columnHeader(name)fields=columnHeader/name と同等です。

prettyPrint

prettyPrint=false
省略可。

true の場合、人が読める形式でレスポンスを返します。デフォルト値: false


quotaUser

quotaUser=4kh4r2h4
省略可。

ユーザーの IP アドレスが不明な場合でも、サーバーサイド アプリケーションからユーザー 1 人あたりの割り当て量を適用できます。これはたとえば、アプリケーションがユーザーに代わって App Engine で cron ジョブを実行する場合に使用します。ユーザーを一意に識別する任意の文字列を選択できますが、上限は 40 文字です。

両方が指定されている場合、これは userIp をオーバーライドします。


レスポンス

正常終了すると、このリクエストは、次のように定義される JSON 構造を持つレスポンスの本文を返します。output パラメータが dataTable に設定されている場合、リクエストは、以下に定義する JSON(データテーブル)構造を持つレスポンスの本文を返します。

: 「結果」という用語は、クエリに一致する行セット全体を表します。「レスポンス」という用語は、結果の現在のページで返される行のセットを表します。itemsPerPage で説明されているように、結果の合計数が現在のレスポンスのページサイズより大きい場合、これらの結果は異なる可能性があります。

JSON
{
  "kind": "analytics#gaData",
  "id": string,
  "selfLink": string,
  "containsSampledData": boolean,
  "query": {
    "start-date": string,
    "end-date": string,
    "ids": string,
    "dimensions": [
      string
    ],
    "metrics": [
      string
    ],
    "include-empty-rows": boolean
    "samplingLevel": string,
    "sort": [
      string
    ],
    "filters": string,
    "segment": string,
    "start-index": integer,
    "max-results": integer
  },
  "itemsPerPage": integer,
  "totalResults": integer,
  "previousLink": string,
  "nextLink": string,
  "profileInfo": {
    "profileId": string,
    "accountId": string,
    "webPropertyId": string,
    "internalWebPropertyId": string,
    "profileName": string,
    "tableId": string
  },
  "columnHeaders": [
    {
      "name": string,
      "columnType": string,
      "dataType": string
    }
  ],
  "rows": [
    [
      string
    ]
  ],
  "sampleSize": string,
  "sampleSpace": string,
  "totalsForAllResults": [
    {
      metricName: string,
      ...
    }
  ]
}

レスポンスのフィールド

レスポンス本文の構造のプロパティは次のように定義されています。

プロパティ名 説明
kind string リソースのタイプ。値は "analytics#gaData" です。
id string このデータ レスポンスの ID。
query object このオブジェクトは、パラメータとしてクエリに渡されるすべての値を格納します。各フィールドの意味については、対応するクエリ パラメータの説明をご覧ください。
query.start-date string 開始日。
query.end-date string 終了日。
query.ids string 固有の表 ID。
query.dimensions[] list アナリティクス ディメンションのリスト。
query.metrics[] list アナリティクス指標のリスト。
query.samplingLevel string Requested sampling level.
query.include-empty-rows boolean デフォルト値は true です。false に設定すると、すべての指標値が ゼロの行はレスポンスから除外されます。
query.sort[] list データの並べ替えに使用する指標またはディメンションのリスト。
query.filters string 指標フィルタまたはディメンション フィルタのカンマ区切りリスト。
query.segment string アナリティクス セグメント。
query.start-index integer 開始インデックス。
query.max-results integer ページあたりの結果の最大数。
startIndex integer start-index クエリ パラメータで指定された行の開始インデックス。デフォルト値は 1 です。
itemsPerPage integer レスポンスに含めることができる最大行数(実際に返される行数に関係なく)。max-results クエリ パラメータが指定されている場合、itemsPerPage の値は max-results と 10,000 のどちらか小さい方になります。itemsPerPage のデフォルト値は 1,000 です。
totalResults integer レスポンスで返された行数に関係なく、クエリ結果の合計行数。クエリの行数が大量になる場合、totalResultsitemsPerPage より大きくなることがあります。大規模なクエリの totalResultsitemsPerPage の詳細については、ページングをご覧ください。
startDate string start-date パラメータで指定されたデータクエリの開始日。
endDate string end-date パラメータで指定されたデータクエリの終了日。
profileInfo object データがリクエストされたビューに関する情報。ビューデータは、Google アナリティクス Management API を使用して入手できます。
profileInfo.profileId string ビュー ID (1174 など)。
profileInfo.accountId string このビュー(旧プロファイル)が属しているアカウント ID (30481 など)。
profileInfo.webPropertyId string このビュー(旧プロファイル)が属するウェブ プロパティの ID(UA-30481-1 など)。
profileInfo.internalWebPropertyId string このビュー(旧プロファイル)が属するウェブ プロパティの内部 ID(UA-30481-1 など)。
profileInfo.profileName string ビュー(旧プロファイル)の名前。
profileInfo.tableId string ビューの表 ID。"ga:" の後にビュー ID を続ける形で構成されます。
containsSampledData boolean レスポンスにサンプルデータが含まれる場合は True。
sampleSize string サンプルデータの計算に使用されたサンプルの数。
sampleSpace string 合計サンプリング スペース サイズ。これは、サンプルが選択された使用可能なサンプル スペース サイズの合計を示します。
columnHeaders[] list 列ヘッダー。ディメンション名に続けて指標名が一覧表示されます。ディメンションと指標の順序は、リクエストの metrics パラメータと dimensions パラメータで指定する順序と同じです。ヘッダーの数は、ディメンションの数と指標の数を合計した数になります。
columnHeaders[].name string ディメンションまたは指標の名前。
columnHeaders[].columnType string 列のタイプ。値は "DIMENSION" か "METRIC" です。
columnHeaders[].dataType string データタイプ。ディメンションの列ヘッダーのデータタイプは、STRING のみです。指標の列ヘッダーには、INTEGERPERCENTTIMECURRENCYFLOAT など、指標の値に対応するデータ型があります。考えられるすべてのデータ型については、メタデータ API レスポンスをご覧ください。
totalsForAllResults object 指標の名前と値の Key-Value ペアとしての、リクエストした指標の合計値。指標の合計が表示される順序は、リクエストで指定された指標の順序と同じです。
rows[] list アナリティクスのデータ行。各行にはディメンション値とそれに続いて指標値が記載されたリストが含まれます。ディメンションと指標の順序は、リクエストで指定されているものと同じです。各行には N 個のフィールドのリストがあります。ここで、N はディメンションの数 + 指標の数です。
JSON(データテーブル)
{
  "kind": "analytics#gaData",
  "id": string,
  "selfLink": string,
  "containsSampledData": boolean,
  "query": {
    "start-date": string,
    "end-date": string,
    "ids": string,
    "dimensions": [
      string
    ],
    "metrics": [
      string
    ],
    "samplingLevel": string,
    "include-empty-rows": boolean,
    "sort": [
      string
    ],
    "filters": string,
    "segment": string,
    "start-index": integer,
    "max-results": integer
  },
  "itemsPerPage": integer,
  "totalResults": integer,
  "previousLink": string,
  "nextLink": string,
  "profileInfo": {
    "profileId": string,
    "accountId": string,
    "webPropertyId": string,
    "internalWebPropertyId": string,
    "profileName": string,
    "tableId": string
  },
  "columnHeaders": [
    {
      "name": string,
      "columnType": string,
      "dataType": string
    }
  ],
  "dataTable": {
    "cols": [
      {
        "id": string,
        "label": string,
        "type": string
      }
    ],
    "rows": [
      {
        "c": [
          {    
            "v": string
          }
        ]
      }   
    ]
  },
  "sampleSize": string,
  "sampleSpace": string,
  "totalsForAllResults": [
    {
      metricName: string,
      ...
    }
  ]
}

レスポンスのフィールド

レスポンス本文の構造のプロパティは次のように定義されています。

プロパティ名 説明
kind string リソースのタイプ。値は "analytics#gaData" です。
id string このデータ レスポンスの ID。
query object このオブジェクトは、パラメータとしてクエリに渡されるすべての値を格納します。各フィールドの意味については、対応するクエリ パラメータの説明をご覧ください。
query.start-date string 開始日。
query.end-date string 終了日。
query.ids string 固有の表 ID。
query.dimensions[] list アナリティクス ディメンションのリスト。
query.metrics[] list アナリティクス指標のリスト。
query.samplingLevel string Requested sampling level.
query.include-empty-rows boolean デフォルト値は true です。false に設定すると、すべての指標値が ゼロの行はレスポンスから除外されます。
query.sort[] list データの並べ替えに使用する指標またはディメンションのリスト。
query.filters string 指標フィルタまたはディメンション フィルタのカンマ区切りリスト。
query.segment string アナリティクス セグメント。
query.start-index integer 開始インデックス。
query.max-results integer ページあたりの結果の最大数。
startIndex integer start-index クエリ パラメータで指定された行の開始インデックス。デフォルト値は 1 です。
itemsPerPage integer レスポンスに含めることができる最大行数(実際に返される行数に関係なく)。max-results クエリ パラメータが指定されている場合、itemsPerPage の値は max-results と 10,000 のどちらか小さい方になります。itemsPerPage のデフォルト値は 1,000 です。
totalResults integer レスポンスで返された行数に関係なく、クエリ結果の合計行数。クエリの行数が大量になる場合、totalResultsitemsPerPage より大きくなることがあります。大規模なクエリの totalResultsitemsPerPage の詳細については、ページングをご覧ください。
startDate string start-date パラメータで指定されたデータクエリの開始日。
endDate string end-date パラメータで指定されたデータクエリの終了日。
profileInfo object データがリクエストされたビューに関する情報。ビューデータは、Google アナリティクス Management API を使用して入手できます。
profileInfo.profileId string ビュー ID (1174 など)。
profileInfo.accountId string このビュー(旧プロファイル)が属しているアカウント ID (30481 など)。
profileInfo.webPropertyId string このビュー(旧プロファイル)が属するウェブ プロパティの ID(UA-30481-1 など)。
profileInfo.internalWebPropertyId string このビュー(旧プロファイル)が属するウェブ プロパティの内部 ID(UA-30481-1 など)。
profileInfo.profileName string ビュー(旧プロファイル)の名前。
profileInfo.tableId string ビューの表 ID。"ga:" の後にビュー ID を続ける形で構成されます。
containsSampledData boolean レスポンスにサンプルデータが含まれる場合は True。
sampleSize string サンプルデータの計算に使用されたサンプルの数。
sampleSpace string 合計サンプリング スペース サイズ。これは、サンプルが選択された使用可能なサンプル スペース サイズの合計を示します。
columnHeaders[] list 列ヘッダー。ディメンション名に続けて指標名が一覧表示されます。ディメンションと指標の順序は、リクエストの metrics パラメータと dimensions パラメータで指定する順序と同じです。ヘッダーの数は、ディメンションの数と指標の数を合計した数になります。
columnHeaders[].name string ディメンションまたは指標の名前。
columnHeaders[].columnType string 列のタイプ。値は "DIMENSION" か "METRIC" です。
columnHeaders[].dataType string データタイプ。ディメンションの列ヘッダーのデータタイプは、STRING のみです。指標の列ヘッダーには、INTEGERPERCENTTIMECURRENCYFLOAT など、指標の値に対応するデータ型があります。考えられるすべてのデータ型については、メタデータ API レスポンスをご覧ください。
totalsForAllResults object 指標の名前と値の Key-Value ペアとしての、リクエストした指標の合計値。指標の合計が表示される順序は、リクエストで指定された指標の順序と同じです。
dataTable object Google グラフ で使用できる Data Table オブジェクト。
dataTable.cols[] list ディメンションとそれに続く指標の列記述子のリスト。ディメンションと指標の順序は、リクエストの metrics パラメータと dimensions パラメータで指定する順序と同じです。列の数は、ディメンションの数と指標の数を合計した数になります。
dataTable.cols[].id string ID。(列インデックスを使用する代わりに)特定の列を参照するために使用できます。ディメンション ID または指標 ID を使用してこの値を設定します。
dataTable.cols[].label string 列のラベル(ビジュアリゼーションによって表示される場合があります)。この値を設定するために、ディメンションまたは指標の ID が使用されます。
dataTable.cols[].type string この列のデータタイプ。
dataTable.rows[] list データ表形式のアナリティクスのデータ行。各行は、ディメンションとそれに続いて指標のセル値のリストを含むオブジェクトです。ディメンションと指標の順序は、リクエストで指定された順序と同じです。各セルには N 個のフィールドのリストが含まれます。ここで、N はディメンションの数 + 指標の数です。

エラーコード

Core Reporting API は、リクエストが正常に処理されると 200 HTTP ステータス コードを返します。クエリの処理中にエラーが発生すると、API からエラーコードと説明が返されます。Analytics API を使用するアプリケーションごとに、適切なエラー処理ロジックを実装する必要があります。エラーコードとその処理方法について詳しくは、 エラー レスポンス リファレンス ガイドをご覧ください。

試してみる

Core Reporting API に対するクエリを試すことができます。

  • クエリ内の指標とディメンションの有効な組み合わせを確認するには、Query Explorer でパラメータにサンプル値を入力します。サンプルクエリの結果は、指定したすべての指標とディメンションの値を含む表として表示されます。

  • ライブデータに対してリクエストを行い、JSON 形式でレスポンスを表示するには、Google Data APIs Exploreranalytics.data.ga.get メソッドを試してください。

サンプリング

Google アナリティクスでは、ディメンションと指標の特定の組み合わせがその場で計算されます。妥当な時間内にデータを返すために、Google アナリティクスではデータのサンプルのみを処理する場合があります。

samplingLevel パラメータを設定すると、リクエストに使用するサンプリング レベルを指定できます。

Core Reporting API のレスポンスにサンプリング データが含まれている場合、containsSampledData レスポンス フィールドは true になります。また、sampleSizesampleSpace の 2 つのプロパティによって、クエリのサンプリング レベルに関する情報が提供されます。この 2 つの値を使用して、クエリで使用されたセッションの割合を計算できます。たとえば、sampleSize201,000 で、sampleSpace220,000 の場合、レポートは(201,000 ÷ 220,000)× 100 = セッション数 91.36% に基づきます。

サンプリングの一般的な説明と Google アナリティクスでの使用方法については、サンプリングをご覧ください。


大量のデータ結果の処理

クエリで大きな結果セットが返されると予想される場合は、以下のガイドラインに従って、API クエリを最適化し、エラーを回避して、割り当ての超過を最小限に抑えることができます。なお、1 つの API リクエストで最大 7 個のディメンションと 10 個の指標を許可することで、パフォーマンスのベースラインを設定しています。多数の指標とディメンションを指定するクエリの中には、他のクエリよりも処理に時間がかかる場合がありますが、リクエストする指標の数を制限するだけではクエリのパフォーマンスを改善できないことがあります。代わりに、次の方法を使用すると、最適なパフォーマンスを得ることができます。

クエリあたりのディメンション数の削減

この API では、1 つのリクエストで最大 7 つのディメンションを指定できます。多くの場合、Google アナリティクスでは、このような複雑なクエリの結果をオンザフライで計算する必要があります。これには特に、結果の行数が多い場合に時間がかかることがあります。たとえば、都市や時間ごとのキーワードを検索すると、数百万行のデータに一致する場合があります。クエリのディメンションの数を制限して Google アナリティクスで処理する必要がある行数を減らすことにより、クエリの性能を改善することができます。

期間によるクエリの分割

1 つの長い期間の日付付きの結果を改ページする代わりに、1 週間または 1 日ごとにクエリを分けることを検討してください。もちろん、大規模なデータセットの場合、1 日のデータに対するリクエストでも max-results を超える数が返されることがあり、その場合はページングを回避できます。ただし、いずれにせよ、クエリに一致する行数が max-results より大きい場合、期間を分割すると、結果を取得する合計時間が短くなる可能性があります。この方法により、単一スレッドのクエリと並列クエリの両方においてクエリの性能を改善することができます。

改ページ

結果を改ページすることで、大量の結果を管理しやすいセグメントに分割することができます。totalResults フィールドは、一致する行の数を示します。itemsPerPage は、結果で返される最大行数を示します。itemsPerPage に対する totalResults の比率が高い場合は、個々のクエリに必要以上に時間がかかっている可能性があります。表示目的などで、必要な行数が限られている場合は、max-results パラメータを使用してレスポンス サイズに明示的な制限を設定すると便利です。ただし、アプリケーションで大きな結果セット全体を処理する必要がある場合は、許可された最大行数をリクエストする方が効率的です。

gzip の使用

gzip 圧縮を有効にすると、各リクエストが消費する帯域幅を手早く低減できます。これには、結果を圧縮解除するために追加の CPU 時間が必要ですが、ネットワークのコストを大きく削減できます。gzip でエンコードされたレスポンスを受け取るには、Accept-Encoding ヘッダーを設定し、ユーザー エージェントを変更して文字列 gzip を含める必要があります。gzip 圧縮を有効にするための正しい形式の HTTP ヘッダーの例を次に示します。

Accept-Encoding: gzip
User-Agent: my program (gzip)