You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GTM会话期间持续保留client_id变量的初始值?

如何在GTM会话中保留初始URL参数值?

这个问题我碰到过好几次,核心就是要把初始的client_id参数值存在浏览器的会话存储(或本地存储)里,这样用户跨页面跳转时,即使URL参数消失,也能读取到最初的值。下面是具体的GTM配置步骤:

1. 先创建提取URL参数的变量

  • 打开GTM后台的「变量」面板,点击「新建」按钮
  • 选择「URL变量」类型
  • 在「查询参数名称」里填client_id,给这个变量起个好记的名字,比如「URL - 提取client_id」,然后保存

2. 编写自定义JS变量来处理会话存储

接下来要做的是:如果会话里已经存过client_id,就读取它;如果没存过但URL里有,就把URL里的值存进去再返回。创建一个新的「自定义JavaScript」变量,代码如下:

function() {
  // 先尝试从会话存储读取已保存的client_id
  var savedClientId = sessionStorage.getItem('gtm_newsletter_client_id');
  if (savedClientId) {
    return savedClientId;
  }
  // 如果没有保存的值,获取URL里的参数
  var urlClientId = {{URL - 提取client_id}};
  // 如果URL里有值,存到会话存储并返回
  if (urlClientId) {
    sessionStorage.setItem('gtm_newsletter_client_id', urlClientId);
    return urlClientId;
  }
  // 两种情况都不满足时返回null
  return null;
}

把这个变量命名为「自定义 - 会话保留client_id」

3. 更新你的再营销标签

把所有再营销标签里原来引用的client_id变量,替换成这个新的「自定义 - 会话保留client_id」变量。这样不管用户跳转到首页、产品页还是购物车页,只要在同一个浏览器会话里(标签页没关闭),都会拿到最初从新闻通讯过来的client_id值。

额外小提示

  • 会话存储(sessionStorage)的有效期是当前浏览器标签页,关闭标签页后数据会自动清除。如果需要让用户下次打开浏览器还能保留这个值,可以把代码里的sessionStorage换成localStorage,但要注意符合当地的隐私法规(比如GDPR)。
  • 不需要额外加触发器,因为这个自定义变量每次被调用时都会自动检查和存储,逻辑已经闭环了。

内容的提问来源于stack exchange,提问作者Khaled HAMADMAD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:16:29