javascript - Adobe DTM 中的过滤器链接跟踪问题

标签 javascript jquery tags analytics adobe-analytics

我在网络选项卡中遇到 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 已在使用中。

enter image description here

enter image description here

谢谢, 支付宝

最佳答案

从表面上看,您发布的代码没有发出请求的直接原因是您有 s.tl调用被注释掉了...

其次,请注意:如果您在网络选项卡中过滤图像请求,您几乎肯定不会在那里看到 Adob​​e 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/

相关文章:

javascript - toLocaleString() 如何在 Javascript 中获取时区

javascript - 遇到这个基本的 while 循环硬件问题

c# - 从 WebService (.NET) 使用 C# 调用 javascript

javascript - 我可以使用 javascript 更改地址栏中的 URL 字符串吗

包含表单时,html 段落标记在 firefox 中自动关闭

svn - 在 SVN 标签/分支名称中允许点是不好的做法吗?

sql - 当与每条信息关联的标签数量可变时,在关系数据库中存储标签的好方法

javascript - 为什么在外部范围内等待内联变量与简单的等待分配不同?

javascript - 如何使用hammer.js在手机和平​​板电脑中运行触摸滑动

jquery - 使用 jQuery 动画速记 CSS 属性