2012-01-19 89 views
0

通过我们的GA代码,我们正在跟踪多个域和子域,并且只有几个自我引荐,我们才能正确跟踪大部分代码。最大的问题在于我们使用Colorbox作为模式窗口,并且我需要能够将代码附加到这些页面以消除自引用。Google Analytics和Colorbox - 跨域跟踪

我已经做了大量的搜索工作,并在JavaScript中寻找解决方法,没有运气。

如果我将onClick="_gaq.push(['_link', $(this).attr('href')]);return false;"添加到标记以打开模式窗口,当页面使用Google的附加查询字符串刷新时,它会跳出模式窗口并占据整个浏览器窗口。我试过建立一个自定义函数,而不仅仅是一个直接的onclick,并且我得到了相同的结果。我找到的唯一参考是this article from 2010

我在这里不知所措。我想也许我可以抢utmcc信息预链接并提前将其附加到URL,没有找到一种方法从会话中抓取。

回答

1

这是我最终使用的代码,感谢yahelc的帮助。

$('.link-btn').bind("cbox_complete", function(){ 
    var pageTracker = _gat._getTrackerByName(); 
    var href = $.colorbox.element().attr('href'); 
    if (href) { 
     _gaq.push(function() { 
      var pageTracker = _gat._getTrackerByName(); 
      setTimeout(function(){ 
       $('#cboxLoadedContent iframe').attr('src',pageTracker._getLinkerUrl(href)); 
      },1000); 
     }); 
    } 
});  
0

_link是一个便利的包装上_getLinkerUrl.

你可以只是转换的网址有动态链接在JavaScript中不使用便捷功能(在这种情况下是不方便)。 (假设jQuery,因为你使用的是colorbox)。

假设链路上的标记是一样的东西<a href="..." class="colorboxlink">Click!</a> ...

$(".colorboxlink").each(function(){ 
     $(this).attr('href', function(i,v){ 
       return _gat._getTrackerByName()._getLinkerUrl(v); 
     }); 
    }); 

我只推荐这种方法,如果它是不超过1或2个链接;对于大量的链接(20+),它可能会对性能产生影响。这里是一个演示:http://jsfiddle.net/XscWT/

+0

谢谢。这与我所寻找的内容是一致的 - 唯一的一点是,它看起来没有携带相同的用户cookie,而是为新页面生成新的cookie。我理解这是如何工作不正确?我使用httpwatch和fiddler来窥探结果。你还需要在'this' - ''$(this)''' – retsoced

+0

Hm''旁边有parens,试着在'_trackPageview'调用之后将代码包装在'_gaq.push(function(){...});假设异步语法) – Yahel

+0

我不确定要包装什么代码。整个街区?我已经尝试过几种变体,如果我将它包装在该功能中,它会停止发射...... – retsoced

相关问题