Multi-Channel Funnels Reporting API - リファレンス ガイド

このドキュメントでは、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 形式の日付を指定することも、todayyesterdayNdaysAgoN は正の整数)などの相対的な日付を指定することもできます。
end-date string はい アナリティクス データの取得を終了する日付。 終了日には、YYYY-MM-DD 形式の日付を指定することも、todayyesterdayNdaysAgoN は正の整数)などの相対的な日付を指定することもできます。
metrics string はい mcf:totalConversions,mcf:totalConversionValue など、カンマ区切りの指標のリスト。指標を少なくとも 1 つ指定する必要があります。
dimensions string いいえ mcf:source,mcf:keyword など、マルチチャネル レポートのカンマ区切りのディメンションのリスト。
sort string いいえ 取得するデータの並べ替え順序と方向を示す、カンマ区切りのディメンションと指標のリスト。
filters string いいえ リクエストに対して返されるデータを制限するディメンションまたは指標フィルタ。
samplingLevel string いいえ 希望するサンプリング レベル。利用可能な値を次に示します。
  • DEFAULT - 速度と精度のバランスがとれたサンプルサイズで レスポンスが返されます。
  • FASTER - サンプルサイズを小さくすることにより、 高速なレスポンスが返されます。
  • HIGHER_PRECISION - サンプルサイズを大きくすることにより、より正確なレスポンスが返されますが、レスポンス速度が低下する可能性があります。
start-index integer いいえ 取得するデータの最初の行。1 から始まります。このパラメータは、max-results パラメータとともに改ページ メカニズムとして使用します。
max-results integer いいえ レスポンスに含める行の最大数。

クエリ パラメータの詳細

ids

ids=ga:12345
必須。
マルチチャネル データを取得するために使用される固有の IDです。この ID は、名前空間 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 パターンを使用して特定の日付を表すことも、todayyesterdayNdaysAgo パターンを使用して相対的な日付を表すこともできます。値は [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo) と一致する必要があります。
有効な start-date2011-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 パターンを使用して特定の日付を表すことも、todayyesterdayNdaysAgo パターンを使用して相対的な日付を表すこともできます。値は [0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]+(daysAgo) と一致する必要があります。
有効な end-date2005-01-01 以降です。end-date に上限はありません。
相対的な日付は、常にクエリの実行時の現在の 日付を基準としており、クエリで指定されたビューのタイムゾーンに 基づきます。

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

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

トップへ戻る


dimensions

dimensions=mcf:source,mcf:keyword
設定は任意です。

dimensions パラメータは、マルチチャネル レポートのプライマリ データ キーmcf:sourcemcf: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:sourcemcf:medium の順に、データを昇順で並べ替えます。

sort=mcf:source,mcf:medium

さらに、「最上位のコンバージョン メディアは何か、またそのソースは何か」という同様の質問への回答を得るには、次のパラメータを使用してクエリを作成できます。このクエリでは、mcf:mediummcf:source の順に、データを昇順で並べ替えます。

sort=mcf:medium,mcf:source

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

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

トップへ戻る


filters

filters=mcf:medium%3D%3Dreferral
設定は任意です。

filters クエリ文字列パラメータは、リクエストから返されるデータを制限します。filters パラメータを使用するには、フィルタを適用するディメンションまたは指標を指定した後、フィルタ式を指定します。たとえば、次のクエリでは、ビュー 12134mcf:totalConversionsmcf: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 の説明に示すように、結果の合計数が現在のレスポンスのページサイズを上回る場合は、結果とレスポンスが異なることがあります。

レスポンスの形式

JSON
{
  "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 クエリ結果に含まれる行の合計数。レスポンスで返される行数は関係ありません。クエリの結果に大量の行が含まれる場合、totalResultsitemsPerPage を上回る場合があります。改ページを参照して、大規模なクエリの totalResultsitemsPerPage の詳細を確認してください。
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

レポートデータ行。各行に Mcf.Rows オブジェクトのリストが含まれます。この内部リストは、ディメンション値とそれに続く指標値を表します。これらの値の順序は、リクエストに指定された順序と同じです。それぞれの行には、N 個のフィールドのリストが含まれます。ここで、N はディメンションと指標を合計した数です。

Mcf.Rows オブジェクトは、primitiveValue タイプまたは conversionPathValue タイプのオブジェクトをラップします。ディメンション値が 2 つのタイプのどちらかになるのに対して、指標値はすべて primitiveValue タイプです。

primitiveValue は、単にオブジェクトにラップされた文字列です。次に例を示します。


{
  "primitiveValue": "2183"
}

conversionPathValue は、nodeValue 文字列とオプションの interactionType 文字列をそれぞれ格納するオブジェクトの配列をラップするオブジェクトです。次に例を示します。


{
  "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 Exploreranalytics.data.mcf.get メソッドをお試しください。

トップへ戻る

サンプリング

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

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

MCF Reporting API のレスポンスにサンプルデータが含まれる場合、containsSampledData レスポンス フィールドは true になります。さらに、sampleSizesampleSpace という 2 つのプロパティにより、クエリのサンプリング レベルに関する情報が提供されます。これらの 2 つの値を使用すると、クエリに使用されたセッションの割合を計算できます。たとえば、sampleSize201,000sampleSpace220,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)