データアクセス レポート

データアクセス レポートは、Admin API v1 runAccessReport メソッドを使用して作成できます。このレポートには、ユーザーが Google アナリティクス データを読み取るたびに表示されます。データアクセス レコードは最長 2 年間保持されます。データアクセス レポートは、管理者 の役割を持つユーザーのみが利用できます。

については、スキーマのドキュメントをご覧ください。

クライアント ライブラリを使用してデータアクセス レポートをリクエストする

データアクセス レポートを使い始めるには、クライアント ライブラリを使用するのが最も簡単な方法です。

Google アナリティクス クライアント ライブラリのインストールと構成の方法については、クイック スタートガイドをご覧ください。

Python クライアント ライブラリを使用してデータアクセス クエリを実行し、レスポンスを出力する例を次に示します。

Python

from datetime import datetime

from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import (
    AccessDateRange,
    AccessDimension,
    AccessMetric,
    RunAccessReportRequest,
)


def run_sample():
    """Runs the sample."""
    # TODO(developer): Replace this variable with your Google Analytics 4
    #  property ID (e.g. "123456") before running the sample.
    property_id = "YOUR-GA4-PROPERTY-ID"
    run_access_report(property_id)


def run_access_report(property_id: str, transport: str = None):
    """
    Runs an access report for a Google Analytics property. The report will
    aggregate over dimensions `userEmail`, `accessedPropertyId`,
    `reportType`, `revenueDataReturned`, `costDataReturned`,
    `userIP`, and return the access count, as well as the most recent access
    time for each combination.
    See https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema
    for the description of each field used in a data access report query.
    Args:
        property_id(str): The Google Analytics Property ID.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    request = RunAccessReportRequest(
        entity=f"properties/{property_id}",
        dimensions=[
            AccessDimension(dimension_name="userEmail"),
            AccessDimension(dimension_name="accessedPropertyId"),
            AccessDimension(dimension_name="reportType"),
            AccessDimension(dimension_name="revenueDataReturned"),
            AccessDimension(dimension_name="costDataReturned"),
            AccessDimension(dimension_name="userIP"),
            AccessDimension(dimension_name="mostRecentAccessEpochTimeMicros"),
        ],
        metrics=[AccessMetric(metric_name="accessCount")],
        date_ranges=[AccessDateRange(start_date="yesterday", end_date="today")],
    )

    access_report = client.run_access_report(request)

    print("Result:")
    print_access_report(access_report)


def print_access_report(response):
    """Prints the access report."""
    print(f"{response.row_count} rows received")
    for dimensionHeader in response.dimension_headers:
        print(f"Dimension header name: {dimensionHeader.dimension_name}")
    for metricHeader in response.metric_headers:
        print(f"Metric header name: {metricHeader.metric_name})")

    for rowIdx, row in enumerate(response.rows):
        print(f"\nRow {rowIdx}")
        for i, dimension_value in enumerate(row.dimension_values):
            dimension_name = response.dimension_headers[i].dimension_name
            if dimension_name.endswith("Micros"):
                # Convert microseconds since Unix Epoch to datetime object.
                dimension_value_formatted = datetime.utcfromtimestamp(
                    int(dimension_value.value) / 1000000
                )
            else:
                dimension_value_formatted = dimension_value.value
            print(f"{dimension_name}: {dimension_value_formatted}")

        for i, metric_value in enumerate(row.metric_values):
            metric_name = response.metric_headers[i].metric_name
            print(f"{metric_name}: {metric_value.value}")

コアレポートとの共有機能

データアクセス レポートのリクエストは、多くの一般的な機能でコアレポート リクエストと同じセマンティクスを持ちます。たとえば ページネーションディメンション フィルタ期間はどちらのレポートタイプでも同じように動作します 。

Data API v1 のコアレポートの概要をよく理解してから、このページに戻ってデータアクセス レポートの詳細をご確認ください。

データアクセス レポートを作成する

データアクセス レポートをリクエストするには、 runAccessReport メソッドを使用します。

レポート対象のエンティティを選択する

Data API v1 の コアレポート 機能と同様に、Google Analytics Admin API v1 の runAccessReport メソッドでは、Google アナリティクス プロパティ IDproperties/GA_PROPERTY_ID の形式で URL リクエスト パス内に指定する必要があります。例:

  POST  https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport

生成されるデータアクセス レポートは、指定された Google アナリティクスのプロパティの Google アナリティクス データアクセス レコードに基づいて生成されます。

Admin API クライアント ライブラリのいずれかを使用している場合は、 リクエスト URL パスを手動で操作する必要はありません。ほとんどの API クライアントでは、文字列が properties/GA_PROPERTY_ID の形式の property パラメータが提供されています。クライアント ライブラリの使用例については、このページの冒頭のコード スニペットをご覧ください。

ディメンションと指標を選択する

ディメンション は、プロパティのアクセス データを記述してグループ化します。たとえば、ディメンション userEmail は、レポートデータにアクセスしたユーザーのメールを示します。 レポート レスポンスのディメンション値は文字列です。

指標 は、レポートの定量的な測定値を表します。accessCount 指標は、データアクセス レコードの合計数を返します。

データアクセス レポートのリクエストで使用できるディメンションと 指標の名前の一覧については、データアクセス スキーマをご覧ください。

レポートをリクエストする

データアクセス レポートをリクエストするには、RunAccessReportRequest オブジェクトを作成します。次のリクエスト パラメータから始めることをおすすめします。

  • 期間 フィールド に有効なエントリが 1 つ以上あること。
  • ディメンション フィールド に有効なエントリが 1 つ以上あること。
  • epochTimeMicros ディメンションを使用しない場合は、レポート内のディメンション値の組み合わせごとに定量的なデータを受け取るために、 指標 フィールドに有効なエントリが 1 つ以上あること。

推奨されるフィールドを含むリクエストのサンプルを次に示します。このクエリは、ユーザーのメールアドレスのリスト、過去 7 日間の範囲内で指定されたプロパティにアクセスした最新の日時、対応するアクセス数を生成します。

HTTP

POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
{
  "dateRanges": [
    {
      "startDate": "7daysAgo",
      "endDate": "today"
    }
  ],
  "dimensions": [
    {
      "dimensionName": "mostRecentAccessEpochTimeMicros"
    },
    {
      "dimensionName": "userEmail"
    }
  ],
  "metrics": [
    {
      "metricName": "accessCount"
    }
  ]
}

レスポンスを読み取る

データアクセス レポート のレスポンスは、 主にヘッダーと行で構成されます。ヘッダーは、レポートの列を一覧表示する AccessDimensionHeadersAccessMetricHeaders で構成されます。

アクセス レポート 行は、レポートの列の AccessDimensionValuesAccessMetricValuesで構成されます。列の順序は、リクエスト、ヘッダー、すべての行で一貫しています。

前のリクエスト サンプルのレスポンスのサンプルを次に示します。

{
  "dimensionHeaders": [
    {
      "dimensionName": "mostRecentAccessEpochTimeMicros"
    },
    {
      "dimensionName": "userEmail"
    }
  ],
  "metricHeaders": [
    {
      "metricName": "accessCount"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "1667591408427733"
        },
        {
          "value": "Bola@example.net"
        }
      ],
      "metricValues": [
        {
          "value": "1238"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "1667710959827161"
        },
        {
          "value": "Alex@example.net"
        }
      ],
      "metricValues": [
        {
          "value": "475"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "1667868650762743"
        },
        {
          "value": "Mahan@example.net"
        }
      ],
      "metricValues": [
        {
          "value": "96"
        }
      ]
    }
  ],
  "rowCount": 3
}

アクセス レコードでフィルタする

RunAccessReportRequest オブジェクトの dimensionFilter フィールドを使用して、レポート レスポンスをフィルタに一致する特定のディメンション値に制限します。

次の例では、個々のデータアクセス レコードに基づいてレポートを生成し、メールアドレスが Alex@example.net の単一ユーザーのアクセス レコードでフィルタします。レポートには、各アクセス レコードの時刻、ユーザーのメールアドレスと IP アドレスが含まれます。

HTTP

POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
{
  "dateRanges": [
    {
      "startDate": "7daysAgo",
      "endDate": "today"
    }
  ],
  "dimensions": [
    {
      "dimensionName": "epochTimeMicros"
    },
    {
      "dimensionName": "userEmail"
    },
    {
      "dimensionName": "userIP"
    }
  ],
  "dimensionFilter": {
    "accessFilter": {
      "fieldName": "userEmail",
      "stringFilter": {
        "matchType": "EXACT",
        "value": "Alex@example.net"
      }
    }
  }
}

同様に、 metricFilter フィールドを使用して、 RunAccessReportRequest オブジェクトのレポート レスポンスをフィルタに一致する特定の指標値に制限できます。

次の例では、指定されたプロパティに 100 回以上アクセスしたすべてのユーザーのメールアドレスとアクセス数を含むレポートを生成します。

HTTP

{
  "dateRanges": [
    {
      "startDate": "7daysAgo",
      "endDate": "today"
    }
  ],
  "dimensions": [
    {
      "dimensionName": "userEmail"
    }
  ],
  "metricFilter": {
    "accessFilter": {
      "numericFilter": {
        "operation": "GREATER_THAN",
        "value": {
          "int64Value": 100
        }
      },
      "fieldName": "accessCount"
    }
  },
  "metrics": [
    {
      "metricName": "accessCount"
    }
  ]
}

サンプル レポート

お試しいただけるサンプル レポートをいくつかご紹介します。

最近のアクセス

runAccessReport を使用して作成できるアクセス レポートのサンプルを次に示します。

最新アクセスの Unix エポックタイム(マイクロ秒) ユーザーのメール アクセス数
1525220215025371 Bola@example.net 5
1525220215028361 Alex@example.net 36
1525220215027671 Charlie@example.net 1153
1525220215027341 Mahan@example.net 1

このレポートは、 ディメンション mostRecentAccessEpochTimeMicrosuserEmailaccessCount 指標をクエリすることで生成できます。レポートには、ユーザーごとに 1 行が含まれます。mostRecentAccessEpochTimeMicros ディメンションは、プロパティにアクセスするユーザーごとにデータアクセス レコードを集計し、各行の最終アクセス時刻(エポックからの Unix マイクロ秒単位)を返します。

ユーザー アクセスの内訳

便利なレポートのもう 1 つの例は、アクセス メカニズム(Google アナリティクスのユーザー インターフェース、API など)別のユーザー アクセスの内訳です。

最新アクセスの Unix エポックタイム(マイクロ秒) ユーザーのメール アクセス メカニズム アクセス数
1525220215028367 Alex@example.net Firebase 31
1525220215555778 Alex@example.net Google アナリティクスのユーザー インターフェース 1
1525220215022378 Bola@example.net Google アナリティクスのユーザー インターフェース 65
1525220215026389 Bola@example.net Google Analytics API 894
1525220215025631 Charlie@example.net Google Analytics API 67
1525220215068325 Mahan@example.net Google 広告 3

このレポートは、 ディメンション mostRecentAccessEpochTimeMicrosuserEmailaccessMechanismaccessCount 指標をクエリすることで生成できます。

レポートには、ユーザーとアクセス メカニズムの組み合わせごとに 1 行が含まれます。mostRecentAccessEpochTimeMicros ディメンションには、指定されたアクセス メカニズムを使用してユーザーがプロパティにアクセスした最終時刻が含まれます。

プロパティ アクセスの概要

個々のユーザーの内訳を表示せずに、プロパティのレポートを生成できます。たとえば、次のレポートでは、さまざまなアクセス メカニズムを使用してプロパティにアクセスする頻度を示しています。

アクセスしたプロパティ ID アクセスしたプロパティ名 アクセス メカニズム アクセス数
12345678 DemoApp Firebase 31
12345678 DemoApp Google アナリティクスのユーザー インターフェース 624
12345678 DemoApp Google 広告 83
12345678 DemoApp Google Analytics API 1744

このレポートは、 ディメンション accessedPropertyIdaccessedPropertyNameaccessMechanism、指標 accessCount をクエリすることで生成できます。

レポートには、プロパティ ID とアクセス メカニズムの組み合わせごとに 1 行が含まれます。

個々のデータアクセス

各行が個々のデータアクセス レコードに基づくレポートを生成するには、クエリから mostRecentAccessEpochTimeMicros ディメンションを省略し、代わりに epochTimeMicros ディメンションを使用します。レポートのすべての行に 1 回のデータアクセスに関する情報が含まれているため、accessCount 指標をクエリする必要はありません。

次のレポートには、ユーザーが指定されたプロパティにアクセスした時刻に関する詳細情報が含まれています。

Unix エポックタイム(マイクロ秒) ユーザーのメール アクセスしたプロパティ ID アクセスしたプロパティ名 ユーザー IP アクセス メカニズム 返された費用データ 返された収益データ
1525220215025371 Bola@example.net 12345678 DemoApp 1.2.3.1 Google アナリティクスのユーザー インターフェース true true
1525220645645645 Mahan@example.net 12345678 DemoApp 1.2.3.5 Google アナリティクスのユーザー インターフェース false false
1525220211312322 Bola@example.net 12345678 DemoApp 11.22.33.11 Google 広告 true false
1525220210234221 Alex@example.net 12345678 DemoApp 11.22.33.22 Firebase false false
1525220215028368 Alex@example.net 12345678 DemoApp 1.2.3.2 Google 広告 false false
1525220214234231 Mahan@example.net 12345678 DemoApp 11.22.33.55 Google 広告 true true
1525220423423452 Charlie@example.net 12345678 DemoApp 1.2.3.3 Google Analytics API true false
1525220132312333 Mahan@example.net 12345678 DemoApp 1.2.3.5 Google 広告 true true

このレポートは、 ディメンション epochTimeMicrosuserEmailaccessedPropertyIdaccessedPropertyNameuserIPaccessMechanismcostDataReturnedrevenueDataReturned をクエリすることで生成できます。