Главная / База знаний / Яндекс.Метрика: настройка и отчёты

Как сделать цели в Метрике: от кнопки до отправки формы

6 мин чтения обновлено 19 августа 2026 Яндекс.Метрика: настройка и отчёты

Коротко. Цель на клик по кнопке или отправку формы без перехода на новую страницу — это связка из двух частей: вызов ym(ID,'reachGoal','имя_события') в коде кнопки или формы и цель типа «JS-событие» с тем же именем в настройках Метрики. Через Google Tag Manager это делается без правки кода сайта за 15-20 минут. Прямой вставкой в код — 20-40 минут с участием разработчика, зависит от того, как устроена вёрстка кнопки.

Почему кнопка — это не то же самое, что страница «Спасибо»

Цель на посещение страницы работает по принципу «изменился адрес в браузере — цель засчитана». Клик по кнопке или отправка формы через AJAX адрес страницы не меняют: посетитель нажал «Заказать» или «Отправить», получил всплывающее сообщение об успехе, но URL остался тем же самым. Для Метрики с точки зрения адреса ничего не произошло, и цель на посещение страницы такое действие не увидит никогда, сколько ни жди. Единственный способ поймать подобное действие — явно сообщить о нём через JavaScript-событие в момент, когда оно происходит.

Идентификатор события: что это и как его выбрать

Идентификатор — это произвольное имя, которое связывает код на сайте с целью в интерфейсе Метрики: имена вроде click_order_button или form_send подойдут не хуже других, лишь бы совпадали в обеих частях настройки. Практический совет — не использовать пробелы и кириллицу, брать латиницу и подчёркивания, и заранее выписать список из 3-5 событий, которые реально нужны (клик по кнопке заказа, клик по номеру телефона, отправка формы, клик по WhatsApp) — так проще не запутаться, когда цели множатся.

Вариант А: код на сайте вручную

Для кнопки без формы, если у неё есть уникальный класс или id, событие вешается через JavaScript:

document.querySelector('.btn-order').addEventListener('click', function () {
  ym(XXXXXXXX, 'reachGoal', 'click_order_button');
});

Для формы, которая отправляется через AJAX, аналогичный код вешается на событие отправки:

document.querySelector('#order-form').addEventListener('submit', function () {
  ym(XXXXXXXX, 'reachGoal', 'form_send');
});

Вместо XXXXXXXX подставляется номер счётчика Метрики. Этот код добавляется в футер сайта или в файл скриптов темы — прямая правка требует доступа к CMS или хостингу, поэтому для сайтов без штатного разработчика это обычно задача для подрядчика на 20-40 минут, включая проверку.

Вариант Б: та же цель через Google Tag Manager без кода

Если на сайте уже стоит контейнер GTM, событие настраивается без единой правки файлов сайта: в GTM создаётся тег «Пользовательский HTML» с вызовом ym(XXXXXXXX,'reachGoal','имя_события'), а к нему привязывается встроенный триггер «Клик — все элементы» с условием по CSS-классу кнопки или триггер «Отправка формы». GTM сам отслеживает клики и отправки на странице, разметка кода вручную не нужна — этот способ обычно быстрее и доступен маркетологу без разработчика, если контейнер GTM уже установлен и настроен на сайте.

Создание самой цели в Метрике

После того как событие отправляется с сайта одним из двух способов, в Метрике: «Настройка» → «Цели» → «Добавить цель» → тип «JS-событие» → в поле идентификатора вписывается то же самое имя, что и в коде, без опечаток и лишних символов. Регистр и точное совпадение имени критичны: form_send и Form_Send Метрика считает разными идентификаторами, и цель просто не сработает при малейшем расхождении.

Способ Нужна правка кода сайта Кто делает Время
Вручную в коде Да Разработчик 20-40 минут
Через Google Tag Manager Нет Маркетолог или подрядчик 15-20 минут

Как проверить, что событие реально долетает

Самый быстрый способ — открыть сайт, нажать F12 (консоль разработчика), перейти на вкладку Console и вручную выполнить ym(XXXXXXXX,'reachGoal','form_send') — если ошибок нет, значит счётчик и синтаксис в порядке, дело за срабатыванием на реальном клике. Дальше нужно физически нажать на кнопку или отправить форму и открыть в Метрике режим реального времени через бесплатное расширение «Яндекс.Метрика: Инспектор сайтов» — оно показывает срабатывание целей сразу, без ожидания суток, которое нужно официальным отчётам для обновления данных.

Частые ошибки, из-за которых кнопка «не считается»

Событие в коде и идентификатор цели в Метрике написаны с расхождением в регистре или с лишним пробелом — самая частая причина нулевых конверсий при вроде бы правильно настроенной цели. Вторая ошибка — код события повесили на кнопку, но кнопка на сайте генерируется динамически (например, через конструктор форм), и обработчик клика вешается раньше, чем кнопка появляется на странице — в этом случае события не будет вообще. Третья — забыли, что на мобильной версии сайта та же кнопка может иметь другой класс или вёрстку, из-за чего событие срабатывает только на десктопе. Если после проверки в консоли событие долетает, а цель в Метрике всё равно показывает ноль — почти всегда дело в опечатке идентификатора при создании цели, а не в коде на сайте.

Обязательно ли использовать Google Tag Manager, или можно всё сделать в коде сайта?

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

Можно ли отследить клик по кнопке, если она в конструкторе сайтов вроде Tilda?

Да, у большинства конструкторов есть встроенная поддержка целей Метрики через блок-настройки кнопки или через вставку кода в настройках блока — без доступа к серверу сайта.

Что если на странице несколько одинаковых кнопок «Заказать»?

Событие можно повесить на все кнопки с общим классом сразу — Метрика зафиксирует достижение цели при клике по любой из них, без необходимости различать, по какой именно.

Как понять, что цель настроена именно на нужное действие, а не на что-то ещё?

Проверить вручную: выполнить реальное действие на сайте и посмотреть срабатывание в реальном времени через «Инспектор сайтов» — если событие появляется сразу после клика по нужной кнопке, всё настроено верно.

Сколько стоит настройка таких целей у подрядчика?

Зависит от количества событий и того, стоит ли уже GTM на сайте: разметка 3-5 типовых действий (кнопка, форма, телефон, мессенджер) обычно укладывается в один-два часа работы специалиста.

Настроить отслеживание кликов и форм без ошибок в коде

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

ПОЛУЧИТЬ БЕСПЛАТНЫЙ АУДИТ →

Услуга по теме материала

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

Материалы по теме