`

保障google analysis的pageView发送率

阅读更多

 

很多情况下,我们需要将ga直接加载一个a标签上,通过onclick="pageTracker._trackPageview('ga-key');"。
这种方式其实会丢掉很多数据。当用户点击链接,ga请求还没发出就跳转了,此时http请求会被abort掉。为了改善这点,仅仅是改善,做不到百分百杜绝,我们可以考虑将链接跳转延迟。
代码如下://保障google analysis 发送率

demo:

<a href="http://g.cn" target="_blank" onclick="return pageView(['key1','key2'], event);"><h1>google analysis</h1></a>
 
    /**
     * 保障google analysis 发送率, 支持按ctrl键打开新窗口
     * @param key{String|Array} 支持接受单个或多个ga-key
     * @param event{Event} 事件对象
     * @returns {Boolean}
     */
pageTracker && (pageView = (function (T, L, W, toString) {
    var DELAY = 70,
            track = T._trackPageview;

    return function (ga, evt) {
        evt = evt || W.event;

        var src = evt.target || evt.srcElement,  len;
        if(toString.call(ga)=="[object Array]"){
            len = ga.length;
            ga.reverse();
            while(len --){
                track(ga[len].toString());
            }
        }else{
            track(ga.toString());
        }
        setTimeout(function () {
            L.href = src.getAttribute('href');
        }, DELAY);
        return evt.ctrlKey;
    }
})(pageTracker, location, window, Object.prototype.toString));
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics