【问题标题】:Can You Read a Cookie in Google Tag Manager That Doesn't Have a Set Name?您可以在没有设置名称的谷歌标签管理器中读取 Cookie 吗?
【发布时间】:2020-10-22 09:14:46
【问题描述】:

我可以在 Google 跟踪代码管理器中正常读取已设置名称的第一方 cookie。但是,我遇到了一些 cookie 名称是基于会话的实例,并且没有一致的名称设置供我检查。我想知道cookie是否已设置并理想地读取数据。

例如 cookie_name_123456 cookie_name_234567 cookie_name_345678

名称字段看起来不像使用正则表达式。有人知道设置 GTM 以读取这样的 cookie 的方法吗?

【问题讨论】:

    标签: cookies google-analytics google-tag-manager


    【解决方案1】:

    您可以使用读取 document.cookie 属性的 Javascript 创建自定义 HTML 标记,然后按分隔符拆分以获取包含单个 cookie 的数组 (document.cookie.split(";"))。

    这为您提供了一个数组,其中包含所有未标记为“仅限 http”的第一方 cookie(JS 无法访问这些 cookie)。每个数组条目都将采用“cookiename 等于值”的格式(例如,“_ga=GA1.2.1545993750.1587886865”将是具有客户端 ID 作为值的 Universal Analytics cookie“_ga”)。然后你可以遍历数组。

    在循环中,您可以通过“=”符号拆分每个数组条目,以获得具有两个元素的数组,[0] 表示名称,1 表示值。然后,您将您的正则表达式应用于该名称。如果 reexeg 与您要查找的内容匹配,则可以将值推送到 dataLayer。

    要确保它在将使用 cookie 值的标记之前运行,您可以使用 tag sequencing。如果您按照e.g. here in Simo's blog 的说明通过 onHtmlSuccess() 和 onHtmlFailure() 函数管理序列,则可以设置序列,以便仅在 cookie 值实际存在时触发标签。

    唉,在custom template 中无法做到这一点,这会更加优雅,但自定义模板中的沙盒 JS 无法访问全局文档属性。

    【讨论】:

    • 知道了,我会看看把这样的东西放在一起。谢谢你的指导。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多