Как отследить переход по внешней ссылке на сайтe?

Весь интернет строится на ссылках, внутренних или внешних. Очень часто возникает необходимость отследить переходы по внешним ссылкам со своего сайта, например:

  • сайт-каталог
  • сайт-агрегатор
  • сайт-производитель с дистрибьюторской сетью
  • новостной портал
  • и т.д.

Отчет по целям в Гугл Аналитикс

Расскажу как в самых популярных системах аналитики можно отследить пользователей, покидающих сайт по нашим внешним ссылкам.

Яндекс.Метрика

В коде отслеживания Яндекс.Метрики в настройках необходимо включить галочку: «Внешние ссылки, загрузки файлов и отчёт по кнопке «Поделиться». Эта опция позволяет в отчёте «Содержание» -> «Внешние ссылки» посмотреть все внешние ссылки. Ссылки группируются по домену.

ЯM: пример отчета по внешним ссылкам

Но этот отчёт не позволяет отследить и сегментировать аудиторию, которая перешла по этим внешним ссылкам. Для этого можно настроить цель. «Настройки» -> «Цели» -> «Добавить цель» -> Вкладка «URL страницы» -> добавляем URL внешней ссылки.

ЯM: пример отчета по внешним ссылкам

Вся пакость заключается в том, что таким образом мы можем отследить не более 20 внешних ссылок (доменов). Это ограничение вызвано количеством целей для одного сайта. Одной целью мы можем отследить переход либо по точному совпадению, либо по регулярному выражению, например, по домену. Наличие такой цели (-ей) позволит сегментировать аудиторию в других отчетах. Например, по источнику переходов уже на наш сайт.

ЯM: настройка цели - переход по внешней ссылке

Но как сегментировать аудиторию сразу по всем (!) внешним ссылкам? Что если внешних ссылок у нас очень много, и нас интересует только факт ухода на сторонний ресурс с нашего сайта? Тогда можно настроить общую цель. Название идентификатора можно выбрать любой, например: outbound_click.

ЯM: настройка цели: по всем переходам по внешней ссылкам

Далее в атрибут внешней ссылки onclick добавляем функцию отслеживания: yaCounterXXXXXXXXXX.reachGoal(‘outbound_click’); где вместо XXXXXXXXXX нужно подставить id вашего счётчика (можно посмотреть в настройках или в коде отслеживания в шаблоне сайта).

1
<a href="http://www.example.com" onclick="yaCounterXXXXXXXXXX.reachGoal('outbound_click');">example.com</a>

Google Analytics

Для отслеживания перехода по внешней ссылкам справка Google Analytics предлагает написать специальную функцию с одним параметром: trackOutboundLink(url) — https://support.google.com/analytics/answer/1136920?hl=ru.

Как можно увидеть за этим кодом скрывается функция отслеживания события. Чтобы ничего не усложнять будем пользоваться именно стандартным взаимодействием с GA — ga(‘send’, ‘event’, ‘Категория’, ‘Действие ‘, ‘Ярлык’, ‘Значение’).

Для того, чтобы собирать информацию о кликах, достаточно добавить код с функцией в атрибут onclick Вашей ссылки и подставить её название, например:

1
<a href="http://www.example.com" onclick="ga('send', 'event', 'outbound', 'click', 'http://www.example.com')">example.com</a>
  • Категория — outbound
  • Действие — click
  • Ярлык — url (необязательный параметр)
  • Значение — числовое значение (необязательный параметр)

Искать результаты сбора данной статистики нужно в интерфейсе ГА «Поведение» -> «События» -> «Обзор».

Отчёт событий в GA

В старой версии кода отслеживания ГА использовать нужно другое название функции: _trackEvent(category, action, opt_label, opt_value, opt_noninteraction). Отличие только в последнем булевском параметре.

  • category — категория
  • action — действие
  • opt_label — ярлык
  • opt_value — значение (необязательный параметр)
  • opt_noninteraction — логическое значение, по умолчанию false, если установить в true, то сессия, закончившееся данным событием не будет учитываться отказом (необязательный параметр).

Для того, чтобы отследить не только все события, но и посмотреть какие пользователи и по каким источникам их совершают, достаточно настроить цель в GA. Идём в «Администратор» -> «Цели» — > «+Цель» -> «Выбрать» (стандартные решения нам не подходят) -> Называем цель понятным и логичным названием, например, «Переход по внешним ссылкам», выбираем тип — «Событие» -> Дальше нужно заполнить значения события, после чего нажать кнопку «готово».

GA: настроить цель по событию

Заполнять значения можно не все, а хотя бы одно, но нам необходимо вписать два (их значения по умолчанию я уже писал выше): «категория» — outbound, действие — click. Если вдруг возникнет необходимость создать цель для какой-то одной конкретной внешней ссылки, домена или группы ссылок по определенным правилам, то в этом поможет последние поля.

Посмотреть результаты работы цели можно в отчёте «Конверсия» -> «Цели» -> «Обзор».

Отчет целей в ГА

Объединяем ЯМ и GA

1
<a href="http://www.example.com" onclick="ga('send', 'event', 'outbound', 'click', 'http://www.example.com'); yaCounterXXXXXXXXXX.reachGoal('outbound_click');">example.com</a>

Важно! Чтобы первой была функция ГА, а затем ЯМ.

Дело остается за малым: проставить все цели по всем внешним ссылкам. Хорошо, если они ссылок мало или они в одном шаблоне, а если править нужно тысячи страниц? Тут на помощь может придти jquery и небольшой скрипт:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$(document).ready(function() { 
 
	var __DOMEN__ = /my-domen*/ig;
	var array1;
 
	$("a").each(function(){
		var url = $(this).attr("href");
 
		if ((array1 = __DOMEN__.exec(url)) != null ){
 
		}else{
			var myRe = /^http|https\:\/\/.*/ig;
			var check = myRe.exec(url);			
			if (check !== null){		
				$(this).attr("onclick", "ga('send', 'event', 'outbound', 'click', '"+url+"');  yaCounterXXXXXXXXXX.reachGoal('outbound_click');");
                        }		
		}
	});	
})

Цель скрипта: обойти все ссылки на странице сайта после загрузки страницы, для внешних ссылок добавить в атрибут коды отслеживания Яндекс.Метрики и Google.Analytics.

Для того, чтобы скрипт заработал необходимо, чтобы на сайте была подключена библиотека jquery, например, эта.

Для работы скрипта необходимо в head подключить сначала библиотеку, а затем скрипт поиска внешних ссылок.

1
2
3
4
5
6
<head>
<!-- ... -->
<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript" src="/js/search-links.js"></script>
<!-- ... -->
</head>

Таким образом, проблема добавления кодов отслеживания пропадет сама собой, и все переходы по ссылкам на Вашем ресурсе попадут в отчёт. Ещё как бонус можно добавить массово ко всем внешним ссылкам атрибут target, для того, чтобы пользователи не потеряли сайт, откуда они собираются перейти:

1
$(this).attr("target", "_blank");

Строчку нужно добавить в цикл сразу после добавления onclick.

Вопросы и замечания?

Я со своей командой готов сделать это за вас! Заказать!

* – поля, обязательные для заполнения

  • Максим Степанов

    Здравствуйте,Андрей.Вопрос насчёт объединения Метрики и Аналитикс.

    В своей статье вы пишите,что можно использовать специальные скрипты для добавления кодов отслеживания внешних ссылок к ЯМ и ГА.

    Вроде всё правильно сделал,а переходы по внешним ссылкам не засчитываются,как в Метрике,так и в Аналиткис.

    Какие могут быть ошибки?

    • Добрый день, Максим! Может быть:

      1. У старый счетчик Аналитикса?
      2. В Яндексе не заменили XXXXXXX на id своего сайта?
      3. jquery конфликтует с какой-то другой библиотекой?

      ну это для начала))