28

我们有几个不同域的网站,我希望能够跟踪用户在这些网站上的活动。

  • 显然 cookie 是不可行的,因为它们不跨越域边界。
  • 我可以查看 IP 地址和用户代理的组合,但在某些情况下它不起作用。
  • 我不想使用 Flash 或其他插件。

有任何想法吗?还是我注定要依赖 IP/User_Agent 组合?

4

5 回答 5

21

您可以指定一个域或子域进行跟踪,并让它提供一个 1x1 像素的图像,您可以将其包含在您想要跟踪的所有页面中。提供带有图像的 cookie,查看跟踪域的服务器日志,瞧。

于 2008-10-19T13:36:36.397 回答
7

此解决方案不需要 JavaScript,即使用户禁用第三方 cookie 也能正常工作。

首先,让我们确保用户代理正在发送 cookie:

If getCookie("c") == null then setCookie("c", "anyValue")

然后让请求完成(也就是等待下一个请求)

让我们调用我们的跟踪器 cookie uaid

如果GET http://child.com/any-page和... getCookie("c") is not null_getCookie("uaid") is null

重定向到http://parent.com/give-me-a-uaid?returnTo=http://child.com/any-page

打开http://parent.com/give-me-a-uaid,检查 cookieuaid

如果不存在,则创建它并将其添加到响应中。如果存在,获取它的值。

重定向到http://child.com/any-page?uaid=valueOfParentsUAIDCookie

Child.com 设置uaidcookievalueOfParentsUAIDCookie

重定向到http://child.com/any-page

当然,您正在验证输入,并将您的重定向 URL 列入白名单:)

流量:

方案 A

方案 B

方案 C

于 2015-03-25T21:57:32.150 回答
3

此问题与Internet Explorer 上 iFrame 中访问域 Cookie的问题密切相关。

对于 Internet Explorer,我需要考虑 P3P 策略并设置一个额外的 P3P HTTP-Header以允许图像跨域设置 cookie。然后我可以使用西蒙的建议。

于 2008-10-19T14:06:23.183 回答
1

您可以遵循 Google Analytics 中使用的相同概念。在要跟踪的页面中注入 javascript。

于 2008-10-19T14:23:49.593 回答
0

您没有为您的情况提供任何背景 - 只是基本问题。所以很难给出一个明确的答案。但是,这里有一些用于将信息从一个页面传递到另一个页面的技术/机制,无论涉及哪个域。

  • 包含指向 1x1 像素透明 gif 图像的超链接(有时称为“信标”)
  • 依靠 HTTP 请求标头中的引用信息来识别页面超链接是否打开
  • 在指向其他站点的超链接中包含额外参数 - 假设您同时运行两个站点
  • 购买Akamai等公司的服务为您进行用户跟踪
  • 如果标准获得批准,将来可能会使用跨域 cookie 机制

哪些技术真正归结为您是否可以将软件放置在用户将访问的所有您感兴趣的站点(服务器)上 - 或者您不能将软件放置在所有站点(服务器)上。

于 2008-10-19T15:31:55.290 回答