Как отслеживать в Яндекс.Метрике глубину просмотра лендинга и повторные визиты
Я чот подумал над тем, что не хватает функционала в метрике и решил, а что если добавить новые цели.
📌 Цель №1. Просмотр 75% лендинга (или любого другого процента)
Такая цель показывает, насколько посетитель заинтересовался вашим предложением.
🔘 просмотр 25% страницы 🔘 просмотр 50% 🔘 просмотр 75% 🔘 просмотр 100%
Код для отслеживания
(function () { let fired = false;
window.addEventListener('scroll', function () {
if (fired) return;
const scrollTop = window.pageYOffset || document.documentElement.scrollTop; const windowHeight = window.innerHeight; const documentHeight = document.documentElement.scrollHeight;
const percent = ((scrollTop + windowHeight) / documentHeight) * 100;
if (percent >= 75) { fired = true;
ym(12345678, 'reachGoal', 'scroll75'); } }); })();
Замените 12345678 на номер вашего счетчика Яндекс.Метрики.
Затем создайте в Метрике цель типа JavaScript-событие с названием:
scroll75
💡 Хотите отслеживать другой процент? Просто измените:
75 например на:
• 25 • 50 • 90 • 100
и название события:
scroll25 scroll50 scroll90 scroll100
📌 Цель №2. Повторный визит через 1 или 7 дней
На самом деле писать код для этого не обязательно.
Яндекс.Метрика уже умеет определять вернувшихся пользователей.
Для анализа и ретаргетинга достаточно создать сегмент:
Вернувшиеся посетители; Количество визитов ≥ 2; Пользователи, вернувшиеся за последние 7 или 30 дней.
Но если вам нужна отдельная цель JavaScript, например для передачи события в Метрику или использования в оптимизации рекламы, можно сделать так.
Повторный визит через 1 день
(function(){
const now = Date.now(); const key = 'firstVisitDate';
let firstVisit = localStorage.getItem(key);
if (!firstVisit){
localStorage.setItem(key, now);
} else {
const diff = now - Number(firstVisit);
const days = diff / (10006060*24);
if(days >= 1){
ym(12345678, 'reachGoal', 'return1day');
localStorage.setItem(key, now); }
}
})();
Создайте цель: return1day
Повторный визит через 7 дней Достаточно изменить одно число:
if(days >= 7){ ym(12345678, 'reachGoal', 'return7days'); }
и создать цель: return7days
Какие цели я рекомендую использовать практически на каждом лендинге
🔘 Просмотр глубины просмотра сайта на 75% 🔘 просмотр кейсов/отзывов 🔘 скачивание прайс-листа 🔘 Звонки с коллтрекинга 🔘 отправка формы (только с JS события) 🔘 Нахождение на сайте более 60 сек.
Такой набор целей позволяет не только оценивать качество трафика, но и находить узкие места воронки. Иногда оказывается, что проблема вовсе не в рекламе, а в том, что большинство пользователей не доходят даже до ключевого оффера или формы заявки.
А какие нестандартные цели используете вы в своих проектах?