Статьи

Как отслеживать исходящие ссылки в Google Analytics

Google Analytics предоставляет огромное количество информации. Если вы ничего не делаете, а просто добавляете скрипт отслеживания на свои страницы, вы столкнетесь с бесконечным потоком данных и отчетами об активности пользователей на вашем сайте. Однако, хотя Analytics отображает страницы выхода, она не будет сообщать вам, по каким ссылкам пользователи переходят с вашего сайта. В этой статье мы узнаем, как добавить отслеживание исходящих ссылок.

Записывает ли Google исходящие ссылки?

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

У Google есть дополнительные средства сбора данных: вы можете собрать много статистики, если у вас есть лучший браузер и поисковая система! Но затем мы переходим от аналитики на месте к более сомнительной территории; Google не обязательно хотел бы поделиться этими данными.

К счастью, мы можем собрать детали исходящей ссылки сами.

Сначала обновите Universal Analytics!

Прежде чем идти дальше, вы должны перейти на Universal Analytics . Возможно, Google начал этот процесс для вас, но код отслеживания должен быть обновлен на страницах вашего сайта. Это боль, но код отслеживания исходящей ссылки, показанный ниже, не будет работать без него. (Это может быть сделано для работы с устаревшей Analytics, но в конечном итоге она перестанет работать, поэтому лучше обновиться сейчас.)

Отслеживание пользовательских событий

Аналитика поддерживает отслеживание событий . Как правило, он используется для записи на странице управляемой JavaScript интерактивности, такой как открытие виджета или выполнение Ajax-вызова. Мы можем использовать отслеживание событий для записи исходящих ссылок, но есть ряд препятствий, которые необходимо преодолеть:

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

Решение…

  1. Мы прикрепим обработчик события click к элементу body Это получит события по нажатой ссылке, когда они всплывают через DOM.
  2. Мы можем определить, откроет ли ссылка страницу в домене, который отличается от нашего. Если это исходящая ссылка, мы отменим событие click и начнем отслеживание событий Analytics.
  3. В фоновом режиме Google Analytics отправляет данные, запрашивая изображение маяка. После завершения вызова он может запустить функцию обратного вызова, чтобы мы могли перенаправить на исходящую страницу.
  4. Мы должны быть осторожны и гарантировать, что отслеживание никогда не останавливает навигацию пользователя даже при сбое. Процесс должен быть быстрым, не обрабатывать клики, которые были деактивированы другими процессами, и обеспечивать работу ссылок, даже если событие Analytics завершается неудачно.

Мы хотим, чтобы отслеживание работало везде, поэтому я рекомендую использовать библиотеку с надежной кросс-браузерной обработкой событий. Я буду использовать jQuery 1.x для этого примера, так как большинство сайтов используют его, но вы можете заменить его легким вариантом, таким как min.js , Zepto.js , Minified.js или ваши собственные функции обработки событий.

Полный код показан ниже. Это можно добавить к существующим файлам JavaScript или в блоке scriptbody Сначала необходимо загрузить jQuery (или ваш альтернативный вариант), хотя код отслеживания Google Analytics может отображаться в любом месте на странице.

 /* Track outbound links in Google Analytics */
(function($) {

  "use strict";

  // current page host
  var baseURI = window.location.host;

  // click event on body
  $("body").on("click", function(e) {

    // abandon if link already aborted or analytics is not available
    if (e.isDefaultPrevented() || typeof ga !== "function") return;

    // abandon if no active link or link within domain
    var link = $(e.target).closest("a");
    if (link.length != 1 || baseURI == link[0].host) return;

    // cancel event and record outbound link
    e.preventDefault();
    var href = link[0].href;
    ga('send', {
      'hitType': 'event',
      'eventCategory': 'outbound',
      'eventAction': 'link',
      'eventLabel': href,
      'hitCallback': loadPage
    });

    // redirect after one second if recording takes too long
    setTimeout(loadPage, 1000);

    // redirect to outbound page
    function loadPage() {
      document.location = href;
    }

  });

})(jQuery); // pass another library here if required

Событие записывается с именем категории «исходящий», именем действия «ссылка» и значением, заданным для URL исходящей страницы. При необходимости вы можете изменить их в вызове ga

После внедрения зайдите на ваш сайт и нажмите несколько исходящих ссылок. Вы должны увидеть это действие на панели Analytics Real-Time> Events. Дополнительные данные появятся на панели «Поведение> События» через несколько часов.

Пожалуйста, используйте код, как вы хотите.