Метод chat Data API предоставляет программный доступ к Ask Advisor в Google Аналитике – аналитическому помощнику на основе ИИ, который помогает запрашивать, анализировать и диагностировать данные Google Аналитики с помощью естественного языка.
Хотя Ask Advisor доступен в интерактивном режиме в пользовательском интерфейсе Google Аналитики, API chat позволяет разработчикам, автономным ИИ-агентам и внутренним инструментам взаимодействовать с Ask Advisor программно по протоколу HTTP.
Важно! Этот продукт основан на ИИ-технологиях и может предлагать неточную информацию. Мы можем использовать историю ваших запросов в чате для улучшения продукта. Взаимодействие с продуктом регулируется нашими Условиями использования, Правилами использования ИИ и Политикой конфиденциальности.
Обзор
Метод chat позволяет задавать как разовые вопросы о данных, так и вести многошаговые диалоги:
- Запросы с одним ответом. Задавайте аналитические вопросы (например, "Какие каналы трафика были самыми популярными на прошлой неделе?") и получайте ответы на естественном языке вместе со структурированными таблицами данных.
- Многоэтапные разговоры. Передайте
sessionId, чтобы сохранить историю разговора и задать уточняющие вопросы (например, "Почему в этот период снизился органический трафик?"). - Ответы со структурированными данными. Помимо текстовых ответов, ответы содержат структурированные блоки
tableс заголовками столбцов и строками. - Мониторинг квоты чата. Проверьте оставшиеся квоты токенов чата в день и в час, задав для параметра
returnPropertyQuotaзначениеtrue.
Аутентификация
Для вызовов метода chat требуется авторизация OAuth 2.0 со следующей областью действия:
Подготовка
Установите и инициализируйте gcloud CLI.
Чтобы создать учетные данные приложения по умолчанию и предоставить аккаунту необходимые области действия, выполните следующие действия:
gcloud auth application-default login --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/analytics.chatbot.read"В интерфейсе Google Аналитики предоставьте аккаунту пользователя доступ к ресурсу Google Аналитики.
Настройте переменные среды, введя следующие команды: Замените
PROJECT_IDидентификатором проекта, аPROPERTY_ID– идентификатором ресурса Google Аналитики.export PROJECT_ID=
PROJECT_IDexport PROPERTY_ID=PROPERTY_ID
Пример 1. Запрос с одним ходом и отслеживанием квоты
Чтобы начать новый чат, создайте объект ChatRequest, содержащий ваш объект userQuery.
Установите для параметра returnPropertyQuota значение true, чтобы проверить остаток токенов.
Сценарий: доход и коэффициент конверсии по устройствам
Вы хотите сравнить доход и коэффициент конверсии сеансов на разных устройствах за последние 30 дней.
HTTP-запрос.
curl -X POST \
"https://analyticsdata.googleapis.com/v1alpha/properties/${PROPERTY_ID}:chat" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "x-goog-user-project: ${PROJECT_ID}" \
-H "Content-Type: application/json" \
-d '{
"userQuery": "Compare our revenue and conversion rate across mobile vs desktop over the last 30 days.",
"returnPropertyQuota": true
}'
Ответ HTTP
Ответ содержит:
- Новый
sessionId, который можно использовать для последующих ходов. - Список
blocks, содержащий как краткое описание на естественном языке (text), так и структурированную таблицу (table). Блоки текста могут содержать форматирование Markdown, например полужирный шрифт, заголовки и ссылки. - Сведения об объекте
propertyQuota.
{
"sessionId": "692e9ab9-b338-4426-b006-a05f21ac7cd6",
"blocks": [
{
"text": "Your report on revenue and conversion rates for mobile vs. desktop over the last 30 days (August 15 - September 13, 2026) is ready.\n\nHere is a summary of your revenue and conversion rate by device category:\n"
},
{
"table": {
"headers": [
{
"header": "Device Category",
"dataType": "string"
},
{
"header": "Total Revenue",
"dataType": "string"
},
{
"header": "User Conversion Rate",
"dataType": "string"
}
],
"rows": [
{
"columns": [
{
"value": "Desktop"
},
{
"value": "$17,412.62"
},
{
"value": "99.9%"
}
]
},
{
"columns": [
{
"value": "Mobile"
},
{
"value": "$15,309.41"
},
{
"value": "99.46%"
}
]
}
}
},
{
"text": "**Revenue and Conversion Rate Trends:**\n\nRevenue from desktop devices saw a peak on August 18th, while mobile revenue peaked on August 30th. Conversion rates remained high and relatively stable for both desktop and mobile throughout the period."
},
{
"text": "This product uses AI and may display inaccurate info. Your chat activity may be used to improve the product and your use is subject to Google's [Terms](https://policies.google.com/terms), [AI Use Policy](https://policies.google.com/terms/generative-ai/use-policy), and [Privacy Policy](https://policies.google.com/privacy). [Learn more about Chat AI Privacy](https://support.google.com/helpguide/answer/14185196)."
}
],
"propertyQuota": {
"tokensPerDay": {
"consumed": 26849,
"remaining": 3723151
},
"tokensPerHour": {
"consumed": 26849,
"remaining": 473151
}
}
}
Пример 2. Пошаговая диагностика в чате
Чтобы задать уточняющий вопрос, сохранив контекст, добавьте в запрос значение sessionId, полученное в предыдущем ответе.
Сравнение с предыдущим периодом
После сравнения устройств вы просите советника сравнить результаты с предыдущим периодом.
HTTP-запрос.
curl -X POST \
"https://analyticsdata.googleapis.com/v1alpha/properties/${PROPERTY_ID}:chat" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "x-goog-user-project: ${PROJECT_ID}" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "692e9ab9-b338-4426-b006-a05f21ac7cd6",
"userQuery": "Compare results with the same period in the previous mounth."
}'
Ответ HTTP
Ask Advisor использует память сеанса, чтобы сопоставлять результаты с предыдущим периодом.
{
"sessionId": "eb3284b2-49ce-4aed-b6d0-fdc15cb87b5f",
"blocks": [
{
"text": "The following table provides a detailed comparison of total revenue and user conversion rate by device category for the two periods.\n"
},
{
"table": {
"headers": [
{
"header": "Device Category",
"dataType": "string"
},
{
"header": "Metric",
"dataType": "string"
},
{
"header": "Jul 16 - Aug 15, 2026",
"dataType": "string"
},
{
"header": "Aug 16 - Sep 14, 2026",
"dataType": "string"
}
],
"rows": [
{
"columns": [
{
"value": "Desktop"
},
{
"value": "Total Revenue"
},
{
"value": "$17,412.62"
},
{
"value": "$19,565.46"
}
]
},
{
"columns": [
{
"value": "Desktop"
},
{
"value": "User Conversion Rate"
},
{
"value": "1.90%"
},
{
"value": "1.95%"
}
]
},
{
"columns": [
{
"value": "Mobile"
},
{
"value": "Total Revenue"
},
{
"value": "$13,997.19"
},
{
"value": "$15,309.41"
}
]
},
{
"columns": [
{
"value": "Mobile"
},
{
"value": "User Conversion Rate"
},
{
"value": "1.95%"
},
{
"value": "1.99%"
}
]
}
}
}
]
}
Структура ответа и блоки данных
Объект ChatResponse возвращает структурированные компоненты в массиве blocks:
| Тип блокировки | Поле | Описание |
|---|---|---|
| Текст | blocks[].text |
Объяснение на понятном языке и основные аналитические выводы. |
| Структурированная таблица | blocks[].table |
Разбивка табличных данных, содержащая headers (названия и типы данных) и rows (значения ячеек). |
Типы данных в заголовках таблиц
Столбцы в файле blocks[].table.headers описывают семантический тип данных:
string– текстовые значения категорий (например,"desktop","/shop/apparel").float– числовые значения с плавающей запятой.
Управление квотами Chat
Запросы Ask Advisor потребляют токены чата в зависимости от сложности запроса.
Текущее состояние квоты возвращается в propertyQuota, когда returnPropertyQuota имеет значение true:
tokensPerDay– дневной лимит токенов и оставшийся баланс.tokensPerHour– ограничение частоты запросов с использованием скользящего окна и оставшийся баланс.
Рекомендуемые приложения для интеграции
Метод properties.chat позволяет реализовать несколько архитектур интеграции для разных команд и инструментов:
Корпоративные чат-боты и боты для совместной работы
Подключите рабочую область чата команды напрямую к Google Аналитике.
- Сессии с несколькими темами: Сохраняйте
sessionIdпривязанный к идентификатору темы чата, чтобы участники команды могли задавать дополнительные вопросы совместно. - Отображение полезных подсказок. Форматирует
tableблоки ответов в интерактивные виджеты карточек.
Автономные ИИ-агенты и инструменты протокола контекста модели (MCP)
Оснастите оркестраторы LLM (например, Gemini, LangChain или Claude) аналитическим инструментом GA:
- Вместо того чтобы заставлять LLM генерировать сложные запросы
runReport, агент LLM может вызывать методchatс намерением на естественном языке. - Агент получает высокоточные сводки и структурированные таблицы, на основе которых создает многоканальные маркетинговые рекомендации.
Автоматизированные отчеты для руководителей и оповещения
Создайте запланированные сервисы, которые будут заблаговременно выявлять аномалии:
- Ежедневное задание cron: "Суммируй ключевые показатели эффективности за вчерашний день и определи, есть ли аномальное снижение конверсий".
- Если скрипт обнаруживает аномалию, он автоматически запускает дополнительный запрос, чтобы определить ее причину, и публикует сводку на внутренних панелях управления или в CRM-системах.