Чтобы отслеживать посетителей на сайте, которые провели на нем более 30 секунд, нужно добавить в код Яндекс Метрики следующую строчку:
setTimeout(function() {ym(00000000,"reachGoal","time_left_30");}, 30000);
после кода:
ym(00000000, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, ecommerce:"dataLayer" });
где,
00000000
— id счетчика Яндекс Метрики,
time_left_30
— идентификатор цели Яндекс Метрики.
полный код получается такой:
<!-- Yandex.Metrika counter --> <script type="text/javascript"> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(00000000, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, ecommerce:"dataLayer" }); setTimeout(function() {ym(00000000,"reachGoal","time_left_30");}, 30000); </script> <noscript><div><img src="https://mc.yandex.ru/watch/00000000" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter -->
В метрике, при этом, нужно создать цель. Назвать ее, например, «Посетитель более 30 сек». Идентификатор цели, например, «time_left_30».
Принцип работы данного кода такой. Когда посетитель (юзер, пользователь, потенциальный клиент) попадает на Ваш сайт с рекламы или другого источника. Яндекс Метрика детектирует (определяет) его как нового (в смысле с данный момент времени) пользователя и начинает записывать события его поведения на сайте (скроллинг, клики, поведение мыши, поиск по сайту, отправка форм, клики на кнопки, клики на другие элементы сайта). В момент когда посетитель присутствует на сайте 30 секунд, срабатывает код «setTimeout» — функция JavaScript, которая устанавливает таймер — после окончания которого происходит отправка события в Метрику о том, что данный пользователь с таким — то clientID находится на сайте 30 секунд. Метрика регистрирует данное событие как Цель (конверсию) — «Посетитель более 30 сек».
Далее, после того как событий собралось достаточно (например 500 или 1000), Вы можете включать в кампаниях Яндекс Директ стратегию с оптимизацией за конверсии («Посетитель более 30 сек»). Чтобы оплачивать (покупать в Директа) только потенциально заинтересованных посетителей и не покупать ботов и прочую незаинтересованную аудиторию.
PS: На момент написания заметки, в конце марта 2024 года Яндекс добавил возможность создания цели Продолжительность визита внутри метрики (посмотрите на фото выше). Поэтому использование данного кода не обязательно.