Здравствуйте, дорогие читатели, в этой статье дам подробную инструкцию о том, как создать цель в Яндекс Метрике, которая будет срабатывать в зависимости от времени, проведённого на сайте, инструкция актуальна для WordPress, впрочем, приведённый скрипт сработает на любом другом сайте. Задача нетрудная, ибо вам представляю готовое решение, которое позволит без проблем создавать конверсионные и ретаргетинговые цели, завязанные на время, а не адрес страницы.

Цель в Метрике по времени

У любого таргетолога возникает желание сделать ретаргетинг на заинтересованную аудиторию. Одним из ключевых параметров является время, проведённое на сайте. Особенно это касается Landing Page. Есть посетитель, пару минут смотрел страницу, ну вот чуток не дожали. Нужно закинуть ему рекламку.

Как правило, ретаргетинг на посетителях, которые провели длительный срок на ресурсе, сказывается очень положительно, потому сделал готовое решение для WordPress, которое нужно будет вставить в файл functions.php дочерней темы или кастомный плагин.

Вообще, можно и в functions.php основной темы вставлять, но учтите, код при обновлении может пропасть, потому лучше создать дочернюю тему или плагин, куда код будет вынесен. Это защитит его от пропажи.

А теперь к делу. Давайте для начала посмотрим на цели в Метрике.

Цели в Яндекс Метрике
Цели в Яндекс Метрике

Здесь мы можем работать только с URL страниц. Хоть счётчик и отслеживает время, но работать с ним никак не можем. Кроме варианта с JavaScript-событиями. Да, вам требуется создать JavaScript-событие, если цель ретаргетинговая, отметьте галочку.

  1. Название цели можете делать русским. Ничего страшного.

  2. Выбираем соответствующий тип условия.

  3. Вводим идентификатор латиницей.

  4. Получаем код цели для сайта.

  5. Нажимаем «ОК».

Так выглядит заполненная форма.

Готовое JavaScript-событие в Метрике
Готовое JavaScript-событие в Метрике

Код пока что можете не копировать, но чуть позже он понадобится. Сейчас плавно перейдём к кодингу. Не волнуйтесь, ваша работа сводится к выполнению действий «копировать» → «вставить».

Создаём код на JavaScript

Да, Яндекс Метрика показывает, сколько времени человек провёл на сайте, но сделать с этим ничего не можем. Значит, наша задача проанализировать, сколько времени проводит наш потенциальный клиент. А потом задать минимальную планку, на которую можно выставлять цель. Например, не менее 2-х минут.

Достигнутые цели в Метрике
Достигнутые цели в Метрике

На данном счётчике Метрики можете видеть людей, которые достигли нужной цели. В данном случае выставил одну секунду. Но для ретаргетинга секунды будет маловато. А вот если человек провёл хотя бы пару минут, то становится интересным для ретаргетинга.

В таком случае нужно установить «событие-таймер», которое срабатывает через две минуты, а если посетитель покинул страницу раньше, то оно, соответственно, не сработает.

И тут нам на помощь придёт вот такой код:

add_action( 'wp_head', 'set_time_metrika' );
function set_time_metrika() {
?>
<script type="text/javascript">
	document.addEventListener("DOMContentLoaded", function(event) {
	setTimeout(function() {
	ym(XXXXXXXX,'reachGoal','settime'); return true; }, 120000)
	});
</script>
<?php
}

Его нужно просто скопировать, а потом вставить в кастомный плагин или functions.php. Главное:

ym(XXXXXXXX,'reachGoal','settime')

Замените на тот код, который получили при создании цели в Метрике.

Код JavaScript-события в Метрике
Код JavaScript-события в Метрике

А теперь небольшой разбор. Функция setTimeout позволяет вызвать определённое событие через некоторый временной интервал. То есть, по сути, отсрочить.

setTimeout(function() {
	ym(XXXXXXXX,'reachGoal','settime'); return true; }, 120000)
	});

Обратите внимание на число. Оно указывается в милисекундах. Так что 1 с = 1000 мс. На 2 минуты нужно выставить 120000. Но пока будет тестировать, поставьте 1000, чтобы не ждать две минуты.

Итак, сначала запускаем обработчик событий с помощью команды:

document.addEventListener("DOMContentLoaded", function(event) {

В данном случае я использую DOMContentLoaded, так как событие load кардинально отличается. Load используется только при работе с полностью загруженной страницей. Потому старт события произойдёт только тогда, когда будут загружены все изображения, шрифты и т. д. В общем, пройдёт некоторое время.

Событие DOMContentLoaded происходит после полной загрузки HTML. Дожидаться подгрузки таблиц стилей, фреймов, шрифтов не нужно. В общем, когда человек может произвести первое взаимодействие со страницей, уже начинается отчёт времени до срабатывания события.

Отложенная и асинхронная загрузка всего и вся — повсеместный вариант, потому рекомендую использовать именно DOMContentLoaded, если события не будут срабатывать, то можете заменить на load (ниже размещаю изменённый код).

add_action( 'wp_head', 'set_time_metrika' );
function set_time_metrika() {
?>
<script type="text/javascript">
	document.addEventListener("load", function(event) {
	setTimeout(function() {
	ym(XXXXXXXX,'reachGoal','settime'); return true; }, 120000)
	});
</script>
<?php
}

Учтите, синхронное выполнение скриптов заблокирует выполнение данного кода, ибо пока все скрипты, стоящие в очереди, не будут выполнениы, DOM не будет полностью загружен. Если на сайте не используются методы отложенной или асинхронной загрузки, а также скрипты в очереди загрузки стоят после стилей, тогда выигрыш перед функцией load будет минимальным.

А теперь копируем сей код, вставляем в functions.php, заменяем код с крестиками на тот, который вы получили при создании счётчика. И наслаждайтесь.

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

Если у вас не WordPress, то можете использовать только скрипт, но вам придётся его оформить в рамках используемых решений. Собственно, просто используйте то, что находится между script type=»text/javascript» и /script. Это и есть нужный вам код.

Вариант вполне рабочий

Да, не идеальный, этот таймер сработает только если человек проведёт две минуты именно на одной странице, а если пожелает прогуляться по всему сайту, то не вариант. Но отлично покажет себя на лендингах.

Как видите, сделать цель Метрики по времени на сайте можно. Но она будет не универсальной. Если такой вариант подходит, можете смело использовать. А пока подумаю, как сделать так, чтобы можно было отследить посетителя на каждой странице, суммировать общее время, проведённое на сайте, а потом превратить это в цель. Но идей пока нет.

Ладно, на этом с вами прощаюсь, надеюсь, сия коротенькая статья вам поможет достичь желаемого.

Нажмите для оценки!
[Оценило: 4 Средний: 4]