Цели Яндекс Метрики на сайте производителя семян: как разделить заявки
Картина, которую мы разбирали на сайте производителя семян прямо из открытого кода, без доступа к кабинету: счётчик стоит на всех страницах, запись действий посетителя включена, идентификатор посетителя уходит на сервер при каждой загрузке — то есть одна из предпосылок сквозной аналитики есть. И при этом в доступном коде две разные формы вызывают одну и ту же цель, на десятках телефонных ссылок явного вызова цели нет, а обращений к меткам источника в скриптах не найдено. Что настроено в кабинете, без доступа к нему не видно.
Источники
- Разбор открытого кода сайта производителя семян: подключение счётчика, вызовы целей, обработчики форм и телефонных ссылок; сентябрь 2026.
- Официальная документация системы веб-аналитики: цели, параметры визита, офлайн-конверсии и сроки их сопоставления.
- Официальная документация рекламной системы: окна атрибуции по первому и последнему значимому переходу.
- АРИР, исследование 2024–2025: оценка доли трафика без стабильных cookie.
- WebKit, Tracking Prevention: удаление созданного скриптами хранилища в Safari после семи дней без взаимодействия.

Показать данные текстом
Оговорка, без которой дальше нельзя
Это разбор одного сайта, а не статистика по отрасли. Мы не утверждаем, что так устроено у всех: сегментного замера настроек аналитики мы не делали, потому что из открытого кода их видно не всегда.
Но конструкция ошибки типовая, и именно поэтому её стоит разобрать: она возникает не от небрежности, а от того, что цель ставят один раз при запуске сайта, а формы добавляют потом.
Что ломается от одной цели

Показать данные текстом
Разберём на конкретном примере. Форма вопроса по продукту и форма отзыва о компании отправляются на разные адреса обработчика — то есть технически они уже различаются. Но в доступном коде обе вызывают одно и то же событие аналитики. Есть ли в кабинете дополнительные цели и какие из них идут в отчёты, без доступа к кабинету не проверить.
Если отчёт строится по этой общей цели: достижений цели больше, чем обращений, а стоимость обращения занижена, потому что делится на раздутый знаменатель. Сравнить каналы между собой тоже нельзя — у каждого своя доля отзывов, и она неизвестна. Вывод о том, насколько искажена фактическая стоимость обращения, — только после проверки кабинета и отчётов.
Отдельная строка — телефонные ссылки. На странице «где купить» их могут быть десятки: федеральный номер, номера региональных менеджеров, руководители по макрорегионам. Клик по каждому из них — попытка контакта, но в доступном коде явного вызова цели на них нет. Метрика умеет автоцели по телефонным ссылкам — они включаются в кабинете, и их мы не видели. В категории, где семь показов из десяти по коммерческой фразе приходятся на телефон, звонок часто и есть основной способ обращения.
Рабочая карта целей
Ниже — карта, которую мы ставим на сайте производителя семян. Она делится на три очереди не по важности, а по тому, на чём её физически можно измерить сегодня.

Показать данные текстом

Показать данные текстом
| Цель | Что означает | Стадия |
|---|---|---|
form_question | заявка или вопрос по продукту | полученное обращение |
form_review | отзыв о компании | не обращение |
phone_click_federal | клик по федеральному номеру | попытка контакта |
phone_click_manager | клик по номеру регионального менеджера | попытка контакта |
messenger_click | переход в мессенджер | попытка контакта |
catalog_card | открытие карточки продукта | интерес |
buy_page | переход в раздел «где купить» | интерес |
pdf_download | скачивание каталога или даташита | интерес |
filter_apply | применение фильтра подбора | интерес |
article_read | дочитывание материала | интерес |
region_select | выбор региона | интерес |
contact_scroll | доскролл до блока контактов | интерес |
Стоимость обращения считается только по полученным обращениям после дедупликации. Попытки контакта — отдельная цена микроконверсии: клик может не закончиться звонком, а один звонок может дать несколько кликов. Дальше по воронке — квалифицированное обращение и продажа; они живут уже в CRM.
Разделить формы
Минимальная правка, дающая максимум. Вместо одного события на обе формы — два, плюс параметры визита.
<!-- было: обе формы бьют в одну цель -->
ym(COUNTER_ID, 'reachGoal', 'submit_form');
<!-- стало: разные события и параметры визита -->
ym(COUNTER_ID, 'reachGoal', 'form_question', {
region: visitRegion, // регион из формы или из выбора на сайте
culture: visitCulture, // культура, по которой пришёл интерес
src_first: firstSource // первый источник из localStorage, см. ниже
});
Параметры визита здесь важнее, чем кажется: без них отчёт читается как «обращений стало больше», а с ними — как «Поволжье, рапс, стадия бронирования». Это разные документы для принятия решения.
Поймать телефонные клики одним обработчиком
Ставить цель на каждую ссылку вручную бессмысленно: их десятки, и список меняется. Один делегированный обработчик покрывает все.
// один обработчик на все телефонные ссылки
document.addEventListener('click', function (e) {
var a = e.target.closest('a[href^="tel:"]');
if (!a) return;
var goal = a.dataset.scope === 'federal'
? 'phone_click_federal'
: 'phone_click_manager';
ym(COUNTER_ID, 'reachGoal', goal, {
region: a.dataset.region || ''
});
});
Разделение на федеральный номер и номер менеджера нужно, чтобы видеть, куда звонят. Возможно, клик по региональному менеджеру означает более позднюю стадию — но разные номера сами по себе этого не доказывают; проверяется это уже по CRM.
Запомнить первый источник
Самая недооценённая правка из трёх, и она про следующий раздел. Код ниже — заготовка, а не готовое решение: он хранит источник в localStorage, а не в cookie, и предполагает, что на странице есть форма со скрытым полем src_first. Подключение к конкретной форме и CMS — отдельная работа.
// первый источник запоминается один раз и переживает новые визиты
if (!localStorage.getItem('src_first')) {
var p = new URLSearchParams(location.search);
localStorage.setItem('src_first', JSON.stringify({
source: p.get('utm_source') || document.referrer || 'direct',
medium: p.get('utm_medium') || '',
campaign: p.get('utm_campaign') || '',
ts: new Date().toISOString()
}));
}
// и подставляется в скрытое поле формы перед отправкой
form.querySelector('[name=src_first]').value =
localStorage.getItem('src_first') || '';
Почему источник надо сохранять в CRM
Здесь начинается вторая половина проблемы, и она не решается разметкой.

Показать данные текстом
К этому добавляется то, что происходит с идентификаторами. По оценке АРИР (2024–2025), около 40 % трафика уже фактически без стабильных cookie — из-за ограничений браузеров, VPN и других причин. Safari удаляет созданное скриптами хранилище после семи дней без взаимодействия с сайтом.
Практический итог: октябрьская работа, давшая февральский договор, в браузерной атрибуции часто выглядит как прямой заход. Не «канал не сработал» — «канал не виден». Разница принципиальная, потому что в первом случае бюджет режут, а во втором чинят учёт.

Показать данные текстом
Связка такая: первый источник из хранилища браузера подставляется в скрытое поле формы, при первом обращении попадает в CRM и дальше хранится у карточки хозяйства — уже независимо от браузера и устройства. Условие одно: источник должен быть сохранён до того, как метка потеряется. Если в октябре посетитель остался анонимным, а в феврале написал с другого устройства, CRM прошлый визит не восстановит.
И отчёт строится когортами по месяцу первого контакта, а не сквозным итогом за период. Только так видно, что октябрьская когорта закрывается в марте, — а не что «в марте пришло много заявок».
Предпосылка, которая часто уже есть
Есть приятная деталь, которую стоит проверить у себя до того, как закладывать бюджет на коллтрекинг и сквозную аналитику.
Если счётчик передаёт идентификатор посетителя на ваш сервер при загрузке страницы одна из предпосылок сквозной аналитики у вас есть. Дальше нужно, чтобы идентификатор попадал в конкретную заявку, связывался со сделкой и сохранялся, а атрибуция считалась по понятным правилам. Звонок так не свяжется: человек, прочитавший номер и набравший его вручную, с идентификатором не связан — для этого нужен коллтрекинг или другой механизм связи звонка с визитом.
Наличие вызова в коде проверяется за пять минут: открыть исходный код страницы и поискать обращение к методу получения идентификатора клиента. Работает ли вся цепочка — проверяется только тестовой заявкой и тестовым звонком.
Порядок работ
Неделя первая
Семь целей первой очереди, разделение заявки и отзыва, делегированный обработчик телефонных ссылок, параметры визита по региону и культуре.
Неделя вторая
UTM в скрытые поля формы, запись первого источника в хранилище браузера, передача его в CRM при первом обращении.
До запуска рекламы
Реклама не включается, пока цели не приняты. Гнать трафик на неразмеченный сайт — это тратить бюджет на подтверждение проблемы, которая уже известна.
Сразу после запуска — регулярно
Загрузка обращений и обновлений статусов офлайн-конверсиями, не реже чем позволяет 21-дневный срок привязки к визиту.
Через квартал
Первая аналитическая сверка когорт.
Чего этот разбор не доказывает
Это один сайт, а не статистика по отрасли. Мы не утверждаем, что так устроено у всех производителей семян: сегментного замера настроек аналитики не проводилось.
Разметка из кода видна не полностью. Часть событий и автоцели настраиваются в интерфейсе счётчика, и в исходном коде страницы их не видно. Мы фиксируем только то, что читается снаружи; вывод об искажении фактической стоимости обращения можно делать только после проверки кабинета.
Сроки платформ меняются. Все интервалы приведены на сентябрь 2026 года по официальной документации и требуют перепроверки перед внедрением.
Доля трафика без стабильных идентификаторов — отраслевая оценка, а не замер конкретного сайта. Свою долю видно только в собственной аналитике.
Частые вопросы
Почему нельзя ставить одну цель на все формы?
Потому что тогда заявка на продукт и отзыв о компании складываются в одно событие. Достижений цели оказывается больше, чем обращений, стоимость обращения занижена, а каналы сравнить нельзя: у каждого своя доля отзывов. Из самой аналитики прошлое не разделить — в событии не сохранено, чем именно оно было; частично восстановить период можно только по другим журналам, если они есть.
Сколько целей нужно сайту производителя семян?
Рабочая карта — двенадцать целей плюс четыре механизма атрибуции. Семь целей ставятся в первую неделю на существующих страницах: заявка и отзыв раздельно, клик по федеральному номеру, клик по номеру регионального менеджера, переход в мессенджер, открытие карточки продукта, переход в раздел «где купить». Остальные пять добавляются, когда появятся страницы, на которых их можно измерить.
Зачем разделять клик по федеральному номеру и по номеру менеджера?
Чтобы видеть, куда звонят. Возможно, клик по региональному менеджеру означает более позднюю стадию, но разные номера сами по себе этого не доказывают. И клик — ещё не обращение: стоимость обращения считается по полученным обращениям, у кликов своя цена микроконверсии. В категории, где значительная часть коммерческого спроса приходит с телефона, звонок часто и есть основной способ обращения, поэтому телефонные клики размечаются не менее тщательно, чем формы.
Почему браузерной атрибуции недостаточно?
Потому что цикл сделки по семенам — от двух до шести месяцев, а ограничения механизмов разные: офлайн-конверсию в Метрику загружают в пределах 21 дня от последнего визита, модели атрибуции Директа смотрят на 90 или 180 дней назад. Плюс, по оценке АРИР, около 40 % трафика уже без стабильных cookie. Часть длинных сделок выходит за эти ограничения, и октябрьская работа, давшая февральский договор, часто выглядит как прямой заход.
Как связать февральский договор с октябрьским первым контактом?
Сохранить первый источник в браузере, подставить его в скрытое поле формы и записать в CRM при первом обращении — тогда он хранится у карточки хозяйства независимо от браузера и устройства. Анонимный визит до первого обращения CRM сама не восстановит, поэтому хозяйство идентифицируют как можно раньше. Отчёт строится когортами по месяцу первого контакта, а не сквозным итогом за период.
Может ли часть сквозной аналитики быть уже построена?
Одна из предпосылок — может. Если счётчик при загрузке страницы передаёт идентификатор посетителя на ваш сервер, дальше нужно, чтобы идентификатор попадал в конкретную заявку, связывался со сделкой и сохранялся, а атрибуция считалась по понятным правилам. Звонок так не свяжется: набранный вручную номер с идентификатором не связан, для этого нужен коллтрекинг или другой механизм. Наличие вызова в коде проверяется за пять минут; работает ли цепочка — только тестовой заявкой и тестовым звонком.
Данные к материалу
Таблицы, на которых построены числа статьи, — в формате CSV (разделитель «;», UTF-8):
