【问题标题】:gtag subdomains in iframeiframe 中的 gtag 子域
【发布时间】:2021-01-25 02:55:03
【问题描述】:

我正在尝试处理 gtag.js 以跟踪页面浏览量,

它在独立页面或同一父域内的 iframe 中运行良好,但当 iframe 父级不在同一域中时它不起作用(在 firefox 上工作但不在 chrome/chromium 中)

  • 父页面:abc.domain.com

    • iframe1:def.domain.com
      • gtag 页面查看正常
    • iframe2: ghi.domain.com
      • gtag 页面查看正常
  • 父页面:abc.running.com

    • iframe1:def.domain.com
      • gtag 页面视图不起作用
    • iframe2: ghi.domain.com
      • gtag 页面视图不起作用

我控制 domain.com,我不控制 running.com,我的 iframe 只是通过外部脚本包含在其中

gtag 页面查看正常 = 我可以在网络检查器中看到收集 http 请求

gtag 页面视图不起作用 = 我在 chrome/chromium 的网络检查器中看不到收集 http 请求,但我可以在 firefox 上看到

iframe 中包含的我的 gtag javascript 代码非常简单:

<script async src="https://www.googletagmanager.com/gtag/js?id=TAGID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'TAGID', {
     page_path: "/page1",
     page_title: "Page 1"
  });
</script>

我尝试添加 cookie_flags 字段,但没有任何改变

<script async src="https://www.googletagmanager.com/gtag/js?id=TAGID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'TAGID', {
     page_path: "/page1",
     page_title: "Page 1",
     cookie_flags: "samesite=none;domain=domain.com;secure",
  });
</script>

【问题讨论】:

  • 您已将 gtag 代码复制到父域文件 abc.running.com 上?
  • 我无法访问 running.com,我的 iframe 包含在其中但我无法控制此域
  • 是否在 def.domain.com 和 ghi.domain.com 上复制了 gtag 代码?
  • 是的,当然:)
  • 您可以通过 iFrame 在 FireFox 中标记域(您无法控制)?

标签: javascript google-analytics gtag.js


【解决方案1】:

我假设您的页面和 iframe 都通过 HTTPS 访问并具有有效的 SSL 证书?这对于 SameSite/Secure 标志很重要。

我相信没有cookie_flag域,没有必要设置域。

以下should be enough

 cookie_flags: "SameSite=None;Secure",

如果不起作用,请检查(或添加屏幕截图)Chrome 开发工具中 iframe 范围内的 cookie(Application -> Cookies -> def.domain.com)

【讨论】:

  • 我认为我比这更好,没有域名也可以正常工作:)
猜你喜欢
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 2011-08-28
  • 2016-11-23
  • 2014-05-20
  • 1970-01-01
  • 2010-10-16
相关资源
最近更新 更多