Genel bakış

Google Analytics Admin API v1, aşağıdakini kullanarak verilere erişmenize olanak tanır: runAccessReport yöntemidir. Rapor, bir kullanıcının Google Analytics'i her okuduğunda kaydedilen kayıtları sunar. raporlama verileri. 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.

Veri Erişimi Raporu Oluşturma

Veri erişimi raporları runAccessReport yöntemini kullanın.

Temel Raporlarda Paylaşılan Özellikler

Veri Erişimi rapor istekleri, Temel rapor ile aynı anlama sahip isteklerinde bulunabilir. Örneğin: Sayfaları numaralandırma, Boyut Filtreleri, Tarih Aralıkları spesifikasyonu aynı davranıyor "Temel Raporlar" olarak sunulur.

Google Analytics 4'teki Temel Raporlama işlevine Data API v1, Doküman, Veri Erişimi rapor isteklerine özgü özelliklere odaklanacaktır.

Rapor Eden Tüzel Kişi Seçme

Temel raporlamaya benzer işlevlerinin Veri API'si v1, runAccessReport Google Analytics Admin API v1'in yöntemi, Google Analytics için belirtilen işletme tanımlayıcısının properties/GA_PROPERTY_ID biçiminde bir URL istek yolu, örneğin:

  POST  https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport

Elde edilen veri erişimi raporu, Google Analytics temel alınarak oluşturulur Belirtilen Google Analytics mülküne ait veri erişim kayıtları.

Admin API istemci kitaplıklarından birini kullanıyorsanız: İstek URL'si yolunu manuel olarak değiştirmeye gerek yoktur. Çoğu API istemcisi şu biçimde bir dize bekleyen bir property parametresi sağlayın: properties/GA_PROPERTY_ID. Kod snippet'ini görmek için istemci kitaplıklarını kullanmaya ilişkin bir örnek için bu kılavuzun sonuna bakın.

Boyutlar ve Metrikler

Boyutlar Mülkünüzün erişim verilerini açıklama ve gruplandırma. Örneğin, userEmail, raporlama verilerine erişen kullanıcının e-posta adresini belirtir. Rapor yanıtlarındaki boyut değerleri dizedir.

Metrikler bir raporun nicel ölçümlerini temsil eder. accessCount metriği veri erişim kayıtlarının toplam sayısını döndürür.

Boyutların ve boyutların tam listesi için Veri Erişim Şeması'na bakın Veri erişim raporu isteklerinde kullanılabilen metrik adları.

Veri Erişim Raporu İsteği

Veri erişimi raporları istemek için bir RunAccessReportRequest nesnesi oluşturun. Biz şu istek parametreleriyle başlamanızı öneririz:

Aşağıda, önerilen alanları içeren bir istek örneği verilmiştir. Bu sorgu, kullanıcı e-postalarının listesi, belirtilen mülke en son eriştiği zaman erişim izni veriyorsunuz.

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ı Bildir

Kavram olarak Temel raporlamaya benzer işlevleriyle ilgili daha fazla bilgi edinin. Veri Erişimi Raporu Yanıtı erişim raporu isteği temel olarak bir başlık ve satırlardan oluşur. Başlık şunlardan oluşur: AccessDimensionHeaders ve AccessMetricHeaders Rapordaki sütunları listeleyen bir kampanya oluşturun.

Her bir erişim raporu satır şunlardan oluşur: AccessDimensionValues ve AccessMetricValues . Sütunların sıralaması tutarlıdır istek, başlık ve satır olabilir.

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ını Filtreleme

Şunu kullanın: dimensionFilter alanının RunAccessReportRequest boyutla eşleşen belirli boyut değerleriyle kısıtlamak için filtresini uygulayabilirsiniz.

Aşağıdaki örnek, bağımsız veri erişimine dayalı bir rapor oluşturur kayıtları, e-posta adresi olan tek bir kullanıcının erişim kayıtlarını filtreleyerek Alex@example.net Bu rapor, her erişim kaydının zamanını, kullanıcının e-posta ve IP adresi.

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"
      }
    }
  }
}

Aynı şekilde, metricFilter alanının RunAccessReportRequest nesne, rapor yanıtını belirli metrik değerleriyle kısıtlamak için kullanılabilir. filtreyle eşleşiyor.

Aşağıdaki örnekte, belirtilen mülke 100'den fazla kez erişen tüm kullanıcılar.

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.

Kullanıcı Başına En Son Erişim Raporu

runAccessReport kullanılarak oluşturulabilecek aşağıdaki örnek erişim raporu:

En Son Erişim Dönemi Zaman Mikro Değeri Kullanıcı E-postası 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. İlgili içeriği oluşturmak için kullanılan rapor her kullanıcı için bir satır içeriyor: mostRecentAccessEpochTimeMicros boyut, mülke erişen her kullanıcıya ait veri erişim kayıtlarını toplar ve son erişim zamanını döndürür ( epoch) kaldırın.

Kullanıcı Erişimi Döküm Raporu

Faydalı bir rapora başka bir örnek, Erişime göre kullanıcı erişimlerinin dökümüdür Mekanizma (ör. Google Analytics Kullanıcı Arayüzü, API vb.)

En Son Erişim Dönemi Zaman Mikro Değeri Kullanıcı E-postası 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'sı 894
1525220215025631 Charlie@example.net Google Analytics API'sı 67
1525220215068325 Mahan@example.net Google Ads 3

Bu rapor, boyutlar mostRecentAccessEpochTimeMicros, userEmail, accessMechanism ve accessCount metrik.

Raporda, her bir kullanıcı/erişim mekanizması kombinasyonu için bir satır bulunur. İlgili içeriği oluşturmak için kullanılan mostRecentAccessEpochTimeMicros boyutu, kullanıcının en son yaptığı zamandır Belirtilen Erişim Sistemini kullanarak mülke erişti.

Mülk Erişimine Genel Bakış Raporu

Bir mülk için ayrıntıya inmeden rapor oluşturmak mümkündür elde edebilirsiniz. Örneğin, aşağıdaki raporda bir mülkün ne sıklıkla farklı Erişim Mekanizmaları kullanılarak erişilebilir:

Erişilen Mülk Kimliği Erişilen Mülk 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'sı 1744

Bu rapor, boyutlar accessedPropertyId, accessedPropertyName, accessMechanism ve accessCount metrik.

Raporda, her bir mülk kimliği/erişim mekanizması kombinasyonu için bir satır bulunur.

Bireysel Veri Erişimleri Raporu

Her satırın bağımsız veri erişimine dayalı olduğu bir rapor oluşturmak için kaydı, sorgudan mostRecentAccessEpochTimeMicros boyutunu çıkarın ve bunun yerine epochTimeMicros boyutunu kullanın. Her bir accessCount metriğidir. Raporun her satırında bir tek bir veri erişimi oluşumu.

Aşağıdaki rapor, bir kullanıcının her arama işlemi ile ilgili belirtilen mülke erişti.

Unix Epoch Zaman Mikro Değeri Kullanıcı E-postası Erişilen Mülk Kimliği Erişilen Mülk 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ü false false
1525220211312322 Bola@example.net 12345678 DemoApp 11.22.33.11 Google Ads true false
1525220210234221 Alex@example.net 12345678 DemoApp 11.22.33.22 Firebase false false
1525220215028368 Alex@example.net 12345678 DemoApp 1.2.3.2 Google Ads false false
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'sı true false
1525220132312333 Mahan@example.net 12345678 DemoApp 1.2.3.5 Google Ads true true

Bu rapor, boyutlar epochTimeMicros, userEmail, accessedPropertyId, accessedPropertyName, userIP, accessMechanism, costDataReturned, revenueDataReturned.

İstemci kitaplıkları

Aşağıdakilerle ilgili bir açıklama için Hızlı başlangıç kılavuzuna bakın: istemci kitaplıklarının nasıl yükleneceği ve yapılandırılacağı.

Aşağıda, veri erişim sorgusu çalıştıran Python istemci kitaplığının kullanıldığı bir örnek verilmiştir: ve yanıtı yazdırır.

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}")