javascript - iframe 中的 gtag 子域
问题描述
我正在尝试处理 gtag.js 以跟踪页面浏览量,
它在独立页面或同一父域内的 iframe 中运行良好,但当 iframe 父级不在同一个域中时它不起作用(在 firefox 上工作但不在 chrome/chromium 中)
父页面:abc。域名.com
- iframe1:定义。域名.com
- gtag 页面查看正常
- iframe2:吉。域名.com
- gtag 页面查看正常
- iframe1:定义。域名.com
父页面:abc。跑步网
- iframe1:定义。域名.com
- gtag 页面视图不起作用
- iframe2:吉。域名.com
- gtag 页面视图不起作用
- iframe1:定义。域名.com
我控制 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>
解决方案
我假设您的页面和 iframe 都通过 HTTPS 访问并具有有效的 SSL 证书?这对于 SameSite/Secure 标志很重要。
我相信没有cookie_flag域,也没有必要设置域。
以下应该足够了
cookie_flags: "SameSite=None;Secure",
如果它不起作用,请检查(或添加屏幕截图)Chrome 开发工具中 iframe 范围内的 cookie(应用程序 -> Cookies -> def.domain.com)
推荐阅读
- c# - 使用 AES 加密解密时填充无效且无法移除
- python-3.x - 使用 Pandas 和 FuzzyWuzzy 进行模糊字符串匹配,数据匹配:TypeError:不能在类似字节的对象上使用字符串模式
- php - Mpdf 无法打印欧元符号 (€)
- ocaml - “let rec (-) xy = y - x in 1 - 2 - 3” 是做什么的?
- r - 如何在 R 中使用 dplyr 改变 paneldata?
- node.js - 如何在nodejs中从curl命令启用访问https
- python - 如何为在 django 中具有自动字段值作为主键的代码编写单元测试
- javascript - 引导选择元素未使用 react-router 呈现
- python - 如何从各种数据框创建子图
- reactjs - 扩展人员选择器以包括标签、输入框和按钮等表单项