iframe 中的 gtag 子域
gtag subdomains in iframe
我正在尝试处理 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 上看到
我的 gtag javascript 包含在 iframe 中的代码非常简单:
<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>
我假设您的页面和 Iframe 都通过 HTTPS 访问并且具有有效的 SSL 证书?这对于 SameSite/Secure 标志很重要。
我相信没有cookie_flag域,也没有必要设置域。
cookie_flags: "SameSite=None;Secure",
如果它不起作用,请检查(或添加屏幕截图)chrome 开发工具中 Iframe 范围内的 cookie(应用程序 -> Cookies -> def.domain.com)
我正在尝试处理 gtag.js 以跟踪页面浏览量,
它在独立页面或同一父域内的 iframe 中工作正常,但当 iframe 父级不在同一域中时它不起作用(在 firefox 上工作,但在 chrome/chromium 中不工作)
父页面:abc.domain.com
- iframe1: def.domain.com
- gtag 页面浏览正常
- iframe2: ghi.domain.com
- gtag 页面浏览正常
- iframe1: def.domain.com
父页:abc.running.com
- iframe1: def.domain.com
- gtag 页面视图无效
- iframe2: ghi.domain.com
- gtag 页面视图无效
- iframe1: def.domain.com
我控制 domain.com,我不控制 running.com,我的 iframe 只是用外部脚本包含在其中
gtag 页面视图正常 = 我可以在网络检查器中看到收集 http 请求
gtag 页面视图不工作 = 我在 chrome/chromium 上的网络检查器中看不到收集 http 请求,但我可以在 firefox 上看到
我的 gtag javascript 包含在 iframe 中的代码非常简单:
<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>
我假设您的页面和 Iframe 都通过 HTTPS 访问并且具有有效的 SSL 证书?这对于 SameSite/Secure 标志很重要。
我相信没有cookie_flag域,也没有必要设置域。
cookie_flags: "SameSite=None;Secure",
如果它不起作用,请检查(或添加屏幕截图)chrome 开发工具中 Iframe 范围内的 cookie(应用程序 -> Cookies -> def.domain.com)