от Lucifer

Днес ми трябваше да проверя на къде е насочен изходящия трафик на един сайт, който се track-ва с добрия стар Google Analytics … само за да разбера, че това не се прави автоматично … по една или друга причина.

Ако се разтърсите из Интернет, ще намерите няколко различни метода по, които може да се прескочи тази малка пречка. Дори в Knowledge Base-а на Google има описано решение на този проблем. За съжаление, обаче решението на Google изисква да промените линковете в целия сайт. Ако използвате CMS, който позволява това … не е проблем, дори е елементарно. Проблема идва, когато, като мен трябва да промените нещо от типа на phpBB3 … където не е толкова лесно … нещата се променят драстично.

За моя радост, попаднах на малко решение, което изисква jQuery. Не навлизам в подробности нито какво е Google Analytics, нито jQuery – ако сте стигнали до тук, то предполагам, че имате някаква обща идея кое какво е.

Каква е идеята на скрипта?

jQuery разполага с голям набор selector-и и action hook. Селектора прихваща всяко действие натискането на бутона на мишката (но не click, защото click event-а изисква намеса в самата структура на a тага и промяна на поведението на връзката), което кара скрипта да изпълни действие. Самият скрипт е елементарен:

$(function()
{
   $('a:not([href*="' + document.domain + '"])').mousedown(function(event){
      // Just in case, be safe and don't do anything
      if (typeof _gat == 'undefined') {
         return;
      }
      var link = $(this);
      var href = link.attr('href');
      //console.log(href);
      if (href.charAt(0) != '.' && href.charAt(0) != '#' && href.charAt(0) != '/') {
         var noProtocol = href.replace(/http[s]?:\/\//, '');
         //console.log("outbound");
         // Track the event
         _gat._getTrackerByName()._trackEvent('Outbound Links', noProtocol);
       }
    });
});

 

$(‘a:not([href*=“‘ + document.domain + ‘“])’).mousedown( делегира на всеки линк (а таг), на който домейна е различен от настоящия, действие. В този случай скрипта, който следва.

А самият скрипт извиква нов track event от ga.js. Track event-a приема два параметъра – Наименование (Outbound Links) и връзка.

По принцип оригиналния скрипт е взет от тук. Както ще видите съм добавил малката промяна за проверка на релтивни адреси.

Единственото условие на този скрипт е да бъде зареден след зареждане на jQuery. Изисква и версия по-голяма от 1.7.

Предполагам, че скрипта може да бъде коригиран според API спецификацията на jQuery и да използва .on(‘mousedown’, function(){}); но това ще изисква някаква малка промяна, с която в момента не ми се знимава.

Самите Outbound Links, можете да проверявате в Content -> Events.

Надявам се това да помогне на всички, които искат следят на къде ходят потребителите от техния сайт с Google Analytics.

Ваш,

Lucifer

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

 

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните ви за коментари.

WordPress Appliance - Powered by TurnKey Linux