Подключение Яндекс.Метрики к Yandex DataLens
Счетчик Яндекс.Метрики можно подключать к Yandex DataLens и создавать пользовательские дашборды, визуализировать воронки и когорты пользователей, предоставлять доступы только к определенной части данных и делиться отчетами с другими. В этом руководстве рассмотрим несколько способов подключения вашего счетчика Яндекс.Метрики к сервису визуализации и анализу данных Yandex DataLens.
На текущий момент существует три способа подключения:
- использование готового подключения в Yandex DataLens к Яндекс.Метрике (API отчетов);
- экспорт данных из Яндекс.Метрики в базу данных ClickHouse (Logs API);
- готовая интеграция Яндекс.Метрики c Yandex Cloud (Метрика Про).
Давайте подробнее разберем преимущества и недостатки каждого из них.
1. Готовое подключение в Yandex DataLens к Яндекс.Метрике (API отчетов)
В DataLens существует готовое подключение к Яндекс.Метрике, которое можно настроить всего за несколько кликов. Для этого перейдите по ссылке, авторизовавшись под своей учетной записью, и создайте подключение:
На открывшейся странице выберите подключение Metrica:
Если вы впервые создаете подключение к счетчику Яндекс Метрики, вам необходимо предоставить приложению необходимые разрешения. Сделать это очень просто, нажав на кнопку Получить токен:
В вашем браузере на мгновение откроется новая вкладка, в которой произойдет автоматическая авторизация и получение токена доступа. Как только вы его получите, вы сможете выбрать из выпадающего списка свой счетчик Яндекс.Метрики (можно указать один или несколько счетчиков для подключения):
Если вы хотите получить доступ не под текущей учетной записью Яндекса или в списке нет подходящего счетчика, то вам нужно получить и указать OAuth-токен вручную. Подробнее о том, как самостоятельно получить токен доступа, читайте в этих материалах:
Примечание: подключить одновременно несколько счетчиков от разных аккаунтов невозможно.
Поскольку подключение Metrica в Yandex DataLens работает на базе API отчетов Метрики, вы можете самостоятельно задать уровень точности данных (сэмплирование), которые будут выгружаться.
Вы можете изменить точность после создания подключения.
Оставьте опцию Автоматически создать дашборд, чарты и датасет над подключением включенной, если хотите получить каталог со стандартным набором датасетов, чартов и готовый дашборд. Либо вы можете создать дашборд с нуля, тогда галочку нужно убрать.
После создания подключения вам откроется папка с набором датасетов, чартов и дашбордов.
Перейдите на Дашборд по данным Метрики:
Сам дашборд состоит из вкладок Визиты и Просмотры, на которых представлена статистика на уровне визитов и на уровне хитов с соответствующими группировками (параметрами) и показателями. В демонстрационном дашборде доступна информация по нескольким разделам:
- Мониторинг - динамика трафика по просмотрам/визитам/посетителям, статистика по поведенческим факторам (отказы, глубина просмотра, время на сайте), срез по типам устройств;
- Источники трафика - источники трафика по визитам, отказы по последнему источнику трафика;
- Технологии - визиты по типам устройств и ОС, соотношение типов устройств по времени суток, доля визитов по браузерам, визиты, просмотры и посетители по браузерам.
Вы можете изменять стандартный дашборд так, как вам удобно - удалять графики, перемещать текстовые блоки, изменять размеры визуализаций и т.д. Для этого в правом верхнем углу нажмите на кнопку Редактировать, а затем выполните нужные преобразования внутри самого дашборда:
Если у вас нет счетчика Яндекс.Метрики, но вы хотели бы посмотреть на дашборд в DataLens, воспользуйтесь готовым решением из DataLens Marketplace.
По умолчанию данные из Metrica выгружаются за последние 60 дней. Еще одним существенным ограничением является то, что во встроенном коннекторе DataLens доступны не все функции обработки данных, а если быть точнее - то практически все они недоступны. Например, вы не сможете воспользоваться функцией остатка от деления (%), отрицания (-), возведении в степень, возврат абсолютного значения заданного числа (ABS), арккосинус числа (ACOS), всеми функциями, связанными с массивами, CASE, CONCAT, COUNT, DATE, IF, ISNULL, MIN, MAX, SUM, SUBSTR, регулярными выражениями REGEXP, UNNEST и многими другими. Также нельзя объединять таблицы на уровне визитов (Visits) и просмотров (Hits).
На странице поддержки функций в официальной документации Yandex Cloud вы можете подробно ознакомиться с ограничениями готового коннектора Metrica в DataLens:
Эти ограничения не позволяют использовать вышеприведенные функции при создании собственных вычисляемых полей:
Помимо этого, во встроенном подключении DataLens нет возможности выбрать все доступные параметры и показатели для Метрики. Например, вы не можете использовать данные о количестве конверсии по целевым визитам, есть только показатель Достигнутая цель (ym:s:goalName) и Достижения любой цели (ym:s:sumGoalReachesAny):
Данные по расходам рекламных кампаний также недоступны в готовом подключении.
Для обеспечения максимального уровня доступности сервиса, в Яндекс.Метрике предусмотрены ограничения на интенсивность запросов к API со стороны пользователей. В случае превышения квот дальнейшие действия пользователя временно блокируются. Работая с API отчетов, количество запросов в сутки не должно превышать 5000.
Есть ли альтернативное решение обойти все эти ограничения? Да, вы можете загрузить необходимые метрики в базу данных ClickHouse с помощью Logs API, а затем настроить подключение в DataLens.
2. Экспорт данных из Яндекс.Метрики в базу данных ClickHouse (Logs API)
Владелец сайта после установки счетчика Яндекс.Метрики, как правило, работает в интерфейсе сервиса. Он использует отчеты, просматривает графики, анализирует данные в таблицах, меняет параметры и показатели, накладывает фильтры, сравнивает сегменты и аудитории за разные диапазоны дат, и многое другое.
В Яндекс.Метрике ключевую роль играют параметры (группировки) и показатели, потому что любые отчеты, которые вы используете при решении задач, состоят из целого набора различных метрик. В интерфейсе Метрики вы видите, так называемые, агрегированные (суммарные или обобщенные) данные:
Характерная строка Итого и средние над таблицей свидетельствует об этом. Это означает, что со статистикой в отчете уже были совершены определенные действия. Как правило, это простые арифметические операции - сложение, вычитание, умножение и деление. То есть над ними поработали за вас. А вы в отчетах видите уже готовые, обобщенные наборы данных, посчитанные заранее.
Агрегированные данные рассчитываются для определенной группы визитов. Например, метрика Время на сайте вычисляется для всех переходов из какого-либо источника трафика, всех визитов от посетителей мужского пола или всех визитов с планшетов. Именно с агрегированными данными вы всегда работаете в интерфейсе Яндекс.Метрики.
Но если агрегированная статистика - это уже переработанные самой Метрикой данные, то что является основой таких расчетов? Какие данные и в каком виде Яндекс.Метрика использует для того, чтобы рассчитать Итого и средние и остальные показатели в отчетах?
Основой для этих расчетов служат сырые данные - записи об отдельных визитах или просмотрах. Например, вот так выглядят данные по моему счетчику за несколько дней:
Таблицу с такими записями можно получить через Logs API. Вы делаете запрос на те данные, которые хотите выгрузить, и вам выдается список тех посещений пользователей, которые были на вашем сайте. Можно увидеть идентификатор визита, Client ID пользователя, время его пребывания на сайте, просмотры страниц, регион, источник перехода, достижение целей, браузер, модель мобильного телефона и многое другое.
Сырые данные необходимы, чтобы получить новую статистику помимо той, что доступна в отчетах. Данные можно загрузить в свою базу данных и далее гибко ими управлять, а также объединять данные Яндекс.Метрики с другими источниками. Хранить и управлять полученными данными можно с помощью ClickHouse.
Статистику вашего счетчика Метрики Яндекс хранит тоже в ClickHouse, но доступ к базе данных есть только у него. А вы можете создать свой собственный ClickHouse-кластер и загрузить в него данные Яндекс.Метрики с помощью Logs API.
Какие задачи можно решать с помощью сырых данных? Например:
- построить воронки на любых событиях, в том числе для электронной торговли (в Метрике воронки частично реализованы через Составную цель. Однако у нее есть недостатки - все шаги в составной цели должны быть выполнены в рамках одного визита посетителя, также в качестве шага нельзя использовать офлайн-конверсии, например, звонки);
- настроить передачу данных в режиме реального времени на любые реакции, изменения алертов, триггеров, адаптив контента, запуск цепочек коммуникаций на вашем сайте и многое другое;
- создать различные карты (путей пользователей от страницы к странице, по событиям, по источникам трафика и т.д.);
- проанализировать возвращаемость пользователей, оценить удержание клиентов, построить когортный анализ;
- создать собственные модели атрибуции, увидеть ассоциированные конверсии;
- обогатить события на сайте данными из других систем, то есть построить сквозную аналитику, объединив информацию из разных источников;
- воссоздать любые базовые отчеты - посещаемость, по utm_меткам, популярные страницы и прочее;
- построить различные дашборды в Yandex DataLensи связать статистику Метрики с другими наборами данных вашей организации или вообще с данными, которые могут находиться вне вашей базы данных (например, объединение информации о ваших заказах с информацией о погоде, чтобы узнать, как дождь влиял на итоговое количество обращений и выручку компании).
С неагрегированными данными можно работать очень гибко. Именно поэтому все крупные организации и компании при построении своей собственной аналитики используют сырые данные и Logs API, а в официальной документации разработчиков описан способ подключения к арендованному облаку и базе данных ClickHouse.
К сожалению, подробных пошаговых инструкций и примеров в открытом доступе по выгрузке данных из Logs API в ClickHouse не существует. Но вы можете попробовать сделать это самостоятельно, используя нижеприведенный алгоритм или же записаться на мой онлайн-курс по Яндекс.Метрике, в котором мы подробно разбираем Logs API и работу с сырыми данными:
- установка IDE на компьютер и создание проекта (или развертывание его в облаке);
- создание приложения Яндекса;
- получение OAuth-токена;
- выбор счетчика Яндекс.Метрики, из которого вы будете выгружать статистику;
- установка нужных библиотек Python и их подключение в программе;
- создание облака в Yandex Cloud;
- cоздание платежного аккаунта;
- создание каталога;
- создание кластера ClickHouse;
- создание сети;
- создание группы безопасности;
- получение SSL-сертификата;
- предоставление публичного доступа к кластеру ClickHouse;
- подключение вашего кластера ClickHouse к DataLens;
- создание дашборда в Yandex DataLens, включая редактирование параметров и показателей источника, а также добавление новых расчетных полей на основе формул;
- предоставление доступа к отчету другим пользователям.
Подключение к DataLens производится с помощью готового коннектора ClickHouse:
В новом окне выберите:
- Тип подключения – выбрать в каталоге
- Облако и каталог – свои значения
- Кластер – свое значение БД ClickHouse
- Имя хоста – свое значение из списка
- Порт HTTP-интерфейса – 8443
- Имя пользователя
- Пароль
- Время жизни кeша в секундах – по умолчанию
- Уровень доступа SQL запросов – разрешить подзапросы в датасетах и запросы из чартов
Перед тем, как нажать кнопку Создать подключение, вы можете проверить корректность введенных настроек. Для этого нажмите на кнопку Проверить подключение. Если рядом с ней вы увидите зеленую галочку, значит соединение может быть установлено.
В завершение нажмите синюю кнопку Создать подключение. Введите название подключения и нажмите кнопку Создать.
Для такого способа подключения Яндекс.Метрики к DataLens вам нужно самостоятельно писать код выгрузки/загрузки и поддерживать скрипты в работоспособном состоянии. Да, это гораздо сложнее, чем использовать готовое подключение Метрика к DataLens, а также является платным, поскольку аренда вычислительных мощностей в Яндекс.Облаке и места в хранилище стоит денег. Но и преимущества от использования сырых данных и Logs API очевидны:
- полный контроль над своими данными - вы сами управляете всей логикой, набором полей и расписанием экспорта данных;
- вы можете создать такие визуализации, которые недоступны ни в интерфейсе самой Яндекс.Метрики, ни в дашборде готового подключения в DataLens;
- вам будут доступны все функции - агрегатные, логические, оконные, математические, строковые, функции даты и разметки, преобразование типов, включая объединение таблиц и работу с массивами;
- вы можете объединять ваши данные Яндекс.Метрики с другими источниками, например, с информацией из CRM-системы, рекламными данными других сервисов
3. Готовая интеграция Яндекс.Метрики c Yandex Cloud (Метрика Про)
Если вы не обладаете навыками программирования и не хотите разбираться в подключении Logs API к ClickHouse, но желаете иметь еще большую гибкость и контроль над своей статистикой Яндекс.Метрики вне интерфейса, вы можете воспользоваться готовой интеграцией Яндекс.Метрики c Yandex Cloud, являющейся частью пакета Метрика Про.
Благодаря ей, вы сможете сделать не только все вышеперечисленное, но еще и будете обладать рядом преимуществ по сравнению с существующим способом выгрузки данных по LogsAPI, который доступен для всех нас.
К таким преимуществам можно отнести следующий функционал:
- потоковая передача данных в реальном времени (задержка от момента события до появления записи о нем в ClickHouse до 15 минут);
- расширенный набор полей по контентной аналитике, данным о клиентах и заказах из CRM, дополнительные данные о ecommerce-событиях, например, просмотр товара и добавление в корзину, идентификатор рекламного клика Директа (yclid), показатель наличия параметра у хита для подсчета количества хитов (см. ниже).
Для электронной торговли - это:
- тип события
- список, в который входят товары, связанные с транзакцией
- позиция товара в списке или коллекции
- бренд, к которому относится товар
- купон, погашенный при транзакции
Для контентной аналитики:
- тематики и авторы статьи
- источник трафика для статьи
- перешел ли посетитель на другую статью на сайте
- идентификатор статьи, с которой перешли на текущую
- время, в течение которого пользователь видел статью
- доскроллы статьи
Детализация источников:
- идентификатор рекламного клика Директа (yclid)
- идентификатор рекламного объявления
- тип Турбо (является ли страница турбо или нет)
- площадка размещения
- идентификатор мессенджера
- рекомендательная система
- переход по qr-коду
Данные о клиентах и заказах из CRM:
- Hash OrderID и Hash UserID
- версия заказа
- время создания и время изменения заказа
- статус заказа
- названия и количество товаров в заказе
Подробный список выгружаемых полей доступен в официальной справке Яндекса.
Все эти поля даже при выгрузке из Logs API не будут вам доступны. Они есть только в новой интеграции.
Чтобы попробовать новую интеграцию, вы можете перейти по ссылке ниже и оставить заявку на подключение коннектора Яндекс.Метрики c Yandex Cloud к своему счетчику. Тестовый период составляет 1 месяц. Приобрести пакет Метрика Про можно у партнеров Яндекса.
Команда Яндекса с радостью предоставит вам тестовый период, чтобы вы смогли самостоятельно пройтись по этому руководству и выполнить все шаги настройки.
Попробовать новую интеграцию
Несмотря на то, что у Яндекса теперь есть готовая интеграция для сырых данных, которая не требует написания кода, вам все равно потребуется дополнительная настройка прежде, чем вы сможете подключить коннектор к своему счетчику Метрики.
Вы, как владелец счетчика Метрики (или пользователь, у которого есть права на редактирование) с расширенными возможностями пакета Метрика Про, должны выполнить следующие действия:
- создать облако в Yandex Cloud;
- добавить платежный аккаунт;
- создать каталог;
- создать кластер ClickHouse;
- настроить подключение к созданному кластеру;
- в сервисе Yandex Data Transfer подключить источник данных, выбрав соответствующие типы данных (хиты / визиты) и указав требуемый набор полей, а также добавить сам счетчик Яндекс.Метрики, из которого нужно выгружать статистику, и OAuth-токен посетителя, у которого есть доступ к счетчику на редактирование;
- связать источник (вашу Яндекс.Метрику) и приёмник (созданный кластер ClickHouse), образовав трансфер;
- запустить трансфер.
В рамках этого материала я не буду описывать каждый шаг настройки. В моем блоге есть отдельное руководство на эту тему. Обязательно прочитайте его.
Этот вариант подключения основан на сервисе Yandex Data Transfer, который автоматически выгружает данные в ваш облачный кластер ClickHouse. С одной стороны настраивается подключение к Яндекс.Метрике (источник), а с другой - кластер ClickHouse (приёмник) в Yandex Cloud. Именно благодаря Data Transfer после настройки связи данные счетчика сначала записываются в Logbroker и во внутреннее хранилище сервиса, а затем оттуда с помощью все того же Data Tranfer переносятся в вашу базу данных ClickHouse.
Такой вариант является чуть сложнее готового подключения в Yandex DataLens к Яндекс.Метрике, основанного на API отчетов, но он гораздо легче самостоятельного экспорта данных из Logs API в ClickHouse, поскольку вам не нужно писать коды выгрузки и поддерживать программы в работоспособном состоянии, а также осуществлять различные преобразования перед загрузкой данных в собственный кластер. Не нужно задумываться и об обновлении данных по расписанию и их актуальности. Все это в готовой интеграции Яндекс.Метрики c Yandex Cloud делается за вас. Помимо этого, в тарифе Метрика Про расширены лимиты на количество запросов в сутки, добавлено множество новых полей, которые вы не сможете выгрузить с помощью Logs API самостоятельно, а вся информация в вашем отчете Yandex DataLens обновляется в режиме реального времени.
Но минусы у такого подключения тоже есть:
- доступ к коннектору и Метрике Про пока ограничен и распространяется только через сертифицированных партнеров Яндекса;
- передавать данные с помощью готового коннектора можно только в базу данных ClickHouse;
- стоимость использования - самая высокая, поскольку вы платите не только за аренду ПО и вычислительные мощности Yandex Cloud, но и за сам тариф Метрика Про.
Примечание: после того, как вы создали свой кластер ClickHouse в Yandex Cloud и загрузили в него данные, вы можете использовать специальную программу DBeaver для работы с базой данных посредством SQL-команд. Подробнее читайте тут.
При подключении к DataLens вы тоже используете встроенный коннектор ClickHouse:
Далее задаете настройки соединение и создаете подключение.
Итоги
Мы с вами рассмотрели все возможные способы подключения вашего счетчика Яндекс.Метрики к Yandex DataLens. Как видите, у каждого из них есть свои преимущества и недостатки. Если подытожить все то, о чем шла речь в этом материале, то для каждого варианта можно сделать следующее заключение:
Использование готового подключения в Yandex DataLens к Яндекс.Метрике (API отчетов)
Самый простой и бесплатный способ подключения, не требующий навыков разработки, который подходит для большинства проектов. Вы можете подключаться в DataLens к одному или нескольким счетчикам Метрики. Информация в вашем дашборде будет обновляться в режиме реального времени.
По умолчанию данные из Metrica выгружаются за последние 60 дней. Во встроенном коннекторе DataLens доступны не все функции обработки данных, нет возможности объединять данные, работать с регулярными выражениями и массивами. Вы также будете ограничены во множестве логических, оконных и строковых функций, не сможете преобразовывать типы данных. Количество полей, которые выгружаются из Метрики с помощью API отчетов, также ограничено. Например, нет возможности выгрузить рекламные расходы и количество конверсий по целевым визитам. Поскольку готовое подключение использует API отчетов Метрики, то количество запросов в сутки не должно превышать 5000. При превышении лимита обращений к API вы можете получить временную блокировку действий.
Экспорт данных из Яндекс.Метрики в базу данных ClickHouse (Logs API)
Способ основан на Logs API и самостоятельных действиях - создании проекта в Yandex Cloud, развертывании кластера ClickHouse, аренде ПО, вычислительных мощностей и написании скриптов для выгрузки данных, их преобразовании и загрузке в облачное хранилище. Благодаря работе с сырыми данными, вы получаете полный контроль над своими данными - управляете всей логикой работы трансфера, набором полей и расписанием экспорта данных и обновлением статистики. Вы можете создать такие визуализации, которые недоступны ни в интерфейсе самой Яндекс.Метрики, ни в дашборде готового подключения в DataLens.
С использованием ClickHouse в Yandex Cloud вам будут доступны все функции - агрегатные, логические, оконные, математические, строковые, функции даты и разметки, преобразование типов, включая объединение таблиц и работу с массивами. Вы также можете объединять ваши данные Яндекс.Метрики с другими источниками, например, с информацией из CRM-системы, рекламными данными других сервисов и любой другой информацией с вашей организацией, используя при этом SQL-команды.
Для Logs API существуют свои лимиты и ограничения на количество запросов в сутки, и они больше, чем у API отчетов. Например, количество запросов с одного IP-адреса для API отчетов составляет 30 в секунду, а для Logs API - 10, а объем данных, выгружаемых через Logs API на запрос, составляет 10 ГБ.
Готовая интеграция Яндекс.Метрики c Yandex Cloud (Метрика Про)
Если вы являетесь владельцем крупного проекта с большим количеством данных, насчитывающих миллионы хитов в день, со сложной аналитической структурой, где существуют свои требования к стандартам качества и скорости обработки информации, то тариф Метрика Про и готовая интеграция Яндекс.Метрики c Yandex Cloud для вас.
Помимо всех преимуществ предыдущего способа экспорта данных из Яндекс.Метрики в базу данных ClickHouse с помощью Logs API, в Метрике Про вы получаете расширенные возможности на количество получаемых данных:
Теперь количество целей на 1 счетчик, которые вы можете создать, составляет 1000 (вместо стандартных 200). Увеличилась и возможность создания большого количества сегментов на 1 счетчик как в интерфейсе Метрики, так и в API - 1000 (было 500). Другие расширения - это объем данных, выгружаемых через Logs API на 1 запрос (100 vs 10 ГБ) и количество запросов в API отчетов (было - 5000 в сутки, а стало - 20 000).
Также увеличена квота на количество запросов на выдачу доступов к счетчику. Это позволяет вам выдавать доступ нескольким пользователям в одном запросе. Расход квот на запросы к API отчетов можно отслеживать в личном кабинете, который появится у вас после подключения пакета Метрика Про.
Таким образом, при использовании готового коннектора вы получаете полностью автоматическую передачу данных из Метрики в ClickHouse благодаря сервису Yandex Data Transfer. Вам не нужно писать коды выгрузки и поддерживать программы в работоспособном состоянии, а также осуществлять различные преобразования перед загрузкой данных в собственный кластер. Не нужно задумываться и об обновлении данных по расписанию и их актуальности. Все это в готовой интеграции Яндекс.Метрики c Yandex Cloud делается за вас.
Расширенный набор полей по контентной аналитике, данным о клиентах и заказах из CRM, дополнительные данные о ecommerce-событиях доступен только в тарифе Метрика Про. Ни в API отчетов, ни в Logs API (других способах подключения) вы не сможете их получить. Потоковая передача данных осуществляется в реальном времени (задержка от момента события до появления записи о нем в ClickHouse до 15 минут). В Метрике Про добавлена возможность задать уровень выборки на уровне 100% в любой момент времени, чего нельзя сделать ни в одном из других способов для данных вашего счетчика Метрики.
Примечание: через некоторое время Яндекс планирует добавить API отчетов медийной рекламы, а также возможность настроить доступы к ограниченному набору данных счетчика (например, к данным по трафику с определенной рекламной кампании).
На момент выхода этого материала доступ к коннектору и Метрике Про ограничен и распространяется только через сертифицированных партнеров Яндекса. Но вы можете попробовать его функционал, перейдя по ссылке и оставив свою заявку на подключение. Команда Яндекса предоставит вам тестовый период на 1 месяц для тестирования.
Если готовое подключение в Yandex DataLens к Яндекс.Метрике на основе API отчетов является бесплатным, а при экспорте данных с помощью Logs API в ClickHouse вы платите за инфраструктуру Yandex Cloud , то для при использовании готовой интеграции Яндекс.Метрики c Yandex Cloud сюда еще добавляется и цена самого тарифа Метрики Про. На момент публикации этой статьи стоимость пакета составляет от 300 000 рублей в месяц при объеме данных до 500 млн. хитов. За дополнительной информацией обращайтесь к партнерам Яндекса.