Google Analytics未跟踪出站点击次数

时间:2011-03-22 07:57:36

标签: php wordpress google-analytics onclick analytics

我正在尝试跟踪Google Analytic在我网站上的广告横幅上的出站点击次数。

这样做的方式是,如果您已登录,则看不到横幅。如果您尚未登录,则会看到横幅。我已经使用以下代码在我的wordpress网站上成功完成了这项工作:

    <?php
if (is_user_logged_in()){
    echo "No Ads - Thank You for Supporting Us";
}
else {
echo "

<a href=\"http://www.advertiser.org/\" onClick=\"pageTracker._trackEvent('Outbound', 'CuteDog', '300sb');\" target=\"_blank\" rel=\"nofollow\"><img src=\"http://www.mydomain.com/box/cp/cuteDog.gif\" width=300 height=250 alt=\"Cute Dog\" style=\"border:none;\" /></a>

";
};
?>

现在,横幅和一切正常,但GA没有跟踪它。我很确定我的onclick函数是正确的:

onClick="pageTracker._trackEvent('Outbound', 'CuteDog', '300sb');"

我的GA跟踪代码位于我页面的标题中,它是最新的代码:

   <script type="text/javascript">var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-8441420-2']);
  _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);
  })();</script> 

我做错了什么???

2 个答案:

答案 0 :(得分:5)

您使用的是两种不同版本的GA代码。以下是您应该使用的异步版本:

_gaq.push(['_trackEvent','Outbound', 'CuteDog', '300sb']);

您可以直接将其放入onclick中,或者使用包装函数来调用它。

编辑每个OP评论,不了解如何处理此

你把这段代码放在链接的onclick上......

改变这个:

<a href=\"http://www.advertiser.org/\" onClick=\"pageTracker._trackEvent('Outbound', 'CuteDog', '300sb');\" target=\"_blank\" rel=\"nofollow\"><img src=\"http://www.mydomain.com/box/cp/cuteDog.gif\" width=300 height=250 alt=\"Cute Dog\" style=\"border:none;\" /></a>

对此:

<a href=\"http://www.advertiser.org/\" onClick=\"_gaq.push(['_trackEvent','Outbound', 'CuteDog', '300sb']);\" target=\"_blank\" rel=\"nofollow\"><img src=\"http://www.mydomain.com/box/cp/cuteDog.gif\" width=300 height=250 alt=\"Cute Dog\" style=\"border:none;\" /></a>

答案 1 :(得分:0)

这里有两个问题:

  1. 您使用pageTracker事件中的onClick对象,但您使用的是GA代码的异步版本。在此版本中,对象不能通过window全局上下文直接使用,因此可能发生错误。
  2. 即使pageTracker对象可用,新页面也会在有机会向GA发送数据之前加载。
  3. 您应该使用类似于以下的功能:

        <script type="text/javascript">
            function recordOutboundLink(link, category, action, value) {
                try {
                    var pageTracker=_gat._getTracker("UA-XXXXXX-XX");
                    pageTracker._trackEvent(category, action, value);
                    window.setTimeout("window.location = '"+link.href+"';", 100);
                }catch(err){}
            }
        </script>
    

    然后,在onClick事件中调用它:

    onClick="recordOutboundLink(this, 'Outbound', 'CuteDog', '300sb'); return false;"