【问题标题】:Google Tag Manager - read cookie just after they are set谷歌标签管理器 - 设置后立即读取 cookie
【发布时间】:2024-01-22 16:51:02
【问题描述】:

我需要读取由 Google Tag Manager 设置的 cookie。

现在,如果 Google 跟踪代码管理器首次为最终用户加载,我无法读取 cookie(因为它稍后会发生,但不会立即发生)。

有没有一种好方法(回调?)可以帮助我在设置 cookie 后读取它们?仅当用户第一次访问页面时,此问题才相关。

【问题讨论】:

  • 你可以像这个问题*.com/questions/16552560/…那样使用页面加载事件@
  • 您要读取的 cookie 是通过 Google Analytics 中的触发器和/或第三方脚本设置的吗?
  • @PhilippeSawicki 他们来自 Google Analytics
  • 如果我理解正确,您愿意阅读__utm*_ga cookie 吗?
  • @PhilippeSawicki _ga

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


【解决方案1】:

根据问题下方 cmets 中的讨论,我建议采用以下解决方案(假设您还将 Pageviews 发送到 Google Analytics)。示例基于Simo Ahava 的(优秀)博客。

(请注意,我没有机会对其进行彻底测试,因为我目前无法为此设置创建完整的测试用例——可能会有一些小问题)

1。创建一个变量来读取 _ga cookie

参考:https://www.simoahava.com/analytics/macro-magic-google-tag-manager/#1-client-time

这将返回指定名称的 cookie 的值(在使用读取的值时要小心,因为 cookie 总是有可能被用户的浏览器策略拒绝)。

创建一个新变量,使用:

  • GA Cookie变量名
  • _gaCookie 名称


(来源:simoahava.com

2。定义一个 callBackFunction

参考:https://www.simoahava.com/analytics/macro-magic-google-tag-manager/#8-hitcallback-with-a-universal-analytics-tag & https://www.simoahava.com/analytics/macro-magic-google-tag-manager/#6-get-clientid-using-_ga-cookie

这个回调函数将在 Pageview 发送后立即执行(即在设置_ga cookie 之后)。

使用以下代码创建自定义 JavaScript 宏:

function () {
   return function () {
      // Code to be executed in order to read the cookie:
      try {
         var gaCookie = {{GA Cookie}};

         // Do what you need to with the cookie here:
         // ...

         return gaCookie;
      } catch (e) {
         console.log('No Universal Analytics cookie found.');
         return 'N/A';
      }
   }
}

3。在发送 Pageview 之后定义一个 hitCallback

参考:https://www.simoahava.com/analytics/macro-magic-google-tag-manager/#8-hitcallback-with-a-universal-analytics-tag

这将在 Pageview 发送后立即执行您刚刚定义的回调函数。

在您的网页浏览标签的 Fields to set 选项中,设置:

  • 字段名称hitCallback
  • {{callBackFunction}}


希望它可以帮助您前进。

【讨论】: