Ulyana Kirp

Как правильно настроить цели в Яндекс Метрике: типичные ошибки дублирования и фальшивых лидов

В веб-аналитике существует аксиома: «Мусор на входе — мусор на выходе». Если цели в Яндекс Метрике настроены с техническими ошибками, любые дальнейшие отчеты теряют смысл. На искаженных данных невозможно рассчитать юнит-экономику, оценить реальную стоимость заявки (CPL) или корректно управлять ставками в контекстной рекламе.

Хуже того: современные автостратегии Яндекс Директа напрямую завязаны на достижение целей. Если счетчик фиксирует фальшивые конверсии от пустых кликов или задваивает события из-за кривого кода, искусственный интеллект рекламной сети начинает масштабировать именно мусорный трафик. Бюджет улетает за считанные дни, а менеджеры по продажам сидят без работы.

В этой статье разобран пошаговый инженерный регламент правильной настройки целей: как исключить 4 типичные ошибки и проверить корректность работы счетчика через встроенный отладчик.

4 ошибки настройки целей в Яндекс Метрике


Ошибка 1. Цель на клик по кнопке вместо JavaScript-события успешной отправки

Самый распространенный грех начинающих маркетологов и недобросовестных подрядчиков — создание цели типа «Клик по кнопке» или выбор CSS-селектора вроде .submit-btn прямо в визуальном интерфейсе Метрики.

В чем опасность:

Когда пользователь нажимает на кнопку «Отправить заявку», в браузере происходит событие клика. Но это событие не означает, что форма заполнена корректно и данные ушли на сервер:

  • Пользователь забыл указать номер телефона или ошибся в цифрах.
  • Сработала валидация, появилось предупреждение «Заполните обязательное поле».
  • Заявка не ушла, клиент нажал на кнопку еще 3 раза подряд.
  • Итог: Заявки в CRM нет, но Яндекс Метрика зафиксировала 4 «достижения цели». Автостратегия Директа получила сигнал «Успех!» и списала деньги.

Инженерный стандарт реализации:

Цель на отправку заявки обязана настраиваться исключительно как JavaScript-событие (reachGoal), вызываемое строго после того, как сервер вернул успешный статус HTTP 200 OK:

// Инженерно выверенный сценарий отправки лид-формы:
const form = document.querySelector('#order-form');

form.addEventListener('submit', async (e) => {
  e.preventDefault();
  
  const formData = new FormData(form);
  
  try {
    const response = await fetch('/api/lead', {
      method: 'POST',
      body: formData
    });

    if (response.ok) {
      // Цель фиксируется СТРОГО после успешного ответа бэкенда!
      if (typeof ym !== 'undefined') {
        ym(XXXXXXXX, 'reachGoal', 'lead_form_success');
      }
      
      // Показ экрана благодарности
      showSuccessModal();
      form.reset();
    } else {
      showErrorMessage('Сбой доставки данных. Пожалуйста, позвоните нам.');
    }
  } catch (error) {
    console.error('Сетевой сбой при отправке формы:', error);
  }
});

Глубокий разбор разницы между промежуточными кликами и реальным финансовым результатом читайте в материале «Микроконверсии против макроконверсий: почему клик по кнопке — это еще не заявка»{target=“_blank» rel=“noopener noreferrer”}.


Ошибка 2. Включенный тумблер «Автоматические цели»

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

Почему это ломает сквозную аналитику:

  1. Засорение воронки десятками фиктивных целей: Метрика начинает создавать цели вида «Клик по номеру телефона», «Клик по email», «Отправка формы 1», «Переход в мессенджер». При этом алгоритм часто принимает за форму поле поиска по блогу или фильтр в каталоге.
  2. Случайная оптимизация Директа: При настройке автостратегий в рекламном кабинете система может автоматически выбрать наиболее часто срабатывающую автоцель (например, клик по меню или поиск) и оптимизировать показ рекламы на тех, кто просто хаотично листает страницы.

Инженерный регламент:
Перейдите в Настройки счетчика → Вкладка «Счетчик» и отключите тумблер «Автоматические цели». Все цели в коммерческом проекте должны создаваться вручную с понятными системными идентификаторами (ID события), исключающими двусмысленность.


Ошибка 3. Задвоение счетчиков и дублирование кода

Технический аудит сайтов регулярно вскрывает ситуацию, когда один и тот же счетчик Метрики инициализируется дважды:

  • Первый раз код вставлен напрямую программистом в файл шаблона (<head>).
  • Второй раз тот же номер счетчика подключает маркетолог через контейнер Google Tag Manager (GTM).

Последствия задвоения:

  • Удвоение всех базовых метрик: Каждый просмотр страницы фиксируется дважды. Искусственно завышается количество визитов и глубина просмотра.
  • Аномально низкий показатель отказов: Поскольку при одном переходе параллельно срабатывают два скрипта, Метрика видит два обращения к серверу за 0.1 секунды. В результате показатель отказов (Bounce Rate) падает до фейковых 1–2%. Владелец бизнеса радуется «идеальной вовлеченности», не подозревая о фатальной поломке аналитики.
  • Дублирование конверсий: Одна реальная заявка присылает два идентичных события reachGoal, искажая статистику стоимости лида в 2 раза.

О других критических дефектах, допускаемых при разработке, читайте в регламенте «5 ошибок при приемке сайта от подрядчика: на что смотреть владельцу бизнеса»{target=“_blank» rel=“noopener noreferrer”}.


Ошибка 4. Отсутствие передачи ClientID в CRM

Чтобы связать клик по объявлению в Яндекс Директе с реальным поступлением денег на расчетный счет, стандартного вебхука недостаточно. Если форма передает в CRM только имя и номер телефона, вы никогда не узнаете, с какой конкретно кампании и ключевой фразы пришел клиент, оплативший крупный контракт через 2 месяца переговоров.

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

Сквозная связка:
Пользователь зашел по рекламе -> Метрика выдала ClientID (169823412.1709)
            |
            v
Заполнение формы -> Скрытое поле <input name="client_id" value="169823412.1709">
            |
            v
Сделка в CRM с полем ClientID -> Оплата счета через 30 дней
            |
            v
Выгрузка в Метрику (Офлайн-конверсия) -> Яндекс Директ видит ЧИСТУЮ ПРИБЫЛЬ

Как настроить передачу ClientID:

Добавьте в каждую лид-форму скрытое поле <input type="hidden" name="ym_client_id" id="ym_client_id"> и заполняйте его значением из API Метрики перед отправкой:

ym(XXXXXXXX, 'getClientID', function(clientID) {
  const hiddenInput = document.querySelector('#ym_client_id');
  if (hiddenInput) {
    hiddenInput.value = clientID;
  }
});

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

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

Пошаговая инструкция проверки:

  1. Откройте страницу вашего сайта в браузере Google Chrome.
  2. Добавьте в конец адресной строки специальный параметр:
    https://vash-sajt.ru/?_ym_debug=2 и нажмите Enter.
  3. Откройте панель разработчика (нажмите клавишу F12 или Cmd + Option + I на Mac) и перейдите на вкладку Console (Консоль).
  4. Вы увидите служебные сообщения Метрики с префиксом [YM-COUNTER-XXXXXX].
  5. Попробуйте нажать кнопку отправки с незаполненными полями. В консоли не должно появляться никаких сообщений о достижении целей.
  6. Заполните форму корректными тестовыми данными и отправьте. В момент появления сообщения об успехе в консоли должна появиться четкая строчка:
    Reach goal: lead_form_success. Counter: XXXXXXXX.

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

Подробные сценарии анализа поведения пользователей после настройки целей описаны в статье «Вебвизор и карты кликов: как за 30 минут найти узкие горлышки и барьеры на страницах»{target=“_blank» rel=“noopener noreferrer”} и базовом обзоре «Аналитика сайта для нетехнарей: 5 ключевых отчетов Яндекс Метрики, которые показывают утечку денег»{target=“_blank» rel=“noopener noreferrer”}.


Итоговый чек-лист технической настройки целей

[ ] 1. Автоматические цели в настройках счетчика Метрики полностью отключены
[ ] 2. Код счетчика установлен на сайте строго один раз (нет параллельного запуска из HTML и GTM)
[ ] 3. Цели на лиды настроены через JavaScript-события и вызываются строго внутри HTTP 200 OK
[ ] 4. Лид-формы передают ClientID Метрики в скрытом поле для синхронизации с CRM
[ ] 5. Проведена проверка срабатывания целей через консоль браузера с параметром ?_ym_debug=2
[ ] 6. В автостратегиях Яндекс Директа выбраны подтвержденные макроцели вместо кликов

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

Если вы хотите заказать независимый технический аудит аналитики или разработать сайт с безупречной архитектурой воронки, изучите условия в разделе комплексного аудита сайта{target=“_blank» rel=“noopener noreferrer”} и разработки сайтов под ключ{target=“_blank» rel=“noopener noreferrer”}.

Автор:

Ульяна Кирпичникова

Эксперт по конверсии сайтов, маркетолог, веб-разработчик

Есть задача по сайту? Давайте обсудим решение под цели вашего бизнеса.

Расскажите о ваших целях и задачах. Спроектирую сайт под заявки или помогу поднять конверсию текущего сайта.