Отчеты по событиям в Яндекс Метрике

31 июля, 2024

25 июля 2024 года Яндекс анонсировал новые отчеты по событиям в Яндекс Метрике. О том, какие возможности появились у владельцев счетчиков после обновления, читайте в этом материале.

Предисловие

События - ключевой компонент во всех рекламных и аналитических инструментах (Google Analytics 4, Facebook *, TikTok, VK Рекламе). Они предназначены для отслеживания взаимодействий пользователей с любыми элементами сайта:

  • клик по конкретной кнопке;
  • отправка формы;
  • отправка данных о транзакции;
  • отслеживание звонков;
  • просмотр видео;
  • подписка на рассылку;
  • скроллинг страницы;
  • пролистывание галереи с фотографиями;
  • переключение чек-боксов или любых других элементов;
  • клики по иконкам социальных сетей;
  • открытие / закрытие всплывающих окон на сайте;
  • отслеживание действий в онлайн-консультантах, чатах (JivoSite, Callbackhunter, Venyoo, Talk-Me и т.д.);
  • отслеживание событий, которые активируются после определенного времени или действия (например, когда пользователь увел курсор мыши с какого-нибудь объекта);
  • и т.д.

* Деятельность американской компании Meta (бывшая Facebook) запрещена в России, организация признана экстремистской.

В Яндекс Метрике всегда была возможность настроить любые события, происходящие на сайте. И в зависимости от того, какое именно действие вы хотите отслеживать, тот тип условия вы и выбирали в интерфейсе при создании цели.

Типы целей

Одной из таких целей является JavaScript-событие. Ее используют, когда требуется отследить произвольные взаимодействия пользователя с любыми элементами на странице. Примеров отслеживания с помощью JS-события дикое множество, все ограничивается лишь вашей фантазией. В отличие от целей, которые настраиваются прямо в интерфейсе Яндекс Метрики, события задаются как в интерфейсе, так и в коде вашего сайта. Поэтому если вы не обладаете навыками работы с HTML/CSS и JavaScript, обратитесь к разработчику вашего сайта с просьбой настроить нужные события.

При создании цели JavaScript-событие указывается только ее идентификатор, который будет размещен в методе reachGoal на сайте. Конструкция такого события выглядит следующим образом:

, где:

  • XXXXXX - идентификатор счетчика Яндекс Метрики;
  • reachGoal - метод передачи данных;
  • target - идентификатор цели. Он задается на странице редактирования счетчика при создании или изменении цели;
  • params – можно передавать собственные параметры визита;
  • callback - функция, вызываемая после отправки данных о просмотре;
  • ctx - контекст, доступный в callback-функции по ключевому слову this.

Единственный параметр, который является обязательным в этой конструкции – это target (идентификатор цели). Без него события не будут фиксироваться, а данные передаваться в Метрику. Его владелец счетчика и указывает в интерфейсе при создании цели, выбрав одно из трех условий - совпадаетсодержит или регулярное выражение::

Пример идентификатора цели JS-события

Примечание: идентификаторы цели для условий совпадает и содержит не должны содержать символы / \ & # ? = ". Если вы хотите добавить в идентификатор символ +, вместо него укажите %2B

После ввода идентификатора цели чуть ниже вам отобразится итоговая строка кода, которую требуется добавить на отслеживаемый элемент:

Пример кода JavaScript-события

где:

  • 54442894 - идентификатор счетчика Яндекс.Метрики;
  • reachGoal - специальный метод объекта Ya.Metrika (JavaScript API);
  • clickButton - идентификатор цели, который вы ввели для JavaScript-события.

Например, если вы хотите отследить клик по кнопке на странице вашего сайта именно таким способом, тогда полученный код цели вам или вашему разработчику необходимо установить на этот отслеживаемый элемент. Поскольку код цели должен быть закреплен за браузерным событием, перед конструкцией Яндекс Метрики для клика нужно написать атрибут onclick:

Код цели JavaScript-события устанавливается на отслеживаемый элемент (пример клика по кнопке)

Если вы в своем проекте используете Google Tag Manager, тогда аналогичная конструкция кода цели копируется из интерфейса Яндекс Метрики и вставляется в тег типа Пользовательский HTML между открывающимся и закрывающимся тегами <script></script>:

Пример отслеживания клика по кнопке через GTM

В качестве триггера активации вы должны задать то условие, которое будет регистрировать отслеживаемое событие и передавать его в счетчик Яндекс Метрики. Подробнее о триггерах GTM читайте в этом материале.

Именно такую конструкцию, скопированную из интерфейса Яндекс Метрики при создании цели JavaScript-события, 99% интернет-маркетологов и используют для отслеживания кликов по кнопкам, ссылкам, отправки форм и другим произвольным событиям.

Новые отчеты

Если тип цели JavaScript-событие доступен и используется в Яндекс Метрике давно, то какие обновления произошли 25 июля? Во-первых, в интерфейсе Метрики появилось два новых отчета:

  • Параметры событий
  • Параметры целей

Оба они находятся в разделе Отчеты - Содержание:

Отчеты - Содержание - Параметры событий и Параметры цели

Отчет "Параметры событий" предназначен для анализа событий на конкретных страницах сайта:

Отчет "Параметры событий"

Основным параметром (группировкой) здесь является URL события (адрес страницы, на которой было достигнуто отслеживаемое вами событие).

А отчет "Параметры целей" предназначен для детального анализа переданных целей и сопутствующих параметров вместе с ними:

Отчет "Параметры целей"

В нем основным параметром (группировкой) является "Цель JavaScript Событие", то есть в списке будут отображаться только те цели, которые передают данные в Метрику методом reachGoal.

Ключевая метрика (показатель) в отчетах по параметрам событий и параметрам целей - не визиты, не посетители, а именно Количество событий (количество отправленных событий в Метрику методами init, reachGoal, params и др.).

Ключевая метрика (показатель) в отчетах - Количество событий

В качестве дополнительных группировок в двух новых отчетах идут параметры событий нескольких уровней - Параметр события, ур. 1.... Параметр события, ур. 5. Но если вы нажмете над таблицей Группировки и выберете Параметры событий, то увидите, что еще пять галочек напротив Параметр события, ур. 6, Параметр события, ур. 7, Параметр события, ур. 8, Параметр события, ур. 9, Параметр события, ур. 10. сняты.

Параметры события, ур. 6 - ур. 10

Всего их 10:

  1. Параметр события, ур. 1
  2. Параметр события, ур. 2
  3. Параметр события, ур. 3
  4. Параметр события, ур. 4
  5. Параметр события, ур. 5
  6. Параметр события, ур. 6
  7. Параметр события, ур. 7
  8. Параметр события, ур. 8
  9. Параметр события, ур. 9
  10. Параметр события, ур. 10

И вот тут возникает главный вопрос - что такое параметры события и что это за уровни?

О параметрах события

Как вы понимаете, не всегда собранной статистики счетчиком Яндекс Метрики по умолчанию хватает для полноценной работы. Иногда возникает необходимость передать дополнительную информацию вместе с каким-нибудь событием. Например, точное время совершенного события, значения выбранных полей формы или введенной в них информации, идентификатор заявки (если он генерируется на вашем сайте), значение промокода или скидки, добавленного в отдельное поле, номер/вариант эксперимента и т.д. и т.п. В общем, передавать в счетчик любые данные, которые не регистрируются Метрикой автоматически "из коробки".

Яндекс Метрика позволяет связать с визитом произвольный набор данных, называемых параметрами события. Эти данные могут быть отображены в новых отчетах и отчете Параметры визитов, а также использоваться в условиях группировки и сегментации. Таким образом, вы сможете создать более детальные срезы, анализировать их, а также определять, какие услуги у вас самые востребованные, какого специалиста чаще всего выбирают, в какое время и т.д. и т.п. Медицина, банковские услуги, автомобильная тематика, недвижимость, интернет-магазин, производство - значения не имеет. Благодаря параметрам событий вы можете существенно расширить данные вашего счетчика Яндекс Метрики, передавая вместе с JavaScript-событием еще и параметры. Это очень похоже на параметры событий Google Analytics 4, которые вы можете передавать вместе с самим событием.

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

Существует несколько способов передачи параметров событий:

  • при инициализации счетчика Яндекс Метрики параметры событий указываются в параметре params;
  • для передачи параметров событий во время просмотра посетителем сайта используется метод params, либо необязательный аргумент методов extLinkfilehitreachGoal.

На самом деле передавать параметры событий в Яндекс Метрику можно было и раньше, просто они отображались только в одном единственном отчете - Параметры визитов:

Отчет "Параметры визитов"

Теперь же разработчики Метрики расширили возможности анализа данных (сейчас это не только один отчет), а также упростили понимание данной темы.

В моем блоге есть подробная статья по отправке событий в Яндекс Метрику с дополнительными параметрами в методе reachGoal. Обязательно прочитайте ее, так как в ней разбираются различные примеры:

  • передача одного параметра визита (статические);
  • передача нескольких параметров визита (статические);
  • передача 10 параметров визита (статические);
  • передача одного параметра визита (динамические);
  • передача нескольких параметров визита (динамические);
  • параметр визита с ценой цели.

Все, что написано в том руководстве, актуально и для текущих обновлений.

Передача данных методом params

Итак, для передачи параметров событий в Метрику используется специальный метод params. В нем как раз и передаются дополнительные данные о событии. Базовая конструкция имеет такой вид:

, где:

  • XXXXXX - идентификатор счетчика Яндекс Метрики;
  • params - метод передачи данных;
  • parameters - параметры визита/события.

Параметры визита/события могут быть статическими и динамическими. Статические данные - это те, которые заданы изначально и не меняются в процессе совершения события, то есть являются константами (const). Динамические, напротив, меняются от события к событию и от выбора самого пользователя. Например, один посетитель сайта заполнил заявку в 17:00 и ввел промокод на скидку, а другой отправил форму в 17:05 и не добавил его. Для каждого из них передадутся разные значения параметров визита/события. На практике в большинстве случаев используются именно динамические значения, так как все пользователи по-разному взаимодействуют с вашим сайтом.

Например, чтобы передать параметр события вместе с событием клика по кнопке, можно использовать следующую конструкцию:

, где:

  • time_click - название параметра события;
  • user_time - значение параметра события (например, время совершения пользователем события). Значение подставляется динамически в зависимости от того, когда посетитель совершил это действие. Для этого воспользуйтесь услугами разработчика, который сформирует вам соответствующий JavaScript-код по извлечению текущего времени.

Таким образом, если вы планируете отслеживать и передавать в Метрику параметр события на клик по кнопке, тогда итоговый код вам или вашему разработчику необходимо установить на этот отслеживаемый элемент напрямую; в исходный код страницы:

Пример:

Пример передачи параметра события в Яндекс Метрику методом params

Если вы в своем проекте используете Google Tag Manager, тогда аналогичная конструкция кода с методом params вставляется в тег типа Пользовательский HTML между открывающимся и закрывающимся тегами <script></script>. Но поскольку параметр time_click является динамическим, вам необходимо позаботиться о корректной передаче его значения. К счастью, для точного времени обращения в моем блоге уже есть статья с необходимым кодом JavaScript, которым можно воспользоваться:

Пример кода с параметром события в Google Tag Manager

В качестве триггера активации вы должны задать то условие, которое будет регистрировать отслеживаемое событие и передавать его в счетчик Яндекс Метрики. Это лишь пример передачи одного динамического параметра события, но он очень показателен.

Через некоторое время, после совершения события, параметры событий и его значения, переданные с помощью метода params, будут доступны в отчетах Яндекс Метрики. Теперь статистика отображается как минимум в двух отчетах (после обновлений 25 июля):

  • Параметры событий (новый отчет);
  • Параметры визитов (старый отчет).

Например, вот так будет выглядеть переданный параметр события в отчете по параметрам событий:

Пример переданного параметра события в Яндекс Метрику

В отчете по параметрам целей данных не будет, поскольку мы с вами не создали в Яндекс Метрике цель типа JavaScript-событие.

Передавать можно и несколько параметров событий. Главное, чтобы запрос данных, отправляемых в Метрику, не превышал 8 КБ (8 192 символов). Если в рамках одного визита был отправлен один параметр с разными значениями, то в Метрике отобразятся все значения. При этом стоит учитывать, что в одном визите можно передать до 512 параметров визитов/событий.

Передача данных методом reachGoal

Параметры событий можно передавать и с другими методами, например с reachGoal. Чуть выше мы с вами разобрали самую простую конструкцию, которую используют все интернет-маркетологи и владельцы счетчиков Метрики когда настраивают JavaScript-событие.

, где:

  • XXXXXX – идентификатор счетчика Яндекс Метрики;
  • reachGoal – метод для отслеживания цели типа JavaScript-событие;
  • target – идентификатор цели:

Но на самом деле общая конструкция достижения целей методом reachGoal выглядит иначе и состоит из большего количества параметров:

, где:

  • target - идентификатор цели (задается на странице редактирования счетчика при создании или изменении цели);
  • params – можно передавать собственные параметры визита;
  • callback - функция, вызываемая после отправки данных о просмотре;
  • ctx - контекст, доступный в callback-функции по ключевому слову this.

Именно она позволяет использовать параметры события и передавать вместе с самим JS-событием дополнительную информацию в качестве параметров визита/события. Именно этот способ передачи данных очень подробно разбирается в моем другом руководстве.

Пример того же события, что мы отправляли методом params, но теперь уже через reachGoal, будет выглядеть так:

, где:

  • clickButton - идентификатор цели из интерфейса Яндекс Метрики;
  • time_click - название параметра события;
  • user_time - значение параметра события (например, время совершения пользователем события). Значение подставляется динамически в зависимости от того, когда посетитель совершил это действие. Для этого воспользуйтесь услугами разработчика, который сформирует вам соответствующий JavaScript-код по извлечению текущего времени.

При использовании метода reachGoal не забудьте создать цель типа JavaScript-событие:

Создание цели типа "JavaScript-событие"

Таким образом, если вы планируете отслеживать и передавать в Метрику параметр события на клик по кнопке, тогда итоговый код вам или вашему разработчику необходимо установить на этот отслеживаемый элемент напрямую; в исходный код страницы:

Пример:

Пример передачи параметра события в Яндекс Метрику методом reachGoal

Если вы в своем проекте используете Google Tag Manager, тогда аналогичная конструкция кода с методом params вставляется в тег типа Пользовательский HTML между открывающимся и закрывающимся тегами <script></script>. Пример:

Пример кода с параметром события в Google Tag Manager

В качестве триггера активации вы должны задать то условие, которое будет регистрировать отслеживаемое событие и передавать его в счетчик Яндекс Метрики.

Через некоторое время, после совершения события, параметры событий и его значения, переданные с помощью метода reachGoal вместе с JS-событием, будут доступны в отчетах Яндекс Метрики. Теперь статистика отображается как минимум в трех отчетах (после обновлений 25 июля):

  • Параметры целей (новый отчет);
  • Параметры событий (новый отчет);
  • Параметры визитов (старый отчет).

Например, вот так будет выглядеть переданный параметр события в отчете по параметрам целей:

Пример переданного параметра события в Яндекс Метрику

Сам Яндекс рекомендует использовать метод reachGoal только для целевых событий, которые вы применяете для настройки рекламы. Чтобы разметить событие для дальнейшего анализа, подойдёт params или другие методы, которые поддерживают параметры.

Отправка и обработка данных

Значение поля в параметрах события обрабатывается следующим образом в зависимости от своего типа:

  • объект - для каждого ключа объекта создается ветвь дерева, и для каждого значения алгоритм вызывается рекурсивно;
  • строка - вычисляется количество случаев, когда встречается каждое различное значение строки;
  • число - вычисляется суммарное и среднее значение всех чисел;
  • массив - создается ветвь дерева [Параметры], вычисляется количество случаев, когда значение является массивом, и алгоритм вызывается рекурсивно для каждого элемента массива;
  • true, false или null - вычисляется количество случаев, когда встречается каждое такое значение.

При передаче иерархической структуры данных в отчетах Яндекс Метрики отобразится до 10 уровней вложенности.

Во всех предыдущих примерах выше мы создавали объект с помощью фигурных скобок {…} с определенным набором свойств. Свойство – это пара ключ: значение, где ключ – это строка (также называемая «именем свойства»), а значение может быть чем угодно. Если в объекте несколько свойств, то они перечисляются через запятую. Например, вот так:

Здесь объект params10 создан с помощью фигурных скобок, в котором передаются 10 параметров визита/событий. Все эти параметры визита/события в отчете Яндекс Метрики будут иметь уровень 1 для ключа и уровень 2 для его значения.

Параметр визита/события - уровень 1, а его значение - уровень 2

Но объекты можно помещать в другие объекты. То есть один объект с фигурными скобками может быть вложен в другой объект с фигурными скобками. Например, у вас на сайте есть две формы - form1 и form2. И для каждой формы вы хотите отслеживать свой набор параметров визита. В этом случае Параметр визита, ур. 1 и Параметр визита, ур. 2 вам будет недостаточно, поскольку тогда все параметры визита не будут сгруппированы по общему признаку - по форме, к которой они принадлежат. Но как только вы добавите еще один объект внутри объекта, то увидите дополнительную вложенность.

Как это выглядит на практике? Предположим, вы отслеживаете два параметра визита/события:

  1. идентификатор заявки;
  2. время отправки формы.

Если вы будете использовать такой код:

Тогда данные в отчете Яндекс Метрики не будут сгруппированы по формам, а будут идти общим списком:

Параметры визита верхнего уровня

Но если вы добавите еще один объект с названием формы внутри основного объекта:

и:

Тогда в отчетах вы увидите группировку по новому параметру визита/события - по форме (form1 и form2):

Третий уровень вложенности

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

Линейный список

И вот таких уровней вложенности допустимо использовать до 10. Это означает, что вы можете внутри одного объекта использовать еще один объект, а внутри него - еще один и т.д. За это и отвечают новые параметры Параметр события, ур. 1 - Параметр события, ур. 10.

Пример передаваемых данных из официальной документации Яндекса:

, где:

  • XXXXXX - номер счетчика;
  • level1_1, level1_2, level2_1 - структура параметров событий;
  • example1, example2, example3 - значения для параметров.

Получайте бесплатные уроки и фишки

По контекстной, таргетированной рекламе и аналитике