Всем добра и здоровья!
Сегодня хочу рассказать о маленькой, но крайне полезной настройке, которая экономит рекламный бюджет и помогает не учитывать повторные заявки от одного и того же пользователя в рамках одной сессии на сайт или при повторных из одного браузера/устройства.
Если вы настраиваете аналитику для сайтов — вы точно сталкивались с ситуацией, когда одна и та же заявка или событие засчитывалось в системе аналитики по несколько раз:
Например:
– нажали дважды на какую-то кнопку;
– перезагрузили страницу «Спасибо»;
– вернулись по кнопке «назад» и снова отправили форму;
– бот нажал F5 на странице "Спасибо" (бывает и такое).
Каждый раз — расход x2, повторное срабатывание цели, если платим за конверсии через ограничение по ДРР 100%. Если у нас в настройках стратегии ограничение по Цене конверсии — помним, что тоже ещё могут "долетать" конверсии от одного и того же пользователя в течение 21 дня — даже в рамках разных визитов на сайт. Для накопления 10 конверсий в неделю вроде нас это устраивает, но а с другой стороны — зачем нам повторные заявки на услугу или товар, которые покупают раз в жизни или как минимум раз в несколько лет?
Ранее на курсах аналитики меня научили помещать или в локальное или в сессионное хранилище браузера определённый "ключ=значение" в момент отправления формы на сайте. А далее при помощи GTM настраивать такое условие триггера, чтобы повторно отправка формы в систему аналитики не учитывалась.
Но подобная реализация через YTM невозможна. Ввиду отсутствия в нём переменной "Собственный код JS". И тем не менее, при помощи ныне популярного "Вайб-кодинга" я смог найти решение:
использовать cookie
Шаг 1: Установка cookie при отправке формы
Создаём пользовательский HTML-тег, который срабатывает при событии отправки формы:
<script>
document.cookie = "lead_submitted=true; path=/; max-age=3600";
</script>
Что тут и зачем:
lead_submitted=true — имя и значение cookie (можете задать какое угодно).
path=/ — механика работает на всех страницах сайта.
max-age=3600 — срок жизни cookie 1 час.
Хотите дольше?
Дни Время
7 max-age=604800
30 max-age=2592000
180 max-age=15552000
365 max-age=31536000
Если у сайта есть поддомены, добавляем:
<script>
document.cookie = "lead_submitted=true; path=/; max-age=3600; domain=.example.ru";
</script>
Так скрипт будет работать и на поддоменах.
Шаг 2: Создаём переменную в YTM
YTM → Переменные → Новая
Тип: Собственный файл cookie
Название переменной: lead_submitted_cookie (или какое захотите)
Название cookie: lead_submitted
Шаг 3: Создаём триггер с проверкой cookie
YTM → Триггеры → Новый
Тип: Просмотр страницы (или URL «Спасибо», или специальное событие, или отправка формы)
Пример условия:
Page Path содержит /thank-you
AND
Наша переменная cookie lead_submitted_cookie не равно
Если пользователь не оставлял заявку в этом браузере за последний час/неделю/полгода/год, мы её учитываем. Если оставлял — игнорируем.
Шаг 4: Привязываем всё к тегу
Создаём или редактируем тег (например, цель в Метрике):
Можно через шаблон Тега от Я.Метрики, можно через "Пользовательский HTML", как делали это ранее в GTM.
Например:
<script>
ym(XXXXXXXX, 'reachGoal', 'ThankYou_Unique');
</script>
Привязываем к только что созданному триггеру. Готово!
Итого: один пользователь = одна заявка за время жизни cookie. Повторные заходы/обновления страницы — не учитываются.
А вы уже переехали из GTM в Яндекс Тег Менеджер? Или пока ждёте доработок разработчиков?
Расскажите в комментариях, как боретесь с повторными заявками.




