Отчеты о доступе к данным

Вы можете создавать отчеты о доступе к данным, используя метод runAccessReport в Admin API v1. Этот отчет показывает каждый раз, когда пользователь просматривает данные Google Analytics. Записи о доступе к данным хранятся до 2 лет. Отчеты о доступе к данным доступны только пользователям с ролью администратора .

Запросите отчет о доступе к данным, используя клиентскую библиотеку.

Самый быстрый способ начать работу с отчетами Data Access — использовать клиентские библиотеки .

В кратком руководстве по началу работы вы найдете объяснение, как установить и настроить клиентские библиотеки Google Analytics.

Вот пример использования клиентской библиотеки Python, который выполняет запрос к данным и выводит ответ.

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

Общие функции с основными отчетами.

Запросы на получение данных для отчетов имеют ту же семантику, что и запросы на получение основных отчетов, для многих общих функций. Например, пагинация , фильтры по измерениям и диапазоны дат ведут себя одинаково в обоих типах отчетов.

Ознакомьтесь с обзором основных отчетов в Data API v1 , а затем вернитесь на эту страницу, чтобы узнать больше об отчетах доступа к данным.

Создайте отчет по доступу к данным.

Для запроса отчета о доступе к данным используйте метод runAccessReport .

Выберите отчитывающуюся организацию

Аналогично функциональности создания отчетов в рамках API данных версии 1, метод runAccessReport в API администратора Google Analytics версии 1 требует указания идентификатора свойства Google Analytics в пути URL-запроса в формате properties/GA_PROPERTY_ID , например:

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

Полученный отчет о доступе к данным генерируется на основе записей о доступе к данным Google Analytics для указанного ресурса Google Analytics.

Если вы используете одну из клиентских библиотек Admin API , нет необходимости вручную изменять путь URL-адреса запроса. Большинство API-клиентов предоставляют параметр property , который ожидает строку в формате properties/GA_PROPERTY_ID . Пример использования клиентских библиотек приведен в фрагменте кода в начале этой страницы.

Выберите размеры и метрики.

Измерения описывают и группируют данные о доступе к вашему ресурсу. Например, измерение userEmail указывает адрес электронной почты пользователя, который получил доступ к данным отчетов. Значения измерений в ответах отчетов представляют собой строки.

Метрики представляют собой количественные показатели отчета. Метрика accessCount возвращает общее количество записей о доступе к данным.

Полный список имен измерений и метрик, доступных в запросах на создание отчетов в рамках доступа к данным, см. в схеме доступа к данным .

Запросить отчет

Для запроса отчетов о доступе к данным создайте объект RunAccessReportRequest . Рекомендуем начать с следующих параметров запроса:

  • В поле « Диапазоны дат» должна быть как минимум одна допустимая запись.
  • В поле «Размеры» должна быть как минимум одна допустимая запись.
  • Если не используется измерение epochTimeMicros , необходимо указать как минимум одну допустимую запись в поле метрик для получения количественных данных для каждой комбинации значений измерения в отчете.

Вот пример запроса с рекомендуемыми полями. Этот запрос сгенерирует список адресов электронной почты пользователей, время последнего доступа к указанному ресурсу за последние 7 дней и соответствующее количество посещений.

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

Прочитайте ответ

Ответ отчета о доступе к данным состоит в основном из заголовка и строк. Заголовок включает в себя AccessDimensionHeaders и AccessMetricHeaders , в которых перечислены столбцы отчета.

Каждая строка отчета о доступе содержит значения AccessDimensionValues ​​и AccessMetricValues ​​для столбцов отчета. Порядок столбцов остается неизменным в запросе, заголовке и каждой строке.

Вот пример ответа на предыдущий запрос:

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

Фильтрация по записям доступа

Используйте поле dimensionFilter объекта RunAccessReportRequest , чтобы ограничить ответ отчета определенными значениями измерений, соответствующими фильтру.

В следующем примере генерируется отчет на основе отдельных записей доступа к данным, с фильтрацией по записям доступа одного пользователя с адресом электронной почты Alex@example.net . Отчет содержит время каждой записи доступа, адрес электронной почты пользователя и IP-адрес.

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

Аналогичным образом, поле metricFilter объекта RunAccessReportRequest можно использовать для ограничения ответа отчета определенными значениями метрик, соответствующими фильтру.

В следующем примере генерируется отчет, содержащий адреса электронной почты и количество обращений всех пользователей, которые заходили на указанный ресурс более 100 раз.

HTTP

{
  "dateRanges": [
    {
      "startDate": "7daysAgo",
      "endDate": "today"
    }
  ],
  "dimensions": [
    {
      "dimensionName": "userEmail"
    }
  ],
  "metricFilter": {
    "accessFilter": {
      "numericFilter": {
        "operation": "GREATER_THAN",
        "value": {
          "int64Value": 100
        }
      },
      "fieldName": "accessCount"
    }
  },
  "metrics": [
    {
      "metricName": "accessCount"
    }
  ]
}

Примеры отчетов

Вот несколько примеров отчетов, которые вы можете попробовать.

Последний доступ

Ниже приведён пример отчёта о доступе, который можно создать с помощью runAccessReport :

Последний доступ к микрочипам времени эпохи Unix Электронная почта пользователя Количество доступов
1525220215025371 Bola@example.net 5
1525220215028361 Alex@example.net 36
1525220215027671 Charlie@example.net 1153
1525220215027341 Mahan@example.net 1

Этот отчет можно сгенерировать, запросив измерения mostRecentAccessEpochTimeMicros , userEmail и метрику accessCount . Отчет содержит одну строку для каждого пользователя: измерение mostRecentAccessEpochTimeMicros агрегирует записи о доступе к данным для каждого пользователя, обращающегося к свойству, и возвращает время последнего доступа (в микросекундах Unix с начала эпохи ) для каждой строки.

сбой доступа пользователей

Еще один пример полезного отчета — это разбивка обращений пользователей по механизмам доступа (например, пользовательский интерфейс Google Analytics, API и т. д.).

Последний доступ к микрочипам времени эпохи Unix Электронная почта пользователя Механизм доступа Количество доступов
1525220215028367 Alex@example.net Firebase 31
1525220215555778 Alex@example.net Пользовательский интерфейс Google Analytics 1
1525220215022378 Bola@example.net Пользовательский интерфейс Google Analytics 65
1525220215026389 Bola@example.net API Google Analytics 894
1525220215025631 Charlie@example.net API Google Analytics 67
1525220215068325 Mahan@example.net Google Реклама 3

Этот отчет можно сгенерировать, запросив данные по измерениям mostRecentAccessEpochTimeMicros , userEmail , accessMechanism и метрике accessCount .

Отчет содержит одну строку для каждой комбинации пользователя/механизма доступа. Измерение mostRecentAccessEpochTimeMicros содержит время последнего доступа пользователя к объекту с использованием указанного механизма доступа.

Обзор доступа к объекту недвижимости

Можно создать отчет по объекту недвижимости, не детализируя данные по отдельным пользователям. Например, следующий отчет показывает, как часто объект недвижимости используется с помощью различных механизмов доступа:

Идентификатор доступного объекта Название доступного объекта Механизм доступа Количество доступов
12345678 Демо-приложение Firebase 31
12345678 Демо-приложение Пользовательский интерфейс Google Analytics 624
12345678 Демо-приложение Google Реклама 83
12345678 Демо-приложение API Google Analytics 1744

Этот отчет можно сгенерировать, запросив данные по параметрам accessedPropertyId , accessedPropertyName , accessMechanism и метрике accessCount .

Отчет содержит по одной строке для каждой комбинации идентификатора объекта/механизма доступа.

Доступ к индивидуальным данным

Чтобы создать отчет, в котором каждая строка основана на отдельной записи о доступе к данным, исключите измерение mostRecentAccessEpochTimeMicros из запроса и используйте вместо него измерение epochTimeMicros . Запрашивать метрику accessCount не нужно, поскольку каждая строка отчета содержит информацию об одном единственном случае доступа к данным.

В следующем отчете содержится подробная информация о каждом случае доступа пользователя к указанному ресурсу.

микросекунды эпохи Unix Электронная почта пользователя Идентификатор доступного объекта Название доступного объекта IP-адрес пользователя Механизм доступа Возвращенные данные о стоимости Возвращены данные о доходах.
1525220215025371 Bola@example.net 12345678 Демо-приложение 1.2.3.1 Пользовательский интерфейс Google Analytics истинный истинный
1525220645645645 Mahan@example.net 12345678 Демо-приложение 1.2.3.5 Пользовательский интерфейс Google Analytics ЛОЖЬ ЛОЖЬ
1525220211312322 Bola@example.net 12345678 Демо-приложение 11.22.33.11 Google Реклама истинный ЛОЖЬ
1525220210234221 Alex@example.net 12345678 Демо-приложение 11.22.33.22 Firebase ЛОЖЬ ЛОЖЬ
1525220215028368 Alex@example.net 12345678 Демо-приложение 1.2.3.2 Google Реклама ЛОЖЬ ЛОЖЬ
1525220214234231 Mahan@example.net 12345678 Демо-приложение 11.22.33.55 Google Реклама истинный истинный
1525220423423452 Charlie@example.net 12345678 Демо-приложение 1.2.3.3 API Google Analytics истинный ЛОЖЬ
1525220132312333 Mahan@example.net 12345678 Демо-приложение 1.2.3.5 Google Реклама истинный истинный

Этот отчет можно сгенерировать, запросив данные по следующим параметрам: epochTimeMicros , userEmail , accessedPropertyId , accessedPropertyName , userIP , accessMechanism , costDataReturned , revenueDataReturned .