
Стриминг сырых данных Яндекс Метрики: как забрать хиты, визиты и медийные post-view в свой ClickHouse
19.08.2026
9 мин

Егор Дёмин
Аналитик данных с опытом автоматизации маркетинговой аналитики. Специализируется на работе с рекламными системами, настройке сквозной аналитики и разработке автоматизированных отчётов. Использует Python и SQL для обработки данных — от сбора статистики через API до визуализации в различных BI-системах. Разрабатывает интеллектуальные Telegram-боты с интеграцией нейросетей и подключением к различным базам данных.
- Опыт работы:
- 3 года
Введение
Забрать данные из Метрики можно тремя способами, и все они рабочие. API отчётов отдаёт агрегаты: визиты, источники, достижения целей по нужным группировкам. Logs API отдаёт неагрегированные хиты и визиты, если нужна своя логика поверх сырых событий. Поверх обоих API живут готовые коннекторы, которые складывают данные в хранилище по расписанию.
Упираются в потолок обычно не в удобстве, а в лимитах. У Logs API общая квота на счётчик составляет 10 ГБ подготовленных данных, период одного запроса до года, а статистика текущего дня недоступна: она ещё неполная, и Метрика прямо рекомендует запрашивать прошлые дни. Для крупного трафика и для задач, где важна свежесть, этого мало.
Здесь и появляется Метрика Про. Пакет поднимает квоты, добавляет потоковую передачу неагрегированных данных прямо в ваш ClickHouse и открывает API отчётов Метрики для медийной рекламы, а вместе с ним post-view конверсии, которых нет ни в одном отчёте по сайту.
Дальше по порядку: что входит в пакет, что можно стримить, какие поля появляются сверх Logs API, как забирать медийную статистику и на что смотреть, чтобы цифры в отчёте сходились.
Медийной рекламы у вас нет?
Первая половина статьи про стриминг сырых данных счётчика, она пригодится и без медийки. Если медийных размещений нет, разделы про Метрику для медийной рекламы можно пропустить.
Что входит в Метрику Про
Метрика Про, это пакет расширений поверх обычной Метрики. Вот что в него входит:

Аналитику из этого списка интересны четыре пункта.
Интеграция с Yandex Cloud. Тот самый стриминг неагрегированных данных в управляемый кластер ClickHouse, без ограничения по объёму.
Расширенные квоты. Цели 1000 вместо 200, сегменты 1000 вместо 500, события в визите 3000 вместо 1000, запросы к API 20 000 вместо 5000, дашборды на счётчик 100 вместо 5. Выгрузка Logs API поднимается с 10 до 100 ГБ.
Полные данные отчётов без семплирования и Роботность Про, более строгая оценка качества трафика.
API отчётов Метрики для медийной рекламы. Медийную статистику можно забрать запросом из кода, а не разглядывать в интерфейсе.
Цена на странице пакета указана от 300 000 ₽ в месяц за объём до 500 миллионов хитов, кластер в Yandex Cloud оплачивается отдельно. Подключение идёт через маркетплейс Yandex Cloud или через сертифицированных партнёров.
Стриминг сырых данных: чем он отличается от Logs API
Интеграция передаёт неагрегированные данные счётчика в ваш ClickHouse-кластер в Yandex Cloud. Работает в двух режимах:

Поток. Задержка от события на сайте до строки в ClickHouse составляет до 15 минут. Объём не ограничен.
Архивная выгрузка. Данные счётчика за всё время его жизни или за выбранный интервал. Запускают её в личном кабинете Метрики Про, вкладка «Интеграции с Облаком».
Дело тут не в одной скорости. Logs API, это выгрузка: вы формируете запрос, ждёте подготовку, скачиваете файл и складываете его в хранилище сами, укладываясь в квоту. Стриминг, это подписка: данные идут в вашу таблицу постоянно, свежие через четверть часа, без ограничения по объёму. И набор полей у стриминга шире, справка так и называет его расширенным по сравнению с Logs API.
Форматы несовместимы
Стриминг не обратно совместим с Logs API по формату данных. Если пайплайн на Logs API у вас уже собран, вьюхи и витрины поверх новых таблиц придётся переписывать. Поменять адрес источника и жить дальше не выйдет.
Технически цепочка выглядит так: Метрика отдаёт данные в свой брокер, оттуда их забирает Data Transfer в Yandex Cloud и пишет в ClickHouse. Схема из справки:

По ролям тут разведено удобно: администратор счётчика выдаёт OAuth-токен с правом на редактирование, а доступ к самому кластеру и данным в нём вы раздаёте уже средствами облака. Аналитики получают данные и при этом не лезут в настройки счётчика.
Какие поля можно грузить
Данные доступны на двух уровнях: хиты (события) и визиты. Набор полей вы выбираете сами при настройке. Три категории справка отдельно отмечает как расширение по сравнению с Logs API:

Контентная аналитика: тематики и авторы статьи, источник трафика, переходы на другие статьи, идентификатор статьи, с которой перешли, время просмотра и доскроллы. Детализация источников: YCLID, идентификатор объявления, площадка размещения, переход по QR-коду. Данные о клиентах и заказах из CRM: Hash OrderID и Hash UserID, версия и статус заказа, время создания и изменения, названия и количество товаров.
Остальное, что обычно берут, знакомо по Logs API: WatchID, VisitID, CounterID, UTM-метки, DirectCLID, GCLID, SBCLID, URL, Title, Referer, GoalsReached, ParsedParams.Key1 до ParsedParams.Key10, поля электронной коммерции. Полные списки полей лежат в справке отдельными страницами для хитов и для визитов, там же указано, с какой даты поле доступно.
Для контентных проектов разница заметнее всего: доскроллы, время чтения и переходы между статьями обычно собирают своими событиями, а тут они приезжают из коробки.
Как включить стриминг
Порядок действий такой:
- Подключить Метрику Про или отдельно Data Streaming.
- Создать кластер ClickHouse в Yandex Cloud.
- Настроить подключение к созданному кластеру.
- В Data Transfer подключить источник: выбрать тип данных (хиты или визиты), нужные поля, счётчики, OAuth-токен пользователя с доступом к счётчику на редактирование, а для исторической выгрузки ещё и диапазон дат.
- Связать источник и приёмник трансфером: Репликация для потока, Копирование для истории.
- Настроить мониторинг состояния трансфера и алерты.
- Запустить трансфер.
Про архивную выгрузку
Одновременно можно выполнить не больше 10 выгрузок, а доступный период начинается более чем за 7 дней до текущей даты. Пример из справки: 14 августа выгрузить можно данные до 6 августа включительно. Свежие дни закрывает поток, архивом их не догнать.
Шестой шаг с мониторингом не формальность. В Data Transfer есть метрики и логи трансфера, и смотреть стоит на них, а не на то, что задача в вашем оркестраторе зелёная.
Медийная реклама: то, чего нет в данных сайта
Стриминг отдаёт события на сайте. Показы медийной рекламы в него не попадают, их считает отдельный сервис, Метрика для медийной рекламы. И вот тут второй раз пригождается Метрика Про: в документации у API отчётов этого сервиса стоит пометка «Доступно в рамках Метрики Про». Без пакета медийную статистику можно только смотреть в интерфейсе.
Зачем её забирать, если интерфейс есть? Затем, что медийку не измерить кликами. Человек увидел баннер, а пришёл через неделю из поиска или напрямую, и по обычной модели заявку запишет себе поиск. Медийная Метрика умеет привязывать конверсии к просмотру:

Post-view, это целевое действие после просмотра рекламы. Post-click, после клика. Приоритет у клика: если конверсия попала в окно post-click, она уходит к клику, если не попала, но попала в окно post-view, уходит к показу, а если вышла за оба окна, не привяжется никуда.

Максимальные окна: 90 дней для просмотра и 30 дней для клика. Задаются они в параметрах рекламодателя:

Просмотры учитываются со всех устройств пользователя, за это отвечает Крипта: показ на телефоне и заказ с ноутбука не теряют связь. Кросс-девайс считается с 13 сентября 2023 года, так что при сравнении с более старыми периодами это стоит держать в голове.
Как забирать медийную статистику
Данные приходят обычным запросом к https://api.media.metrika.yandex.net/v1/stat/data. Метрики и группировки идут с префиксом am:e:, ответ в JSON или CSV. Кроме таблицы есть drilldown и метод /v1/stat/data/bytime, который отдаёт разбивку по времени.
Что есть в списке группировок и метрик:
- группировки: площадка
am:e:placement, тип рекламыam:e:advType, креативam:e:creative, доменam:e:domain, регионыam:e:regionCountry,am:e:regionArea,am:e:regionCity, устройство, браузер, ОС, а также соцдем: пол, возраст, доход, интересы; - метрики: показы
am:e:renders, кликиam:e:clicks, охватam:e:users, частотаam:e:renderFrequency,am:e:ctr,am:e:cpm,am:e:cpc, и по каждой цели сразу три величины:am:e:goal<goal_id>Reaches,am:e:goal<goal_id>ReachesPostClick,am:e:goal<goal_id>ReachesPostView, плюс конверсии и стоимость цели.
Рабочий минимум на Python:
import requests
URL = "https://api.media.metrika.yandex.net/v1/stat/data"
params = {
"ids": CAMPAIGN_ID, # идентификатор медийной кампании
"date1": date_from, # ретро-окно, обычно последние 30 дней
"date2": date_to,
"dimensions": "am:e:placement,am:e:advType",
"metrics": (
"am:e:renders,am:e:clicks,am:e:users,"
f"am:e:goal{GOAL_ID}Reaches,"
f"am:e:goal{GOAL_ID}ReachesPostClick,"
f"am:e:goal{GOAL_ID}ReachesPostView"
),
"accuracy": "full",
"limit": 100000,
"offset": 1,
}
rows = []
while True:
r = requests.get(URL, headers={"Authorization": f"OAuth {TOKEN}"},
params=params, timeout=(60, 180))
r.raise_for_status()
page = r.json().get("data", [])
if not page:
break
rows.extend(page)
if len(page) < params["limit"]:
break
params["offset"] += len(page)Три момента, которые стоит заложить сразу:
accuracy=fullи явная пагинация черезoffset. На широких разрезах без этого легко получить часть данных и не заметить;- ретро-окно вместо «за вчера»: забираем последние 30 дней и перед вставкой удаляем этот же период в таблице. Тогда джоб можно перезапускать сколько угодно, данные не задвоятся;
- ретраи на 5xx с растущей паузой. Медийный API отвечает медленнее обычного, таймаут в минуту с лишним тут норма.
Как всё это укладывается в одно хранилище
Получается два потока, которые встречаются в ClickHouse и превращаются в витрину:
Правило простое: каждую цифру берём из той системы, которая её реально считает. Расход и клики из рекламного кабинета, охват и post-view из медийной Метрики, поведение на сайте из сырых данных счётчика. Начнёте дублировать, цифры разъедутся, и отчёту перестанут верить.
Медийные строки в витрине идут отдельными записями с нулевым расходом и нулевыми визитами, а рядом стоит признак модели атрибуции:
SELECT
date,
placement AS platform,
'Пост-вью' AS attribution_type,
0 AS cost,
renders AS impressions,
users AS reach_daily,
goal_post_view AS conversions
FROM media_metrica_daily
UNION ALL
SELECT
date,
platform,
'Пост-клик' AS attribution_type,
cost,
impressions,
0 AS reach_daily,
goal_reaches AS conversions
FROM site_and_ads_dailyДальше attribution_type становится фильтром на дашборде, и одна витрина отвечает на два разных вопроса: сколько заявок принёс перформанс и сколько всего касаний привело к действию, включая тех, кто не кликал.
Что показывать в отчёте
Первым делом соберите конверсии по неделям и разделите их по модели атрибуции. Так сразу видно, какую часть результата вы раньше не считали вовсе:
Второй по полезности отчёт, стоимость конверсии в двух моделях. Именно разрыв между этими двумя цифрами обычно и закрывает спор про «дорогую медийку».
Дальше идёт скучная на вид таблица по площадкам: охват, показы, частота, post-view, CPA. Именно она показывает, кто из площадок только мелькает перед аудиторией, а кто доводит до заявки. Рядом стоит держать стоимость контакта против плана: для медийных кампаний это чаще главный KPI, чем конверсии, и считать её нужно на охвате из медийной Метрики, а не на показах из кабинета.
А когда в ClickHouse лежат сырые хиты, появляется отчёт, которого в интерфейсе нет вообще: сколько визитов и дней проходит между первым касанием и целью. Не среднее по больнице, а распределение.
На что смотреть, чтобы цифры сходились
Дальше несколько тонкостей, которые всплывают уже на данных. Ничего особенного, но узнать о них лучше заранее, а не когда отчёт уже собран.
Охват живёт в am:e:users, метрики am:e:reach в API нет. Заглянуть в список группировок и метрик стоит заранее: там есть users, renders, renderFrequency, но не reach. И главное, охват считается внутри выбранного среза. Если группируете по дням, сумма за период будет суммой дневных охватов, а не числом уникальных людей. Метрику в BI лучше так и назвать, чтобы её никто не сложил по ошибке.
Показы медийки не смешиваются с показами контекста. Стоит вылить их в один столбец, и CTR по всему аккаунту падает в разы, а стоимость контакта считается по неверной базе. Медийные строки должны жить своим измерением, иначе агрегаты по кабинету теряют смысл.
Клики в медийном отчёте и в рекламном кабинете считаются по-разному. Расхождение бывает кратным, и это не повод искать виноватого: события считают разные системы. Поэтому расход и клики берите из кабинета, а охват и post-view из медийной Метрики.
Post-view и post-click нельзя складывать бездумно. Внутри одной кампании Метрика конверсии не дублирует, но если одновременно идут две кампании, конверсия привяжется и к первой, и ко второй. Складываете кампании в общий итог, получаете сумму больше реального числа заявок. Лечится признаком модели атрибуции в витрине и договорённостью, какой источник конверсий главный для канала.
Конверсии дописываются задним числом. Окно post-view до 90 дней означает, что цифры за прошлый месяц ещё будут меняться. Загрузка «только за вчера» этих правок не увидит никогда, поэтому и нужно ретро-окно.
Кросс-девайс включился 13 сентября 2023 года. Сравнивая динамику с более ранними периодами, помните, что до этой даты конверсии считались иначе.
Итог
Метрика Про решает две разные задачи. Первая, объём и свежесть: сырые данные больше не надо выгружать кусками в пределах квоты, они сами приезжают в ваш ClickHouse с задержкой до 15 минут, и полей в них больше, чем отдаёт Logs API. Вторая, медийная реклама: post-view, охват и площадки становятся обычными строками витрины рядом с контекстом, а не отдельной вкладкой, куда никто не заходит.
Технически подключение занимает несколько дней. Дольше всего обычно идут договорённости: какая модель атрибуции где применяется, какая система считает какую метрику, как часто перезаливается история. Зато после этого медийку наконец можно обсуждать теми же цифрами, что и остальные каналы.
Поможем подключить Метрику Про и настроить выгрузки
Стриминг сырых данных в ваш ClickHouse, медийная статистика по API, витрины и отчёты


