2011-11-18 46 views
0

所以我試圖在Google Analytics中實現一些事件跟蹤。我試圖使用jQuery選擇器來確定用戶何時單擊我的導航中的鏈接,然後創建推送到Google Analytics的自定義變量。我似乎無法得到它的工作 - 任何想法?使用jQuery選擇器創建Google Analytics事件

$(function() { 
$('ul.ga-nav li a').click(function() { 

    var element = jQuery(this).attr("id"); 

    if (element == 'menu-item-27561') { 
     element = 'nav-home'; 
    } 
     else if (element == 'menu-item-31997') { 
       element = 'nav-buickgmc'; 
      } 

       else if (element == 'menu-item-28165') { 
        element = 'nav-used'; 
       } 

       else if (element == 'menu-item-27560') { 
        element = 'nav-service'; 
       } 

        else if (element == 'menu-item-30679') { 
         element = 'nav-used'; 
        } 

        else if (element == 'menu-item-30650') { 
         element = 'nav-finance'; 
        } 

         else if (element == 'menu-item-29954') { 
          element = 'nav-contact'; 
         } 

     _gaq.push(['track_Event', 'Site Usage', 'Navigation', element]); 

    }); 
}); 
+0

你是什麼意思「_can't get it work_」?它會拋出任何錯誤嗎?失敗的症狀是什麼? – Tadeck

+0

沒有錯誤。只是不推動事件GA –

回答

0

我不知道它是否會解決您的問題,但是可以肯定,你可以簡化你的代碼看起來像這樣:

$(function(){ 
    $('ul.ga-nav li a').click(function(){ 
     var element = jQuery(this).attr("id"); 
     var elements = { 
      'menu-item-27561': 'nav-home', 
      'menu-item-31997': 'nav-buickgmc', 
      'menu-item-28165': 'nav-used', 
      'menu-item-27560': 'nav-service', 
      'menu-item-30679': 'nav-used', 
      'menu-item-30650': 'nav-finance', 
      'menu-item-29954': 'nav-contact' 
     }; 
     if (element in elements) { 
      element = elements[element]; 
     }; 
     _gaq.push(['_trackEvent', 'Site Usage', 'Navigation', element]); 
    }); 
}); 

有沒有幫助?

+0

結合下面列出的語義錯誤嘗試了這一點。沒有骰子。 –

+0

@KyleSuss:解決你的問題**一步一步**。我的代碼簡化了確定的過程,**在傳遞給Google Analytics **之前是否應該替換id的值(以及值)。你一定要使用它。 – Tadeck

0

這可能是因爲導航到下一頁發生在谷歌代碼完成之前,因此代碼被取消。你可以取消鏈接的默認操作,讓JavaScript的處理導航到下一個頁面從_gaq隊列

內讓你的點擊功能的結束是這樣的:

$('ul.ga-nav li a').click(function() { 
    //....your code 

    var that = this; 
    _gaq.push(['_trackEvent', 'Site Usage', 'Navigation', element]); 
    _gaq.push(function() { 
     location = $(that).attr('href'); 
    }); 
    return false; 
}); 
2

我覺得這僅僅是一個語義錯誤,你必須:

_gaq.push(['track_Event'....]); 

當它應該是:

_gaq.push(['_trackEvent'....]); 

注意下劃線

+1

固定。沒有中間的'_',只是一個領先的。 – Yahel

+0

噢,這絕對是 - 謝謝。修正了代碼,現在只是等待事件推進 –

+0

凱爾 - 看起來像這樣工作,請接受這個答案,如果是這樣的話。 – streetlogics