使用Google Analytics跟踪IFrame子域名

时间:2012-01-17 14:45:55

标签: iframe google-analytics subdomain tracking

我有一个我为我工作的公司创建的网站。此网站位于子域中,并在另一家公司的零售网站中作为iframe引入,因为我们在其下提供服务。有没有一种很好的方法来跟踪谷歌分析?我以前从未跟踪过子域名,更不用说在iframe中了。

我已经创建了一个测试分析帐户,并添加了顶级域名,但我只将跟踪代码放在我创建该网站的子域名的页面上。这甚至会给我任何信息吗?如果它的那部分有效,那么来自iframe设置的信息是否准确?从设计的角度来看,我知道iframe在这个世界中属于自己的世界,但是有没有人对谷歌如何看待这样的网站有任何经验?

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:1)

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

  • 如果iframe在调用页面的同一域中调用该页面:

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

  • 如果调用iframe的页面属于其他域:

测量的某些功能位于网站内的框架中。这些iframe表示域,例如site.com.br。每当一个域中的页面具有到不同域的帧时,就会阻止存储在Iframe中的浏览器cookie,在这种情况下会阻止测量。

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

要允许记录cookie,应在提供页面的HTTP服务器中添加P3P标头。此标题不会导致显示模式或页面操作发生变化。只是指示您的浏览器允许记录第三个cookie,但是,它在Internet Explorer中具有更大的作用。如果您没有设置,您可以从其他浏览器(谷歌浏览器,Firefox,Opera等)接收数据,但Internet Explorer仍然广泛使用大量人口。

想象一下,我们有四个不同的域:

www.site1.com
www.site2.com
www.site3.com
www.site4.com

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

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

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

要添加标题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'" />

我希望有所帮助:)