我正在尝试让s.tl()传递eVar,但调用未通过eVar而被触发,我无法弄清楚为什么,我在同一页上通过另一个有效的加载规则使用了相同的代码。
工作代码
setTimeout(function(){
s.linkTrackVars='eVar17';
s.eVar17 = _satellite.data.customVars.HL_AB;
s.tl(true,'o','Hook Logic'); },5000);
非工作代码
setTimeout(function(){
s.linkTrackVars='eVar38';
s.eVar38 = _satellite.data.customVars.GOOG_AS;
s.tl(true,'o','AdSense Tracking'); }, 5000);
我什至尝试过将数据作为上下文数据发送,也更改为JS var而不是DTM var,但是什么也没有,就像s.linkTrackVar行被视为空白一样,即使var为空也是如此。仍将设置为null。
但是我让var返回控制台,所以我添加了一个超时以确保在调用运行时它可用。
有任何想法吗?
最佳答案
在像素未显示eVar38的测试中,您是否可以确定_satellite.data.customVars.GOOG_AS是否未定义或为空?我建议您在s.tl之前紧接在setTimeout函数中添加以下内容:
_satellite.notify("GOOG_AS custome var is '" + _satellite.data.customVars.GOOG_AS + "'", 1);
然后在DTM调试打开的情况下再次运行测试,并查看该值是否为空。我认为最可能的情况是此变量未定义或为空,在这种情况下,它不会在s.tl()跟踪调用中作为查询参数传递。