谷歌分析;跟踪出站点击次数;怎么样?

时间:2010-10-31 19:42:46

标签: javascript html google-analytics

我读过这篇关于跟踪横幅上的出站链接的文章:

http://seogadget.co.uk/how-to-count-your-outbound-click-stats-with-onclick-in-google-analytics/

所以我将这段代码添加到了我的href:

的onClick事件中
 javascript: pageTracker._trackPageview('/outbound/top_banners/banner_name');

这够了吗?

因为我已经阅读了一些地方,我需要一个“链接延迟”功能或者我的文档的HEAD中的某些内容,在执行任何javascript之前!

此外,在GA中(在界面中)我能够查看点击次数吗?

由于

3 个答案:

答案 0 :(得分:4)

问题在于:记录的每项数据和Google Analytics报告的内容会在客户的请求网址组件中发送给GA服务器,用于__utm.gif。函数_.trackPageview()将数据的收集/连接激发到请求URL以及请求本身。换句话说,如果未调用_trackPageview(),则不会向GA服务器发送任何数据。

所以问题是在与出站链接关联的请求之前是否处理了GA请求(上面)。如果不是,则GA不会记录出站链接上的点击,这不是您想要的。

所以你想要的是延迟,只是稍微 - 足够长的GA请求发生但足够短以便用户不会注意到延迟 - 出站链接请求。

您的Q中发布的代码与下面的代码之间存在一些差异 - 所有差异都针对此“竞争条件”。

首先,请注意onClick处理程序中的返回值设置为“ false ” - 阻止客户端浏览器(立即)导航到{{3} }

第二个差异是对 setTimeout 的调用。传入的第三个参数,'100'是毫秒延迟的数量。

第三,onclick处理程序(fnx)创建自己的跟踪对象,因此不依赖于pageTracker对象在其他地方初始化。

你的第二个问题是,你在GA浏览器中查看这些点击吗?使用GA,你可以用两种不同的方式跟踪事件 - 使用_trackEvent()或_trackPageView()。

通过第二种方式跟踪出站链接(正如您在下面所做的那样),“点击”不会显示为事件,而是显示为网页浏览('虚拟网页浏览'是GA Consultants等人最常使用的术语,用于指示作为页面视图跟踪的内容但实际上并非如此。因此,您会看到报告的这些点击次数以及其他网页浏览量 - 即 内容 (以及流量访问者,左侧面板中的三个主要标题)。如何判断该报告中的哪些行引用了这些出站点击? 页面字段的值(通常是最左侧的列标题)将是出站链接的URL。当您知道这一点后,您当然可以创建高级细分自定义报告,甚至是新的个人资料,以便单独报告这些内容。< / p>

<script type="text/javascript">
    function fnx(that) {
        try {
            var pageTracker=_gat._getTracker("UA-YOURACCOUNTHERE-PROFILE");
            pageTracker._trackPageview("http://www.outbound_link.com");
            setTimeout('document.location = "' + that.href + '"', 100)
     }catch(err){}
    }
</script>


<a href="www.outbound_link.com" onclick='fnx(this);return false;'>"Take Me Here"</a>

答案 1 :(得分:2)

这是我用于跟踪所有出站链接的100%工作解决方案(我喜欢jQuery,因此您需要将jquery.js脚本添加到页面中)。

function isLinkExternal(link) {
    var r = new RegExp('^https?://(?:www.)?' + location.host.replace(/^www./, ''));
        return !r.test(link);
}

$(document).ready(function() {
    $(document).bind('click', function(e) {
        var target = (window.event) ? e.srcElement : e.target;
        while (target) {
            if (target.href) break;
            target = target.parentNode;
        }
        if (!target || !isLinkExternal(target.href)) return true;
        var link = target.href;
        link = '/outgoing/' + link.replace(/:\/\//, '/');
        _gaq.push(['_trackPageview', link]);
    });
});

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-YOURCODE-1']);
_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);
})();

此脚本为GA提供所有出站链接:/outgoing/http/www.example.com。 为获得更好的体验,您需要为此链接创建高级细分。使用参数创建它:“Page”“Starts with”“/ outgoing / http”。 就这样!现在您已获得出站链接的完整统计信息。

答案 2 :(得分:0)

该解决方案将允许您单击带有target='_blank'的链接,此外,还将允许您在任何链接上设置数据属性,并使这些属性自动发送到GA。

$('a').bind('click', function( event ) {
  var target = $(this).attr('href');
  if ($(this).attr("data-event-category") !== undefined && $(this).attr("data-event-label") !== undefined) {
    gtag('event', 'click', {
      'event_category': $(this).attr("data-event-category"),
      'event_label': $(this).attr("data-event-label"),
      'event_callback': function(){handle_redirect($(this), event);}
    });
  } else {
    handle_redirect($(this), event);
  }
});

function handle_redirect(element, event) {
  var target = element.attr('href');
  var regExp = new RegExp("//" + location.host + "($|/)");
  var isLocal = (target.substring(0,4) === "http") ? regExp.test(target) : true;
  var url = target;
  if(isLocal===true) {
    return;
  } else {
    event.preventDefault();
    gtag('event', 'click', {
      'event_category': 'outbound',
      'event_label': window.location.href + ' --> ' + url,
      'transport_type': 'beacon',
      'event_callback': function(){element.unbind( "click"); element[0].click();}
    });
  }
}