我正在开发一个为合作伙伴网站带来流量的网站。当我们在网站上点击合作伙伴网站的徽标时,我们会在包含我们的基本标题和iframe中的合作伙伴网站的页面中打开合作伙伴网站。之前我们只是在新窗口中打开合作伙伴网站。到目前为止一切都很酷。
大多数合作伙伴网站都使用谷歌分析来跟踪我们发送的流量,在我们开始在iframe中开放网站后,我们的合作伙伴报告说谷歌分析不再跟踪数据(或只追踪一小部分数据)。
我已经在googleverse上做了相当多的家庭作业/研究,并发现谷歌分析或一般跨域和iframe的知识问题。
我正在尝试解决此问题,唯一引用的解决方案是使用P3P标头。
首先,P3P标头在哪里?在我的网站页面或合作伙伴网站页面中。由于我们有许多合作伙伴站点(大小),如果解决方案是在每个站点中放置标签,那么它将不可行。我可以轻松地将它们添加到包含iframe的页面中。
在各种p3p标头生成器中,您推荐的是可靠的吗?
有没有解决这个问题的方法?我真的需要在iframe中打开网站,显然合作伙伴网站确实需要跟踪流量。
感谢您的帮助。
答案 0 :(得分:8)
不幸的是,您和合作伙伴网站都需要设置标头。
备选方案:
localStorage
(HTML5 thingy - 支持localStorage
的浏览器允许访问网站和存储在localStorage中的iFrame内容)。这可能在短期内不可行,因为它需要您和您的合作伙伴网站向/ localStorage
实施保存/读取信息,而不是每个浏览器都支持它(特别是旧的IE浏览器)。添加基本政策标题(理想情况下,您应该直接生成自己的政策 - 请查看下面的第2项)
php 中的添加以下行:
<?php header('P3P: CP="CAO PSA OUR"'); ?>
ASP.Net 中的:
HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
HTML 页面中的:
<meta http-equiv="P3P" content='CP="CAO PSA OUR"'>
关于您的其他问题:
1) P3P标头引用HTTP标头,向浏览器提供名为compact policy的内容。如果没有这样的政策,IE(最值得注意的)和其他浏览器将阻止访问第三方cookie(用于指代iFrame的cookie的术语)以保护用户的隐私问题。
就Google Analytics而言, 您的网站和合作伙伴网站仍需按照其文档中的说明配置cross domain tracking。
2)您可以使用此基本政策标题(这足以修复iFrame的Cookie):
P3P:CP =“CAO PSA OUR”
或生成自己的。如果您不确定这些字词的含义,请参阅this。
要生成此类策略,您可以使用p3pedit.com或IBM tool等在线编辑器,这些编辑器会提供一组问题并允许您提供答案。这使您可以轻松快速生成此类策略。您可以生成policy XML,compact policy等内容。
3)您可以尝试上面提到的两种替代方案。
将政策添加到整个网站的步骤
Header append P3P "CP=\"CAO PSA OUR\""
希望有所帮助。