0

我们当前的外部链接代码没有正常工作,所以我被要求制定一个新的集合。这是我从另一个网站上取下来的代码,但它看起来好像工作正常(保存 $().ready 它丢失了)。我很清楚 Google 建议您将 onclick 手动放入每个外部链接中,但是在我的网站上这样做是可行的,所以我将 JQuery 作为一个包罗万象的方法。我无法在用户通常无法访问的多个页面上实现此功能(由于监管偏执狂),因此不得不激活页面内分析以查看该页面的统计信息。尽管我发现(使用警报)_gaq.push 至少会触发,但没有点击外部链接注册。这是代码(现已修复):

$().ready(function(){
    $("a").on('click',function(e){
        var url = $(this).attr("href");
        if (e.currentTarget.host != window.location.host) {
            _gaq.push(['_trackEvent', 'Outbound Link', e.currentTarget.host, url, 0]);
            if (e.metaKey || e.ctrlKey || this.target=="_blank") {
                 var newtab = true;
            }
            if (!newtab) {
                 e.preventDefault();
                 setTimeout('document.location = "' + url + '"', 100);
            }
        }
    });
});

(!newtab) if 是为了确保 _gaq.push 使用超时触发。有什么想法可以解决吗?

编辑:可能值得注意的是,这是一个外部文件。

Edit2:代码已更正错误,以便其他想要使用它的人轻松复制/粘贴。非常感谢迈克。

4

1 回答 1

3

您的代码没有明显的问题。我不会尝试通过页面内分析来验证事件,而是尝试检查__utm.gif跟踪像素请求。执行此操作的几种不同方法是:

我的偏好是使用 Chrome 开发者工具或 Fiddler。

页面上的分析代码可能有一个_trackPageview,因此当页面加载时,您会看到一个初始的 __utm.gif。

当 _trackEvent 触发时,您应该会看到一个新的 __utm.gif 请求正在发出。在 __utm.gif URL 中检查的内容包括:

  • utme=5(Outbound Link*host*URL) -- _trackEvent 参数
  • utmac=UA-1234567-8 -- 分析 UID

更正——小错误:target=="_blank"应该this.target=="_blank"在新窗口中打开的检查中。

于 2012-09-13T20:49:14.937 回答