Гугл Аналитика;Отслеживать исходящие клики;Как? - PullRequest
4 голосов
/ 31 октября 2010

Я читал эту статью об отслеживании исходящих ссылок на баннерах и тому подобное:

http://seogadget.co.uk/how-to-count-your-outbound-click-stats-with-onclick-in-google-analytics/

Итак, я добавил этот код в событие onClick моего href:

 javascript: pageTracker._trackPageview('/outbound/top_banners/banner_name');

Этого достаточно?

Поскольку я прочитал некоторые места, мне нужна функция «задержка ссылки» или что-то еще в HEAD моего документа, прежде чем будет выполнен какой-либо JavaScript!

Кроме того, где именно в GA (в интерфейсе) я смогу просматривать клики?

Спасибо

Ответы [ 3 ]

4 голосов
/ 01 ноября 2010

Вот в чем проблема: каждый элемент данных, записанных и сообщаемых Google Analytics, отправляется на серверы GA в компоненте URL запроса в запросе клиента для __utm.gif. Функция _.trackPageview () провоцирует сбор / объединение данных в URL-адрес запроса, а также сам запрос. Другими словами, если _trackPageview () не вызывается, данные на серверы GA не отправляются.

Таким образом, вопрос заключается в том, обрабатывается ли запрос GA (выше) перед запросом, связанным с исходящей ссылкой. Если это не так, то GA щелчка по исходящей ссылке не записывает, что не соответствует вашим ожиданиям.

Итак, вы хотите, чтобы задержка была чуть-чуть - достаточно длинной для выполнения запроса GA, но достаточно короткой, чтобы пользователь не заметил задержку - запрос исходящей ссылки.

Есть несколько различий между кодом, размещенным в вашем Q, и кодом ниже - все различия направлены на это "состояние гонки".

Во-первых, обратите внимание, что возвращаемое значение из обработчика onClick установлено на " false " - предотвращение (немедленного) перехода браузера клиента на http://www.outbound -link.com

Второй diff - это вызов setTimeout . Третий переданный аргумент, '100' - это задержка в миллисекундах.

В-третьих, обработчик onclick (fnx) создает свой собственный объект отслеживания и поэтому не полагается на объект pageTracker, который был инициализирован в другом месте.

Ваш второй вопрос: где в браузере GA вы просматриваете эти клики? Используя GA, вы можете отслеживать события двумя разными способами - с помощью _trackEvent () или _trackPageView ().

Отслеживая исходящие ссылки вторым способом (как вы и, следовательно, как я сделал ниже), «щелчок» отображается не как событие, а как просмотр страницы (' виртуальный просмотр страницы *) 1031 * '- это термин, наиболее часто используемый GA Consultants и др. Для обозначения того, что отслеживается как просмотр страницы, но на самом деле это не так). Таким образом, вы увидите эти клики, о которых сообщается вместе с другими просмотрами страниц - например, в Контенте (наряду с Трафиком и Посетителями , три основных заголовка в левой панели). Как определить, какие строки в этом отчете относятся к этим исходящим кликам? Значение поля Page (обычно крайний левый заголовок столбца) будет URL-адресом исходящей ссылки. Разумеется, получив это, вы можете создать расширенный сегмент или пользовательский отчет или даже новый профиль , чтобы сообщать об этом отдельно.

<script type="text/javascript">
    function fnx(that) {
        try {
            var pageTracker=_gat._getTracker("UA-YOURACCOUNTHERE-PROFILE");
            pageTracker._trackPageview("http://www.outbound_link.com");
            setTimeout('document.location = "' + that.href + '"', 100)
     }catch(err){}
    }
</script>


<a href="www.outbound_link.com" onclick='fnx(this);return false;'>"Take Me Here"</a>
2 голосов
/ 04 ноября 2010

Это мое 100% рабочее решение для отслеживания всех исходящих ссылок (мне нравится jQuery, поэтому вам нужно добавить скрипт jquery.js на страницу).

function isLinkExternal(link) {
    var r = new RegExp('^https?://(?:www.)?' + location.host.replace(/^www./, ''));
        return !r.test(link);
}

$(document).ready(function() {
    $(document).bind('click', function(e) {
        var target = (window.event) ? e.srcElement : e.target;
        while (target) {
            if (target.href) break;
            target = target.parentNode;
        }
        if (!target || !isLinkExternal(target.href)) return true;
        var link = target.href;
        link = '/outgoing/' + link.replace(/:\/\//, '/');
        _gaq.push(['_trackPageview', link]);
    });
});

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-YOURCODE-1']);
_gaq.push(['_trackPageview']);
(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

Этот скрипт предоставляет все исходящие ссылки на GA, например: /outgoing/http/www.example.com. Для лучшего опыта вам нужно создать расширенный сегмент для этих ссылок. Создайте его с параметрами: "Страница" "Начинается с" "/ outgoing / http". Это все! Теперь у вас есть полная статистика для ваших исходящих ссылок.

0 голосов
/ 31 августа 2018

Это решение позволит вам нажимать на ссылки с target='_blank' и, кроме того, позволит вам установить атрибуты данных для любой ссылки и автоматически отправлять их в GA.

$('a').bind('click', function( event ) {
  var target = $(this).attr('href');
  if ($(this).attr("data-event-category") !== undefined && $(this).attr("data-event-label") !== undefined) {
    gtag('event', 'click', {
      'event_category': $(this).attr("data-event-category"),
      'event_label': $(this).attr("data-event-label"),
      'event_callback': function(){handle_redirect($(this), event);}
    });
  } else {
    handle_redirect($(this), event);
  }
});

function handle_redirect(element, event) {
  var target = element.attr('href');
  var regExp = new RegExp("//" + location.host + "($|/)");
  var isLocal = (target.substring(0,4) === "http") ? regExp.test(target) : true;
  var url = target;
  if(isLocal===true) {
    return;
  } else {
    event.preventDefault();
    gtag('event', 'click', {
      'event_category': 'outbound',
      'event_label': window.location.href + ' --> ' + url,
      'transport_type': 'beacon',
      'event_callback': function(){element.unbind( "click"); element[0].click();}
    });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...