首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用谷歌分析跟踪IFrame子域

使用谷歌分析跟踪IFrame子域
EN

Stack Overflow用户
提问于 2012-01-17 22:45:55
回答 2查看 3.7K关注 0票数 2

我有一个我为我工作的公司创建的网站。这个站点在一个子域上,作为另一家公司的零售站点内的iframe引入,因为我们在它们下面提供服务。有没有好办法用谷歌分析来追踪这一点?我以前从来没有跟踪过一个子域,更不用说在iframe中了。

我已经创建了一个测试分析帐户,并添加了顶级域名,但我只将跟踪代码放在我创建网站的子域的页面上。这能给我一些信息吗?如果这部分工作正常,来自iframe设置的信息是否准确?我知道从设计的角度来看,iframe在一个世界里是属于它自己的世界的,但是谁有经验了解google是如何看待这样一个网站的呢?

我搜索了论坛和我能想到的任何地方,他们都有一些关于子域名的信息,几乎没有关于iframe的信息,也没有将两者结合起来的信息。我没有访问添加任何跟踪代码到合作伙伴公司的零售网站也。

EN

回答 2

Stack Overflow用户

发布于 2012-01-18 01:51:35

如果您的iframe托管内容与父页面不在同一个域中(根据您的问题上下文,我将假设它不在同一个域中),那么google会将页面名称报告为iframe的URL,而不是父页面。

GA代码有一种覆盖默认页面名称的方法,但是在这种情况下,您不能检索父URL,因为这被认为是跨站点脚本(XSS)。

在这种情况下,获取有关父页面的信息的唯一方法是,对于控制具有iframe标记的父页面的任何人,通过将查询字符串参数添加到iframe src="...“,将父URL传递给iframe。属性(同样,对于要传递到iframe页面的任何其他信息也是如此)。然后,您可以编写一些javascript来从URL中检索这些值,并弹出您想要的任何内容,包括覆盖默认的报告页面名称(您可以通过为_trackPageview调用设置可选的第二个参数来实现)。

如果iframe内容在同一个域中(即使它是父页面的子域),那么您可以使用parent.window.whatever而不是window.whatever来访问父页面属性。

票数 4
EN

Stack Overflow用户

发布于 2012-01-18 00:34:23

嗯,据我所知,你有一个页面将被插入到iframe中的第二个页面,但我们需要知道将托管iframe的页面是否与调用页面是相同的域:

如果页面由调用页面的同一域中的iframe调用,则为

在这种情况下,您可以插入JavaScript Google Analytics的块,作为主页上的iframe,我们有来自主站点的测量数据。

如果调用iframe的页面属于其他域,则为

一些被测量的特征是在站点内的框架中。这些iframes表示域,例如site.com.br。只要一个域中的页面具有到另一个域的框架,就会阻止存储在Iframe内的浏览器cookie,在这种情况下,这将阻止测量。

Cookie只不过是浏览器存储在机器上的小文本文件。我们的大多数cookies是会话cookies,在关闭窗口时会自动从您的硬盘中删除。网站还使用持久性cookies,以便在您下次访问网站时识别您的计算机。可以在浏览器中停用cookies,但这将排除网站上的所有可用功能。

为了允许记录cookies,应该在提供页面的超文本传输协议服务器中添加P3P头。此标题不会导致页面的显示模式或操作发生变化。只需指示您的浏览器允许录制第三方的cookie,然而,它在Internet Explorer中扮演着更重要的角色。如果不进行设置,您可以从其他浏览器(Google Chrome、Firefox、Opera等)接收数据,但Internet Explorer仍在广大人群中广泛使用。

假设我们有四个不同的域:

代码语言:javascript
复制
www.site1.com
www.site2.com
www.site3.com
www.site4.com

这四个页面将接收iframe标记:

  • <iframe Src="http://www.meusite.com.br/anuncio.php">

anuncio.php页面需要有一个用于接受第三方cookie的调用头p3p。

要添加标题p3p,请使用以下代码(应添加到属于同一域的所有页面)

ASP.Net

HttpContext.Current.Response.AddHeader ("p3p", "CP = \" "PSA CONE NOI ONL OUR BUS \" "")

PHP

header ('P3P: CP = "NOI PSA CONE ONL OUR BUS"');

JSP

response.setHeader ("P3P", "CP =" NOI PSA CONE ONL OUR BUS '")

ColdFusion

<cfheader name="P3P" value="CP='PSA CONo OUR ONL NOI BUS'" />

我希望对您有所帮助:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8896572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档