【问题标题】:Outbound Clicks Not Being Tracked By Google AnalyticsGoogle Analytics 未跟踪出站点击
【发布时间】:2011-03-22 07:57:36
【问题描述】:

我正在尝试跟踪 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> 

我做错了什么???

【问题讨论】:

    标签: php wordpress google-analytics onclick analytics


    【解决方案1】:

    您正在使用两种不同版本的 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>
    

    【讨论】:

    • 你能以某种方式编辑它,以便我投票吗?我真的不应该对提供有效解决方案(尤其是更好的解决方案)的答案投反对票,因为这是您关于将_gat 与我不同意的异步代码一起使用的评论,而我应该对此投反对票。
    • 啊这个方法比较简单。似乎我不需要标头中的额外 javascript。谢谢!
    【解决方案2】:

    这里有两个问题:

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

    您应该使用类似于以下的函数:

        <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;"
    

    【讨论】:

    • 我想用您提供的新代码替换我的整个 GA 代码吗?还是您的代码位于我的 GA 代码中间的某个位置?对不起我的无知
    • 您需要保持 GA sn-p 保持原样,并将此新代码添加到页面头部。您只需要将 UA-XXXXXX-XX 位修改为您自己的帐户 ID。然后将链接的 onClick 事件更改为上述代码。我忘记了您还需要在其中添加return false,以便链接在被跟踪之前不起作用。我现在已经添加了。
    • 好的,我已经提出来了。我注意到我的 target="_blank" 现在在链接中没有效果,这是假设发生的吗?
    • 如果您使用的是目标,则不需要window.setTimeout 行和return false 位。如果您删除它们,则链接将在新选项卡中打开并且仍会被跟踪。
    • 1) 您刚刚说他正在使用 2 个不同版本的 GA,您为什么要给他一个继续这样做的解决方案? 2)他不需要超时,因为链接会打开一个新窗口......你已经在 cmets 中实现了这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2018-05-13
    • 2015-03-01
    • 2019-03-08
    • 1970-01-01
    • 2015-05-30
    相关资源
    最近更新 更多