В современном мире данные являются ключевым активом для принятия обоснованных решений. Google Analytics 4 (GA4) предоставляет мощные инструменты для сбора и анализа информации о поведении пользователей на вашем сайте или в приложении. Однако для глубокой интеграции, автоматизации отчетов и создания кастомных дашбордов стандартного интерфейса часто бывает недостаточно.
Именно здесь на помощь приходит Google Analytics Data API. Он позволяет программно получать доступ к вашим данным GA4, открывая широкие возможности для их использования в собственных приложениях, системах аналитики или для автоматической генерации отчетов. Это руководство предоставит вам пошаговую инструкцию по подключению и работе с GA4 Data API, охватывая все этапы от начальной настройки в Google Cloud до практических примеров получения данных на PHP и Python.
Начальная настройка и подготовка в Google Cloud и GA4
Первым шагом к интеграции с Google Analytics Data API (GA4) является подготовка среды в Google Cloud Console и настройка доступа в Google Analytics 4.
Создание проекта и включение Google Analytics Data API в Google Cloud Console
-
Откройте Google Cloud Console.
-
Создайте новый проект или выберите существующий.
-
Через поиск найдите "Google Analytics Data API" и включите его для вашего проекта.
Настройка сервисного аккаунта и предоставление ему прав доступа в Google Analytics 4
-
В Google Cloud Console перейдите в "IAM и администрирование" -> "Сервисные аккаунты".
-
Создайте новый сервисный аккаунт, присвоив ему имя.
-
Скопируйте адрес электронной почты созданного аккаунта.
-
В Google Analytics 4, в разделе "Администратор" -> "Управление доступом к ресурсу" для вашего ресурса GA4, добавьте этот сервисный аккаунт.
-
Предоставьте ему роль "Читатель" (Viewer) или соответствующую вашим потребностям.
Это обеспечивает необходимую основу для дальнейшего получения учетных данных.
Создание проекта и включение Google Analytics Data API в Google Cloud Console
Для начала работы с Google Analytics Data API (GA4) необходимо подготовить среду в Google Cloud Console. Этот шаг является фундаментом для всех последующих взаимодействий с API.
-
Перейдите в Google Cloud Console: Откройте console.cloud.google.com.
-
Создайте новый проект или выберите существующий:
-
В верхней части страницы нажмите на выпадающее меню выбора проекта.
-
Выберите "Новый проект" и следуйте инструкциям, чтобы создать его, присвоив осмысленное имя (например, "GA4 Data API Integration").
-
Если у вас уже есть проект, который вы хотите использовать, просто выберите его из списка.
-
-
Включите Google Analytics Data API:
-
После выбора или создания проекта перейдите в "Навигационное меню" (три горизонтальные линии в левом верхнем углу) > "API и сервисы" > "Библиотека API".
-
В строке поиска введите "Google Analytics Data API" и выберите его из результатов.
-
Нажмите кнопку "Включить" (Enable). Это активирует API для вашего проекта, позволяя ему обрабатывать запросы к данным GA4.
-
Настройка сервисного аккаунта и предоставление ему прав доступа в Google Analytics 4
Для безопасной аутентификации вашего приложения в Google Analytics 4 необходимо настроить сервисный аккаунт. Это специальный тип аккаунта Google, который используется приложениями для доступа к данным.
Шаги по настройке сервисного аккаунта:
-
Создание сервисного аккаунта: В Google Cloud Console перейдите в раздел IAM & Admin > Service Accounts. Нажмите + CREATE SERVICE ACCOUNT, укажите имя (например,
ga4-data-api-service), ID и описание. Нажмите DONE. -
Генерация ключа: После создания аккаунта, нажмите на него, перейдите на вкладку KEYS, затем ADD KEY > Create new key. Выберите тип ключа JSON и нажмите CREATE. Файл JSON с учетными данными будет автоматически загружен на ваш компьютер. Сохраните его в безопасном месте.
-
Предоставление доступа в GA4: Откройте Google Analytics 4, перейдите в Администрирование > Управление доступом к ресурсу (Property Access Management). Нажмите + > Добавить пользователей. В поле Адреса электронной почты введите email вашего сервисного аккаунта (его можно найти в загруженном JSON-файле или в списке сервисных аккаунтов в GCP). Выберите роль Читатель (Viewer) и нажмите Добавить.
Получение учетных данных и установка клиентских библиотек
После успешного создания сервисного аккаунта и получения JSON-ключа, следующим шагом является извлечение необходимых учетных данных и подготовка среды разработки.
Как получить GA_PROPERTY_ID, GA_CLIENT_EMAIL и GA_PRIVATE_KEY
-
GA_PROPERTY_ID: Это числовой идентификатор вашего ресурса Google Analytics 4. Его можно найти в интерфейсе GA4 в разделе «Администратор» -> «Настройки ресурса» (например,
123456789). -
GA_CLIENT_EMAIL: Откройте загруженный JSON-файл ключа сервисного аккаунта. Значение
client_emailиз этого файла будет вашимGA_CLIENT_EMAIL. -
GA_PRIVATE_KEY: В том же JSON-файле найдите поле
private_key. Это ваш закрытый ключ. Важно: храните этот ключ в безопасности и никогда не раскрывайте его публично.
Установка клиентских библиотек Google API для PHP и Python
Для удобной работы с Google Analytics Data API рекомендуется использовать официальные клиентские библиотеки.
-
Для PHP: Используйте Composer для установки библиотеки:
composer require google/analytics-data -
Для Python: Используйте pip для установки библиотеки:
pip install google-analytics-data
Эти библиотеки упрощают процесс аутентификации и выполнения запросов к API.
Как получить GA_PROPERTY_ID, GA_CLIENT_EMAIL и GA_PRIVATE_KEY
Для успешной работы с Google Analytics Data API (GA4) вам потребуются три ключевых идентификатора, которые были упомянуты ранее:
-
GA_PROPERTY_ID (Идентификатор свойства GA4): Это уникальный числовой идентификатор вашего свойства Google Analytics 4. Его можно найти в интерфейсе GA4: перейдите в раздел "Администратор" -> "Настройки свойства" -> "Идентификатор свойства". Он обычно имеет формат
123456789. -
GA_CLIENT_EMAIL (Электронная почта сервисного аккаунта): Этот адрес электронной почты находится в JSON-файле ключа, который вы скачали при создании сервисного аккаунта в Google Cloud Console. Откройте JSON-файл и найдите поле
client_email. -
GA_PRIVATE_KEY (Приватный ключ сервисного аккаунта): Также находится в том же JSON-файле. Это длинная строка, начинающаяся с
-----BEGIN PRIVATE KEY-----и заканчивающаяся-----END PRIVATE KEY-----\n. Скопируйте все содержимое поляprivate_key, включая заголовки и переносы строк.
Эти данные будут использоваться для аутентификации ваших запросов к API.
Установка клиентских библиотек Google API для PHP и Python
После получения всех необходимых учетных данных, следующим шагом является установка клиентских библиотек Google API. Эти библиотеки значительно упрощают взаимодействие с Google Analytics Data API (GA4), абстрагируя сложности HTTP-запросов и аутентификации.
Для PHP
Для установки клиентской библиотеки Google API для PHP рекомендуется использовать Composer – менеджер зависимостей для PHP. Если Composer не установлен, его необходимо инсталлировать в первую очередь.
Выполните следующую команду в корневой директории вашего проекта:
composer require google/apiclient
Эта команда установит последнюю версию клиентской библиотеки Google API, включая все необходимые зависимости для работы с GA4 Data API.
Для Python
Для Python установка клиентской библиотеки Google API осуществляется с помощью pip – стандартного менеджера пакетов Python. Убедитесь, что у вас установлен Python 3 и pip.
Выполните следующую команду в терминале:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
Эта команда установит основную клиентскую библиотеку Google API, а также дополнительные пакеты для аутентификации, которые потребуются для взаимодействия с GA4 Data API.
Основы работы с Google Analytics Data API (GA4)
Начав работу с Google Analytics Data API (GA4), важно понимать его основные строительные блоки:
-
Метрики (Metrics) — это количественные измерения данных, такие как
activeUsers(активные пользователи) илиscreenPageViews(просмотры страниц). Они показывают «сколько» или «как много». -
Параметры (Dimensions) — это атрибуты данных, описывающие их, например,
pagePath(путь страницы) илиcountry(страна). Они отвечают на вопросы «что», «где» или «кто». -
Фильтры (Filters) позволяют сужать или расширять выборку данных, например, показывать данные только для определенной страницы или страны.
-
Диапазоны дат (Date Ranges) определяют временной интервал, за который запрашиваются данные.
Ключевое отличие GA4 Data API от устаревшего Universal Analytics Reporting API заключается в его архитектуре и модели данных. GA4 API ориентирован на события, предлагая более гибкую и унифицированную модель для сбора и анализа данных о взаимодействии пользователей. Он также предоставляет более широкий набор метрик и параметров, специфичных для GA4, и поддерживает более сложные запросы, включая когортный анализ и воронки.
Ключевые концепции: метрики, параметры, фильтры и диапазоны дат
Для эффективной работы с Google Analytics Data API (GA4) критически важно понимать его основные строительные блоки, которые определяют структуру и содержание ваших запросов:
-
Метрики (Metrics) — это количественные показатели ваших данных, которые вы хотите измерить. Они представляют собой числовые значения, такие как
activeUsers(активные пользователи),screenPageViews(просмотры страниц/экранов) илиtotalRevenue(общий доход).Реклама -
Параметры (Dimensions) — это качественные атрибуты данных, которые позволяют сегментировать метрики. Например, вы можете просматривать
screenPageViewsпоpagePath(путь страницы),eventName(название события) илиcountry(страна). -
Фильтры (Filters) используются для уточнения данных, возвращаемых запросом. Вы можете применять фильтры к метрикам или параметрам, чтобы включить или исключить определенные значения, например, показывать данные только для конкретного
pagePathили события. -
Диапазоны дат (Date Ranges) определяют временной период, за который вы запрашиваете данные. API позволяет указывать как абсолютные даты (например, ‘2023-01-01’ по ‘2023-01-31’), так и относительные (например, ‘today’, ‘yesterday’, ‘7daysAgo’).
Различия между GA4 Data API и устаревшим Universal Analytics Reporting API
Переход от Universal Analytics к Google Analytics 4 принес фундаментальные изменения в модель данных, что, в свою очередь, отразилось на API. В то время как Universal Analytics Reporting API оперировал сессиями и просмотрами страниц, GA4 Data API построен на событийно-ориентированной модели. Это означает, что все взаимодействия пользователя (просмотры страниц, клики, покупки) теперь являются событиями.
Ключевые различия включают:
-
Модель данных: UA основан на сессиях и хитах; GA4 — на событиях.
-
Метрики и параметры: Названия и доступность метрик и параметров значительно изменились. Например,
pageviewsв UA соответствуетscreenPageViewsв GA4, аusersв UA теперьactiveUsersилиtotalUsersв GA4. -
Структура запросов: GA4 Data API предлагает более гибкую структуру запросов с акцентом на события и их параметры, что требует переосмысления подходов к получению данных.
Практические примеры получения данных из GA4 API
Опираясь на полученные учетные данные и установленные клиентские библиотеки, рассмотрим, как выполнять запросы к GA4 Data API для извлечения ключевых метрик и параметров. Примеры ниже демонстрируют базовые сценарии получения данных.
Пример 1: Запрос общих просмотров страницы и активных пользователей
Этот пример показывает, как получить общее количество просмотров страниц и активных пользователей за последние 7 дней.
PHP:
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Metric;
$client = new BetaAnalyticsDataClient(['credentials' => 'path/to/your/credentials.json']);
$response = $client->runReport([
'property' => 'properties/' . GA_PROPERTY_ID,
'dateRanges' => [new DateRange(['startDate' => '7daysAgo', 'endDate' => 'today'])],
'metrics' => [new Metric(['name' => 'screenPageViews']), new Metric(['name' => 'activeUsers'])],
]);
// Обработка $response
Python:
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import DateRange, Metric
client = BetaAnalyticsDataClient(credentials_json='path/to/your/credentials.json')
response = client.run_report(
property=f"properties/{GA_PROPERTY_ID}",
date_ranges=[DateRange(start_date="7daysAgo", end_date="today")],
metrics=[Metric(name="screenPageViews"), Metric(name="activeUsers")],
)
# Обработка response
Пример 2: Получение списка самых популярных страниц за период
Этот пример демонстрирует, как получить список 10 самых популярных страниц (по просмотрам) за последние 30 дней.
PHP:
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\OrderBy;
$client = new BetaAnalyticsDataClient(['credentials' => 'path/to/your/credentials.json']);
$response = $client->runReport([
'property' => 'properties/' . GA_PROPERTY_ID,
'dateRanges' => [new DateRange(['startDate' => '30daysAgo', 'endDate' => 'today'])],
'dimensions' => [new Dimension(['name' => 'pagePath'])],
'metrics' => [new Metric(['name' => 'screenPageViews'])],
'orderBys' => [new OrderBy(['metric' => ['metricName' => 'screenPageViews'], 'desc' => true])],
'limit' => 10,
]);
// Обработка $response
Python:
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import DateRange, Dimension, Metric, OrderBy
client = BetaAnalyticsDataClient(credentials_json='path/to/your/credentials.json')
response = client.run_report(
property=f"properties/{GA_PROPERTY_ID}",
date_ranges=[DateRange(start_date="30daysAgo", end_date="today")],
dimensions=[Dimension(name="pagePath")],
metrics=[Metric(name="screenPageViews")],
order_bys=[OrderBy(metric=OrderBy.MetricOrderBy(metric_name="screenPageViews"), desc=True)],
limit=10,
)
# Обработка response
Пример 1: Запрос общих просмотров страницы и активных пользователей (PHP/Python)
Для получения базовых метрик, таких как общее количество просмотров страниц (screenPageViews) и активных пользователей (activeUsers), можно использовать следующий код. Предполагается, что клиентская библиотека инициализирована с учетными данными сервисного аккаунта, как описано ранее.
PHP Пример:
use Google\Analytics\Data\V1beta\RunReportRequest;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\DateRange;
// ... $client инициализирован
$request = (new RunReportRequest())
->setProperty('properties/' . GA_PROPERTY_ID)
->setDateRanges([
new DateRange(['start_date' => '2026-03-01', 'end_date' => '2026-03-24'])
])
->setMetrics([
new Metric(['name' => 'screenPageViews']),
new Metric(['name' => 'activeUsers'])
]);
$response = $client->runReport($request);
foreach ($response->getRows() as $row) {
echo 'Просмотры страниц: ' . $row->getMetricValues()[0]->getValue() . "\n";
echo 'Активные пользователи: ' . $row->getMetricValues()[1]->getValue() . "\n";
}
Python Пример:
from google.analytics.data_v1beta.types import DateRange, Metric, RunReportRequest
# ... client инициализирован
request = RunReportRequest(
property=f"properties/{GA_PROPERTY_ID}",
date_ranges=[DateRange(start_date="2026-03-01", end_date="2026-03-24")],
metrics=[Metric(name="screenPageViews"), Metric(name="activeUsers")],
)
response = client.run_report(request)
for row in response.rows:
print(f"Просмотры страниц: {row.metric_values[0].value}")
print(f"Активные пользователи: {row.metric_values[1].value}")
В обоих примерах мы запрашиваем данные за указанный период, получая общее количество просмотров страниц и активных пользователей.
Пример 2: Получение списка самых популярных страниц за период (PHP/Python)
Для получения списка самых популярных страниц за определенный период, мы расширим наш запрос, добавив параметр pagePath и отсортировав результаты по метрике screenPageViews в убывающем порядке. Это позволит идентифицировать наиболее просматриваемые страницы вашего ресурса GA4.
Пример на PHP:
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\RunReportRequest;
// ... (инициализация клиента, как в предыдущем примере)
$request = (new RunReportRequest())
->setProperty('properties/' . GA_PROPERTY_ID)
->setDateRanges([
(new DateRange())
->setStartDate('2026-03-01')
->setEndDate('today')
])
->setDimensions([
(new Dimension())->setName('pagePath')
])
->setMetrics([
(new Metric())->setName('screenPageViews')
])
->setOrderBys([
(new OrderBy())
->setMetric((new MetricOrderBy())->setMetricName('screenPageViews'))
->setDesc(true)
]);
$response = $client->runReport($request);
foreach ($response->getRows() as $row) {
printf("%s: %s\n", $row->getDimensionValues()[0]->getValue(), $row->getMetricValues()[0]->getValue());
}
Пример на Python:
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import DateRange, Dimension, Metric, RunReportRequest, OrderBy, MetricOrderBy
# ... (инициализация клиента, как в предыдущем примере)
request = RunReportRequest(
property=f"properties/{GA_PROPERTY_ID}",
date_ranges=[
DateRange(start_date="2026-03-01", end_date="today")
],
dimensions=[
Dimension(name="pagePath")
],
metrics=[
Metric(name="screenPageViews")
],
order_bys=[
OrderBy(metric=MetricOrderBy(metric_name="screenPageViews"), desc=True)
]
)
response = client.run_report(request)
for row in response.rows:
print(f"{row.dimension_values[0].value}: {row.metric_values[0].value}")
Распространенные проблемы и лучшие практики интеграции
При работе с GA4 Data API важно учитывать потенциальные проблемы. Эффективная обработка ошибок, таких как превышение квот или неверные запросы, критична для стабильности. Регулярно проверяйте квоты в Google Cloud Console. Для безопасности всегда храните учетные данные (GA_CLIENT_EMAIL, GA_PRIVATE_KEY) в переменных окружения или защищенных хранилищах, избегая их прямого включения в код. Оптимизируйте запросы, запрашивая только необходимые метрики и параметры, чтобы минимизировать нагрузку и количество вызовов API.
Обработка ошибок и управление квотами API
При работе с GA4 Data API важно предусмотреть обработку ошибок. Используйте try-catch блоки для перехвата исключений и анализируйте коды ошибок (например, 400 для неверного запроса, 401 для аутентификации, 403 для превышения квоты). Управление квотами API критически важно для стабильной работы. Отслеживайте их в Google Cloud Console. Для предотвращения превышения квот применяйте кэширование данных, объединяйте запросы и используйте экспоненциальную задержку при повторных попытках.
Безопасное хранение учетных данных и оптимизация запросов
Для безопасного хранения учетных данных сервисного аккаунта (GA_CLIENT_EMAIL, GA_PRIVATE_KEY) категорически не рекомендуется жесткое кодирование в коде. Используйте переменные окружения, файлы конфигурации, не включенные в систему контроля версий, или специализированные сервисы управления секретами, такие как Google Secret Manager. Это минимизирует риски утечки.
Оптимизация запросов к API включает в себя:
-
Запрашивайте только необходимые метрики и параметры.
-
Используйте кэширование данных для часто запрашиваемых отчетов, чтобы уменьшить количество вызовов API и избежать превышения квот.
Заключение
Мы подробно рассмотрели процесс подключения к Google Analytics Data API (GA4), начиная с начальной настройки в Google Cloud и GA4, получения учетных данных и установки клиентских библиотек. Вы освоили ключевые концепции API, научились выполнять запросы для получения ценных данных и ознакомились с лучшими практиками интеграции. Использование GA4 Data API открывает широкие возможности для автоматизации сбора аналитики, создания кастомных отчетов и интеграции данных в ваши приложения, позволяя принимать более обоснованные решения на основе актуальной информации.