images.google显示为推介流量

时间:2012-01-05 23:08:09

标签: javascript google-analytics

我看到大量的流量,每天约100次访问,来自images.google网域,但在Google Analytics中显示为推介流量而非有机流量。我有一些自定义代码可以将关键字拉出来,并为Google Image Search引荐者的几种变体设置一个有机来源,它适用于我可以从服务器日志中运行它的每个引荐来源。

var ref = document.referrer;

if (ref.search(/www.google/) != -1 && ref.search(/imgres/) != -1) {
    var regex = new RegExp("www.google.([^\/]+).*");
    var match = regex.exec(ref);
    ref = 'http://images.google.' + match[1] + '?' + ref.split('?')[1];
    _gaq.push(['_setReferrerOverride', ref]);
} else if (ref.search(/maps.google/) != -1 && ref.search(/q=/) == -1) {
    var regex = new RegExp("maps.google.([^\/]+).*");
    var match = regex.exec(ref);
    ref = 'http://maps.google.' + match[1] + '?q=' + encodeURIComponent('(not provided)');
    _gaq.push(['_setReferrerOverride', ref]);
}

function splitUrl(url) {
    var vals = {};
    var split = url.split('?');
    vals.base = split[0];
    if(split.length > 1) {
        var vars = split[1].split('&');
        vals.params = {};
        for(var i = 0, len = vars.length; i < len; i++) {
            var valSplit = vars[i].split('=', 2);
            vals.params[valSplit[0]] = valSplit[1];
        }
    }
    return vals;
}

function joinUrl(urlObj) {
    var vars = [];
    for(key in urlObj.params)
        if(urlObj.params.hasOwnProperty(key))
            vars.push(key + '=' + urlObj.params[key]);
    return urlObj.base + '?' + vars.join('&');
}

//fix keyword for old google image search
if(ref.match(/^http:\/\/images\.google\./) || ref.match(/^http:\/\/images\.google$/)) {
    var refUrl = splitUrl(ref);
    if(refUrl.params.prev && !refUrl.params.q) {
        var prev = decodeURIComponent(refUrl.params.prev);
        if(prev.indexOf('?q=') !== -1 || prev.indexOf('&q=') !== -1) {
            var prevUrl = splitUrl(prev);
            refUrl.params.q = prevUrl.params.q;
            if(!refUrl.params.q)
                refUrl.params.q = encodeURIComponent('(not provided)');
            delete prevUrl.params.q;
            refUrl.params.prev = encodeURIComponent(joinUrl(prevUrl));
        }
        _gaq.push(['_setReferrerOverride', joinUrl(refUrl)]);
    } else if(!refUrl.params.q) {
        refUrl.params.q = encodeURIComponent('(not provided)');
        _gaq.push(['_setReferrerOverride', joinUrl(refUrl)]);
    }
}
_gaq.push(['_addOrganic', 'images.google', 'q']);
_gaq.push(['_addOrganic', 'maps.google', 'q', true]);

这会处理所有类似的引用: http://images.google.com/?q=http://www.google.com/?imgres=

我不知道推荐流量来自哪里。有没有人见过这个?

2 个答案:

答案 0 :(得分:0)

Google自然会将此域名识别为推介,因为GA默认只包含一定数量的域名作为搜索引擎。

要解决此问题,您可以使用“addOrganic()”方法将此类域包含为搜索引擎。

要使用此方法,您不仅必须指定搜索引擎的域,还必须指定用于搜索的查询字符串参数。对于images.google.com,它是“q”。

在您的GA跟踪代码中,添加以下行: _gaq.push(['_ addOrganic','images.google.com','q',true]);

您可以在Ga Help Site上获得更多信息。

希望此信息有所帮助,

Augusto Roselli 网络分析 - digitalcube @_digitalcube www.dp6.com.br

答案 1 :(得分:0)

如果有人点击了标准Google搜索中显示的图片,而不是images.google,则该网址可能会有所不同。你应该从那里尝试一些网址。但除此之外,如果用户登录Google帐户,普通Google上弹出的Google图片链接将不包含查询字符串。它发生在2011年10月这里有几个链接:

在普通有机谷歌链接上,Google Analytics会将这些访问显示为来自有机媒体的(not provided)关键字。但是,如果您单击SERP上的图像,它将不会被识别为有机介质。它将被识别为推荐,这可能就是你所看到的。

因此,您需要做的是验证Google图片链接是否包含q参数。如果它不是来自已记录的用户,则应报告为(not provided)以与Google有机关键字保持一致。只需将&q=(not provided)附加到您获得的_setReferrerOverride网址即可。请记住在追加到网址之前对其进行网址编码。

我也在这里发布我使用的代码。它来自Google Forums。但它与您的非常相似,但尚未处理(not provided)关键字问题。

请注意,它与您的非常相似,但有一些显着差异。

  • 你从图片网址中删除了整条路径,而我保留了图片网址 路径。
  • 您不要在“_addOrganic”上使用“true”关键字 可能导致谷歌图像报告为谷歌而不是 您的报告上的images.google来源。

这是我目前使用的代码:

//handle google images referrer
var ref = document.referrer; 
if ((ref.search(/google.*imgres/) != -1)) { 
  var regex = new RegExp("\.google\.([^\/]+)(.*)"); 
  var match = regex.exec(ref); 
  _gaq.push( 
    ['_setReferrerOverride', 'http://images.google.' + match[1] + 
unescape(match[2])], 
    ['_addOrganic', 'images.google', 'q', true] 
  ); 
} 

我将更新我的代码以处理(not provided)谷歌图片链接,并会在我发布后立即发布。