首页 > 解决方案 > iframe 中的 gtag 子域

问题描述

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

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

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

gtag 页面视图 ok = 我可以在网络检查器中看到收集 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>

标签: javascriptgoogle-analyticsgtag.js

解决方案


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

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

以下应该足够了

 cookie_flags: "SameSite=None;Secure",

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


推荐阅读