谷歌Analytics(分析) - 记录出站链接 - 在新窗口打开(Google Analytics

2019-06-23 20:30发布

我用下面的链接记录,通过谷歌分析出站链接。 是否有可能打开新窗口中的链接?

<script type="text/javascript">
function recordOutboundLink(link, category, action) 
{  
try {    
    var myTracker=_gat._getTrackerByName();    
    _gaq.push(['myTracker._trackEvent', category ,  action ]);    
    setTimeout('document.location = "' + link.href + '"', 100)  
 }
catch(err)
{
}
}
</script>

 <a href="http://www.example.com" onClick="recordOutboundLink(this, 'Outbound Links', 'example.com');return false;">

Answer 1:

编辑,我忘了补充目标=“_空白”:

我会做这种方式跟踪出站链接:

<a href="http://outgoinglink.com" target="_blank" onclick="_gaq.push(['_trackEvent','outgoing_links','outgoinglink.com'])">Link Text</a>


Answer 2:

杰夫的回答是非常接近解决这个问题对我来说。 从谷歌的推荐代码打破目标= _blank和window.open策略获得通过弹出窗口拦截抓获。 我修改了测试目标,像这样:

if (!link.target || link.target.match(/^_(self|parent|top)$/i)){
    return false;
    setTimeout(function() { document.location = link.href }, 100);
} else {
    return true;
}


Answer 3:

更换document.location = url;window.open(url)在新窗口中打开,并在同一时间跟踪。 你并不需要修改链接,只需调用的onclick的JS功能。



Answer 4:

在一般情况下

在更一般的情况下, target是什么,像

  • 空字符串-默认为<a>元素。 相同的意思_self
  • _blank - URL被加载到一个新的窗口/标签
  • _self - URL替换当前页面。
  • _parent - URL被加载到父框架
  • _top - URL替换可以加载任何框架集
  • 名称 -窗口的名称

您可以修改行

setTimeout('document.location = "' + link.href + '"', 100)

为此:

setTimeout('window.open("' + link.href + '", link.target == "" ? "_self" : link.target)', 100)

奇怪的是,提供""window.open是一样提供_blank ,因此多余的?:运营商是必要的。

顺便说一句:您提供的代码(由谷歌官方的例子提供的代码)必须稍加修改工作正确 ,请参阅如何设置谷歌Analytics(分析)来追踪出站链接? 官方的例子不工作



Answer 5:

下面是从你提供的,应该工作无论是在当前窗口,并在没有任何修饰一新窗口中打开链接打开链接链接修改的摘录:

<script type="text/javascript">
// Records an event for an outbound link.  Supports links even if they open in a
// different window (target="_blank").
// Don't forget to return the return value of this function from the onclick handler.
// link - A reference to the <a> anchor object to which this call is attached
// parameters - Parameters to pass to the event, in an array:
//              category/action/label/value/noninteraction or some subset; see GA docs.
//              Pass "undefined" (the value, not the string) for unspecified optional params if necessary.
// Exmaple:
// <a href="http://www.google.com"
//    onclick="return recordOutboundLink(this, ['category', 'action', 'label', 6.6, false);">link</a>
function recordOutboundLink(link, parameters) {
    try {
        _gaq.push(['_trackEvent'].concat(parameters));
        if (link.target == '_blank') {
            return true;
        } else {
            setTimeout(function() { document.location = link.href }, 100);
            return false;
        }
    } catch (err) {
        return true;
    }
}
</script>

下面是这两个链接类型。 需要注意的是onclick处理程序是在两个相同的:

<a href="http://www.example.com"
   onClick="return recordOutboundLink(this, ['Outbound Links', 'example.com']);">

<a href="http://www.example.com"
   target="_blank"
   onClick="return recordOutboundLink(this, ['Outbound Links', 'example.com']);">

限制

  • 如果浏览器忽略“目标=‘空白’”,而是开在同一窗口的URL(如Facebook的iOS应用内一个UIWebView),那么该链接可能不会跟踪。 这也是ErikdR的接受的答案也是如此。 您可以添加代码来检测这样的情况下(如检测通过JavaScript的iPad / iPhone的WebView )。
  • 如果用户试图CTRL- /倒班/ CMD单击没有一个链接(即在新标签或窗口中打开)“的目标=‘空白’”,该网址将在现有窗口中打开,而不是打开在一个新的窗口。 同样是罗斯林的代码片段(和谷歌的官方代码示例)也是如此。 同样,你可以添加代码来处理这些特殊情况。


文章来源: Google Analytics - Record Outbound Links - open new window