Настраиваем пользовательские цели на основе поведения посетителей сайта
Всем привет 👋
Прошел почти месяц с момента публикации моего проекта по автоматической оптимизации рекламных кампаний в Яндекс Директ — вот ссылка на пост.
К сожалению, пост не получил достаточного отклика, чтобы я начал записывать подробную инструкцию по настройке, но всё ещё в силе: как только он наберёт 100 лайков — я обязательно подготовлю и опубликую полноценное руководство.
А пока что — немного новостей и полезностей.
Сейчас я работаю над новым проектом, который опубликую здесь, как только доведу его до ума. Он полностью решит проблему с обучаемостью рекламных кампаний — раз и навсегда.
Но уже сегодня хочу поделиться простым скриптом, который также помогает справляться с этой проблемой. Это временное решение — менее гибкое, чем то, над которым я сейчас работаю, но оно вполне рабочее и может быть полезно прямо сейчас.
Что делает скрипт?
Он создаёт 3 цели, которые автоматически заполняются в зависимости от того, насколько "качественным" оказался пользователь, зашедший на сайт. Затем эти цели можно использовать в качестве конверсий для оптимизации в Яндекс Директ — это позволит системе эффективнее обучаться и не останавливать обучение рекламной кампании.
Скрипт не является полностью моей разработкой, некоторую часть я позаимствовал у одного специалиста. Ссылочку на автора исходного скрипта оставлю здесь:
Итак, давайте сначала разберем принцип работы скрипта и каким проектам он будет полезен.
Принцип работы
Принцип работы максимально простой: скрипт отслеживает поведение пользователя на сайте и по завершению сессии определяет, к какому из трёх сегментов он относится:
- Качественный пользователь (low) - низкая заинтересованность
- Качественный пользователь (medium) - средняя заинтересованность
- Качественный пользователь (high) - высокая заинтересованность.
Распределение по сегментам происходит на основе заранее заданных правил. Скрипт оценивает следующие параметры:
- minTimeOnSiteMs - минимальное количество времени, который должен провести на сайте (в миллисекундах)
- minPageViews - минимальное количество страниц, которое пользователь должен просмотреть во время сессии.
- minScrollDepthPercentage - минимальный процент прокрутки страницы
- minScrollPauses — минимальное количество пауз при прокрутке (скролл-стопов)
Отдельно стоит отметить: скрипт умеет определять, является ли посетитель сайта ботом. Если пользователь распознан как бот — никакие цели ему не присваиваются.
Для каких проектов будет полезно?
В первую очередь такой скрипт будет полезен проектам в перегретых нишах, где:
- Высокая конкуренция
- дорогой CPL (стоимость лида)
- Недельный бюджет, который не позволяет стабильно получать хотя бы 10 конверсий в неделю — это минимальный объём, необходимый для обучения рекламных кампаний в Яндекс Директе.
Инструкция по установке
Чтобы внедрить скрипт на сайт и начать отслеживать поведение пользователей для последующей сегментации, потребуется следующее:
- Скрипт — сам код, который будет анализировать поведение и отправлять цели в Метрику
- Доступ к Яндекс Тег Менеджеру — если нет возможности напрямую редактировать HTML-код сайта
- Доступ к Яндекс Метрике — минимальный уровень доступа: Аналитика, чтобы была возможность создать цели для скрипта.
Ниже опубликован сам скрипт:
Найдите следующую строчку
Замените "НОМЕР_ВАШЕГО_СЧЕТЧИКА" на актуальный номер счетчика яндекс метрики, перед тем, как установить скрипт на сайт.
Ниже — ключевые параметры скрипта, которые вы можете (и должны) настроить под особенности вашего сайта:
Ограничение на количество целей в сутки с одного пользователя. Позволяет избежать повторных засчитываний целей от одного и того же пользователя. По умолчанию — не больше одной цели в день.
Порог бездействия для завершения сессии (в миллисекундах). Если пользователь не проявлял активности более 3 минут (180 000 мс), сессия считается завершённой — скрипт оценивает поведение и отправляет цель.
Минимальная продолжительность сессии, чтобы засчитать цель. Если пользователь пробыл на сайте меньше 10 секунд — поведение считается недостаточным для сегментации, и цель не отправляется.
Длительность паузы между скроллами (в миллисекундах). Используется для оценки "вдумчивого" чтения. Если пользователь останавливается во время скролла хотя бы на 3 секунды — засчитывается пауза.
Интервал проверки сегментации (в миллисекундах). Скрипт каждые 5 секунд анализирует активность пользователя, чтобы определить, достиг ли он нужного уровня вовлечённости.
Условия (правила) для распределения пользователя в тот или иной сегмент описаны выше.
Создаем цель в Яндекс Метрике
Теперь, когда вы отредактировали скрипт, нужно создать соответствующие цели в интерфейсе Яндекс Метрики.
Переходим в нужный счётчик → раздел «Цели» → «Добавить цель», и создаём 3 цели типа "JavaScript-событие" с идентификаторами:
- quality_user_low
- quality_user_medium
- quality_user_high
Ниже записал видео как пример создания цели quality_user_low
Установка скрипта с помощью Яндекс Тег Менеджера
Если у вас нет доступа к HTML-коду сайта, вы можете установить скрипт через Яндекс Тег Менеджер (ЯТМ). Это удобно, быстро и не требует участия разработчиков.
Чтобы начать работу с ЯТМ, нужно сначала убедиться, что:
- Тег Менеджер активирован — это можно сделать в настройках счётчика Яндекс Метрики. 👉 Важно: активировать Тег Менеджер может только владелец счётчика.
- У вас есть доступ к контейнеру — для полноценной работы (просмотр, редактирование и добавление скриптов) необходим доступ с правами:
- «Просмотр контейнера»
- «Редактирование контейнера»
- «Создание контейнера»
Внутри интерфейса ЯТМ перейдите в раздел «Теги» и нажмите на кнопку «Добавить тег», откроется окно создания тега со следующим содержимым:
- Название — придумайте название тегу, оно может быть произвольным, например «Качественный пользователь»
- Шаблон тега — в выпадающем списке выберите «Пользовательский HTML» и вставьте подготовленный скрипт внутрь появившегося окна
- Триггеры — пока оставьте пустым
Сохраните ваш тег.
Перейдите в раздел «Триггеры» и нажмите на кнопку «Добавить триггер», откроется окно создания тега со следующим содержимым:
- Название — придумайте название тегу, оно может быть произвольным, например «Качественный пользователь»
- Тип триггера — в выпадающем списке выберите «Просмотр страницы»
- Условия активации триггера — все события
Сохраните ваш триггер.
После создания триггера вернитесь в раздел «Теги», откройте ранее созданный тег и выберите нужный триггер в соответствующем поле. В конечном счете у вас должно быть примерно вот так:
Не забудьте опубликовать изменения, без этого скрипт не заработает на сайте.
Проверка работоспособности
Теперь, когда вы опубликовали тег в интерфейсе ЯТМ осталось проверить его работоспособность. Для этого перейдите на сайт, откройте режим разработчика и перейдите во вкладку «Console». Вы должны увидеть, что скрипт начал исполняться, соответствующие сообщения вы должны увидеть здесь.
Эти сообщения, которые выводятся в консоли говорят о том, что скрипт запустился и начал свою работу.
Поскольку цель отправляется только после завершения сессии — либо по таймауту в 3 минуты бездействия, либо при закрытии вкладки или браузера — для отладки рекомендую использовать режим дебага.
Откройте сайт с параметром отладки, например:
Параллельно откройте инструменты разработчика (F12) → вкладка Console. Выполните какие-либо действия на сайте (пролистывания, переходы, задержитесь на странице), и наблюдайте, что выводится в консоль — скрипт покажет, какой сегмент был назначен.
Когда увидите сообщение о присвоении сегмента (например, Обнаружен и сохранен новый сегмент: quality_user_low. ), вручную отправьте срабатывание цели, выполнив в консоли команду:
После того как отправите команду в консоль, откройте вкладку «Events» в дебаггере Метрики — вы должны увидеть, что цель, соответствующая вашему сегменту, сработала. Это значит, что скрипт работает корректно и цели успешно передаются в Метрику.
Теперь, когда стало понятно, что скрипт работает корректно, можно переходить к следующему шагу — добавлением соответствующих целей в настройках рекламных кампаний. Это позволит алгоритму Яндекса получать больше конверсий и поддерживать обучаемость алгоритмов даже в условиях небольшого бюджета или высокой стоимости лида.
✌ Надеюсь этот скрипт поможет в оптимизации ваших рекламных кампаний. Если будут вопросы, замечания, предложения — пишите, всегда открыт для всех.
Ну а если вам нужна настройка рекламных кампаний, аудит или консультация, можете написать мне в телеграм 😊