Google Analytics Admin API v1 מאפשר לגשת לדוחות גישה לנתונים באמצעות
runAccessReport
. הדוח מספק רשומות של כל פעם שמשתמש קורא את Google Analytics
נתוני דיווח. רשומות הגישה נשמרות למשך שנתיים לכל היותר. גישה לנתונים
דוחות זמינים רק למשתמשים עם תפקיד אדמין.
יצירת דוח גישה לנתונים
הדיווח על גישה לנתונים מסופק על ידי השיטה 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. רביעי מומלץ להתחיל עם הפרמטרים הבאים של הבקשה:
- לפחות רשומה חוקית אחת בתאריך טווחים השדה הזה.
- לפחות ערך תקין אחד ב מאפיינים השדה הזה.
- אם לא משתמשים במאפיין
epochTimeMicros
, צריך להזין לפחות ערך אחד תקין ב- ה מדדים שדה לקבלת נתונים כמותיים לכל שילוב של ערכי מאפיינים דוח.
בהמשך מוצגת בקשה לדוגמה עם השדות המומלצים. השאילתה הזו תיצור רשימת כתובות האימייל של משתמשים, הפעם האחרונה שבה הם ניגשו לנכס שצוין במהלך 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
:
ה-Micros של תקופת הגישה האחרונה | כתובת האימייל של המשתמש | מספר הרשאות הגישה |
---|---|---|
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 מיקרו-שניות מאז
תקופה של זמן מערכת) בכל שורה.
דוח פירוט הרשאות גישה של משתמשים
דוגמה נוספת לדוח שימושי הוא פירוט של גישות המשתמשים לפי 'גישה' מנגנון (למשל, ממשק משתמש של Google Analytics, API וכו').
ה-Micros של תקופת הגישה האחרונה | כתובת האימייל של המשתמש | מנגנון הגישה | מספר הרשאות הגישה |
---|---|---|---|
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
מדד.
הדוח מכיל שורה אחת לכל שילוב של מזהה נכס/מנגנון גישה.
דוח גישות לנתונים נפרדים
ליצור דוח שבו כל שורה מבוססת על גישה ספציפית לנתונים
רשומת, השמטת את המאפיין mostRecentAccessEpochTimeMicros
משאילתה
במקום זאת, צריך להשתמש במאפיין epochTimeMicros
. לא צריך לשלוח שאילתה
המדד accessCount
, מכיוון שכל שורה בדוח מכילה מידע על
אירוע אחד של גישה לנתונים.
הדוח הבא מכיל מידע מפורט על כל פעם שמשתמש ניגש לנכס שצוין.
מיקרו-שניות בשלב יוניקס (Unix epoch Time) | כתובת האימייל של המשתמש | מזהה נכס שבוצעה אליו גישה | שם נכס שבוצעה אליו גישה | כתובת IP של המשתמש | מנגנון הגישה | נתוני עלות שהוחזרו | נתוני הכנסה שהוחזרו |
---|---|---|---|---|---|---|---|
1525220215025371 | Bola@example.net | 12345678 | DemoApp | 1.2.3.1 | ממשק המשתמש של Google Analytics | true | true |
1525220645645645 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | ממשק המשתמש של 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 |
כדי ליצור את הדוח הזה,
מאפיינים 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}")