- Варианты, как отслеживать отправку формы
- Перед настройкой: проверьте, что метрика собирает данные
- Шаг 1. Найдите счетчик и откройте настройки целей
- Способ 1. Цель “Отправка формы” (если на странице есть тег form)
- Способ 2. Цель “JavaScript-событие” (reachGoal) - универсально
- Если нужно отслеживать “успешную отправку” через страницу благодарности
- Проверьте, что цель срабатывает
- Типичные ошибки при настройке цели отправки формы
- Как выбрать подходящий способ
- Короткий итог
Цель в Яндекс Метрике нужна, чтобы фиксировать конверсии: когда пользователь действительно отправил форму на сайте. Дальше вы сможете смотреть отчеты по выполнению цели и понимать, сколько заявок приносит каждый источник трафика.
Варианты, как отслеживать отправку формы
Есть два рабочих подхода в метрика:
-
Цель типа “Отправка формы”
Метрика пытается распознать отправку по разметке на сайте. Удобно, когда форму реально собирает тегform. -
Цель типа “JavaScript-событие” (reachGoal)
Отслеживание делается через вызов кода при отправке (submit). Этот способ универсальнее, но требует правок в коде или настройках событий.
Официальная справка по цели reachGoal есть у Яндекса: https://yandex.ru/support/metrica/objects/reachgoal.html
Перед настройкой: проверьте, что метрика собирает данные
Если цель не срабатывает, чаще всего проблема в том, что счетчик или разметка на сайте работают неправильно, а не в настройке цели.
Быстрая проверка через параметр _ym_debug описана в материалах про цели в метрика:
- eLama: https://elama.ru/blog/nastroyka-celey-v-yandeks-metrike/
Также у Яндекса есть документация по цели и событиям:
- JavaScript-событие: https://yandex.ru/support/metrica/general/goal-js-event.html
- общие принципы работы целей: https://yandex.ru/support/metrica/
Шаг 1. Найдите счетчик и откройте настройки целей
- Откройте Яндекс Метрика, зайдите в нужный счетчик.
- Перейдите в раздел Цели.
- Нажмите Добавить цель.
Дальше выбирайте один из способов: “Отправка формы” или “JavaScript-событие”.
Способ 1. Цель “Отправка формы” (если на странице есть тег form)
Этот вариант проще, когда форма на сайте реализована корректно.
Метрика фиксирует отправку при выполнении условий:
- форма сделана через тег form
- отправка идет через button type="submit"
- submit находится внутри form
Эти требования перечислены в инструкциях по целям в метрика:
- eLama: https://elama.ru/blog/nastroyka-celey-v-yandeks-metrike/
Как создать цель “Отправка формы”
- В разделе настройки цели выберите тип условия Отправка формы.
- Выберите, для каких форм создавать цель:
- общая цель для всех форм или
- конкретная цель для нужной формы на странице
- Если выбираете конкретную - укажите страницу, где стоит форма, и подтвердите выбор в подсветке.
- Нажмите Добавить цель.
Когда может быть “двойной” подсчет
Если на сайте есть валидация, которая меняет логику отправки (например, отправка считается дважды из-за порядка событий), цель может сработать повторно. Такое замечание есть в разборе нового типа цели “Отправка формы”:
- Mediaguru: https://www.mediaguru.ru/blog/yandeks-prodolzhaet-uproshhat-zhizn-spetsialistam-po-kontekstu-nastrojka-tseli-na-otpravku-formy-bez-razrabotchikov/
Способ 2. Цель “JavaScript-событие” (reachGoal) - универсально
Этот способ подходит, когда “Отправка формы” не распознается или форма работает через нестандартную логику.
Как создать цель
- Выберите тип условия JavaScript-событие.
- Укажите:
- Название цели (например, “Отправка формы заявки”)
- Идентификатор цели
- Нажмите Добавить цель.
Дальше вам нужен код, который отправит событие в метрика в момент отправки формы.
Как добавить событие в код сайта
Вставьте скрипт так, чтобы при отправке формы выполнялся вызов reachGoal:
<script>
window.addEventListener("load", function() {
document.getElementById('ID_ФОРМЫ').addEventListener('submit', function() {
ym(НОМЕР_СЧЕТЧИКА, 'reachGoal', 'ID_ЦЕЛИ');
});
});
</script>
Подход с привязкой к submit и вызовом ym(...) описан в инструкции:
- JustClick: https://help.justclick.ru/archives/9493
- reachGoal у Яндекса: https://yandex.ru/support/metrica/objects/reachgoal.html
Что подставлять
ID_ФОРМЫ- этоidтегаformна вашей страницеНОМЕР_СЧЕТЧИКА- номер счетчика метрикаID_ЦЕЛИ- идентификатор цели, который вы задали в настройках цели
Если id формы есть не у form, а у другого элемента - сначала разберитесь, как сделана разметка. Метрика ориентируется на корректную связку.
Если нужно отслеживать “успешную отправку” через страницу благодарности
Иногда после отправки формы сайт показывает отдельную страницу (например, “спасибо”).
В таком случае может работать цель типа Посещение страниц:
- укажите условие url: содержит thankyou или часть адреса, которая появляется после отправки.
Пример механики “виртуальной страницы” типа submitted встречается в инструкциях по платформам:
- Tilda: https://tilda.cc/ru/answers/a/one-goal/
На практике этот способ проще, чем правки кода, но он подходит только если после отправки действительно меняется страница.
Проверьте, что цель срабатывает
Тест нужен обязательно. Самый частый сценарий - цель настроили, но данные не доходят или форма отправляется по другому событию.
Проверка для Яндекс Метрика
Один из стандартных способов:
1. Откройте сайт с добавленным параметром _ym_debug=2
2. В консоли браузера сделайте тестовую заявку
3. Убедитесь, что в консоли есть строка про reach goal с нужным идентификатором
4. Подождите поступления данных и проверьте цель в отчетах
Такой порядок описан в инструкции:
- yakushonok.by: https://yakushonok.by/kak-nastroit-cel-otpravka-formy-v-metrike-i-analytics/
Также прием с _ym_debug=1 и просмотром консоли встречается в руководствах по целям в метрика:
- eLama: https://elama.ru/blog/nastroyka-celey-v-yandeks-metrike/
Типичные ошибки при настройке цели отправки формы
| Проблема | Почему так бывает | Что сделать |
|---|---|---|
| Цель не растет в отчетах | Счетчик не на всех страницах или не отправляет данные | Проверьте счетчик через _ym_debug и консоль, убедитесь, что код метрика подключен |
| Цель срабатывает дважды | Отправка и валидация устроены так, что событие отправляется повторно | Протестируйте отправку, проверьте порядок действий на форме |
| “Отправка формы” не работает вообще | На сайте нет тега form или submit реализован не через button type="submit" |
Перейдите на “JavaScript-событие” или приведите разметку к требованиям |
| reachGoal не засчитывается | Неправильный ID_ФОРМЫ, неверный номер счетчика или идентификатор цели |
Сверьте id у form и ID_ЦЕЛИ, проверьте код на странице |
| Не совпадают данные с рекламными отчетами | В рекламных отчетах другая логика учета конверсий и атрибуции | Сравнивайте корректно и смотрите нужные отчеты метрика |
Как выбрать подходящий способ
| Ситуация на сайте | Рекомендуемый вариант |
|---|---|
Формы стандартные, есть form и button type="submit" |
“Отправка формы” |
| Формы нестандартные, есть AJAX или сложная логика | “JavaScript-событие” с reachGoal |
| После отправки всегда открывается страница благодарности | “Посещение страниц” по URL после отправки |
Короткий итог
Чтобы настроить цель в Яндекс Метрике на отправку формы:
1. Проверьте работу счетчика _ym_debug и консоль.
2. Выберите подход типа цели:
- “Отправка формы” для стандартных форм на form
- “JavaScript-событие” (reachGoal) для универсального контроля
3. Добавьте нужный код или настройте условия.
4. Сделайте тестовую отправку и убедитесь, что цель появилась в отчетах.
Источник по reachGoal и настройкам целей:
- https://yandex.ru/support/metrica/objects/reachgoal.html
- https://yandex.ru/support/metrica/general/goal-js-event.html