Google Analytics Admin API v1 memungkinkan Anda membuat laporan akses data
menggunakan metode
runAccessReport
. Laporan ini memberikan catatan setiap kali pengguna membaca data pelaporan Google Analytics. Data akses dipertahankan hingga maksimal 2 tahun.
Laporan Akses Data hanya tersedia bagi pengguna dengan peran Administrator.
Membuat Laporan Akses Data
Pelaporan Akses Data disediakan oleh metode runAccessReport.
Fitur yang Dibagikan dengan Laporan Inti
Permintaan laporan Akses Data memiliki semantik yang sama dengan Permintaan laporan Inti, untuk banyak fitur bersama. Misalnya, spesifikasi Penomoran Halaman, Filter Dimensi, Rentang Tanggal berperilaku sama di Laporan Akses Data seperti Laporan Inti.
Pelajari ringkasan fungsi Pelaporan Inti Data API v1, karena bagian selanjutnya dari dokumen ini akan berfokus pada fitur khusus untuk permintaan laporan Akses Data.
Memilih Entitas Pelaporan
Serupa dengan Fungsi pelaporan inti
Data API v1, metode runAccessReport
pada Google Analytics Admin API v1 mengharuskan
ID properti Google Analytics 4
ditentukan dalam jalur permintaan URL dalam bentuk
properties/GA4_PROPERTY_ID
, seperti:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runAccessReport
Laporan akses data yang dihasilkan akan dibuat berdasarkan data akses data Google Analytics untuk properti Google Analytics 4 yang ditentukan.
Jika menggunakan salah satu library klien Admin API,
Anda tidak perlu memanipulasi jalur URL permintaan secara manual. Sebagian besar klien API menyediakan parameter property
yang mengharapkan string dalam bentuk properties/GA4_PROPERTY_ID
. Lihat cuplikan kode di
akhir panduan ini untuk mengetahui contoh penggunaan library klien.
Dimensi dan Metrik
Dimensi
menjelaskan dan mengelompokkan data akses untuk properti Anda. Misalnya, dimensi userEmail
menunjukkan email pengguna yang mengakses data pelaporan.
Nilai dimensi dalam respons laporan berupa string.
Metrik
menunjukkan pengukuran kuantitatif laporan. Metrik accessCount
menampilkan jumlah total kumpulan data akses data.
Lihat Skema Akses Data untuk mengetahui daftar lengkap nama dimensi dan metrik yang tersedia dalam permintaan laporan akses data.
Permintaan Laporan Akses Data
Untuk meminta laporan akses data, buat objek RunAccessReportRequest. Sebaiknya mulai dengan parameter permintaan berikut:
- Minimal satu entri yang valid di kolom rentang tanggal.
- Minimal satu entri yang valid di kolom dimensions.
- Jika tidak menggunakan dimensi
epochTimeMicros
, minimal satu entri yang valid di kolom metrics untuk menerima data kuantitatif untuk setiap kombinasi nilai dimensi dalam laporan.
Berikut adalah contoh permintaan dengan kolom yang direkomendasikan. Kueri ini akan menghasilkan daftar email pengguna, kapan terakhir kali mereka mengakses properti yang ditentukan selama rentang 7 hari terakhir, dan jumlah akses yang sesuai.
HTTP
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runAccessReport
{
"dateRanges": [
{
"startDate": "7daysAgo",
"endDate": "today"
}
],
"dimensions": [
{
"dimensionName": "mostRecentAccessEpochTimeMicros"
},
{
"dimensionName": "userEmail"
}
],
"metrics": [
{
"metricName": "accessCount"
}
]
}
Respons Laporan
Secara konsep mirip dengan Fungsi pelaporan
core Data API v1,
Respons Laporan
Akses Data dari
permintaan laporan akses pada dasarnya adalah header dan baris. Header terdiri dari
AccessDimensionHeaders
dan
AccessMetricHeaders
yang mencantumkan kolom dalam Laporan.
Setiap baris laporan
akses terdiri dari
AccessDimensionValues
dan
AccessMetricValues
untuk kolom dalam laporan. Urutan kolom akan konsisten
di permintaan, header, dan setiap baris.
Berikut adalah contoh respons untuk contoh permintaan sebelumnya:
{
"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
}
Memfilter Catatan Akses
Gunakan kolom dimensionFilter dari objek RunAccessReportRequest untuk membatasi respons laporan ke nilai dimensi tertentu yang cocok dengan filter.
Contoh berikut membuat laporan berdasarkan setiap catatan akses data, memfilter catatan akses dari satu pengguna dengan email
Alex@example.net
. Laporan berisi waktu setiap data akses, email, dan alamat IP pengguna.
HTTP
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA4_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"
}
}
}
}
Demikian pula, kolom metricFilter
dari objek RunAccessReportRequest
dapat digunakan untuk membatasi respons laporan ke nilai metrik tertentu yang cocok dengan filter.
Contoh berikut menghasilkan laporan yang berisi email dan jumlah akses semua pengguna, yang mengakses properti yang ditentukan lebih dari 100 kali.
HTTP
{
"dateRanges": [
{
"startDate": "7daysAgo",
"endDate": "today"
}
],
"dimensions": [
{
"dimensionName": "userEmail"
}
],
"metricFilter": {
"accessFilter": {
"numericFilter": {
"operation": "GREATER_THAN",
"value": {
"int64Value": 100
}
},
"fieldName": "accessCount"
}
},
"metrics": [
{
"metricName": "accessCount"
}
]
}
Contoh laporan
Berikut beberapa contoh laporan yang dapat Anda coba.
Laporan Akses Terbaru Per Pengguna
Contoh laporan akses berikut yang dapat
dibuat menggunakan runAccessReport
:
Mikro Waktu Akses Terbaru | Email Pengguna | Jumlah Akses |
---|---|---|
1525220215025371 | Bola@example.net | 5 |
1525220215028361 | Alex@example.net | 36 |
1525220215027671 | Charlie@example.net | 1153 |
1525220215027341 | Mahan@example.net | 1 |
Laporan ini dapat dibuat dengan membuat kueri dimensi
mostRecentAccessEpochTimeMicros
, userEmail
, dan
metrik accessCount
. Laporan ini berisi satu
baris per setiap pengguna: dimensi mostRecentAccessEpochTimeMicros
menggabungkan kumpulan data akses data untuk setiap pengguna yang mengakses properti
dan menampilkan waktu akses terakhir (dalam mikrodetik Unix sejak epoch)
untuk setiap baris.
Laporan Perincian Akses Pengguna
Contoh lain dari laporan yang berguna adalah perincian akses pengguna menurut Mekanisme Akses (misalnya Antarmuka Pengguna Google Analytics, API, dll.).
Mikro Waktu Akses Terbaru | Email Pengguna | Mekanisme Akses | Jumlah Akses |
---|---|---|---|
1525220215028367 | Alex@example.net | Firebase | 31 |
1525220215555778 | Alex@example.net | Antarmuka Pengguna Google Analytics | 1 |
1525220215022378 | Bola@example.net | Antarmuka Pengguna Google Analytics | 65 |
1525220215026389 | Bola@example.net | API Google Analytics | 894 |
1525220215025631 | Charlie@example.net | API Google Analytics | 67 |
1525220215068325 | Mahan@example.net | Google Ads | 3 |
Laporan ini dapat dibuat dengan membuat kueri dimensi
mostRecentAccessEpochTimeMicros
, userEmail
, accessMechanism
, dan
metrik accessCount
.
Laporan berisi satu baris per kombinasi mekanisme pengguna/akses. Dimensi
mostRecentAccessEpochTimeMicros
berisi saat terakhir kali pengguna
mengakses properti menggunakan Mekanisme Akses yang ditentukan.
Laporan Ringkasan Akses Properti
Anda dapat membuat laporan untuk properti tanpa memerinci pengguna satu per satu. Misalnya, laporan berikut menyatakan seberapa sering properti diakses menggunakan berbagai Mekanisme Akses:
ID Properti yang Diakses | Nama Properti yang Diakses | Mekanisme Akses | Jumlah Akses |
---|---|---|---|
12345678 | DemoApp | Firebase | 31 |
12345678 | DemoApp | Antarmuka Pengguna Google Analytics | 624 |
12345678 | DemoApp | Google Ads | 83 |
12345678 | DemoApp | API Google Analytics | 1744 |
Laporan ini dapat dibuat dengan mengkueri
dimensi accessedPropertyId
,
accessedPropertyName
, accessMechanism
, dan
metrik accessCount
.
Laporan berisi satu baris per kombinasi mekanisme akses/ID properti.
Laporan Akses Data Individu
Untuk membuat laporan yang setiap barisnya didasarkan pada catatan akses data individual, hapus dimensi mostRecentAccessEpochTimeMicros
dari kueri dan gunakan dimensi epochTimeMicros
sebagai gantinya. Anda tidak perlu membuat kueri metrik accessCount
, karena setiap baris laporan berisi informasi tentang satu kejadian akses data.
Laporan berikut berisi informasi mendetail tentang setiap kali pengguna mengakses properti yang ditentukan.
Mikro Waktu Epoch | Email Pengguna | ID Properti yang Diakses | Nama Properti yang Diakses | IP Pengguna | Mekanisme Akses | Data Biaya yang Ditampilkan | Data Pendapatan yang Ditampilkan |
---|---|---|---|---|---|---|---|
1525220215025371 | Bola@example.net | 12345678 | DemoApp | 1.2.3.1 | Antarmuka Pengguna Google Analytics | true | true |
1525220645645645 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Antarmuka Pengguna Google Analytics | false | false |
1525220211312322 | Bola@example.net | 12345678 | DemoApp | 11.22.33.11 | Google Ads | 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 Ads | false | false |
1525220214234231 | Mahan@example.net | 12345678 | DemoApp | 11.22.33.55 | Google Ads | true | true |
1525220423423452 | Charlie@example.net | 12345678 | DemoApp | 1.2.3.3 | API Google Analytics | true | false |
1525220132312333 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Ads | true | true |
Laporan ini dapat dibuat dengan mengkueri dimensi
epochTimeMicros
, userEmail
, accessedPropertyId
, accessedPropertyName
,
userIP
, accessMechanism
, costDataReturned
, revenueDataReturned
.
Library klien
Lihat Panduan memulai cepat untuk mendapatkan penjelasan tentang cara menginstal dan mengonfigurasi library klien.
Berikut ini contoh penggunaan library klien Python yang menjalankan kueri akses data dan mencetak respons.
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}")