【问题标题】:Pass cookie information to gif on external domain将 cookie 信息传递给外部域上的 gif
【发布时间】:2013-12-16 16:36:56
【问题描述】:

我需要将我们网站的 Google Analytics(分析)流量镜像到日志文件中。

公司有大约 20 个需要镜像的域,因此我宁愿在一个位置捕获所有这些信息,而不是从大约 20 个位置检索日志文件。

我将跟踪 gif 存储在 tracking.companysite.com 上,在 Apache/Linux 上运行。

我设置了 CustomLog 格式并尝试捕获 cookie:

LogFormat "%h %v %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"" googleanalytics
CustomLog /var/log/httpd/google_log "googleanalytics"

一切都通过了,但是 cookie 的日志文件输出的是:

"-"

应该从 utmcc url 参数中捕获 cookie 信息,但是当我在网络面板中查看该请求时,该参数并未传递给远程跟踪 gif。

<script type="text/javascript"> 
var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'xxx']);
    _gaq.push(['_setDomainName', '.companysite.com']);
    _gaq.push(['_setLocalRemoteServerMode']);
    _gaq.push(['_setLocalGifPath', 'http://tracking.companysite.com/__utm.gif']);
    _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);
})();

在不传递 utmcc 值的情况下,将 cookie 信息记录到日志文件的正确方法是什么?是否可以将 cookie 信息传输到外部域?

【问题讨论】:

    标签: apache cookies google-analytics mirror


    【解决方案1】:

    我能够解决这个问题。

    跟踪 gif 必须存储在流量来源的同一域或子域中。

    只要我将“setDomainName”设置为 mysite.com,并将“setLocalGiftPath”设置为 //tracking.mysite.com,gif 的响应标头就会返回一个 cookie,并且它会正确记录到服务器。

    所以——正如我所料,这是一个跨域问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      相关资源
      最近更新 更多