Yönetici API v1 runAccessReport
yöntemini kullanarak Veri Erişimi raporları oluşturabilirsiniz. Bu rapor, bir kullanıcının Google Analytics verilerini her okuduğunda size gösterir. Veri erişimi kayıtları 2 yıla kadar saklanır. Veri erişimi raporları yalnızca Yönetici rolüne sahip kullanıcılar tarafından kullanılabilir.
İstemci kitaplığını kullanarak veri erişimi raporu isteme
Veri erişimi raporlarını kullanmaya başlamanın en hızlı yolu istemci kitaplıklarını kullanmaktır.
Google Analytics istemci kitaplıklarının nasıl yükleneceği ve yapılandırılacağıyla ilgili açıklama için Hızlı başlangıç kılavuzuna bakın.
Aşağıda, Python istemci kitaplığını kullanarak bir veri erişimi sorgusu çalıştıran ve yanıtı yazdıran bir örnek verilmiştir.
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}")
Temel raporlarla paylaşılan özellikler
Veri erişimi raporu istekleri, birçok ortak özellik için temel rapor istekleriyle aynı anlamlara sahiptir. Örneğin, sayfalandırma, boyut filtreleri ve tarih aralıkları her iki rapor türünde de aynı şekilde çalışır.
Data API v1'deki Core raporlarına genel bakış ile ilgili bilgi edinin ve ardından Veri Erişimi raporları hakkında daha fazla bilgi edinmek için bu sayfaya dönün.
Veri erişimi raporu oluşturma
Veri erişimi raporu istemek için runAccessReport yöntemini kullanın.
Raporlama birimi seçme
Data API v1'in temel raporlama işlevine benzer şekilde, Google Analytics Admin API v1'in runAccessReport yöntemi, Google Analytics mülk tanımlayıcısı için URL istek yolunda properties/GA_PROPERTY_ID
biçiminde bir değer belirtir. Örneğin:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
Oluşturulan Veri Erişimi raporu, belirtilen Google Analytics mülkünün Google Analytics veri erişimi kayıtlarına göre oluşturulur.
Admin API istemci kitaplıklarından birini kullanıyorsanız istek URL'si yolunu manuel olarak değiştirmeniz gerekmez. Çoğu API istemcisi, properties/GA_PROPERTY_ID
biçiminde bir dize bekleyen bir property
parametresi sağlar. İstemci kitaplıklarını kullanma örneği için bu sayfanın başındaki kod snippet'ine bakın.
Boyut ve metrikleri seçme
Boyutlar, mülkünüze ait erişim verilerini tanımlar ve gruplandırır. Örneğin, userEmail
boyutu, raporlama verilerine erişen kullanıcının e-posta adresini gösterir.
Rapor yanıtlarındaki boyut değerleri dizelerdir.
Metrikler, bir raporun nicel ölçümlerini temsil eder. accessCount
metriği, veri erişimi kayıtlarının toplam sayısını döndürür.
Veri erişimi rapor isteklerinde kullanılabilen boyut ve metrik adlarının tam listesi için Veri Erişimi Şeması'na bakın.
Raporu isteme
Veri Erişimi raporları istemek için bir RunAccessReportRequest nesnesi oluşturun. Şu istek parametreleriyle başlamanızı öneririz:
- tarih aralıkları alanında en az bir geçerli giriş olmalıdır.
- dimensions alanında en az bir geçerli giriş olmalıdır.
epochTimeMicros
boyutu kullanılmıyorsa bir rapordaki her boyut değeri kombinasyonu için nicel veriler almak üzere metrics alanında en az bir geçerli giriş olmalıdır.
Önerilen alanları içeren örnek bir istek aşağıda verilmiştir. Bu sorgu, kullanıcı e-postalarının listesini, son 7 gün içinde belirtilen mülke en son eriştikleri zamanı ve ilgili erişim sayısını oluşturur.
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"
}
]
}
Yanıtı okuyun
Veri Erişimi raporu yanıtı temel olarak bir başlık ve satırlardan oluşur. Üstbilgi, rapordaki sütunları listeleyen AccessDimensionHeaders
ve AccessMetricHeaders
öğelerinden oluşur.
Her erişim raporu satırı, rapordaki sütunlar için AccessDimensionValues
ve AccessMetricValues
öğelerinden oluşur. Sütunların sıralaması istek, başlık ve her satırda tutarlı olmalıdır.
Önceki örnek istek için örnek bir yanıt aşağıda verilmiştir:
{
"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
}
Erişim kayıtlarına göre filtreleme
Rapor yanıtını filtreyle eşleşen belirli boyut değerleriyle kısıtlamak için RunAccessReportRequest nesnesinin dimensionFilter alanını kullanın.
Aşağıdaki örnekte, Alex@example.net
e-posta adresine sahip tek bir kullanıcının erişim kayıtlarına göre filtreleme yapılarak bağımsız veri erişimi kayıtlarına dayalı bir rapor oluşturulmaktadır. Raporda her erişim kaydının zamanı, kullanıcının e-posta adresi ve IP adresi yer alır.
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"
}
}
}
}
Benzer şekilde, RunAccessReportRequest
nesnesinin metricFilter
alanı, rapor yanıtını filtreyle eşleşen belirli metrik değerleriyle kısıtlamak için kullanılabilir.
Aşağıdaki örnekte, belirtilen mülke 100'den fazla kez erişen tüm kullanıcıların e-postaları ve erişim sayıları içeren bir rapor oluşturulur.
HTTP
{
"dateRanges": [
{
"startDate": "7daysAgo",
"endDate": "today"
}
],
"dimensions": [
{
"dimensionName": "userEmail"
}
],
"metricFilter": {
"accessFilter": {
"numericFilter": {
"operation": "GREATER_THAN",
"value": {
"int64Value": 100
}
},
"fieldName": "accessCount"
}
},
"metrics": [
{
"metricName": "accessCount"
}
]
}
Örnek raporlar
Deneyebileceğiniz bazı örnek raporlar aşağıda verilmiştir.
En son erişim
runAccessReport
kullanılarak oluşturulabilecek aşağıdaki örnek erişim raporu:
Dönemde son erişimden beri geçen süre (mikrosaniye) | Kullanıcı e-posta adresi | Erişim sayısı |
---|---|---|
1525220215025371 | Bola@example.net | 5 |
1525220215028361 | Alex@example.net | 36 |
1525220215027671 | Charlie@example.net | 1153 |
1525220215027341 | Mahan@example.net | 1 |
Bu rapor, boyutlar mostRecentAccessEpochTimeMicros
, userEmail
ve accessCount
metriği sorgulanarak oluşturulabilir. Rapor her kullanıcı için bir satır içerir: mostRecentAccessEpochTimeMicros
boyutu, mülke erişen her kullanıcının veri erişim kayıtlarını toplar ve her satır için son erişim zamanını (Unix başlangıç zamanından itibaren mikrosaniye cinsinden) döndürür.
Kullanıcı erişimi dökümü
Kullanıcı erişimlerinin erişim mekanizmasına (ör.Google Analytics kullanıcı arayüzü, API vb.) göre dökümünü içeren raporlar da faydalı raporlara örnek gösterilebilir.
Dönemde son erişimden beri geçen süre (mikrosaniye) | Kullanıcı e-posta adresi | Erişim mekanizması | Erişim sayısı |
---|---|---|---|
1525220215028367 | Alex@example.net | Firebase | 31 |
1525220215555778 | Alex@example.net | Google Analytics Kullanıcı Arayüzü | 1 |
1525220215022378 | Bola@example.net | Google Analytics Kullanıcı Arayüzü | 65 |
1525220215026389 | Bola@example.net | Google Analytics API | 894 |
1525220215025631 | Charlie@example.net | Google Analytics API | 67 |
1525220215068325 | Mahan@example.net | Google Ads | 3 |
Bu rapor, mostRecentAccessEpochTimeMicros
, userEmail
, accessMechanism
boyutları ve accessCount
metriği sorgulanarak oluşturulabilir.
Rapor, her kullanıcı/erişim mekanizması kombinasyonu için bir satır içerir. mostRecentAccessEpochTimeMicros
boyutu, kullanıcının belirtilen erişim mekanizmasını kullanarak mülke en son ne zaman eriştiğini içerir.
Mülk erişimine genel bakış
Bir mülk için tek tek kullanıcılara göre döküm oluşturmadan rapor oluşturabilirsiniz. Örneğin, aşağıdaki raporda bir mülke farklı erişim mekanizmaları kullanılarak ne sıklıkta erişildiği belirtilmektedir:
Erişilen mülkün kimliği | Erişilen mülkün adı | Erişim mekanizması | Erişim sayısı |
---|---|---|---|
12345678 | DemoApp | Firebase | 31 |
12345678 | DemoApp | Google Analytics Kullanıcı Arayüzü | 624 |
12345678 | DemoApp | Google Ads | 83 |
12345678 | DemoApp | Google Analytics API | 1744 |
Bu rapor, accessedPropertyId
, accessedPropertyName
, accessMechanism
boyutları ve accessCount
metriği sorgulanarak oluşturulabilir.
Rapor, her mülk kimliği/erişim mekanizması kombinasyonu için bir satır içerir.
Bireysel veri erişimi
Her satırın ayrı bir veri erişimi kaydını temel aldığı bir rapor oluşturmak için mostRecentAccessEpochTimeMicros
boyutunu sorgudan çıkarın ve bunun yerine epochTimeMicros
boyutunu kullanın. Raporun her satırı tek bir veri erişimi olayı hakkında bilgi içerdiğinden accessCount
metriğini sorgulamak gerekmez.
Aşağıdaki rapor, bir kullanıcının belirtilen tesise her erişiminin ayrıntılı bilgilerini içerir.
Unix epoch zamanı (mikrosaniye) | Kullanıcı e-posta adresi | Erişilen mülkün kimliği | Erişilen mülkün adı | Kullanıcının IP adresi | Erişim mekanizması | Döndürülen maliyet verileri | Döndürülen gelir verileri |
---|---|---|---|---|---|---|---|
1525220215025371 | Bola@example.net | 12345678 | DemoApp | 1.2.3.1 | Google Analytics Kullanıcı Arayüzü | true | true |
1525220645645645 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Analytics Kullanıcı Arayüzü | yanlış | yanlış |
1525220211312322 | Bola@example.net | 12345678 | DemoApp | 11.22.33.11 | Google Ads | true | yanlış |
1525220210234221 | Alex@example.net | 12345678 | DemoApp | 11.22.33.22 | Firebase | yanlış | yanlış |
1525220215028368 | Alex@example.net | 12345678 | DemoApp | 1.2.3.2 | Google Ads | yanlış | yanlış |
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 | yanlış |
1525220132312333 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Ads | true | true |
Bu rapor, epochTimeMicros
, userEmail
,
accessedPropertyId
, accessedPropertyName
, userIP
, accessMechanism
,
costDataReturned
, revenueDataReturned
boyutlarını sorgulayarak oluşturulabilir.