我正在尝试获取一个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也是如此是空的,它仍然会设置为空。
但是我要在控制台中返回var,所以我添加了一个超时,以确保在调用运行时它可用。
有什么想法吗?
答案 0 :(得分:2)
在您的测试中,像素未显示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()跟踪调用中的查询参数传递。