【问题标题】:analytics.js: Tracking a website which is put in an iframe on another domainanalytics.js:跟踪放置在另一个域的 iframe 中的网站
【发布时间】:2021-02-19 06:32:11
【问题描述】:

假设我有一个托管在app.com 上的网站。我的网站通过 iframe 发布在另一个托管在 platform.com 上的网站上。

<html class="platform.com">
    <body>
         <iframe src="app.com">
              //ga init code
              ga("create", "UA-0000000", {
                   storage: "none",
                   userId: options.userId,
                   clientId: options.userId
              });
         </iframe>
    </body>
</html>

问题是我可以看到发送到google-analytics.com/collect 的请求,但实际上没有数据提交到 Google Analytics(分析)报告。

我在 GA Admin 中检查了过滤器,但没有。我认为这个问题与当前域和请求源域不匹配有关,但我不知道我能做些什么来解决这个问题。

如您所知,我无法访问platform.com 代码,我只能操作 iframe 中的代码。

我使用了这些来源:

About GA cross-domain tracking

About GA cookies

【问题讨论】:

    标签: javascript iframe cookies google-analytics


    【解决方案1】:

    如果您无法控制父级,则无法跟踪父级中的交互(您需要实现 postmessage 接口,这需要您在 platform.com 中插入一个函数)。

    但是,跟踪 iframe 本身内的交互应该没有问题(n.b.我相信 GA 代码实际上是在框架页面的源代码中,而不是字面上粘贴在 iframe 标记之间) .

    同时使用 cookieDomain.auto 和 storage:none 设置没有意义,因为它们是互斥的(cookieDomain:auto 告诉 ga 对象使用当前的“主”域作为 cookie 域, storage:none 告诉ga 不要使用 cookie 之类的存储;在任何情况下,您都在发送自己的客户端 ID,并且不需要 cookie)。

    我建议使用 ga 调试器扩展(至少适用于 chrome)并检查您的帐户是否有过滤器。通常,如果出现错误,GA 会拒绝发送任何内容,因此问题可能在接收端非常好。

    【讨论】:

    • 是的,我只想跟踪 iframe 中的交互。我已经删除了 cookieDomain 参数,但效果是一样的。我已经检查了 GA 管理面板的过滤器,但没有。控制台中没有错误,请求被发送也没有任何问题,但我还是会检查调试器扩展。谢谢。
    • 只是为了排除琐碎,您确实检查了实时报告或等待了几个小时才检查(由于处理时间有延迟)?
    • 我正在检查某个事件的实时报告。当我直接打开我的网站(没有 iframe)时,该事件会出现在报告中。但是当我通过platform.com iframe 打开它时,报告中没有任何内容。
    • 我检查了 GA 调试器日志,除了 referrerlocation 字段外,它们似乎几乎相同。没有错误:(
    【解决方案2】:

    https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id#disabling_cookies

    看来您应该在父级上生成clientId,通过postMessage 将其发送到iframe,并在iframe 中添加:'storage': 'none'

    所以它看起来像这样:

    var clientId = 'RECEIVED_FROM_PARENT' ga('create', 'UA-XXXXXX-YY', 'auto', {
        'storage': 'none',
        'clientId': clientId
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-26
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 2013-03-22
      • 1970-01-01
      • 2011-11-02
      相关资源
      最近更新 更多