我们公司与向我们发送流量的联属合作伙伴一起运营一个网站 (oursite.com)。在某些情况下,我们会使用自己的子域 (affiliate.oursite.com) 来设置我们的联营公司,然后他们使用 iframe 在其网站 (affiliate.com) 上显示我们网站上的选定内容。
其网站上的页面示例:
<html>
<head></head>
<body>
<iframe src="affiliate.example.com/example_page.html">
...content...
[google analytics code for affiliate.oursite.com]
</iframe>
[google analytics code for affiliate.com]
</body>
</html>
我们希望 Google Analytics 能够跟踪affiliate.oursite.com。目前,当页面从 iframe 加载时,Google 似乎没有从联营公司接收任何数据。
现在,存在安全隐患,因为 Javascript 不喜欢访问有关不同域中页面的信息,并且 IE 不喜欢为不同域设置 cookie。
有人有办法解决这个问题吗?我们是否需要将affiliate.oursite.com CNAME 为cname.oursite.com,还是有更简洁的解决方案?
您必须将 Google Analytics 跟踪代码附加到
example_page.html
的末尾。 <iframe>
- </iframe>
标签之间的内容仅针对不支持该特定标签的浏览器显示。如果您需要合并子域的结果,Google 帮助网站上有一篇很棒的文章:如何在一个配置文件中跟踪我网站的所有子域?
对于iframe的具体情况,Google并没有说太多。我也遇到过同样的情况,但我很高兴我找到了答案。我在这里发布了演练。它是法语的,但您不需要说该语言即可复制/粘贴代码。另外,您还可以下载一个演示文件。
抱歉,但这行不通。原因是 Google Analytics 使用第一方 cookie。这意味着 GA 设置的 cookie 特定于代码所在的域。就您而言,iFrame 位于第三方域中。这意味着您将拥有两组 GA cookie(每个域一组),并且没有真正的方法来协调数据。
我发现这个 YouTube for Google Analytic 非常很有帮助。
该网页可以在这里找到:
如何使用 Google 跟踪代码管理器跟踪 Iframe 中的转化
目前,除了将 Google Analytics 代码附加到
affiliate.example.com/example_page.html
页面之外,为了进行跟踪,您还应该为 GA cookie 设置 SameSite=None
属性(如果您可以接受)。实现它的一种方法是在 iframe 内的 cookie_flags
中使用 gtag
配置选项:
gtag('config', 'G-N2A3FMNDT5', {
cookie_flags: 'max-age=7200;secure;samesite=none'
});
否则,事件将不会从 iframe 发送。
有关此解决方案的更多详细信息,请参阅本文:https://www.simoahava.com/analytics/cookieflags-field-google-analytics/