Google Analytics Admin API v1 ช่วยให้คุณรายงานการเข้าถึงข้อมูลได้โดยใช้
runAccessReport
รายงานจะแสดงบันทึกในแต่ละครั้งที่ผู้ใช้อ่าน Google Analytics
ข้อมูลการรายงาน ระบบจะเก็บบันทึกการเข้าถึงไว้ไม่เกิน 2 ปี การเข้าถึงข้อมูล
รายงานใช้ได้เฉพาะกับผู้ใช้ที่มีบทบาทผู้ดูแลระบบเท่านั้น
การสร้างรายงานการเข้าถึงข้อมูล
การรายงานการเข้าถึงข้อมูลนั้นให้บริการโดย runAccessReport
ฟีเจอร์ที่แชร์กับรายงานหลัก
คำขอรายงานการเข้าถึงข้อมูลมีความหมายเดียวกันกับรายงานหลัก คำขอสำหรับฟีเจอร์ที่แชร์มากมาย ตัวอย่างเช่น ข้อกําหนดการใส่เลขหน้า ตัวกรองมิติข้อมูล และช่วงวันที่ทํางานเหมือนกัน ในรายงานการเข้าถึงข้อมูลเป็นรายงานหลัก
ทำความคุ้นเคยกับภาพรวมของฟังก์ชันการรายงานหลัก Data API v1 เป็นส่วนที่เหลือของ จะมุ่งเน้นไปที่คุณลักษณะเฉพาะของคำขอรายงานการเข้าถึงข้อมูล
การเลือกเอนทิตีการรายงาน
ซึ่งคล้ายกับ การรายงานหลัก
ฟังก์ชันของ
Data API v1, runAccessReport
Google Analytics Admin API v1 จำเป็นต้องใช้ Google Analytics
ตัวระบุพร็อพเพอร์ตี้ที่จะต้องระบุภายใน
เส้นทางคำขอ URL ในรูปแบบ properties/GA_PROPERTY_ID
เช่น
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
รายงานการเข้าถึงข้อมูลที่ได้จะสร้างขึ้นโดยอิงจากข้อมูล Google Analytics บันทึกการเข้าถึงข้อมูลสำหรับพร็อพเพอร์ตี้ Google Analytics ที่ระบุ
หากคุณใช้ไลบรารีของไคลเอ็นต์ Admin API รายการใดรายการหนึ่ง
คุณไม่จำเป็นต้องเปลี่ยนแปลงเส้นทาง URL คำขอด้วยตนเอง ไคลเอ็นต์ API ส่วนใหญ่
ระบุพารามิเตอร์ property
ที่คาดหวังสตริงในรูปแบบ
properties/GA_PROPERTY_ID
ดูข้อมูลโค้ดที่
ในตอนท้ายของคู่มือนี้ สำหรับตัวอย่างการใช้ไลบรารีของไคลเอ็นต์
มิติข้อมูลและเมตริก
มิติข้อมูล
อธิบายและข้อมูลการเข้าถึงกลุ่มสำหรับพร็อพเพอร์ตี้ของคุณ เช่น มิติข้อมูล
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"
}
]
}
รายงานคำตอบ
มีลักษณะคล้ายคลึงกันกับ การรายงานหลัก
ฟังก์ชันของ Data API v1
รายงานการเข้าถึงข้อมูล
คำตอบจาก
คำขอรายงานการเข้าถึงจะเป็นส่วนหัวและแถวเป็นหลัก ส่วนหัวประกอบด้วย
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
}
การกรองในบันทึกการเข้าถึง
ใช้เมนู dimensionFilter ของฟิลด์ RunAccessReportRequest เพื่อจำกัดการตอบสนองของรายงานเฉพาะกับค่ามิติข้อมูลที่ระบุซึ่งตรงกับ ตัวกรอง
ตัวอย่างต่อไปนี้จะสร้างรายงานตามการเข้าถึงข้อมูลแต่ละรายการ
ระเบียน ซึ่งกรองบันทึกการเข้าถึงของผู้ใช้รายเดียวด้วยอีเมล
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
ได้มีดังนี้
เวลาในหน่วยไมโครของการเข้าถึงล่าสุด | อีเมลผู้ใช้ | จำนวนการเข้าถึง |
---|---|---|
1525220215025371 | Bola@example.net | 5 |
1525220215028361 | Alex@example.net | 36 |
1525220215027671 | Charlie@example.net | 1153 |
1525220215027341 | Mahan@example.net | 1 |
รายงานนี้สามารถสร้างขึ้นได้ด้วยการค้นหา
มิติข้อมูล mostRecentAccessEpochTimeMicros
userEmail
และเมตริก accessCount
รายงานมีหนึ่งแถวต่อผู้ใช้แต่ละราย: mostRecentAccessEpochTimeMicros
มิติข้อมูลจะรวมบันทึกการเข้าถึงข้อมูลสำหรับผู้ใช้แต่ละรายที่เข้าถึงพร็อพเพอร์ตี้
และแสดงผลเวลาเข้าถึงล่าสุด (ใน Unix ไมโครวินาทีนับตั้งแต่
Epoch) สําหรับแต่ละแถว
รายงานรายละเอียดการเข้าถึงของผู้ใช้
อีกตัวอย่างของรายงานที่มีประโยชน์คือ รายละเอียดการเข้าถึงของผู้ใช้ตามการเข้าถึง กลไก (เช่น อินเทอร์เฟซผู้ใช้ของ Google Analytics, API ฯลฯ)
เวลาในหน่วยไมโครของการเข้าถึงล่าสุด | อีเมลผู้ใช้ | กลไกการเข้าถึง | จำนวนการเข้าถึง |
---|---|---|---|
1525220215028367 | Alex@example.net | Firebase | 31 |
1525220215555778 | Alex@example.net | อินเทอร์เฟซผู้ใช้ Google Analytics | 1 |
1525220215022378 | Bola@example.net | อินเทอร์เฟซผู้ใช้ 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 |
รายงานนี้สามารถสร้างขึ้นได้ด้วยการค้นหา
มิติข้อมูล mostRecentAccessEpochTimeMicros
userEmail
accessMechanism
และaccessCount
เมตริก
รายงานจะประกอบด้วยหนึ่งแถวต่อชุดค่าผสมผู้ใช้/กลไกการเข้าถึงแต่ละชุด
มิติข้อมูล mostRecentAccessEpochTimeMicros
รายการมีข้อมูลเวลาล่าสุดที่ผู้ใช้
เข้าถึงพร็อพเพอร์ตี้โดยใช้กลไกการเข้าถึงที่ระบุ
รายงานภาพรวมการเข้าถึงพร็อพเพอร์ตี้
คุณสามารถสร้างรายงานสำหรับพร็อพเพอร์ตี้โดยไม่แจกแจงรายละเอียด ผู้ใช้รายบุคคล ตัวอย่างเช่น รายงานต่อไปนี้จะระบุความถี่ที่พร็อพเพอร์ตี้ มีการเข้าถึงโดยใช้กลไกการเข้าถึงที่แตกต่างกัน:
รหัสพร็อพเพอร์ตี้ที่เข้าถึง | ชื่อพร็อพเพอร์ตี้ที่มีการเข้าถึง | กลไกการเข้าถึง | จำนวนการเข้าถึง |
---|---|---|---|
12345678 | DemoApp | Firebase | 31 |
12345678 | DemoApp | อินเทอร์เฟซผู้ใช้ Google Analytics | 624 |
12345678 | DemoApp | Google Ads | 83 |
12345678 | DemoApp | API ของ Google Analytics | 1744 |
รายงานนี้สามารถสร้างขึ้นได้ด้วยการค้นหา
มิติข้อมูล accessedPropertyId
accessedPropertyName
accessMechanism
และaccessCount
เมตริก
รายงานจะมี 1 แถวต่อชุดค่าผสมรหัสพร็อพเพอร์ตี้/กลไกการเข้าถึงแต่ละชุด
รายงานการเข้าถึงข้อมูลแต่ละรายการ
เพื่อสร้างรายงานที่แต่ละแถวอิงตามการเข้าถึงข้อมูลแต่ละรายการ
ยกเว้นมิติข้อมูล mostRecentAccessEpochTimeMicros
ในการค้นหาและ
ให้ใช้มิติข้อมูล epochTimeMicros
แทน คุณไม่จำเป็นต้องค้นหา
accessCount
เนื่องจากทุกแถวของรายงานประกอบด้วยข้อมูลเกี่ยวกับ
การเข้าถึงข้อมูลครั้งเดียว
รายงานต่อไปนี้มีข้อมูลโดยละเอียดเกี่ยวกับทุกครั้งที่ผู้ใช้ เข้าถึงพร็อพเพอร์ตี้ที่ระบุ
Unix Epoch Time Micros | อีเมลผู้ใช้ | รหัสพร็อพเพอร์ตี้ที่เข้าถึง | ชื่อพร็อพเพอร์ตี้ที่มีการเข้าถึง | IP ผู้ใช้ | กลไกการเข้าถึง | ข้อมูลค่าใช้จ่ายที่แสดงผล | ข้อมูลรายได้ที่แสดงผล |
---|---|---|---|---|---|---|---|
1525220215025371 | Bola@example.net | 12345678 | DemoApp | 1.2.3.1 | อินเทอร์เฟซผู้ใช้ Google Analytics | จริง | จริง |
1525220645645645 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | อินเทอร์เฟซผู้ใช้ Google Analytics | เท็จ | เท็จ |
1525220211312322 | Bola@example.net | 12345678 | DemoApp | 11.22.33.11 | Google Ads | จริง | เท็จ |
1525220210234221 | Alex@example.net | 12345678 | DemoApp | 11.22.33.22 | Firebase | เท็จ | เท็จ |
1525220215028368 | Alex@example.net | 12345678 | DemoApp | 1.2.3.2 | Google Ads | เท็จ | เท็จ |
1525220214234231 | Mahan@example.net | 12345678 | DemoApp | 11.22.33.55 | Google Ads | จริง | จริง |
1525220423423452 | Charlie@example.net | 12345678 | DemoApp | 1.2.3.3 | API ของ Google Analytics | จริง | เท็จ |
1525220132312333 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Ads | จริง | จริง |
รายงานนี้สามารถสร้างขึ้นได้ด้วยการค้นหา
มิติข้อมูล epochTimeMicros
, userEmail
accessedPropertyId
, accessedPropertyName
, userIP
, accessMechanism
costDataReturned
, revenueDataReturned
ไลบรารีของไคลเอ็นต์
ดูคู่มือเริ่มใช้งานฉบับย่อสำหรับคำอธิบายเกี่ยวกับ วิธีติดตั้งและกำหนดค่าไลบรารีของไคลเอ็นต์
ต่อไปนี้คือตัวอย่างที่ใช้ไลบรารีของไคลเอ็นต์ 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}")