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

在Tag Manager中实现GCLID与MSCLKID存储同步至HubSpot联系人

合并GCLID与MSCLKID捕获存储的Tag Manager脚本

我已通过现有代码在Tag Manager中实现GCLID的捕获与存储,用于更新HubSpot联系人,现在需要新增MSCLKID(Microsoft Ads点击ID)的相同功能,将两者合并为一个脚本。

合并后的完整代码

将以下代码添加到Tag Manager并设置全页面触发:

<script>
// 通用URL参数获取函数
function getParam(p) {
  var match = RegExp('[?&]' + p + '=([^&]*)').exec(window.location.search);
  return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

// 生成带过期时间的存储记录
function getExpiryRecord(value) {
  var expiryPeriod = 90 * 24 * 60 * 60 * 1000; // 90天有效期(毫秒)
  var expiryDate = new Date().getTime() + expiryPeriod;
  return {
    value: value,
    expiryDate: expiryDate
  };
}

// 处理GCLID的捕获、存储与表单填充
function handleGclid() {
  var gclidParam = getParam('gclid');
  var gclidFormFields = ['gclid_field', 'foobar']; // 所有可能的GCLID表单字段ID
  var currGclidFormField;
  var gclidRecord = null;

  // 验证gclsrc参数,仅处理Google Ads来源的GCLID
  var gclsrcParam = getParam('gclsrc');
  var isGclsrcValid = !gclsrcParam || gclsrcParam.indexOf('aw') !== -1;

  // 找到页面中存在的GCLID表单字段
  gclidFormFields.forEach(function (field) {
    if (document.getElementById(field)) {
      currGclidFormField = document.getElementById(field);
    }
  });

  // 如果URL中有有效GCLID,存储到localStorage
  if (gclidParam && isGclsrcValid) {
    gclidRecord = getExpiryRecord(gclidParam);
    localStorage.setItem('gclid', JSON.stringify(gclidRecord));
  }

  // 获取存储的GCLID并验证有效期
  var gclid = gclidRecord || JSON.parse(localStorage.getItem('gclid'));
  var isGclidValid = gclid && new Date().getTime() < gclid.expiryDate;

  // 填充到对应的表单字段
  if (currGclidFormField && isGclidValid) {
    currGclidFormField.value = gclid.value;
  }
}

// 处理MSCLKID的捕获、存储与表单填充
function handleMsclkid() {
  var msclkidParam = getParam('msclkid');
  var msclkidFormFields = ['msclkid_field']; // 所有可能的MSCLKID表单字段ID,按需修改
  var currMsclkidFormField;
  var msclkidRecord = null;

  // 找到页面中存在的MSCLKID表单字段
  msclkidFormFields.forEach(function (field) {
    if (document.getElementById(field)) {
      currMsclkidFormField = document.getElementById(field);
    }
  });

  // 如果URL中有MSCLKID,存储到localStorage
  if (msclkidParam) {
    msclkidRecord = getExpiryRecord(msclkidParam);
    localStorage.setItem('msclkid', JSON.stringify(msclkidRecord));
  }

  // 获取存储的MSCLKID并验证有效期
  var msclkid = msclkidRecord || JSON.parse(localStorage.getItem('msclkid'));
  var isMsclkidValid = msclkid && new Date().getTime() < msclkid.expiryDate;

  // 填充到对应的表单字段
  if (currMsclkidFormField && isMsclkidValid) {
    currMsclkidFormField.value = msclkid.value;
  }
}

// 页面加载完成后执行两个处理函数
window.addEventListener('load', function() {
  handleGclid();
  handleMsclkid();
});
</script>

HubSpot配置步骤

  1. 在HubSpot中创建名为msclkid的联系人属性
  2. 将msclkid属性添加到目标表单,并设置为隐藏状态
  3. 确保表单中隐藏字段的ID与代码中msclkidFormFields数组里的ID一致(如果你的HubSpot表单隐藏字段ID不是msclkid_field,请修改代码中的对应值)

内容的提问来源于stack exchange,提问作者Airport Shuttle of Phoenix

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:27:06