在 iframe 中运行 Google Analytics?

问题描述 投票:0回答:5

我们公司与向我们发送流量的联属合作伙伴一起运营一个网站 (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,还是有更简洁的解决方案?

javascript iframe google-analytics cross-domain tracking
5个回答
15
投票
  1. 您必须将 Google Analytics 跟踪代码附加到

    example_page.html
    的末尾。
    <iframe>
    -
    </iframe>
    标签之间的内容仅针对不支持该特定标签的浏览器显示。

  2. 如果您需要合并子域的结果,Google 帮助网站上有一篇很棒的文章:如何在一个配置文件中跟踪我网站的所有子域?


7
投票

对于iframe的具体情况,Google并没有说太多。我也遇到过同样的情况,但我很高兴我找到了答案。我在这里发布了演练。它是法语的,但您不需要说该语言即可复制/粘贴代码。另外,您还可以下载一个演示文件。


6
投票

抱歉,但这行不通。原因是 Google Analytics 使用第一方 cookie。这意味着 GA 设置的 cookie 特定于代码所在的域。就您而言,iFrame 位于第三方域中。这意味着您将拥有两组 GA cookie(每个域一组),并且没有真正的方法来协调数据。


0
投票

我发现这个 YouTube for Google Analytic 非常很有帮助。
该网页可以在这里找到: 如何使用 Google 跟踪代码管理器跟踪 Iframe 中的转化


0
投票

目前,除了将 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/

© www.soinside.com 2019 - 2024. All rights reserved.