אפשר ליצור דוחות של גישה לנתונים באמצעות השיטה runAccessReport
של Admin API v1. בדוח הזה מוצגות כל הפעמים שבהן משתמש קורא נתונים מ-Google Analytics. רשומות הגישה לנתונים נשמרות למשך עד שנתיים. דוחות הגישה לנתונים זמינים רק למשתמשים עם התפקיד אדמין.
שליחת בקשה לדוח גישה לנתונים באמצעות ספריית הלקוח
הדרך המהירה ביותר להתחיל לעבוד עם דוחות גישה לנתונים היא להשתמש בספריות הלקוח.
במדריך למתחילים מוסבר איך להתקין ולהגדיר את ספריות הלקוח של Google Analytics.
הנה דוגמה לשימוש בספריית הלקוח של 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, ואז לחזור לדף הזה כדי לקבל מידע נוסף על דוחות גישה לנתונים.
יצירת דוח גישה לנתונים
משתמשים ב-method runAccessReport כדי לבקש דוח גישה לנתונים.
בחירת ישות דיווח
בדומה לפונקציונליות הדיווח הבסיסית של 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. מומלץ להתחיל עם הפרמטרים הבאים של הבקשה:
- ישות תקינה אחת לפחות בשדה date ranges.
- ישות תקינה אחת לפחות בשדה dimensions.
- אם לא משתמשים במאפיין
epochTimeMicros
, צריך לפחות רשומה חוקית אחת בשדה metrics כדי לקבל נתונים כמותיים לכל שילוב של ערכי המאפיינים בדוח.
לפניכם דוגמה לבקשה עם השדות המומלצים. השאילתה הזו תיצור רשימה של כתובות האימייל של המשתמשים, את הפעם האחרונה שבה הם נכנסו לנכס שצוין במהלך 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 Access מורכבת בעיקר מכותרת ושורות. הכותרת מורכבת מהעמודות 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
:
המיקרו-שניות של תקופת זמן המערכת בגישה האחרונה לפי ראשית זמן יוניקס (Unix epoch) | כתובת האימייל של המשתמש | מספר הפעמים שבוצעה גישה |
---|---|---|
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 וכו').
המיקרו-שניות של תקופת זמן המערכת בגישה האחרונה לפי ראשית זמן יוניקס (Unix epoch) | כתובת האימייל של המשתמש | מנגנון הגישה | מספר הפעמים שבוצעה גישה |
---|---|---|---|
1525220215028367 | Alex@example.net | Firebase | 31 |
1525220215555778 | Alex@example.net | ממשק המשתמש של Google Analytics | 1 |
1525220215022378 | Bola@example.net | ממשק המשתמש של Google Analytics | 65 |
1525220215026389 | Bola@example.net | Google Analytics API | 894 |
1525220215025631 | Charlie@example.net | Google Analytics API | 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 | Google Analytics API | 1744 |
אפשר ליצור את הדוח הזה על ידי שליחת שאילתה על המאפיינים accessedPropertyId
, accessedPropertyName
, accessMechanism
והמדד accessCount
.
הדוח מכיל שורה אחת לכל שילוב של מזהה נכס/מנגנון גישה.
גישה לנתונים של אנשים פרטיים
כדי ליצור דוח שבו כל שורה מבוססת על רשומת גישה בודדת לנתונים, צריך להשמיט את המאפיין mostRecentAccessEpochTimeMicros
מהשאילתה ולהשתמש במקום זאת במאפיין epochTimeMicros
. אין צורך לשלוח שאילתה לגבי המדד accessCount
, כי כל שורה בדוח מכילה מידע על אירוע יחיד של גישה לנתונים.
הדוח הבא מכיל מידע מפורט על כל פעם שמשתמש נכנס לנכס שצוין.
המיקרו-שניות של תקופת זמן המערכת לפי ראשית זמן יוניקס (Unix epoch) | כתובת האימייל של המשתמש | מזהה הנכס שבוצעה אליו גישה | שם הנכס שבוצעה אליו גישה | כתובת 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 | Google Analytics API | TRUE | FALSE |
1525220132312333 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Ads | TRUE | TRUE |
אפשר ליצור את הדוח הזה על ידי שליחת שאילתה לגבי המאפיינים epochTimeMicros
, userEmail
, accessedPropertyId
, accessedPropertyName
, userIP
, accessMechanism
, costDataReturned
ו-revenueDataReturned
.