我想出了如何使用 Tagmanager 中的以下代码存储和捕获 GCLID 以更新 Hubspot 中的联系人。但是,我仍然需要代码来为 MSCLKID(Microsoft Ads 的 Microsoft Click ID)执行相同的操作。如果您知道如何解决此问题,请将 tagmanager 的代码粘贴在存储两者的回复中。如果可能的话,我想把它们合并成一个脚本。
如果您在仅存储 GCLID 方面需要帮助,请使用所有页面作为触发器将下面的代码粘贴到 tagmanager 中。
<script>
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 day expiry in milliseconds
var expiryDate = new Date().getTime() + expiryPeriod;
return {
value: value,
expiryDate: expiryDate
};
}
function addGclid() {
var gclidParam = getParam('gclid');
var gclidFormFields = ['gclid_field', 'foobar']; // all possible gclid form field ids here
var gclidRecord = null;
var currGclidFormField;
var gclsrcParam = getParam('gclsrc');
var isGclsrcValid = !gclsrcParam || gclsrcParam.indexOf('aw') !== -1;
gclidFormFields.forEach(function (field) {
if (document.getElementById(field)) {
currGclidFormField = document.getElementById(field);
}
});
if (gclidParam && isGclsrcValid) {
gclidRecord = getExpiryRecord(gclidParam);
localStorage.setItem('gclid', JSON.stringify(gclidRecord));
}
var gclid = gclidRecord || JSON.parse(localStorage.getItem('gclid'));
var isGclidValid = gclid && new Date().getTime() < gclid.expiryDate;
if (currGclidFormField && isGclidValid) {
currGclidFormField.value = gclid.value;
}
}
window.addEventListener('load', addGclid);
</script>
您还必须在 Hubspot 中创建一个名为 gclid 的属性,将其添加到您的表单中,并将其更改为隐藏。提前感谢您的帮助!
还不是程序员。我几乎只是复制和粘贴代码,而且我不容易找到任何解决方案,因为 Microsoft Ads 似乎不如 Google Ads 受到关注。
我正在尝试实现 gclid 的代码。我看到 glicd 已成功存储在 cookie 中。但是,我没能看到它以 hubspot 形式出现。我创建了一个联系人属性作为名为 gclid 的隐藏字段,表单是原始 HTML 和嵌入的。您对如何在相应的表单字段中看到它成功设置有什么建议吗?
提前感谢您的帮助!