GAQL (Google Ads Query Language)
GAQL — язык запросов Google Ads API: каждый запрос, похожий на SQL, называет один ресурс и поля, сегменты и показатели, которые для него нужно вернуть.
Как работает
Запросу нужны SELECT и FROM; WHERE, ORDER BY, LIMIT и PARAMETERS необязательны. FROM называет один ресурс. JOIN нет: чтобы получить поля связанного ресурса, например кампании группы объявлений, их добавляют в SELECT.
GROUP BY тоже нет: каждый сегмент в SELECT, например segments.date, разбивает показатели на строки, по одной на каждое значение. Если выбран сегмент даты, в WHERE нужно задать конечный период. WHERE объединяет условия только через AND; вместо OR Google предлагает IN или REGEXP_MATCH.
Для отчётов по товарам shopping_performance_view хранит показатели товаров, которые показывались в рекламе, shopping_product — текущее состояние каждого товара, а asset_group_product_group_view — группы товаров (listing groups) Performance Max. Те же запросы работают в скриптах Google Ads и в MCP-сервере Google. Рабочие запросы и ловушки в данных, которых стоит избегать, разобраны в руководстве Google Ads API для отчётов по товарам.
Пример
Пример на вымышленном магазине, числа не клиентские.
SELECT segments.product_item_id, metrics.impressions, metrics.cost_micros
FROM shopping_performance_view
WHERE segments.date DURING LAST_30_DAYS
Магазин посуды получает 1 200 строк, по одной на товар с показами; остальные 1 800 из его 3 000 товаров строки не получают. Стоимость приходит в микроединицах — миллионных долях денежной единицы: у тарелки с cost_micros 25 000 000 расход составил 25.
Не путать с
- Google Ads API — интерфейс, через который работает GAQL. GAQL только читает данные; изменения уходят отдельными запросами mutate.
- BigQuery Data Transfer Service — загружает отчёты Google Ads в таблицы BigQuery не чаще одного раза в сутки. Запрос GAQL может задавать пользовательский отчёт, но запрашиваете вы уже сохранённые таблицы в BigQuery.
Верное и неверное прочтение
- Неверно: «
WHERE segments.product_item_id = 'PLT-0457'ничего не вернул, значит, тарелка не показывалась». Верно: в аккаунтах наших клиентов отчёты по товарам возвращают идентификатор товара строчными буквами, а=учитывает регистр. Фильтруйте по'plt-0457'или используйте LIKE, который регистр не учитывает. - Неверно: «В отчёте с разбивкой по дате нет строки за 14 марта, значит, данные не загрузились». Верно: если отчёт сегментирован, строки, у которых все выбранные показатели равны нулю, в нём пропускаются.
Источники
- Google Ads Query Language, Query structure и Google Ads Query Language grammar (на английском) — предложения запроса, неявные соединения, сегменты, только AND. Проверено 02.10.2026.
- Case sensitivity и Zero metrics (Google Ads API, на английском). Проверено 02.10.2026.
- Reporting (Google Ads API, Shopping, на английском) — отчёты по товарам. Проверено 02.10.2026.
- Money (Google Ads API, на английском) — суммы в микроединицах. Проверено 02.10.2026.
- Данные GetProfit: отчёты Google Ads по товарам магазинов-клиентов — идентификаторы товаров строчными буквами.