我在网络选项卡中遇到 adobe 图像请求问题,我可以在控制台中正确查看结果,但在图像请求中我看不到 Evar55 当前值。 实际上存在错误分析跟踪问题- Evar55
Evar55 应该捕获用户在搜索结果页面和 PLP 上选择的过滤器的值。
现在我已经编写了代码,它在控制台中运行得非常好,我可以看到结果,但在网络选项卡中,图像请求给出的是先前的值,而不是当前的 facet 值。
这里把截图和代码分享给大家,请问是什么问题。
在 DTM 中,我已经创建了页面加载规则 - 条件触发规则在 DOM 就绪 - 然后 adobe analytics 打开编辑器我粘贴了这段代码
代码
var oldXHR = window.XMLHttpRequest;
function newXHR() {
var realXHR = new oldXHR();
realXHR.addEventListener("readystatechange", function() {
if(realXHR.readyState==4 && realXHR.status==200){
//run your code here
window.setTimeout(function() {
if(s.pageName && (s.pageName.indexOf('plp:')>-1 || s.pageName.indexOf('search')>-1)){
var PFF = document.getElementsByClassName('selected-categories')[0].innerText;
PFF_Final = PFF.replace(/ /g, '').replace(/:/g, '|');
if(PFF_Final.indexOf('Categories|')>-1 || PFF_Final.indexOf('search|')>-1){
console.log('N/A');
}
else if(PFF_Final && typeof PFF_Final !== 'undefined' && PFF !== 'null' && PFF !== ''){
//PFF_Final = PFF.replace(/ /g, '').replace(/:/g, '|');
s.linkTrackVars = 'eVar91';
s.eVar91 = PFF_Final.trim();
//s.tl(this, 'o');
console.log(PFF_Final);
}
}
},1500);
}
}, false);
return realXHR;
}
window.XMLHttpRequest = newXHR;
注意:- 我已将 Evar55 更改为 Evar91,因为 Evar 55 已在使用中。
谢谢, 支付宝
最佳答案
从表面上看,您发布的代码没有发出请求的直接原因是您有 s.tl
调用被注释掉了...
其次,请注意:如果您在网络选项卡中过滤图像请求,您几乎肯定不会在那里看到 Adobe Analytics (AA) 请求,因为除非您使用的是非常古老的浏览器或者关闭了 javascript并使用 <img>
标记方法,它将显示为 javascript 请求或 ajax (xhr) 请求(取决于 AA 库的版本和请求的长度)。
如果您仍然没有看到请求,还有一些其他的事情可以尝试。其中一项或多项可能是也可能不是真实/必要的,具体取决于您使用的 AA 库的版本:
1) 当你通过 this
作为第一个参数,它必须是带有 href
的有效 anchor 元素属性 <a href='..'></a>
.由于这在您发布的代码的上下文中不适用,请尝试将第一个参数更改为 bool 值 true
.
2) 添加第三个参数到 s.tl
称呼。该参数应该是对链接点击的描述,例如s.tl(true,'o','some link');
它可以是任何你想要的;它显示在 AA 的 native 链接报告中(您几乎肯定会忽略它,转而查看该 eVar91
报告)。如果您想将其作为点击/交互服务器调用进行跟踪,则所有版本的 AA 库都需要此第三个参数。没有它,在较新版本的 AA 中,它将作为页面 View 调用触发请求,但在 AA 库的旧版本中,它根本不会触发调用。
3) 同样,根据您的 AA 库版本,它不会包含任何高于 eVar75
的内容.我不记得确切的 AA 版本在哪里 eVar76+
引入了(编辑:看起来像开始 AM1.4。不支持旧版 H 代码)。作为快速检查,尝试使用 eVar75
或降低以查看它是否出现在请求中。注意:我只是为了完整起见才放这个,但我不认为这是你的问题,因为从你的帖子看来你可能已经尝试过 eVar55
已经?但也可以确定。如果是这种情况,我建议更新到最新的 AppMeasurement 库。如果由于某种原因您无法这样做,并且仍然需要使用 eVar91
, 那么另一种方法是将其弹出为 contextData
变量,例如s.contextData['eVar91']='foo';
然后映射到真实的eVar91
在 AA 接口(interface)内的处理规则中。如果您的 AA 库足够旧,甚至 contextData
变量不起作用(H23.2 或更低版本)。那么我建议您将升级到更新版本的 AA 库作为生活中的最高优先级。
如果在所有这些之后您仍然没有看到 AA 电话,只需输入 s.t(true,'o','foo');
进入js控制台。你看到一个http请求了吗?如果您没有看到一个请求,那么您有一些更深层次的问题,与发布的代码没有直接关系。也许您的 AA 库不存在,或者在触发之前未加载,或者位于与默认名称不同的命名空间下 s
命名空间。但是,与查看网站相比,在这里写很多随机猜测并不可行。
如果您确实看到了请求,那么此时我的最佳猜测是您遇到了时间问题。也许有一个页面(重新)加载正在发生并且它没有机会触发?但同样,在一个看不见的网站上进行推测并不是很可行。
关于javascript - Adobe DTM 中的过滤器链接跟踪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46152368/