高度な使用例

このドキュメントでは、Google アナリティクス Data API v1 の高度な機能について説明します。API の詳細なリファレンスについては、API リファレンスをご覧ください。

カスタム定義の一覧表示とレポートの作成

Data API では、登録済みのカスタム ディメンションカスタム指標に関するレポートを作成できます。Metadata API メソッドを使用すると、プロパティの登録済みカスタム定義の API 名を一覧表示できます。これらの API 名は、たとえば、runReport メソッドへのレポート リクエストで使用できます。

以下のセクションでは、カスタム定義のタイプごとに例を示します。以下の例では、GA4_PROPERTY_IDプロパティ ID に置き換えます。

イベント スコープのカスタム ディメンション

ステップ 1: プロパティ ID を使用して Metadata API メソッドに対してクエリを実行します。

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

ステップ 2: レスポンスから、レポートを作成するイベント スコープのカスタム ディメンションを見つけます。ディメンションが存在しない場合は、ディメンションを登録する必要があります。

"dimensions": [
...
    {
      "apiName": "customEvent:achievement_id",
      "uiName": "Achievement ID",
      "description": "An event scoped custom dimension for your Analytics property."
    },
...
],

ステップ 3: レポート リクエストにカスタム ディメンションを含めます。runReport メソッドに対するリクエストの例を次に示します。

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "2020-09-01", "endDate": "2020-09-15" }],
  "dimensions": [{ "name": "customEvent:achievement_id" }],
  "metrics": [{ "name": "eventCount" }]
}

ユーザー スコープのカスタム ディメンション

ステップ 1: プロパティ ID を使用して Metadata API メソッドに対してクエリを実行します。

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

ステップ 2: レスポンスから、レポートを作成するユーザー スコープのカスタム ディメンションを見つけます。ディメンションが存在しない場合は、ディメンションを登録する必要があります。

"dimensions": [
...
    {
      "apiName": "customUser:last_level",
      "uiName": "Last level",
      "description": "A user property for your Analytics property."
    },
...
],

ステップ 3: レポート リクエストにカスタム ディメンションを含めます。runReport メソッドに対するリクエストの例を次に示します。

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "entity": { "propertyId": "GA4_PROPERTY_ID" },
  "dateRanges": [{ "startDate": "7daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "customUser:last_level" }],
  "metrics": [{ "name": "activeUsers" }]
}

イベント スコープのカスタム指標

ステップ 1: プロパティ ID を使用して Metadata API メソッドに対してクエリを実行します。

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

ステップ 2: レスポンスから、レポートを作成するイベント スコープのカスタム指標を見つけます。指標が存在しない場合は、指標を登録する必要があります。

"metrics": [
...
    {
      "apiName": "customEvent:credits_spent",
      "uiName": "Credits Spent",
      "description": "An event scoped custom metric for your Analytics property.",
      "type": "TYPE_STANDARD"
    },
...
],

ステップ 3: レポート リクエストにカスタム指標を含めます。runReport メソッドに対するリクエストの例を次に示します。

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "30daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "customEvent:credits_spent" }]
}

1 回のコンバージョンに対するコンバージョン率の指標

ステップ 1: プロパティ ID を使用して Metadata API メソッドに対してクエリを実行します。

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

ステップ 2: レポートを作成する 1 件のコンバージョンのコンバージョン率指標をレスポンスから見つけます。コンバージョン イベントが存在しない場合は、コンバージョン イベントをセットアップする必要があります。

"metrics": [
...
    {
      "apiName": "sessionConversionRate:add_to_cart",
      "uiName": "Session conversion rate for add_to_cart",
      "description": "The percentage of sessions in which a specific conversion event was triggered",
    },
...
],

ステップ 3: レポート リクエストにコンバージョン率の指標を含める。runReport メソッドに対するリクエストの例を次に示します。

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "30daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "sessionConversionRate:add_to_cart" }]
}

イベント スコープのカスタム指標の平均値

ステップ 1: プロパティ ID を使用して Metadata API メソッドに対してクエリを実行します。

GET https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID/metadata

ステップ 2: レスポンスから、レポートを作成するイベント スコープのカスタム指標の平均値を見つけます。指標が存在しない場合は、指標を登録する必要があります。

"metrics": [
...
    {
      "apiName": "averageCustomEvent:credits_spent",
      "uiName": "Average Credits Spent",
      "description": "The average of an event scoped custom metric for your Analytics property.",
      "type": "TYPE_STANDARD"
    },
...
],

ステップ 3: カスタム指標の平均をレポート リクエストに含める。runReport メソッドに対するリクエストの例を次に示します。

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "2020-11-01", "endDate": "2020-11-10" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "averageCustomEvent:credits_spent" }]
}

コホート レポートの例

コホート レポートでは、コホートのユーザー維持率の時系列が作成されます。各 API フィールドの詳細については、CohortSpec の REST リファレンスをご覧ください。

コホート レポートを作成する

以下はコホート レポートの例です。

  • コホートは、firstSessionDate2020-12-01 のユーザーです。これは、cohorts オブジェクトによって構成されます。レポートのレスポンスのディメンションと指標は、コホートのユーザーのみに基づくものになります。
  • コホート レポートには、ディメンションと指標のオブジェクトで構成される 3 つの列が表示されます。
    • ディメンション cohort は、コホートの名前です。
    • ディメンション cohortNthDay は、2020-12-01 からの日数です。
    • 指標 cohortActiveUsers は、まだアクティブなユーザーの数です。
  • cohortsRange オブジェクトは、レポートにこのコホートの 2020-12-01 から 2020-12-06 までのイベントデータを含めるよう指定します。
    • 粒度 DAILY を使用する場合は、整合性を保つためにディメンション cohortNthDay をおすすめします。

コホートのレポート リクエストは次のとおりです。

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dimensions": [{ "name": "cohort" }, { "name": "cohortNthDay" }],
  "metrics": [{ "name": "cohortActiveUsers" }],
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-12-01", "endDate": "2020-12-01" }
      }
    ],
    "cohortsRange": {
      "endOffset": 5,
      "granularity": "DAILY"
    }
  },
}

このリクエストのレポート レスポンスの例を次に示します。

{
  "dimensionHeaders": [
    { "name": "cohort" }, { "name": "cohortNthDay" }
  ],
  "metricHeaders": [
    { "name": "cohortActiveUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0000" }],
      "metricValues": [{ "value": "293" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0001" }],
      "metricValues": [{ "value": "143" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0002" }],
      "metricValues": [{ "value": "123" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0003" }],
      "metricValues": [{ "value": "92" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0005" }],
      "metricValues": [{ "value": "86" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0004" }],
      "metricValues": [{ "value": "83" }]
    }
  ],
  "metadata": {},
  "rowCount": 6
}

このレポートの回答から、このコホート レポートのグラフが表示されます。このレポートからわかると、このコホートのアクティブ ユーザー数が最も減少したのは 1 日目から 2 日目までの間です。

コホート ユーザーの推移を示す図

複数のコホートとユーザー維持率

ユーザー獲得とユーザー維持は、ウェブサイトまたはアプリを成長させるための手段です。コホート レポートはユーザー維持率に焦点を当てています。この例では、このプロパティの 4 日間のユーザー維持率が 2 週間で 10% 向上したことがレポートにより示されています。

このレポートを作成するには、3 つのコホートを指定します。1 つ目は 2020-11-02firstSessionDate、2 つ目は 2020-11-09firstSessionDate、3 つ目は firstSessionDate2020-11-16 です。この 3 日間ではプロパティのユーザー数が異なるため、直接の cohortActiveUsers 指標ではなく、コホートのユーザー維持率指標 cohortActiveUsers/cohortTotalUsers を比較します。

これらのコホートのレポート リクエストは次のとおりです。

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dimensions": [{ "name": "cohort" },{ "name": "cohortNthDay" }],
  "metrics": [
    {
      "name": "cohortRetentionFraction",
      "expression": "cohortActiveUsers/cohortTotalUsers"
    }
  ],
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-02", "endDate": "2020-11-02" }
      },
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-09", "endDate": "2020-11-09" }
      },
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-16", "endDate": "2020-11-16" }
      }
    ],
    "cohortsRange": {
      "endOffset": 4,
      "granularity": "DAILY"
    }
  },
}

このリクエストのレポート レスポンスの例を次に示します。

{
  "dimensionHeaders": [{ "name": "cohort" },{ "name": "cohortNthDay" }],
  "metricHeaders": [{
      "name": "cohortRetentionFraction",
      "type": "TYPE_FLOAT"
    }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.308" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.272" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.257" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.248" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.235" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.211" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.198" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.172" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.167" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.155" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.141" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.118" }]
    }
  ],
  "metadata": {},
  "rowCount": 15
}

このレポートの回答から、このコホート レポートのグラフが表示されます。このレポートの分析情報では、4 日間のユーザー維持率が 2 週間で 10% 増加しています。firstSessionDate2020-11-16 の後者のコホートは、firstSessionDate2020-11-02 の以前のコホートの維持率を上回っています。

複数のコホート維持率のグラフ

週次コホートと、他の API 機能とのコホートの使用

ユーザー行動の日々の変動を取り除くには、週次コホートを使用します。週次コホート レポートでは、同じ週に firstSessionDate を持つすべてのユーザーがコホートを形成します。週は日曜日から始まり、土曜日までです。また、このレポートでは、コホートをスライスして、ロシアでアクティビティを行ったユーザーとメキシコでアクティビティを行ったユーザーを比較しています。このスライスでは、country ディメンションと dimensionFilter を使用して、2 つの国のみを考慮します。

これらのコホートのレポート リクエストは次のとおりです。

POST https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport
{
  "dimensions": [
    { "name": "cohort" },
    { "name": "cohortNthWeek" },
    { "name": "country" }
  ],
  "metrics": [{ "name": "cohortActiveUsers" }],
  "dimensionFilter": {
    "filter": {
      "fieldName": "country",
      "inListFilter": {
        "values": [ "Russia", "Mexico" ]
      }
    }
  },
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": {
          "startDate": "2020-10-04",
          "endDate": "2020-10-10"
        }
      }
    ],
    "cohortsRange": {
      "endOffset": 5,
      "granularity": "WEEKLY"
    }
  },
}

このリクエストのレポート レスポンスの例を次に示します。

{
  "dimensionHeaders": [
    { "name": "cohort" },
    { "name": "cohortNthWeek" },
    { "name": "country" }
  ],
  "metricHeaders": [
    { "name": "cohortActiveUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0000" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "105" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0000" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "98" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0001" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "35" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0002" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "24" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0001" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "23" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0004" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "17" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0003" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "15" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0005" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "15" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0002" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "3" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0003" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0004" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "1" }]
    }
  ],
  "metadata": {},
  "rowCount": 11
}

このレポートの回答から、このコホート レポートのグラフが表示されます。このレポートに基づくと、このプロパティでは、ロシアでアクティビティを行ったユーザーよりも、メキシコでアクティビティを行ったユーザーのほうが維持率が高いことがわかっています。

国別の比較コホートのグラフ