Raporty dotyczące dostępu do danych możesz tworzyć za pomocą metody Admin API v1runAccessReport
. Ten raport pokazuje, ile razy użytkownik odczytał dane Google Analytics. Rejestry dostępu do danych są przechowywane przez maksymalnie 2 lata. Raporty dotyczące dostępu do danych są dostępne tylko dla użytkowników z rolą Administrator.
Prośba o raport Dostęp do danych za pomocą biblioteki klienta
Najszybszym sposobem na rozpoczęcie korzystania z raportów dostępu do danych jest użycie bibliotek klienta.
W przewodniku wdrożeniowym znajdziesz wyjaśnienie, jak zainstalować i skonfigurować biblioteki klienta Google Analytics.
Oto przykład użycia biblioteki klienta Pythona, która wykonuje zapytanie o dostęp do danych i wypisuje odpowiedź.
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}")
Funkcje wspólne z raportami podstawowymi
W przypadku żądań raportów dostępu do danych obowiązuje ta sama semantyka co w przypadku żądań raportów podstawowych dotyczących wielu popularnych funkcji. Na przykład podział na strony, filtry wymiarów i zakresy dat działają tak samo w obu typach raportów.
Zapoznaj się z omówieniem raportów podstawowych w interfejsie Data API v1, a potem wróć na tę stronę, aby dowiedzieć się więcej o raportach dostępu do danych.
Tworzenie raportu Dostęp do danych
Aby poprosić o raport Dostęp do danych, użyj metody runAccessReport.
Wybierz podmiot raportowania
Podobnie jak w przypadku podstawowej funkcji raportowania w interfejsie Data API w wersji 1, metoda runAccessReport w interfejsie Google Analytics Admin API w wersji 1 wymaga podania identyfikatora usługi w Google Analytics w ścieżce żądania URL w postaci properties/GA_PROPERTY_ID
, np.:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
Wygenerowany raport Dostęp do danych jest tworzony na podstawie rekordów dostępu do danych Google Analytics w wybranej usłudze w Google Analytics.
Jeśli używasz jednej z bibliotek klienta interfejsu Admin API, nie musisz ręcznie manipulować ścieżką adresu URL żądania. Większość klientów API udostępnia parametr property
, który oczekuje ciągu w formie properties/GA_PROPERTY_ID
. Przykład użycia bibliotek klienta znajdziesz w fragmentie kodu na początku tej strony.
Wybieranie wymiarów i danych
Wymiary opisują i grupują dane dostępu do Twojej usługi. Na przykład wymiar userEmail
wskazuje adres e-mail użytkownika, który uzyskał dostęp do danych raportowania.
Wartości wymiarów w odpowiedziach na raporty są ciągami znaków.
Dane to ilościowe wyniki pomiarów w raporcie. Dane accessCount
zwracają łączną liczbę rekordów dostępu do danych.
Pełną listę nazw wymiarów i danych dostępnych w żądaniach raportów dostępu do danych znajdziesz w schemacie dostępu do danych.
Prośba o raport
Aby poprosić o raporty dostępu do danych, utwórz obiekt RunAccessReportRequest. Zalecamy zacząć od tych parametrów żądania:
- co najmniej 1 prawidłowy wpis w polu date ranges;
- co najmniej 1 prawidłowy wpis w polu dimensions,
- Jeśli nie używasz wymiaru
epochTimeMicros
, musisz mieć co najmniej 1 prawidłowy wpis w polu metrics, aby otrzymywać dane ilościowe dla każdej kombinacji wartości wymiarów w raporcie.
Oto przykładowa prośba z zalecanymi polami. To zapytanie wygeneruje listę adresów e-mail użytkowników, ich ostatni czas dostępu do określonej usługi w ciągu ostatnich 7 dni oraz odpowiednią liczbę dostępów.
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"
}
]
}
Czytanie odpowiedzi
Odpowiedź na raport Dostęp do danych składa się głównie z nagłówka i wierszy. Nagłówek zawiera AccessDimensionHeaders
i AccessMetricHeaders
, które zawierają listę kolumn w raporcie.
Każdy wiersz raportu dostępu zawiera kolumny AccessDimensionValues
i AccessMetricValues
. Kolejność kolumn jest spójna w zapytaniu, nagłówku i każdym wierszu.
Oto przykładowa odpowiedź na poprzednie przykładowe żądanie:
{
"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
}
Filtrowanie według rekordów dostępu
Użyj pola dimensionFilter obiektu RunAccessReportRequest, aby ograniczyć odpowiedź raportu do określonych wartości wymiarów pasujących do filtra.
W tym przykładzie generowany jest raport na podstawie poszczególnych rekordów dostępu do danych, filtrując rekordy dostępu pojedynczego użytkownika o adresie e-mailAlex@example.net
. Raport zawiera czas każdego rekordu dostępu, adres e-mail użytkownika oraz adres 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"
}
}
}
}
Podobnie pole metricFilter
obiektu RunAccessReportRequest
może służyć do ograniczania odpowiedzi raportu do określonych wartości danych, które pasują do filtra.
W tym przykładzie generowany jest raport zawierający adresy e-mail i liczbę dostępów wszystkich użytkowników, którzy uzyskali dostęp do określonej usługi ponad 100 razy.
HTTP
{
"dateRanges": [
{
"startDate": "7daysAgo",
"endDate": "today"
}
],
"dimensions": [
{
"dimensionName": "userEmail"
}
],
"metricFilter": {
"accessFilter": {
"numericFilter": {
"operation": "GREATER_THAN",
"value": {
"int64Value": 100
}
},
"fieldName": "accessCount"
}
},
"metrics": [
{
"metricName": "accessCount"
}
]
}
Przykładowe raporty
Oto kilka raportów, które możesz wypróbować.
Ostatni dostęp
Poniżej znajdziesz przykładowy raport dostępu, który można utworzyć za pomocą runAccessReport
:
Ostatni moment uzyskania dostępu w epoce Unixa, w mikrosekundach | Adres e-mail użytkownika | Liczba przypadków uzyskania dostępu |
---|---|---|
1525220215025371 | Bola@example.net | 5 |
1525220215028361 | Alex@example.net | 36 |
1525220215027671 | Charlie@example.net | 1153 |
1525220215027341 | Mahan@example.net | 1 |
Ten raport można wygenerować, wysyłając zapytanie do wymiarów mostRecentAccessEpochTimeMicros
, userEmail
i danych accessCount
. Raport zawiera po jednym wierszu na każdego użytkownika: wymiar mostRecentAccessEpochTimeMicros
agreguje rekordy dostępu do danych dla każdego użytkownika, który uzyskuje dostęp do usługi, i zwraca czas ostatniego dostępu (w mikrosekundach Unixa od epoki) dla każdego wiersza.
Zestawienie dostępu użytkowników
Innym przydatnym raportem jest podział dostępów użytkowników według mechanizmu dostępu (np.interfejs użytkownika Google Analytics, interfejs API itp.).
Ostatni moment uzyskania dostępu w epoce uniksowej, w mikrosekundach | Adres e-mail użytkownika | Mechanizm dostępu | Liczba przypadków uzyskania dostępu |
---|---|---|---|
1525220215028367 | Alex@example.net | Firebase | 31 |
1525220215555778 | Alex@example.net | Interfejs Google Analytics | 1 |
1525220215022378 | Bola@example.net | Interfejs Google Analytics | 65 |
1525220215026389 | Bola@example.net | Interfejs Google Analytics API | 894 |
1525220215025631 | Charlie@example.net | Interfejs Google Analytics API | 67 |
1525220215068325 | Mahan@example.net | Google Ads | 3 |
Ten raport można wygenerować, wysyłając zapytanie o wymiary mostRecentAccessEpochTimeMicros
, userEmail
, accessMechanism
i dane accessCount
.
Raport zawiera 1 wiersz na każdą kombinację użytkownika i mechanizmu dostępu. Wymiar mostRecentAccessEpochTimeMicros
zawiera informacje o tym, kiedy użytkownik ostatnio uzyskał dostęp do usługi za pomocą określonego mechanizmu dostępu.
Omówienie dostępu do usługi
Można wygenerować raport dotyczący usługi bez podziału na poszczególnych użytkowników. Na przykład z tego raportu dowiesz się, jak często usługa jest używana za pomocą różnych mechanizmów dostępu:
Identyfikator usługi, do której uzyskano dostęp | Nazwa usługi, do której uzyskano dostęp | Mechanizm dostępu | Liczba przypadków uzyskania dostępu |
---|---|---|---|
12345678 | DemoApp | Firebase | 31 |
12345678 | DemoApp | Interfejs Google Analytics | 624 |
12345678 | DemoApp | Google Ads | 83 |
12345678 | DemoApp | Interfejs Google Analytics API | 1744 |
Ten raport można wygenerować, wysyłając zapytanie do wymiarów accessedPropertyId
, accessedPropertyName
, accessMechanism
i danych accessCount
.
Raport zawiera 1 wiersz na każdą kombinację identyfikatora usługi i mechanizmu dostępu.
Dostęp do poszczególnych danych
Aby wygenerować raport, w którym każdy wiersz jest oparty na osobnym rekordzie dostępu do danych, pomiń wymiar mostRecentAccessEpochTimeMicros
w zapytaniu i użyj zamiast niego wymiaru epochTimeMicros
. Nie musisz wysyłać zapytania do danych accessCount
, ponieważ każdy wiersz raportu zawiera informacje o pojedynczym dostępie do danych.
Ten raport zawiera szczegółowe informacje o każdej próbie dostępu użytkownika do określonej usługi.
Mikrosekundy czasu uniksowego | Adres e-mail użytkownika | Identyfikator usługi, do której uzyskano dostęp | Nazwa usługi, do której uzyskano dostęp | Adres IP użytkownika | Mechanizm dostępu | Zwrócone dane o kosztach | Zwrócone dane o przychodach |
---|---|---|---|---|---|---|---|
1525220215025371 | Bola@example.net | 12345678 | DemoApp | 1.2.3.1 | Interfejs Google Analytics | prawda | prawda |
1525220645645645 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Interfejs Google Analytics | fałsz | fałsz |
1525220211312322 | Bola@example.net | 12345678 | DemoApp | 11.22.33.11 | Google Ads | prawda | fałsz |
1525220210234221 | Alex@example.net | 12345678 | DemoApp | 11.22.33.22 | Firebase | fałsz | fałsz |
1525220215028368 | Alex@example.net | 12345678 | DemoApp | 1.2.3.2 | Google Ads | fałsz | fałsz |
1525220214234231 | Mahan@example.net | 12345678 | DemoApp | 11.22.33.55 | Google Ads | prawda | prawda |
1525220423423452 | Charlie@example.net | 12345678 | DemoApp | 1.2.3.3 | Interfejs Google Analytics API | prawda | fałsz |
1525220132312333 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Ads | prawda | prawda |
Ten raport można wygenerować, wysyłając zapytanie do wymiarów epochTimeMicros
, userEmail
, accessedPropertyId
, accessedPropertyName
, userIP
, accessMechanism
, costDataReturned
, revenueDataReturned
.