Veri Erişimi raporları

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.
  • 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ı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.