Отслеживаем события по URL

Дано: у вас многостраничный сайт. На разных страницах одна и та же цель.

Задача: отслеживать на каких страницах была достигнута цель.

Настройка отслеживания

Я.Метрика предлагает на всех страницах установить код:

ym (XXXXXX, 'reachGoal', 'TARGET', {URL: document.location.href})

XXXXXX - ID счетчика метрики

TARGET - Идентификатор цели

URL: document.location.href - передаваемая информация в формате ключ: значение. Подробнее:

  • URL - Ключ (В отчете «Параметр 1»). Т.к. мы передаем значение URL, то так и назовем.
  • document.location.href - динамическое значение (В отчете «Параметр 2»).
    Возвращает весь URL, где достигнута цель. Подробнее:

- document: объект, представляющий текущую страницу.

- location: свойство объекта document.Предоставляет информацию о текущем URL.

- href: Подсвойство объекта location.Содержит полный URL-адрес.

Если в URL присутствуют хэши #

Используя стандартную инструкцию от Я.Метрики вы получите такой результат:

Отслеживаем события по URL, image #1

С разбивкой по URL мы получаем в сумме 18 посетителей. На самом деле их 13. Так бывает, если один пользователь выполнил цель несколько раз:

  • Без хэша
  • С хэшем
  • С разными хэшами

Решение

Получать не весь URL, а его конкретную часть (путь).

Какие еще подсвойства объекта location мы можем передавать, разберем на примере URL: https://www.site.com/public/?filter=all#1

В формате подсвойство → значение:

window.location.origin → 'https://www.site.com'
.protocol → 'https:' (Протокол)
.host → 'www.site.com' (Хост. Если в строке был указан порт, то он так же передастся) *
.hostname → 'www.site.com' (Имя хоста) *
.port → '' (порт. В примере его не было)
.pathname → '/public/' (путь - то, что нам нужно!)
.search → '?filter=all' (Значение после знака ?)
.hash → '#1' (хэш, который нам мешал)
.href → 'https://www.site.com/public/?filter=all#1' (весь URL)

Итог

Я хочу передавать путь:

ym (XXXXXX, 'reachGoal', 'TARGET', {path: document.location.pathname })

Я хочу передавать еще и заголовок, поэтому добавлю Title: document.title:

ym (XXXXXX, 'reachGoal', 'TARGET', {path: document.location.pathname, Title: document.title})
Отслеживаем события по URL, image #2

Хочу видеть путь реферера (страница, с которой пользователь попал на целевую страницу). Добавлю Referer:document.referrer:

ym (XXXXXX, 'reachGoal', 'TARGET', {path: document.location.pathname, Title: document.title, Referer:document.referrer})

* P.S. Разница между "host" и "hostname". Если в строке присутствует порт (https://www.samanthaming.com:8080), то вернутся следующие значения:

window.location.host; // 'www.site.com:8080'
window.location.hostname; // 'www.site.com'
window.location.port; // '8080'
59 views