【问题标题】:How to uniquely identify the same user across multiple websites?如何在多个网站上唯一标识同一用户?
【发布时间】:2011-06-01 20:09:05
【问题描述】:

我正在做一个广告网络作为学士学位项目。 我正在尝试跨多个网站识别同一用户。我的数据库中有一个 USER 表,其 ID 作为 auto_increment 编号。

在我正在跟踪的网站中,我包含了以下 Javascript:

   function OnLoad()
   {
   var requestURI = window.location;
   var resolution = screen.width + 'x' + screen.height;
   var colorDepth = screen.colorDepth;
    var query = '?requestURI=' + encodeURIComponent(requestURI)
         + '&resolution=' + encodeURIComponent(resolution)
         + '&websiteid=' + encodeURIComponent(id);
   document.getElementById("body").innerHTML = "<img src ='http://dan-vaio:8080/licenta/bannerimg.gif'" + query + " width = 500 height = 200 />"; // this is the place where i want to display my banner
   }

在服务器端调用横幅选择算法,我得到一个包含 5 个横幅的队列,我想向该用户显示这些横幅。 (仅当用户第一次访问此网站时,否则我必须在队列中显示剩余的横幅。还没有弄清楚如何做到这一点,我可以将队列保持在会话中吗?)。

问题是:如果我在 servlet 的响应中添加一个 cookie,当同一用户访问另一个网站时它是否可用?

我有这个:

   Cookie cookie = new Cookie("DisplayedBanners",visitedBanners); //
   response.addCookie(cookie);

如何唯一标识一个用户?如何生成一个唯一的 ID 保存在 cookie 和数据库中,这样当同一个用户访问另一个网站并调用我的 servlet 时,我就会知道他是谁。

非常感谢。

【问题讨论】:

  • 无论您使用哪种方式,都可以注册 Google Analytics 以检查您是否获得了相似的数字! ;)

标签: java javascript mysql cookies project


【解决方案1】:

如果您为此使用会话,横幅队列也将不起作用。会话在服务器上维护。如果您转到其他站点,相同的旧会话将无法在这里工作。

我建议您将此信息保存在数据库中。

因此,将带有 user_id 的 last_shown_banner_tag 保留在单个表中。 这个表应该是网站通用的。

【讨论】:

  • Cookie 也不能在不同站点之间共享。但它们只能在同一个域下共享。
【解决方案2】:

这里解释了如何做多域 cookie,但是在 PHP 中(需要调整 Apache)

http://www.tutorialized.com/tutorial/Implementing-Cross-Domain-Cookies/372

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多