跨域用户追踪

28

我们有几个位于不同域名上的网站,我希望能够追踪用户在这些网站上的移动。

  • 很明显,Cookie 不可行,因为它们不能跨越域边界。
  • 我可以查看 IP 地址和用户代理的组合,但也有一些情况无法使用此方法。
  • 我不想使用 Flash 或其他插件。

有什么建议吗?或者我注定要依赖于 IP / User_Agent 组合吗?

5个回答

21
您可以指定一个域名或子域名来进行跟踪,并在您想要跟踪的所有页面中包含一个1x1像素的图片。使用该图片同时传递一个cookie,在跟踪域名的服务器日志中查看即可。

那行不通。Internet Explorer 的默认安全设置不允许来自其他域名(或 iframe)的图片设置任何 cookie。 - BlaM
好的,修改后:如果我考虑http://support.microsoft.com/kb/323752/EN-US/,那么这个程序可以运行 :) - BlaM
哇,我真的不知道IE6会这样做 - 我最近很少使用框架。所以你必须使用HTTP头技巧,或者在不使用框架时设置cookie是否有效? - Simon
这个问题需要额外的工作来完成。你必须在每个需要跟踪的页面中包含它。 - mohammedn
我不明白它如何在跨域上跟踪用户。显然,我不能在跨域站点上放置1x1像素,那么你将如何跟踪用户呢? - Eatsam ul haq

7

这个解决方案不需要JavaScript,即使用户禁用第三方Cookie也可以使用。

首先,请确保用户代理发送了Cookie:

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

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

我们称跟踪器Cookie为uaid

如果GET http://child.com/any-page并且getCookie("c")不为nullgetCookie("uaid")为null...

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

http://parent.com/give-me-a-uaid上,检查Cookie uaid

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

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

Child.com使用valueOfParentsUAIDCookie设置Cookieuaid

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

当然,你需要验证输入白名单重定向URL :)

流程:

情况A

情况B

情况C


3

1
您可以按照Google Analytics使用的相同概念进行操作。在要跟踪的页面中注入JavaScript代码。

我可以这样做,但是这对我如何跨域追踪用户有帮助呢? - BlaM
有不同类型的追踪。谷歌分析可以让你回顾访问者的历史行为,甚至跨域。另一种追踪,如PHP会话追踪,用于控制向单个访问者提供什么内容。 - Liam
Google Analytics确实做到了Simon所说的,它注入了一个1x1像素的图像,这就是它能够跨多个域名进行跟踪的方式,而且它是通过JS进行注入的。 - Gabriel Solomon

0

您没有提供任何上下文信息,只是基本问题。因此,很难给出明确的答案。但是,以下是一些传递信息的技术/机制,无论涉及哪个域。

  • 包含到1x1像素透明gif图像(有时称为“信标”)的超链接
  • 依赖HTTP请求头中的referrer信息来识别超链接所在的页面
  • 在超链接中包含其他站点的额外参数-假设您运行两个站点
  • 购买Akamai这样的公司的服务来为您跟踪用户
  • 如果标准被批准,可能将来使用跨域cookie机制

这些技术实际上取决于您是否可以在用户访问您感兴趣的所有站点(服务器)上放置软件-或者您不能在所有站点上放置软件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接