Google Analytics jQuery 跟踪外部链接 - _gaq & ga 未定义

Google Analytics jQuery track external links - _gaq & ga is not defined

我想使用 google 分析来跟踪我网站上的外部 link。

我在我网站的 header 中包含了我的 Google 分析代码:

  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.

//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);

如果我点击 link,我会收到以下问题报告:

错误:参考错误:ga 未定义

希望你能帮帮我。

您调用的库是较旧的经典 GA 库,使用 "ga.js" 名称和“_gaq”对象证明了这一点。但是,您正在尝试使用 Universal Analytics 方法通过 "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”方法调用。