我想解析一个“推送”数据层字符串。我打算用它来跟踪点击事件并在Google Analytics(分析)中设置适当的渠道,如下所示:products.view.19 |查看最新产品| 19
因此,我执行以下操作,首先创建了一个触发器(当链接中包含标签“ data-trackclick”时将触发),该触发器将数据值推入变量(数据层变量)。但是,如上所述,现在我想将该变量分成3个新变量。我为此选择了“ javascript宏”,但以某种方式返回“未定义”。宏如下所示:
function() {
var data = {{TrackClickData}};
var pieces = data.split('|');
if (pieces[0].length()) {
return pieces[0];
} else {
return data;
}
}
显然这没有用,因为它只会在初始加载时运行,而不是(如我所想)在请求宏时运行,因此应该以某种方式在“点击”上触发它,然后相应地设置变量。
这有可能吗?还是真的必须在脚本标签中添加dataLayer.push()?
答案 0 :(得分:0)
几件事:
.length()
错误,数组长度的属性为.length
,而没有()
.length
将返回字符串长度,有关更标准的检查空字符串的方法,请参见How do you check for an empty string in JavaScript? 我的建议是首先让您的代码在GTM之外运行(例如,在浏览器控制台中对其进行测试),然后在所有代码正常运行后,将其移植到GTM。