С Документация Google для универсальной аналитики (новая версия, поскольку большинство других ответов на этот вопрос). Теперь вы можете легко указать обратный вызов.
var trackOutboundLink = function(url) {
ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
function () {
document.location = url;
}
});
}
Для ясности я бы порекомендовал использовать этот синтаксис, чтобы было понятнее, какие свойства вы отправляете, и легче добавлять больше:
ga('send', 'event', {
'eventCategory': 'Homepage',
'eventAction': 'Video Play',
'eventLabel': label,
'eventValue': null,
'hitCallback': function()
{
// redirect here
},
'transport': 'beacon',
'nonInteraction': (interactive || true ? 0 : 1)
});
[Вот полный список параметров для всех возможных ga
вызовов.]
Кроме того, я добавил для параметра transport
значение beacon
(на самом деле не нужно, потому что он автоматически устанавливается при необходимости):
Указывает транспортный механизм, с помощью которого будут отправляться попадания.
Возможные варианты: «маяк», «xhr» или «изображение». По умолчанию analytics.js
постараюсь выяснить лучший метод на основе размера попадания и
возможности браузера. Если вы укажете «маяк» и браузер пользователя
не поддерживает метод navigator.sendBeacon
, он отступит
на «изображение» или «xhr» в зависимости от размера удара.
Таким образом, при использовании navigator.beacon
навигация не прерывает отслеживание. К сожалению, поддержка Microsoft для маяка отсутствует , поэтому вам все равно следует включить перенаправление в обратный вызов.