データアクセス レポートは、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 アナリティクス Admin API v1 の runAccessReport メソッドでは、Google アナリティクス プロパティ ID を properties/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 つの有効なエントリ。
- dimensions フィールドに少なくとも 1 つの有効なエントリ。
epochTimeMicrosディメンションを使用しない場合は、レポート内のディメンション値の組み合わせごとに定量データを受け取るために、metrics フィールドに有効なエントリが 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"
}
]
}
回答を読む
データアクセス レポートのレスポンスは、主にヘッダーと行で構成されています。ヘッダーは、レポートの列を一覧表示する AccessDimensionHeaders と AccessMetricHeaders で構成されます。
各アクセス レポートの行は、レポートの列の AccessDimensionValues と AccessMetricValues で構成されます。列の順序は、リクエスト、ヘッダー、すべての行で一貫しています。
前のリクエスト サンプルのレスポンスのサンプルを次に示します。
{
"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"
}
}
}
}
同様に、RunAccessReportRequest オブジェクトの metricFilter フィールドを使用して、フィルタに一致する特定の指標値にレポート レスポンスを制限できます。
次の例では、指定したプロパティに 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 |
このレポートは、ディメンション mostRecentAccessEpochTimeMicros、userEmail、accessCount 指標をクエリすることで生成できます。レポートにはユーザーごとに 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 |
このレポートは、ディメンション mostRecentAccessEpochTimeMicros、userEmail、accessMechanism と、指標 accessCount をクエリすることで生成できます。
レポートには、ユーザーとアクセス メカニズムの組み合わせごとに 1 行が含まれます。mostRecentAccessEpochTimeMicros ディメンションには、指定されたアクセス メカニズムを使用してユーザーがプロパティに最後にアクセスした日時が含まれます。
プロパティ アクセスの概要
個々のユーザーに分類せずに、プロパティのレポートを生成できます。たとえば、次のレポートは、さまざまなアクセス メカニズムを使用してプロパティにアクセスする頻度を示しています。
| アクセスしたプロパティ ID | アクセスしたプロパティ名 | アクセス メカニズム | アクセス数 |
|---|---|---|---|
| 12345678 | DemoApp | Firebase | 31 |
| 12345678 | DemoApp | Google アナリティクスのユーザー インターフェース | 624 |
| 12345678 | DemoApp | Google 広告 | 83 |
| 12345678 | DemoApp | Google Analytics API | 1744 |
このレポートは、ディメンション accessedPropertyId、accessedPropertyName、accessMechanism と、指標 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 |
このレポートは、ディメンション epochTimeMicros、userEmail、accessedPropertyId、accessedPropertyName、userIP、accessMechanism、costDataReturned、revenueDataReturned をクエリすることで生成できます。