用于存储 Hubspot 联系人的 GCLID 和 MSCLKID 的 Tagmanager 脚本

问题描述 投票:0回答:1

我想出了如何使用 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 受到关注。

javascript html google-tag-manager
1个回答
0
投票

我正在尝试实现 gclid 的代码。我看到 glicd 已成功存储在 cookie 中。但是,我没能看到它以 hubspot 形式出现。我创建了一个联系人属性作为名为 gclid 的隐藏字段,表单是原始 HTML 和嵌入的。您对如何在相应的表单字段中看到它成功设置有什么建议吗?

提前感谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.