2015-06-04 5 views
1

Google предполагает, что это track outbound links:Google Universal Analytics - отслеживать несколько событий на одной линии нажмите

ga('send', 'event', 'outbound', 'click', url, { 
    'hitCallback': function() { 
     document.location = url; 
    } 
}); 

Он использует «hitCallback» для перенаправления пользователя на страницу, как только событие было успешно отслеживаются.

Каков синтаксис отслеживания нескольких событий за клик?

Я предпочел бы не писать код так:

ga('send', 'event', 'outbound', 'click', url, { 
    'hitCallback': function() { 

     ga('send', 'event', 'foo', 'click', url, { 
      'hitCallback': function() { 

       ga('send', 'event', 'bar', 'click', url, { 
        'hitCallback': function() { 
         document.location = url; 
        } 
       }); 
      } 
     }); 
    } 
}); 

Любое решение должно поддерживать IE7 + и не имеют никаких зависимостей библиотеки.

+1

Google предлагает использовать hitCallback, чтобы гарантировать, что удаленный сигнал отправлен до перехода к странице. Итак, ваши ссылки открываются на вкладке или на одной вкладке? Вы можете попытаться использовать флаг «useBeacon» (или, я думаю, теперь он называется «транспорт») вместо hitCallback. Он делает то же самое по существу: https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#useBeacon – nyuen

+0

Ссылки будут открытыми на той же вкладке. Я посмотрел на функцию маяка, но использует [Navigator.sendBeacon()] (https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon), который не имеет большой поддержки. Это необходимо для работы в IE7 + –

+0

Вы пытались отправить события на mousedown? Таким образом, вам может не понадобиться hitCallback, поскольку события будут отправлены до того, как пользователь будет нажат. – nyuen

ответ

0

Я думаю, что есть два возможных подхода:

  • Положитесь на предположении, что GA обрабатывает события последовательно и использовать только хит обратного вызова для последнего события.

  • Использовать обратный вызов с одним ударом, который подсчитывает количество вызовов и только изменения document.location при получении последнего ожидаемого вызова.

+0

как представляется, не является каким-либо методом для отправки нескольких событий на одно действие, и делать предположения никогда не является хорошей идеей, это действительно оставляет только ваш второй подход или вложенные обратные вызовы в качестве параметров. Хотя ни один из них не идеален, я использовал счетчик событий, поскольку он лучше подходит для моих ограничений. –

0

Вы должны попробовать это:

ga('send', 'event', 'outbound', 'click', url, {transport: 'beacon'}); 
ga('send', 'event', 'foo', 'click', url, {transport: 'beacon'}); 
ga('send', 'event', 'bar', 'click', url, { 
    transport: 'beacon', 
    hitCallback: function() { 
     document.location = url; 
    } 
}); 

параметр Транспорт является fallbacked классическим отслеживание пикселей, поэтому IE7 должен это пережить.

Если используется sendBeacon/используемый транспорт, вы не зависимы от рек обратной связи, поэтому последний ga-вызов достаточно.

Смежные вопросы