このドキュメントでは、Multi-Channel Funnels Reporting API のすべてのクエリとレスポンスについて説明します。
はじめに
Multi-Channel Funnels Reporting API を使用すると、Google アナリティクスのマルチチャネル レポート データをリクエストできます。すべてのレポートは、トラッキング コードからアナリティクスに送信されるデータから派生する統計情報で構成され、ディメンションや指標として整理されます。ディメンションと指標を独自に組み合わせることで、Reporting API を使用して、お客様の仕様に合わせてカスタマイズされたレポートを作成できます。
この API には、レポートデータをリクエストする report.get という 1 つのメソッドが含まれています。このメソッドを使用して、データを取得するビュー(プロファイル)に対応する表 ID を指定します。さらに、次の項目を指定します。
- ディメンションと指標の組み合わせ。
- 期間。
- 取得するデータを制御する一連のオプション パラメータ。
この API により、report.get メソッドは REST エンドポイント(https://www.googleapis.com/analytics/v3/data/mcf)で利用できます。次のセクションでは、サンプル リクエストを示し、それぞれのパラメータについて説明します。
リクエスト
この API には、データをリクエストするためのメソッドが 1 つ用意されています。
analytics.data.mcf.get()
この API は、REST エンドポイントとしてクエリすることもできます。
Authorization: Bearer {oauth2-token} GET https://www.googleapis.com/analytics/v3/data/mcf ?ids=ga:12345 &metrics=mcf:totalConversions,mcf:totalConversionValue &start-date=2011-10-01 &end-date=2011-10-31
各 URL クエリ パラメータは、API クエリ パラメータを指定します。API クエリ パラメータは、URL エンコードされている必要があります。
Multi-Channel Funnels Reporting API に対するすべてのリクエストは、(できれば OAuth 2.0 を使用して)承認する必要があります。
クエリ パラメータの概要
次の表に、Multi-Channel Funnels Reporting API で使用できるすべてのクエリ パラメータを示します。パラメータ名をクリックすると、詳細な説明に移動します。
名前 | 値 | 必須 | 概要 |
---|---|---|---|
ids |
string |
はい | ga:XXXX 形式の固有の表 ID。XXXX は、クエリでデータを取得するアナリティクス ビュー ID(旧プロファイル ID)です。 |
start-date |
string |
はい | アナリティクス データの取得を開始する日付。開始日には、YYYY-MM-DD 形式の日付を指定することも、today 、yesterday 、NdaysAgo (N は正の整数)などの相対的な日付を指定することもできます。
|
end-date |
string |
はい |
アナリティクス データの取得を終了する日付。 終了日には、YYYY-MM-DD 形式の日付を指定することも、today 、yesterday 、NdaysAgo (N は正の整数)などの相対的な日付を指定することもできます。
|
metrics |
string |
はい | mcf:totalConversions,mcf:totalConversionValue など、カンマ区切りの指標のリスト。指標を少なくとも 1 つ指定する必要があります。 |
dimensions |
string |
いいえ | mcf:source,mcf:keyword など、マルチチャネル レポートのカンマ区切りのディメンションのリスト。 |
sort |
string |
いいえ | 取得するデータの並べ替え順序と方向を示す、カンマ区切りのディメンションと指標のリスト。 |
filters |
string |
いいえ | リクエストに対して返されるデータを制限するディメンションまたは指標フィルタ。 |
samplingLevel |
string |
いいえ | 希望するサンプリング レベル。利用可能な値を次に示します。
|
start-index |
integer |
いいえ | 取得するデータの最初の行。1 から始まります。このパラメータは、max-results パラメータとともに改ページ メカニズムとして使用します。 |
max-results |
integer |
いいえ | レスポンスに含める行の最大数。 |
クエリ パラメータの詳細
ids
ids=ga:12345
ga:
にレポートのビュー ID を連結したものです。レポートのビュー ID は、analytics.management.profiles.list
メソッドを使用して取得できます。これにより、Google アナリティクス Management API のビューリソースの id
が提供されます。start-date
start-date=2011-10-01
start-date
パラメータと end-date
パラメータをリクエストに含めない場合、サーバーからエラーが返されます。日付値は、YYYY-MM-DD
パターンを使用して特定の日付を表すことも、today
、yesterday
、NdaysAgo
パターンを使用して相対的な日付を表すこともできます。値は [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo)
と一致する必要があります。
start-date
は 2011-01-01
以降です。start-date
に上限はありません。相対的な日付を使用して(昨日を基準に)過去 7 日間の期間を指定する例を 次に示します。
&start-date=7daysAgo &end-date=yesterday
end-date
end-date=2011-10-31
start-date
パラメータと end-date
パラメータをリクエストに含めない場合、サーバーからエラーが返されます。日付値は、YYYY-MM-DD
パターンを使用して特定の日付を表すことも、today
、yesterday
、NdaysAgo
パターンを使用して相対的な日付を表すこともできます。値は [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=mcf:source,mcf:keyword
dimensions パラメータは、マルチチャネル レポートのプライマリ データ キー(mcf:source
や mcf:medium
など)を定義します。dimensions を使用して、コンバージョン指標をセグメント化します。たとえば、サイトへのコンバージョンの総数をリクエストすることもできますが、メディアごとにセグメント化されたコンバージョンの数をリクエストすることで、より興味深いデータを得ることができます。この場合には、オーガニック、参照元、メールなどからのコンバージョン数を確認できます。
dimensions
をデータ リクエストで使用する場合は、次の制限に注意してください。
- クエリで指定できるディメンションは最大 7 個です。
- ディメンションのみで構成されたクエリを送信することはできません。リクエストするディメンションと少なくとも 1 つの指標を組み合わせる必要があります。
使用できない値
ディメンションの値を判別できない場合、特殊な文字列「(not set)」が使用されます。
metrics
metrics=mcf:totalConversions,mcf:totalConversionValue
合計コンバージョン数や総コンバージョン値など、サイトでのユーザー行動を集計した統計情報です。クエリに dimensions
パラメータを指定しない場合、返される指標は、リクエストされた期間の集計値を示します(たとえば、全体の合計コンバージョン値)。ただし、ディメンションをリクエストした場合、値はディメンション値ごとにセグメント化されます。たとえば、mcf:source
でリクエストされた mcf:totalConversions
により、ソースあたりの合計コンバージョンが返されます。
指標をリクエストする場合は、次の点に注意してください。
- どのリクエストでも少なくとも 1 つの指標を指定する必要があります。ディメンションのみでリクエストを構成することはできません。
- クエリには指標を 10 個まで指定できます。
sort
sort=mcf:source,mcf:medium
取得するデータの並べ替え順序と方向を示す指標とディメンションのリストです。
- 並べ替え順序は、指標とディメンションを指定した順(左から右)に指定されます。
- デフォルトの並べ替え方向は昇順です。リクエストしたフィールドで接頭辞としてマイナス符号(
-
)を使用すると、並べ替え方向を降順に変更できます。
クエリの結果を並べ替えることにより、データをさまざまな角度から見ることができます。たとえば、「最上位のコンバージョン ソースは何か、またそのメディアは何か」という質問に対する回答を得るために、次のパラメータを使用してクエリを作成できます。このクエリでは、mcf:source
、mcf:medium
の順に、データを昇順で並べ替えます。
sort=mcf:source,mcf:medium
さらに、「最上位のコンバージョン メディアは何か、またそのソースは何か」という同様の質問への回答を得るには、次のパラメータを使用してクエリを作成できます。このクエリでは、mcf:medium
、mcf:source
の順に、データを昇順で並べ替えます。
sort=mcf:medium,mcf:source
sort
パラメータを使用する場合は、次の点に注意してください。
- 並べ替えには、
dimensions
パラメータまたはmetrics
パラメータに使用したディメンション値または指標値のみを使用します。dimensions パラメータまたは metrics パラメータで指定されていないフィールドを基に並べ替えるようリクエストすると、エラーが返されます。 - en-US の言語 / 地域では、デフォルトで、文字列がアルファベットの昇順で並べ替えられます。
- 数値は、デフォルトで昇順で並べ替えられます。
- 日付は、デフォルトで昇順で並べ替えられます。
filters
filters=mcf:medium%3D%3Dreferral
filters
クエリ文字列パラメータは、リクエストから返されるデータを制限します。filters
パラメータを使用するには、フィルタを適用するディメンションまたは指標を指定した後、フィルタ式を指定します。たとえば、次のクエリでは、ビュー 12134
の mcf:totalConversions
と mcf:source
をリクエストします。ここで、mcf:medium
ディメンションは文字列 referral
です。
https://www.googleapis.com/analytics/v3/data/mcf ?ids=mcf:12134 &dimensions=mcf:source &metrics=mcf:totalConversions &filters=mcf:medium%3D%3Dreferral &start-date=2011-10-01 &end-date=2011-10-31
詳細については、Core Reporting API リファレンスをご覧ください。
samplingLevel
samplingLevel=DEFAULT
DEFAULT
- 速度と精度のバランスがとれたサンプルサイズでレスポンスが返されます。FASTER
- サンプルサイズを小さくすることにより、高速なレスポンスが返されます。HIGHER_PRECISION
- サンプルサイズを大きくすることにより、より正確なレスポンスが返されますが、レスポンス速度が低下する可能性があります。
DEFAULT
のサンプリング レベルが使用されます。max-results
max-results=100
このレスポンスに含める行の最大数です。このパラメータを start-index
と組み合わせて使用すると、要素のサブセットを取得できます。また、このパラメータを単独で使用すると、先頭からの行数を指定し、返される要素の数を制限できます。max-results
を指定しない場合、デフォルトで最大 1,000 行が返されます。
指定した値に関係なく、Multi-Channel Funnels Reporting API から返される行数は、リクエストにつき最大 10,000 行です。ディメンション セグメントの数が予想より少ない場合、リクエストしたよりも少ない行数が返されます。たとえば、mcf:medium
の有効な値が 300 個に満たない場合、メディアのみでセグメント化すると、max-results
に 300 より大きな値を設定しても、取得できる行数は 300 行以下です。
レスポンス
正常終了すると、このリクエストは、次のように定義される JSON 構造を持つレスポンスの本文を返します。
注: 「結果」という用語は、クエリに一致する行セット全体を表します。「レスポンス」という用語は、結果の現在のページで返される行のセットを表します。itemsPerPage の説明に示すように、結果の合計数が現在のレスポンスのページサイズを上回る場合は、結果とレスポンスが異なることがあります。
レスポンスの形式
{
"kind": "analytics#mcfData",
"id": string,
"query": {
"start-date": string,
"end-date": string,
"ids": string,
"dimensions": [
string
],
"metrics": [
string
],
"sort": [
string
],
"filters": string,
"samplingLevel": string,
"start-index": integer,
"max-results": integer
},
"itemsPerPage": integer,
"totalResults": integer,
"selfLink": string,
"previousLink": string,
"nextLink": string,
"profileInfo": {
"profileId": string,
"accountId": string,
"webPropertyId": string,
"internalWebPropertyId": string,
"profileName": string,
"tableId": string
},
"containsSampledData": boolean,
"sampleSize": string,
"sampleSpace": string,
"columnHeaders": [
{
"name": string,
"columnType": string,
"dataType": string
}
],
"totalsForAllResults": [
{
metricName: string,
...
}
]
"rows": [
[
McfData.Rows
]
],
}
レスポンスのフィールド
レスポンス本文の構造のプロパティは次のように定義されています。
プロパティ名 | 値 | 説明 |
---|---|---|
kind |
string |
リソースのタイプ。値は "analytics#mcfData" です。 |
id |
string |
このデータ レスポンスの ID。 |
query |
object |
このオブジェクトは、パラメータとしてクエリに渡されるすべての値を格納します。各フィールドの意味については、対応するクエリ パラメータの説明をご覧ください。 |
query.start-date |
string |
開始日。 |
query.end-date |
string |
終了日。 |
query.ids |
string |
固有の表 ID。 |
query.dimensions[] |
list |
アナリティクス ディメンションのリスト。 |
query.metrics[] |
list |
アナリティクス指標のリスト。 |
query.sort[] |
list |
データの並べ替えに使用する指標またはディメンションのリスト。 |
query.filters |
string |
指標フィルタまたはディメンション フィルタのカンマ区切りリスト。 |
query.samplingLevel |
string |
Requested sampling level. |
query.start-index |
integer |
行の開始インデックス。デフォルト値は 1 です。 |
query.max-results |
integer |
ページあたりの結果の最大数。 |
startIndex |
integer |
start-index クエリ パラメータで指定された行の開始インデックス。デフォルト値は 1 です。 |
itemsPerPage |
integer |
レスポンスに含めることができる行の最大数。実際に返される行の数とは関係ありません。max-results クエリ パラメータを指定した場合、itemsPerPage の値は、max-results と 10,000 のどちらか小さい方になります。itemsPerPage のデフォルト値は 1,000 です。
|
totalResults |
integer |
クエリ結果に含まれる行の合計数。レスポンスで返される行数は関係ありません。クエリの結果に大量の行が含まれる場合、totalResults が itemsPerPage を上回る場合があります。改ページを参照して、大規模なクエリの totalResults と itemsPerPage の詳細を確認してください。
|
selfLink |
string |
このデータクエリの結果のこのページへのリンク。 |
previousLink |
string |
このデータクエリの結果の前のページへのリンク。 |
nextLink |
string |
このデータクエリの結果の次のページへのリンク。 |
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" または "MCF_SEQUENCE" のみです。指標の列ヘッダーには、"INTEGER" 、"FLOAT" 、"CURRENCY などの指標の値に対応するデータタイプがあります。 |
totalsForAllResults |
object |
指標の名前と値の Key-Value ペアとしての、リクエストした指標の合計値。指標の合計が表示される順序は、リクエストで指定された指標の順序と同じです。 |
rows[] |
list |
レポートデータ行。各行に
{ "primitiveValue": "2183" }
{ "conversionPathValue": [ { "interactionType" : "CLICK", "nodeValue" : "google" }, { "interactionType" : "CLICK", "nodeValue" : "google" } ] } |
エラーコード
Multi-Channel Funnels Reporting API は、リクエストが正常に処理されると 200
HTTP ステータス コードを返します。クエリの処理中にエラーが発生した場合、API はエラーコードと説明を返します。アナリティクス API を使用する各アプリケーションでは、適切なエラー処理ロジックを実装する必要があります。エラーコードとエラー処理方法の詳細については、エラー レスポンス リファレンス ガイドを参照してください。
試してみる
Multi-Channel Funnels Reporting API 対するクエリを試すことができます。
-
ライブデータに対するリクエストを送信して JSON 形式のレスポンスを確認するには、
Google APIs Explorer
で analytics.data.mcf.get メソッドをお試しください。
サンプリング
Google アナリティクスでは、ディメンションと指標の特定の組み合わせがリアルタイムで計算されます。妥当な時間内のデータを返すために、Google アナリティクスではデータのサンプルのみを処理することができます。
samplingLevel パラメータを設定すると、リクエストに使用するサンプリング レベルを指定できます。
MCF Reporting API のレスポンスにサンプルデータが含まれる場合、containsSampledData
レスポンス フィールドは true
になります。さらに、sampleSize
と sampleSpace
という 2 つのプロパティにより、クエリのサンプリング レベルに関する情報が提供されます。これらの 2 つの値を使用すると、クエリに使用されたセッションの割合を計算できます。たとえば、sampleSize
が 201,000
、sampleSpace
が 220,000
の場合、レポートはセッションの (201,000 / 220,000) * 100 = 91.36% を基に作成されています。
サンプリングの一般的な説明と、Google アナリティクスでの使用方法については、サンプリングを参照してください。
大量のデータ結果の処理
クエリから大量の結果が返されることが予想される場合、以下のガイドラインに従うことで、API クエリを最適化し、エラーを避け、割り当ての超過を最低限に抑えることができます。Google アナリティクスでは、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)