Срезы по поведенческим с помощью PQYandexMetrica

Веб-аналитика Power Query

Как известно, есть очень удобный коннектор к Power BI – PQYandexMetrica, с помощью которого можно быстро выгружать данные из Метрики в готовом виде. В том числе и некие «срезы» по поведенческим показателям.

Визуализация в Power BI здесь не рассматривается, только получение цифр

Примеры данных, которые можно получать и обновлять

Т.к. в основе Power BI, то, настроив 1 раз, потом надо всего лишь обновлять данные по клику (и копипастить в Excel, при необходимости).


Стандартный срез + целевые юзеры

Стандартные поведенческие показатели

Весь каталог (исключая карточки товаров)

Поведенческие каталога

Одна из иерархий каталога + карточки товара определённого типа

Поведенческие иерархии каталога

Демография

Поведенческие плюс демография

Файл со срезами

Можно использовать этот файл для подгона под свои данные. Далее настройка будет рассматриваться на его базе. Поехали.


Подключение к Метрике

  1. Скачать и установить Power BI;
  2. Скачать последнюю версию PQYandexMetrica – если есть желание самостоятельно настроить с 0 (это рассматриваться не будет), либо указанный выше файл (потом всегда можно переехать на последнюю версию);
  3. Настроить токен и подключение к Метрике по инструкции.

Базовые настройки

Для редактирования настроек среза нужно выбрать в списке полей нужный запрос (срез), правой кнопкой и «изменить…»:

Изменить запрос Power BI

Указать свой id Метрики и токен, изменить фильтрацию по городу (либо убрать её, очистив поле filters):

Окно редактирования запроса Power BI

Для изменения диапазона, поменять значения в date1 и date2. Например, чтобы выбрать последний квартал, можно указать в date1 90daysAgo (цифра означает число дней, разумеется), а в date2 оставить yesterday.


Сохранение изменений

После редактирования сохраняем с помощью кнопки «закрыть и применить»:

Сохранение запроса Power BI

Настройка целевых посетителей

По желанию можно настроить такой учёт.


Идентификаторы целей

У каждой цели в Метрике есть идентификатор, посмотреть можно в колонке «номер цели»:

Где найти идентификаторы целей Яндекс Метрики

Определяем все цели, достижение хотя бы одной из которых, свидетельствует о том, что визит целевой, собираем их идентификаторы.


Запись для API

Выгрузка посетителей по одной цели выглядит так: ym:s:goalXXXXXusers, где вместо XXXXX – id соответствующей цели.


Модификация metrics

То есть, для каждой цели будет такая запись, готовим их все и дописываем через запятую в параметр metrics. Должно получиться примерно следующее:

ym:s:users,ym:s:bounceRate,ym:s:pageDepth,ym:s:avgVisitDurationSeconds,ym:s:robotPercentage,ym:s:goalXXXXXusers,ym:s:goalYYYYYusers,ym:s:goalZZZZZusers

Где XXXXX, YYYYY и ZZZZZ – идентификаторы нужных целей (то есть, в данном случае у нас будут данные по 3-м целям).


Обработка с помощью DAX

DAX – последователь Power Query, и с помощью этой подсистемы можно привести данные по целевым посетителям в нужный вид.


Тип данных столбцов целей

Делаем активным последний элемент в списке, кликнув по нему:

Последний шаг запроса Power Query

Выделяем (с зажатым shift’ом) в таблице все столбцы, которые означают наши цели (начинаются с «Целевые посетители»), и с помощью контекстного меню делаем их целыми числами:

Указание целых чисел для посетителей

Сводный столбец целевых посетителей

Выбираем в верхней панели добавление «настраиваемого столбца»:

Добавление настраиваемого столбца

Называем столбец «Целевые посетители», далее ставим курсор после знака «=» и перетаскиваем с помощью кнопки «вставить» все столбцы по отдельным целям, разделяя их между собой знаком «+» (то есть, складываем значения всех столбцов целей). Примерно так это выглядит:

Сложение с помощью Power Query

Нажимаем OK.


Тип данных сводного столбца целей

По аналогии с тем, как поменяли тип данных для столбцов отдельных целей, меняем тип данных нового столбца (также указываем «целое число»).


Удаление столбцов отдельных целей

Выделяем все столбцы целей, кроме сводного, и удаляем их через контекстное меню:

Удаление столбцов

Столбец процентов

По аналогии добавляем ещё один настраиваемый столбец, и указываем формулу расчёта процентов: (100 * [Целевые посетители]) / [Посетители]

Формула расчёта процентов

Округление процентов

Не люблю работать в Power Query с процентами с типом данных «проценты», делаю округление до 1 знака после запятой с помощью контекстного меню на столбце процентов: «Преобразование» - «Округление» - «Округление»

Округление до одного знака после запятой

Дублирование срезов

Один раз настроив срез (например, добавив учёт тех же целевых посетителей), похожие срезы нет смысла делать с нуля, достаточно продублировать уже настроенный (чтобы затем добавить различий):

Дублирование запроса PQ

Настройки фильтрации по URL’ам

Часто бывает полезно получить данные не по всему сайту, а по некоторым типам страниц или иерархиям – либо по просмотру таких страниц (ym:pv:URL), вне зависимости от посадки, либо только когда являются посадками (ym:s:startURL).

Понятно, что типы страниц и иерархии должны быть определяемые по URL’у (т.к. фильтрация производится по нему).

Справка по фильтрам тут.

Внимательно при экранировании в регулярках - яндексоиды что-то поломали недавно (месяц назад такой проблемы не наблюдалось), и теперь при экранировании некоторых символов (как минимум, \ и -) выбивает в ошибку

Пример простого фрагмента

Все посадочные страницы, имеющие в URL’е фрагмент site.ru/category/:

ym:s:startURL=@'.ru/category/'

Пример более сложного фрагмента

Просмотр страниц, имеющих в URL’е фрагменты /category и /svetilniki, но между ними могут быть врезки других фрагментов, например, site.ru/category/cheap/svetilniki/kuhnya, site.ru/category/svetilniki/bra, site.ru/category/vip/svetilniki:

ym:pv:URL=~'.*?\\.ru/category/svetilniki(/.*|$)' OR ym:pv:URL=~'.*?\\.ru/category/.*?/svetilniki(/.*|$)'

Куда вбивать фильтрацию по URL’ам

Выбираем нужный срез/запрос, нажимаем шестерёнку возле Source и в параметре filters указываем нужные фильтры, сочетая их с прочими фильтрами (если они есть) через оператор AND:

Редактирование фильтров

В данном примере строка фильтров следующая:

ym:s:regionCityName=='Москва' AND (ym:pv:URL=~'.*?\\.ru/category/svetilniki(/.*|$)' OR ym:pv:URL=~'.*?\\.ru/category/.*?/svetilniki(/.*|$)')

Обновление данных

Когда через некоторое время нужно обновить данные, в главном окне программы выбираем в контекстном меню среза пункт «обновить»:

Обновление запроса Power BI

Экспорт в Excel

Не нашёл другого способа в бесплатной версии Power BI, кроме как копипастить. Сначала нужно переключиться на табличный вид:

Переключение на табличный вид

Затем в контекстном меню нужного среза выбрать пункт «копировать таблицу»:

Копировать таблицу из контекстного меню

И вставить в Excel.


Пожирание лимитов

Выгрузка данных рассмотренным способом тратит лимиты. Пока лень было выяснить, какой получается их расход, но это сделать можно – например, с помощью Директ Коммандера, который показывает данные по лимитам (засечь и сравнить значения до и после отправки запроса по API).

Использованные картинки: 1