Admin API v1
runAccessReport
yöntemini kullanarak Veri Erişimi raporları oluşturabilirsiniz. Bu rapor, bir kullanıcının Google Analytics verilerini her okuyuşunu gösterir. Veri erişim 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üklenip yapılandırılacağıyla ilgili açıklama için Hızlı başlangıç kılavuzuna bakın.
Aşağıda, veri erişimi sorgusu çalıştıran ve yanıtı yazdıran Python istemci kitaplığını kullanan 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şim raporu istekleri, birçok ortak özellik için temel rapor istekleriyle aynı semantiğe 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 temel raporlara genel bakış başlıklı makaleyi inceleyin, 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 tüzel kişisi seçin
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ının bir URL istek yolunda properties/GA_PROPERTY_ID biçiminde belirtilmesini gerektirir. Örneğin:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
Oluşturulan Veri Erişimi raporu, belirtilen Google Analytics mülküne ait 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ın kullanımına örnek olarak bu sayfanın başındaki kod snippet'ine bakın.
Boyut ve metrikleri seçme
Boyutlar,
mülkünüzün erişim verilerini açıklar 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 dizedir.
Metrikler,
bir raporun nicel ölçümlerini temsil eder. accessCount metriği, toplam veri erişimi kaydı sayısını döndürür.
Veri Erişimi raporu isteklerinde kullanılabilen boyut ve metrik adlarının tam listesi için Veri Erişimi Şeması'na bakın.
Raporu isteyin
Veri erişim 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ş.
- dimensions alanında en az bir geçerli giriş.
epochTimeMicrosboyutunu kullanmıyorsanız bir rapordaki boyut değerlerinin her kombinasyonu için nicel veriler almak üzere metrikler alanında en az bir geçerli giriş.
Önerilen alanları içeren örnek bir isteği aşağıda bulabilirsiniz. Bu sorgu, kullanıcı e-postalarının bir listesini, son 7 gün içinde belirtilen mülke en son ne zaman eriştiklerini 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 değerlerinden oluşur. Sütunların sıralaması istekte, başlıkta ve her satırda tutarlıdır.
Aşağıda, önceki örnek istek için örnek bir yanıt 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, bireysel veri erişimi kayıtlarına dayalı bir rapor oluşturulur ve e-posta adresi Alex@example.net olan tek bir kullanıcının erişim kayıtları filtrelenir. 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-posta adreslerini ve erişim sayılarını içeren bir rapor oluşturulmaktadır.
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
Aşağıdaki örnek erişim raporu runAccessReport kullanılarak oluşturulabilir:
| En son erişim Unix epoch zamanı (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. Raporda her kullanıcı için bir satır bulunur: mostRecentAccessEpochTimeMicros boyutu, mülke erişen her kullanıcı için veri erişim kayıtlarını birleştirir ve her satır için son erişim zamanını (Unix mikrosaniye cinsinden) döndürür.
Kullanıcı erişimi dökümü
Yararlı bir raporun başka bir örneği, kullanıcı erişimlerinin erişim mekanizmasına (ör.Google Analytics kullanıcı arayüzü, API vb.) göre dökümüdür.
| En son erişim Unix epoch zamanı (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, boyutlar mostRecentAccessEpochTimeMicros, userEmail, accessMechanism ve accessCount metriği sorgulanarak oluşturulabilir.
Raporda her kullanıcı/erişim mekanizması kombinasyonu için bir satır bulunur. mostRecentAccessEpochTimeMicros boyutu, bir kullanıcının belirtilen erişim mekanizmasını kullanarak mülke en son eriştiği zamanı içerir.
Mülk erişimine genel bakış
Kullanıcıları tek tek ayırmadan bir mülk için rapor oluşturmak mümkündür. Ö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, boyutlar accessedPropertyId, accessedPropertyName, accessMechanism 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ına dayandığı bir rapor oluşturmak için sorgudan mostRecentAccessEpochTimeMicros boyutunu çıkarın ve bunun yerine epochTimeMicros boyutunu kullanın. Raporun her satırı tek bir veri erişimiyle ilgili bilgi içerdiğinden accessCount metriğini sorgulamak gerekmez.
Aşağıdaki rapor, bir kullanıcının belirtilen mülke her erişimiyle ilgili ayrıntılı bilgiler 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ü | doğru | doğru |
| 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 | doğru | 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 | doğru | doğru |
| 1525220423423452 | Charlie@example.net | 12345678 | DemoApp | 1.2.3.3 | Google Analytics API | doğru | yanlış |
| 1525220132312333 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Ads | doğru | doğru |
Bu rapor, boyutlar epochTimeMicros, userEmail, accessedPropertyId, accessedPropertyName, userIP, accessMechanism, costDataReturned, revenueDataReturned sorgulanarak oluşturulabilir.