我们有几个不同域的网站,我希望能够跟踪用户在这些网站上的活动。
- 显然 cookie 是不可行的,因为它们不跨越域边界。
- 我可以查看 IP 地址和用户代理的组合,但在某些情况下它不起作用。
- 我不想使用 Flash 或其他插件。
有任何想法吗?还是我注定要依赖 IP/User_Agent 组合?
我们有几个不同域的网站,我希望能够跟踪用户在这些网站上的活动。
有任何想法吗?还是我注定要依赖 IP/User_Agent 组合?
您可以指定一个域或子域进行跟踪,并让它提供一个 1x1 像素的图像,您可以将其包含在您想要跟踪的所有页面中。提供带有图像的 cookie,查看跟踪域的服务器日志,瞧。
此解决方案不需要 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 设置uaid
cookievalueOfParentsUAIDCookie
重定向到http://child.com/any-page
当然,您正在验证输入,并将您的重定向 URL 列入白名单:)
流量:
此问题与Internet Explorer 上 iFrame 中访问域 Cookie的问题密切相关。
对于 Internet Explorer,我需要考虑 P3P 策略并设置一个额外的 P3P HTTP-Header以允许图像跨域设置 cookie。然后我可以使用西蒙的建议。
您可以遵循 Google Analytics 中使用的相同概念。在要跟踪的页面中注入 javascript。
您没有为您的情况提供任何背景 - 只是基本问题。所以很难给出一个明确的答案。但是,这里有一些用于将信息从一个页面传递到另一个页面的技术/机制,无论涉及哪个域。
哪些技术真正归结为您是否可以将软件放置在用户将访问的所有您感兴趣的站点(服务器)上 - 或者您不能将软件放置在所有站点(服务器)上。