我正在尝试设置Google标记管理器变量来读取URL参数(如果存在),如果不存在,请检查数据层中是否存在该变量,如果不存在则返回false .
但是,GTM提供了一个解析错误,指出缺少')' . 任何帮助将不胜感激,不确定它是否是我的代码或GTM是否需要特定的语法?
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
function () {
var hid = getParameterByName('hid').length();
if (hid > -1) {
return getParameterByName('hid');
}
else
if (dataLayer[0].emailHash.length >-1) {
return dataLayer[0].emailHash;
}
else
{
return false
}
}
2 回答
如果你将它分解为两个Custom JS变量,这可能会更好,因为你没有操纵全局变量:
变量#1:getParameterByName:
变量#2:testDataLayer:
尝试使用此代码(您需要输入脚本标记):