【问题标题】:How do Analytics tool provide referer accurately?分析工具如何准确提供referer?
【发布时间】:2017-01-04 14:33:35
【问题描述】:

正如HTTP_REFERER blank, need alternative 和$_SERVER["HTTP_REFERER"] is not working on Mozilla 中所指出的,PHP 的$_SERVER["HTTP_REFERER"] 和Javascript 的document.referer 可以为空,尤其是在HTTPS 请求的情况下。

例如,来自https://github.com/ 的流量给了我一个带有 PHP 和 JS 方法的空白字符串。

Google Analytics(或其他分析工具)如何准确记录引用者,例如https://github.comreferer?

注意:这不是前面提到的问题的重复问题,这里的问题是研究分析工具(例如 Google Analytics)是如何做到的(可能以一种非常聪明的方式)。

【问题讨论】:

  • 看起来不错...

标签: javascript php google-analytics analytics http-referer


【解决方案1】:

为了让您了解上下文,在 Google Analytics(通用 JS)中由以下函数设置:

function(a) {
            var b = I.referrer;   //I equals documents
            if (/^https?:\/\//i.test(b)) {	//check if b.referrer is a page
                if (a) return b; // "A" is the value to force to always send the referer
                a = "//" + I.location.hostname;	//extract the actual location
                var c = b.indexOf(a);
                if (5 == c || 6 == c)
                    if (a = b.charAt(c + a.length), "/" == a || "?" == a || "" == a || ":" == a) return;
              //if this is not the same, return null, in other hands returns the referral domain
                return b
            }

如您所见,使用的唯一资源是 document.referrer。所以这是空的,没有什么可做的。这就是当您可以编辑链接(手动确定来源)时使用 UTM 参数的原因之一

现在由于安全原因,HTTPs 不会传递引用,所以也许在 URL 中使用参数看起来是最好的解决方案(由你复制 UTM)

【讨论】:

  • 感谢@KemenPaulosPlaza!您能否添加您在哪里找到此代码的来源(未混淆、未缩小)? (这可能很有用)。您是否还可以添加对 UTM 的引用(以供将来参考)?再次感谢!
  • JS有两个版本,普通的google-analytics.com/analytics.js和调试的Js google-analytics.com/analytics_debug.js,我用的是第二个。我没有找到未最小化的版本(我认为那不可用),但我使用 jsbeautifier 来查看更干净的代码。关于 UTM,它在 1563 行附近。s28.postimg.org/m4srqhyd9/IMG.png
猜你喜欢
  • 2023-03-20
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
相关资源
最近更新 更多