
Для точного отслеживания взаимодействий пользователей необходимо настроить цели через Javascript события. Метрика позволяет фиксировать клики, отправку форм, воспроизведение видео и другие действия, используя метод yaCounterXXXXXX.reachGoal(‘имя_цели’), где XXXXXX – идентификатор счётчика.
Перед настройкой убедитесь, что счётчик установлен на всех страницах сайта. Каждое событие должно иметь уникальное имя цели и передавать только релевантные данные. Для кнопок и ссылок рекомендуется использовать addEventListener, чтобы отделить логику отслеживания от пользовательского интерфейса.
Важно учитывать асинхронную загрузку элементов. Если элемент появляется динамически, используйте делегирование событий на родительский контейнер. Это гарантирует срабатывание reachGoal даже при изменении DOM после первоначальной загрузки страницы.
Для проверки корректности целей используйте инструмент отладки Метрики. Логируйте вызовы reachGoal в консоль и сверяйте с отчётами Метрики. Это позволяет выявить ошибки в написании идентификаторов и названий целей до их появления в статистике.
Выбор типа цели для Javascript события

В Метрике доступны четыре типа целей для Javascript событий: «Событие», «Посещение страницы», «Скролл» и «JavaScript-событие». Для настройки через JS оптимально использовать тип «JavaScript-событие», поскольку он позволяет фиксировать конкретные действия пользователя без ограничения на URL.
При выборе типа цели важно учитывать событие, которое вы хотите отслеживать. Например, для нажатия на кнопку оформления заказа стоит выбрать цель, реагирующую на вызов функции `ym()` с идентификатором цели. Для кликов по нескольким элементам одной страницы создаются отдельные цели с разными именами события.
Тип «Событие» подходит для фиксирования переходов на сторонние ресурсы, когда JavaScript доступен не всегда. «Посещение страницы» используют для регистрации загрузки конкретного URL, а «Скролл» – для анализа взаимодействия с контентом и определения глубины просмотра.
При создании цели через Javascript рекомендуется задавать уникальные имена событий, включающие контекст действия, например: `order_click`, `video_play`, `form_submit`. Это упрощает сегментацию данных и построение отчетов в Метрике.
Важно также учитывать частоту срабатывания. Для событий, которые могут происходить многократно за сессию, активируйте настройку «Срабатывает каждый раз», чтобы получать точные показатели взаимодействия. Для уникальных действий оставьте настройку «Срабатывает один раз за сессию», чтобы исключить повторное засчитывание.
Использование правильного типа цели обеспечивает точность аналитики, сокращает ошибки в отчетах и позволяет корректно строить воронку конверсий на сайте. Перед публикацией рекомендуется протестировать событие через консоль браузера, вызывая `ym(
Добавление счётчика Метрики на сайт

Для интеграции счётчика Яндекс.Метрики необходимо сначала создать счётчик в личном кабинете Метрики. После создания откроется окно с кодом счётчика, включающим идентификатор counter ID, который уникален для вашего сайта.
Код счётчика рекомендуется размещать сразу перед закрывающим тегом </head> или в начале <body> для корректного отслеживания всех событий. Стандартный код выглядит так:
<script type="text/javascript">
(function(m,e,t,r,i,k,a){
m[i]=m[i]||function()(m[i].a=m[i].a;
m[i].l=1*new Date();
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
phpym(ВАШ_COUNTER_ID, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
После вставки кода убедитесь, что идентификатор совпадает с тем, который указан в кабинете Метрики. Для тестирования работы счётчика можно использовать Режим разработчика в браузере и проверку сетевых запросов на mc.yandex.ru/watch.
Если на сайте используется CMS, рекомендуется применять официальные плагины или модули для корректной интеграции, чтобы код не конфликтовал с другими скриптами. При этом активируйте опцию асинхронной загрузки, чтобы счётчик не задерживал загрузку страниц.
Подключение обработчика события через Javascript

Для передачи целей в Метрику необходимо привязать обработчик к конкретному элементу страницы. Оптимальный способ – использовать метод addEventListener, так как он позволяет назначать несколько обработчиков на один элемент без конфликта.
Пример привязки клика к кнопке с id submitBtn:
document.getElementById('submitBtn').addEventListener('click', function() {
ym(12345678, 'reachGoal', 'button_click');
});
В этом примере 12345678 – идентификатор счётчика Метрики, а button_click – уникальный идентификатор цели. Он должен совпадать с тем, что указан в интерфейсе Метрики.
Для элементов с динамически добавляемым содержимым применяется делегирование событий. Например, если кнопки создаются через Javascript после загрузки страницы, обработчик можно назначить на родительский контейнер:
document.getElementById('container').addEventListener('click', function(event) {
if(event.target.classList.contains('track-btn')) {
ym(12345678, 'reachGoal', 'dynamic_button_click');
}
});
При использовании form событий важно предотвращать стандартное поведение формы, чтобы цель фиксировалась корректно до отправки данных:
document.querySelector('form').addEventListener('submit', function(e) {
ym(12345678, 'reachGoal', 'form_submit');
// e.preventDefault(); // только если нужна остановка отправки
});
Для массовой привязки одинаковых событий к элементам рекомендуется применять querySelectorAll с циклом:
document.querySelectorAll('.track-link').forEach(function(link) {
link.addEventListener('click', function() {
ym(12345678, 'reachGoal', 'link_click');
});
});
Использование этих подходов обеспечивает точное срабатывание целей и корректную передачу данных в Метрику без конфликтов с другими скриптами.
Передача параметров события в Метрику

Для точного отслеживания действий пользователей важно передавать дополнительные параметры вместе с событием. Яндекс.Метрика поддерживает передачу ключевых значений через объект params при вызове метода reachGoal.
Пример базовой передачи параметров:
ym(12345678, 'reachGoal', 'button_click', {
button_id: 'subscribe_main',
page_section: 'header',
user_type: 'guest'
});
Рекомендации по передаче параметров:
- Используйте осмысленные ключи – например,
button_id,form_name,category. Это упрощает фильтрацию и сегментацию. - Минимизируйте данные – передавайте только необходимые значения, избегайте передачи персональных данных.
- Типы данных – Метрика корректно обрабатывает строки, числа и булевы значения. Сложные объекты лучше сериализовать в строку.
- Соблюдайте консистентность – одинаковые события должны иметь одинаковый набор параметров, чтобы аналитика была точной.
Передача параметров особенно полезна для:
- Сегментации конверсий по источникам трафика.
- Отслеживания взаимодействий с конкретными элементами на странице.
- Анализа поведения разных групп пользователей.
- Отслеживания результатов A/B-тестов.
Для динамического заполнения параметров используйте JavaScript для получения значений с DOM:
const button = document.querySelector('#subscribe');
ym(12345678, 'reachGoal', 'button_click', {
button_id: button.id,
page_section: button.closest('section').id
});
Передача параметров обеспечивает более детализированную аналитику и позволяет строить точные отчеты без необходимости дополнительных событий.
Проверка срабатывания события через консоль браузера
Для проверки корректности отправки события в Яндекс.Метрику используйте консоль браузера. Откройте вкладку Console в инструментах разработчика (F12) и выполните команду:
ym(ID_СЧЕТЧИКА, 'reachGoal', 'ИМЯ_ЦЕЛИ');
Если событие настроено правильно, в консоли отобразится объект с результатом отправки. Ошибки, такие как «Invalid counter ID» или «Unknown goal name», указывают на несоответствие ID счетчика или имени цели.
Для событий, привязанных к клику по элементу, используйте следующий подход:
document.querySelector('СЕЛЕКТОР_ЭЛЕМЕНТА').addEventListener('click', function() {
console.log('Событие отправлено');
ym(ID_СЧЕТЧИКА, 'reachGoal', 'ИМЯ_ЦЕЛИ');
});
Для массовой проверки используйте console.table или console.count:
console.count('Цель сработала');
Это позволяет отслеживать количество срабатываний события без обращения к интерфейсу Метрики и ускоряет отладку JavaScript-логики.
Настройка цели в интерфейсе Метрики
Войдите в Яндекс.Метрику и выберите нужный счетчик. Перейдите в раздел Цели и нажмите кнопку Добавить цель.
Выберите тип цели JavaScript-событие. В поле Название цели укажите точное название, которое будет использоваться в коде сайта. Оно должно совпадать с параметром, передаваемым через ym(счетчик, ‘reachGoal’, ‘имя_цели’).
В разделе Условия оставьте вариант JavaScript-событие и убедитесь, что имя события соответствует названию, указанному в скрипте. Метрика чувствительна к регистру и пробелам, ошибки приведут к нефиксированию целей.
Если требуется отслеживать несколько вариантов одного события, используйте регулярные выражения в поле имени цели. Например, для событий «buy_1» и «buy_2» можно указать buy_\d.
После заполнения нажмите Сохранить. Проверьте работу цели, используя Отладку в интерфейсе Метрики или консоль браузера: ym(счетчик, ‘reachGoal’, ‘имя_цели’) должен возвращать ok.
Для контроля статистики перейдите в раздел Отчёты → Цели. Здесь можно увидеть количество срабатываний, распределение по страницам и времени выполнения события.
Тестирование события на разных страницах

После настройки Javascript события в Метрике важно проверить его работу на всех страницах, где оно должно срабатывать. Несоблюдение этого шага может привести к неполным данным и некорректной аналитике.
Рекомендуется последовательность действий:
- Выберите страницы с разной структурой: главная, категории, карточки товаров, лендинги. Это поможет выявить ошибки из-за отличий в DOM или динамической подгрузки контента.
- Откройте консоль браузера и включите отладку Метрики с помощью
ym(XXXXXX,'debug',true). Это покажет момент срабатывания события и передаваемые параметры. - Используйте инструменты разработчика для проверки элементов, к которым привязан слушатель события. Убедитесь, что селекторы корректно находят нужные элементы на каждой странице.
- Тестируйте события при разных сценариях: клик, скролл, отправка формы. Особенно важно проверять асинхронно подгружаемые блоки.
- Фиксируйте результаты тестов в таблице с колонками: URL страницы, элемент события, тип действия, статус срабатывания, комментарии о проблемах.
Если событие не срабатывает на конкретной странице:
- Проверьте наличие элементов по селектору и корректность привязки после динамической загрузки контента.
- Убедитесь, что скрипт Метрики загружается до инициализации события.
- Для SPA (Single Page Application) добавьте повторную привязку события при изменении состояния страницы.
Только после проверки на всех ключевых страницах можно считать настройку события завершённой и точной для аналитики.
Исправление ошибок при отправке события

Частая ошибка – использование неправильного идентификатора цели. Метрика требует точного совпадения с ID, указанным в интерфейсе. Например, если цель имеет ID 123456, вызов должен быть:
ym(123456,'reachGoal','form_submit');
Ошибки формата данных возникают при передаче объектов вместо строк. Метрика не принимает объекты напрямую, поэтому перед отправкой необходимо использовать JSON или строковое значение. Например:
ym(123456,'reachGoal','purchase', JSON.stringify({id: 10, price: 500}));
Ниже приведена таблица типичных ошибок и способов их исправления:
| Ошибка | Причина | Решение |
|---|---|---|
| Событие не фиксируется | Неверный ID цели или название события | Проверить точное соответствие ID и имени события в Метрике |
| Консоль выдаёт ReferenceError | Метод ym вызывается до загрузки счетчика |
Перенести вызов после загрузки скрипта Метрики или использовать window.onload |
| Событие приходит с пустыми данными | Объект данных передан без преобразования в строку | Использовать JSON.stringify() для объектов |
| Отправка повторяется несколько раз | Событие привязано к клику без удаления обработчика | Использовать removeEventListener после первой отправки или применять флаг |
Регулярная проверка консоли и тестовая отправка событий позволяют выявить ошибки до публикации сайта. Это минимизирует потерю аналитических данных и гарантирует корректный сбор информации о действиях пользователей.
Вопрос-ответ:
Что такое цель Javascript события в Метрике и зачем она нужна?
Цель Javascript события в Метрике позволяет отслеживать действия пользователей на сайте, которые не связаны с загрузкой страниц, например клики на кнопки, отправку форм или воспроизведение видео. Это помогает анализировать поведение посетителей и оценивать, насколько сайт выполняет свои задачи.
Как подключить событие Javascript к Метрике без использования сторонних библиотек?
Для этого нужно добавить код события на страницу сайта. Сначала в Метрике создайте цель типа «Событие Javascript». Затем в коде страницы вызовите функцию ym(XXXXXX, 'reachGoal', 'имя_цели');, где XXXXXX — идентификатор счётчика, а ‘имя_цели’ — название вашей цели. Этот код можно вставить прямо в обработчик клика или другое событие элемента.
Можно ли отслеживать несколько событий на одной странице через Javascript цель?
Да, можно. Для каждого действия создается отдельная цель в Метрике с уникальным именем. В коде сайта при каждом событии вызывается функция ym с соответствующим именем цели. Так вы получите отдельную статистику по каждому взаимодействию пользователей.
Как проверить, что цель Javascript события срабатывает корректно?
После настройки цели на сайте откройте отладочную консоль браузера и выполните действие, которое должно её активировать. В Метрике есть отчёт «Вебвизор» и «Цели», где можно видеть срабатывания. Также можно временно добавить console.log('Событие сработало'); перед вызовом функции ym, чтобы убедиться, что код вызывается.
Какие ошибки чаще всего возникают при настройке цели Javascript события?
Часто встречается неправильное имя цели, отсутствие вызова функции ym или подключение к счётчику с неверным идентификатором. Ещё одна ошибка — попытка отправки события до загрузки счётчика. Чтобы избежать проблем, убедитесь, что код Метрики полностью загружен перед вызовом цели и имена целей совпадают с теми, что указаны в интерфейсе Метрики.
