昨天写的流量分析(一),请戳:使用wireshark进行数据链接层的抓包分析——流量分析(一)
请输入图片描述
先看一张博客的百度统计流量来源网站截图,可见来自wumii的流量相对较高,但是实际并没有把文章发布到wumii,那它是哪来的呢?原来是用了wp的相关文章插件。下面一张对比图表示了wumii插件加载的js对相关文章链接的更改:鼠标未点击时链接为本站的url,鼠标点着不放的时候它会把链接变为wumiiredirect并加上要跳转地址的参数,鼠标松开的时候执行链接跳转事件——经过它的一次跳转就把用户流量导向了wumii,来源网站就变成了wumii——有兴趣的童鞋可以在大超超在思考博客文章下方相关文章区试试看。
请输入图片描述

我们来看一下它这个redirect生成的HTML源代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script>
    var url = 'http:\/\/www.thinkful.cn\/archives\/395.html?d=plugin.wummi.arelated';
    var ts = '1390652331339';
    var userAgent = navigator.userAgent.toLowerCase();

    var isMSIE = (/msie/.test(userAgent)) && (!/opera/.test(userAgent));
    if (!isMSIE) {
        location.replace(url);
    } else {
        var currentTs = (new Date()).getTime();

        if (!ts || currentTs - ts <= 4000) {
            var e = document.createElement('a');
            e.href = url;
            document.body.appendChild(e);
            e.click();
        } else {
            history.back();
        }
    }
</script>

</body>
</html>

可见用的是js方式跳转文章。

无觅为什么要绕这个圈子呢?要么直接给用户展示相关文章链接,并且不要在点击的时候做小动作,要么就直白点,把链接弄成wumii的,不要做一个点击时才变换链接地址。

相信无觅应该是为了他们网站更好的阅读体验和更佳、更精准的相关文章推荐,将用户此次点击在redirect的处理程序里作下记录存入数据库。

如果是这样,对比百度分享提供的关联文章功能,百度就没有把链接转回他们那边,但是它同样可以统计到用户是点击了这个推荐里的链接(鼠标松开时会异步请求百度的一个统计链接)。

给一个解决思路:在wumii异步加载好相关文章时,可以改变它加载完成的内容,或者用js重新渲染一下dom元素使绑定改变链接的事件失效等。使用setInterval来做是个思路,见以下代码(我做的是把链接后加上来自wumii的标签便于统计):

// wumii关联文章插件修改 @ 2014-01-24 15:19:34
$(function(){
    var wumiiSitePrefix = "http://www.thinkful.cn";
    var wumiiEnableCustomPos = false;
    var wumiiParams = "&num=6&mode=3&displayInFeed=1&version=1.0.5.5&pf=WordPress3.5";
    // 避开加载高峰异步加载wumii
    setTimeout(function(){
        // 获取主插件js
        $.getScript("http://widget.wumii.com/ext/relatedItemsWidget.htm");
        // 修改链接原跳转方式
        var wumiiLinkReplace = setInterval(function(){
            // 判断是否完成dom加载
            if( $("a.wumii-image-block").length ){
                // 添加来自wumii的标签(seo不推荐)
                var $wumiiBlocks = $("a.wumii-image-block");
                $.each($wumiiBlocks, function(k, v){
                    var url = $(this).attr("href");
                    $(this).attr("href", url+"?d=plugin.wummi.arelated");
                });
                // 完成后清除这个定时器
                clearInterval(wumiiLinkReplace);
            }
        }, 300);
    }, 1000);
});

大超超
496 声望17 粉丝