Частая ошибка при настройке событий в Яндекс.Метрике

12 марта, 2020

Как ни странно, в 2020 году настройка самых простых событий для Яндекс.Метрики по-прежнему является непростой задачей. В этом материале я постараюсь описать основную проблему, с которой вы можете столкнуться при настройке событий.

Как происходит настройка сейчас? Пользователи идут в поисковик, вводят запрос «события яндекс метрика» или «настройка событий метрика», открывают первый попавшийся сайт (не документацию Яндекса, потому что там нет скриншотов!) и машинально следуют инструкции, не проверяя источник информации и того автора, кто про это написал. У кого-то получается настроить, кто-то раздраженно пишет гневные отзывы под постом.

Давайте постараемся разобраться в причинах и понять типичную ошибку при настройке событий в Яндекс.Метрике.

События используются в тех случаях, когда требуется отследить произвольные взаимодействия пользователя с любыми элементами на странице, URL которой не меняется. В отличие от целей, которые настраиваются прямо в интерфейсе, события задаются как в интерфейсе, так и в коде вашего сайта. Отсюда следует, что вы должны:

  • обладать знаниями в редактировании кода на той странице, где планируется отслеживать какой-либо объект (а это CSS, HTML, JavaScript);
  • иметь доступ к сайту с возможностью редактирования кода на страницах.

Либо же использовать Google Tag Manager.

Какой же код необходимо добавить при настройке событий?

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

Для отслеживания цели типа JavaScript-событие необходимо вызывать метод reachGoal с идентификатором этой цели. И вот тут возникают сложности. Тот, кто не читает справку, копирует код с какого-нибудь сайта и вставляет к себе. Оказывается, что он не всегда работает.

Чаще всего это происходит из-за несоответствия наборов методов с установленным на сайте счетчиком. В справочнике методов Яндекса reachGoal имеет такую конструкцию:

А наверху страницы написан дисклеймер:

Частая ошибка при настройке событий в Яндекс.Метрике

Как и в случае с библиотеками Google Analytics, Яндекс.Метрика с 6 декабря 2018 года обновила свой код счетчика, а с ним и набор методов. А это означает, что в зависимости от счетчика вы должны использовать тот набор методов, который для него предназначался.

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

  1. yaCounterXXXXXX.reachGoal('TARGET_NAME');
  2. ym(XXXXXX, 'reachGoal', 'TARGET_NAME');

, где:

  • XXXXXX — номер вашего счетчика;
  • TARGET_NAME — идентификатор цели.

С учетом двух конструкций и двух счетчиков Яндекс.Метрики мы получаем 4 различных набора комбинаций настройки событий.

Частая ошибка при настройке событий в Яндекс.Метрике

2 метода - 2 счетчика = 4 комбинации

Каждый набор методов предназначен для своего счетчика. Осталось проверить, можно ли использовать старую конструкцию reachGoal для нового счетчика, и наоборот? Давайте попробуем разобраться.

В качестве примера будем отслеживать клик по кнопке на сайте mydisneyworld.ru:

Частая ошибка при настройке событий в Яндекс.Метрике

Пример настройки события по клику на кнопку

Первым делом протестируем новый счетчик со старой конструкций yaCounterXXXXXX.reachGoal('TARGET_NAME');

По умолчанию при создании нового счетчика Яндекс.Метрики код выглядит так:

Частая ошибка при настройке событий в Яндекс.Метрике

Новый код Яндекс.Метрики

Создадим цель типа JavaScript-событие и зададим идентификатор цели:

Частая ошибка при настройке событий в Яндекс.Метрике

Цель типа "JavaScript-событие"

Теперь добавим старую конструкцию метода reachGoal с событием onclick на кнопку «Каталог»:

Частая ошибка при настройке событий в Яндекс.Метрике

Событие onclick со старой конструкцией reachGoal

Сохраняем изменения. После настройки целей можно проверить корректность передачи данных. Для этого в адресной строке браузера добавьте к адресу параметр _ym_debug со значением 1. Например, http://mydisneyworld.ru/?_ym_debug=1

Кликаем по кнопке Каталог. В этом случае в консоли разработчика на вкладке Console должно отобразиться Reach goal с номером счетчика и идентификатором цели. В нашем случае catalog.

Частая ошибка при настройке событий в Яндекс.Метрике

Reach goal в консоли разработчика

Проверить корректность настройки цели можно также с помощью расширения Yandex Metrica Debugger.

Но это еще не все. Даже если цель отобразилась в консоли, нам необходимо удостовериться, что она передается и в счетчик Яндекс.Метрики. Примерная задержка по передачи данных составляет 15-20 минут. Иногда до 60 минут. Когда вы перейдете в отчет Конверсии, то увидите, что данные по цели передались.

Частая ошибка при настройке событий в Яндекс.Метрике

Данные по цели передаются в Метрику

Вывод: старая конструкция с новым счетчиком Метрики работает.

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

Старый код Яндекс.Метрики выглядит так (у вас может быть такой, если его не обновляли):

Частая ошибка при настройке событий в Яндекс.Метрике

Старый код Яндекс.Метрики

Изменяем конструкцию для метода reachGoal на новую:

Частая ошибка при настройке событий в Яндекс.Метрике

Событие onclick с новой конструкцией reachGoal

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

Частая ошибка при настройке событий в Яндекс.Метрике

Reach goal не вызывается

Событие не сработало, метод Reach goal не был вызван. В отчетах Конверсии вы также не увидите данных по цели.

Вывод: новая конструкция со старым счетчиком Метрики не работает.

В результате мы получаем: методы предыдущей версии будут работать с новой и предыдущей версией счетчика. Методы новой версии не будут работать с устаревшим счетчиком Метрики.

Частая ошибка при настройке событий в Яндекс.Метрике

Результаты проверки

Разумеется, для нового счетчика обновился не только метод reachGoal. В справочнике Яндекса их минимум 11: addFileExtension, extLink, file,getClientID, hit, notBounce, params, replacePhones, setUserID, userParams и reachGoal.

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

Обновления

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

Частая ошибка при настройке событий в Яндекс.Метрике

Код цели для сайта

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

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