cookies - 您可以在没有设置名称的谷歌标签管理器中读取 Cookie 吗?
问题描述
我可以在 Google 跟踪代码管理器中读取已设置名称的第一方 cookie。但是,我遇到了一些 cookie 名称是基于会话的实例,并且没有一致的名称设置供我检查。我想知道是否设置了 cookie 并理想地读取数据。
例如 cookie_name_123456 cookie_name_234567 cookie_name_345678
名称字段看起来不像使用正则表达式。任何人都知道设置 GTM 以读取这样的 cookie 的方法吗?
解决方案
您可以使用读取 document.cookie 属性的 Javascript 创建自定义 HTML 标记,并通过分隔符拆分以获取包含单个 cookie ( document.cookie.split(";")
) 的数组。
这为您提供了一个包含所有第一方 cookie 的数组,这些 cookie 未标记为“仅限 http”(JS 无法访问这些 cookie)。每个数组条目都将具有“cookiename 等于值”的格式(例如,“ _ga=GA1.2.1545993750.1587886865
”将是 Universal Analytics cookie“ _ga
”,其中客户端 ID 作为值)。然后,您可以遍历数组。
在循环内部,您可以用“=”符号拆分每个数组条目,以获得具有两个元素的数组,[0] 表示名称,1表示值。然后,您将您的正则表达式应用于该名称。如果 reexeg 匹配您正在寻找的内容,您可以将值推送到 dataLayer。
为了确保这在将使用 cookie 值的标签之前运行,您可以使用标签排序。如果您通过 onHtmlSuccess() 和 onHtmlFailure() 函数管理您的序列,如 Simo 博客中所述,您可以设置序列,以便仅在 cookie 值实际存在时触发标签。
唉,在自定义模板中无法做到这一点,这会更加优雅,但是自定义模板中的沙盒 JS 无法访问全局文档属性。
推荐阅读
- mysql - MySQL 清理孤儿表 innoDB
- sql - 如何比较hive和sql表
- python - 如何在 SQL 中使用转义字符通过 LIKE 进行查询?(Python)
- javascript - 使用 jQuery concat 添加新行
- python - 如何在 python kivy gui 中显示 OpenStreetMap?
- reactjs - 我们如何从 antd 的下拉菜单中选择多选
- c++ - C++:如何对同一个数据类使用不同的方法实现?
- autodesk-forge - 通过数据管理 API 在 BIM360 中列出模型文件
- ios - 我可以仅在没有私钥的情况下使用证书和 embedded.mobileprovision 辞职 ipa 吗?
- jquery - Onclick 切换数据属性