Yönetici API'si v1
runAccessReport
yöntemini kullanarak veri erişimi raporları oluşturabilirsiniz. Bu rapor, bir kullanıcının Google Analytics verilerini her okuduğu zamanı 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şim raporu isteğinde bulunma
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çıklamalar için Hızlı başlangıç kılavuzu'na bakın.
Aşağıda, Python istemci kitaplığını kullanarak 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şim raporu istekleri, birçok yaygın özellik için temel rapor istekleriyle aynı anlamsal yapıya 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ış hakkında bilgi edinin. Ardından, Veri Erişimi raporları hakkında daha fazla bilgi edinmek için bu sayfaya geri dönün.
Veri erişimi raporu oluşturma
Veri erişimi raporu istemek için runAccessReport yöntemini kullanın.
Raporlama yapan birim seçin
Veri API'si v1'in temel raporlama işlevine benzer şekilde, Google Analytics Admin API v1'in runAccessReport yöntemi, Google Analytics mülk kimliğinin properties/GA_PROPERTY_ID biçiminde bir URL isteği yolu içinde belirtilmesini gerektirir. Örneğin:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
Elde edilen 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, property biçiminde bir dize bekleyen bir properties/GA_PROPERTY_ID parametresi sağlar. İstemci kitaplıklarını kullanma örneği için bu sayfanın başındaki kod snippet'ine bakın.
Boyutları ve metrikleri seçme
Boyutlar, mülkünüzün erişim verilerini açıklar ve gruplandırır. Örneğin, boyut
userEmail, 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 ifade 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şim Şeması'na bakın.
Raporu İste
Veri erişim raporları istemek için RunAccessReportRequest nesnesi oluşturun. Şu istek parametreleriyle başlamanızı öneririz:
- date ranges alanında en az bir geçerli giriş.
- dimensions alanında en az bir geçerli giriş olmalıdır.
epochTimeMicrosboyutu 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ın yer aldığı örnek bir istek aşağıda verilmiştir. Bu sorgu, kullanıcı e-postalarının, son 7 gün içinde belirtilen mülke en son erişim zamanlarının ve ilgili erişim sayısının listesini 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ı okuma
Veri erişimi raporu yanıtı, öncelikle bir başlık ve satırlardan oluşur. Üstbilgi, rapordaki sütunları listeleyen
AccessDimensionHeaders
ve
AccessMetricHeaders
simgelerinden oluşur.
Her bir 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ıklarda ve her satırda tutarlıdır.
Yukarıdaki örnek isteğe ilişkin örnek 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 sınırlamak için RunAccessReportRequest nesnesinin dimensionFilter alanını kullanın.
Aşağıdaki örnek, e-posta adresi Alex@example.net olan tek bir kullanıcının erişim kayıtlarına göre filtreleme yaparak bireysel veri erişimi kayıtlarına dayalı bir rapor oluşturur. Rapor, her erişim kaydının zamanını, kullanıcının e-posta ve IP adresini içerir.
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, metricFilter alanındaki RunAccessReportRequest nesnesi, rapor yanıtını filtreyle eşleşen belirli metrik değerleriyle sınırlamak için kullanılabilir.
Aşağıdaki örnek, belirtilen mülke 100'den fazla kez erişen tüm kullanıcıların e-postalarını ve erişim sayılarını içeren bir rapor oluşturur.
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 bulabilirsiniz.
En son erişim
runAccessReport kullanılarak oluşturulabilen aşağıdaki örnek erişim raporu:
| En 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ı için veri erişim kayıtlarını toplar
ve her satır için son erişim zamanını (dönem başlangıcından beri geçen Unix mikrosaniyeleri cinsinden) döndürür.
Kullanıcı erişimi dökümü
Faydalı bir rapora başka bir örnek olarak, kullanıcı erişimlerinin Erişim Mekanizmasına (ör.Google Analytics kullanıcı arayüzü, API vb.) göre dökümü verilebilir.
| En 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 son eriştiği zamanı içerir.
Mülk erişimine genel bakış
Mülk için rapor oluştururken tek tek kullanıcılar hakkında ayrıntılı bilgi vermemek 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, 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ı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şimi oluşumu hakkında bilgi içerdiğinden accessCount metriğinin sorgulanması gerekmez.
Aşağıdaki raporda, bir kullanıcının belirtilen mülke her eriştiği zamanla ilgili ayrıntılı bilgiler yer alır.
| Unix epoch mikrosaniye cinsinden zaman | 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, epochTimeMicros, userEmail, accessedPropertyId, accessedPropertyName, userIP, accessMechanism, costDataReturned, revenueDataReturned boyutları sorgulanarak oluşturulabilir.