2015-08-25 135 views
0

我想通過谷歌分析跟蹤我網站上的外部鏈接。谷歌分析jQuery跟蹤外部鏈接 - _gaq&ga未定義

我inlcuded我的谷歌分析代碼在我的網站的標題:

var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXXX-XX']); 
    _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); 
    })(); 

我可以看到,如果有人在我的網站... 從那以後,我就是包含jQuery腳本來檢查,如果有人點擊了外部鏈接。

//Link Tracking 
(function($) 
{ 
    $('a.liexternal, a.liinternal, .wp_rp_content ul li a').click(function(e) 
    { 
     //Aktuelle URL 
     var actual_url = window.location.href; 
     //Angeklickte URL 
     var clicked_url = $(this).attr('href'); 
     //Checken ob der Link bereits getrackt wurde (je Seitenaufruf) 
     if(!e.isDefaultPrevented()) 
     { 
      //Verhindere die Default Eventaktion (Linkklick = Seitenaufruf) 
      e.preventDefault(); 
      //Manuelle Funktion um den Seitenaufruf nach Tracking zu bewirken 
      function loadPage() 
      { 
       document.location = clicked_url; 
      } 
      //Callback Funktion um den Seitenaufruf nach Tracking durchzuführen 
      //Unterschied zwischen Classic & Universal Analytics beachten! 
      _gaq.push(['_set', 'hitCallback', loadPage]); 

      if($(this).hasClass('liexternal')) 
      { 
       //_gaq.push(['_trackEvent', actual_url, 'External link', clicked_url]); 
       ga('send', 'event', actual_url, 'External link', clicked_url, {'hitCallback':loadPage}); 
      } 
      else if($(this).hasClass('liinternal')) 
      { 
       //_gaq.push(['_trackEvent', actual_url, 'Internal link', clicked_url]); 
      } 
      else if($(this).hasClass('wp_rp_title')) 
      { 
       //_gaq.push(['_trackEvent', actual_url, 'Internal related post', clicked_url]); 
      } 
      else 
      { 
       loadPage(); 
      } 
     } 
     else 
     { 
      return true; 
     } 
    }); 
})(jQuery); 

如果我點擊一個鏈接我得到以下問題的報告:

錯誤:的ReferenceError:GA沒有定義

我希望你能幫助我。

回答

1

您調用的庫是較早的Classic GA庫,如使用「ga.js」名稱和「_gaq」對象所證明的。但是,您嘗試使用通用分析方法以「ga」方法發送事件(即ga('send','event',....))。你正在做的是混合兩個版本。您應該考慮棄用經典代碼以支持通用代碼。

在這裏你要使用ga對象(如您已註釋掉_gaq線):

if($(this).hasClass('liexternal')) 
     { 
      //_gaq.push(['_trackEvent', actual_url, 'External link', clicked_url]); 
      ga('send', 'event', actual_url, 'External link', clicked_url, {'hitCallback':loadPage}); 
     } 

如果你決定繼續使用經典的GA,那麼你也應該堅持「_gaq 「方法調用。