Adobe DTM中的筛选链接跟踪问题

时间:2017-09-11 09:30:28

标签: javascript jquery tags analytics adobe-analytics

我在网络标签中遇到adobe图像请求问题,我可以在控制台中正确看到结果,但在图像请求中我没有看到Evar55当前值。 实际上有错误的Google Analytics跟踪问题--Evar55

Evar55应该捕获用户在搜索结果页面和PLP上选择的过滤器的值。

所以现在接下来我编写了代码,它在Console中运行得非常好,我可以看到结果,但是在网络选项卡中,图像请求给出的前一个值没有给出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

谢谢, PAYAL

1 个答案:

答案 0 :(得分:1)

根据面值,您发布的代码的直接原因是没有发出请求,因为您已将s.tl来电注释掉...

其次,请注意:如果您在网络选项卡中过滤图像请求,那么您几乎肯定不会在那里看到Adobe Analytics(AA)请求,因为除非您使用的是非常古老的浏览器或者关闭了javascript并使用<img>标记方法,它将显示为javascript请求或ajax(xhr)请求(取决于AA库的版本和请求的时间长度)。

如果您仍未看到该请求,还可以尝试其他一些操作。根据您使用的AA库的版本,这些中的一个或多个可能是也可能不是真实/必要的:

1)当您将this作为第一个参数传递时,它必须是具有href属性<a href='..'></a>的有效锚元素。由于这不适用于您发布的代码的上下文,请尝试将第一个参数更改为boolean true

2)向s.tl电话添加第三个参数。该参数应该是链接点击的描述,例如s.tl(true,'o','some link');它可以是你想要的任何东西;它是AA中原生链接报告中显示的内容(您几乎肯定会忽略,而不是查看eVar91报告)。如果您想将其作为点击/交互服务器调用进行跟踪,则所有版本的AA库都需要此第3个参数。没有它,在AA的最新版本中,它将触发请求作为页面视图调用,但在旧版本的AA库中,它根本不会触发调用。

3)同样,根据您的AA lib版本,它不会包含eVar75以上的任何内容。我不记得引入eVar76+的确切AA版本(编辑:看起来像开始AM1.4。不支持旧版H代码)。作为快速检查,请尝试使用eVar75或更低版本查看它是否显示在请求中。注意:我只是为了完整起见而放置此内容,但我不认为这是您的问题,因为您的帖子中似乎已经尝试过eVar55了吗?但也可以肯定。如果是这种情况,我建议您更新到最新的AppMeasurement库。如果由于某种原因您无法执行此操作,但仍需要使用eVar91,则可选择将其作为contextData变量弹出,例如s.contextData['eVar91']='foo';然后将其映射到AA界面中处理规则中的真实eVar91。如果您的AA库已经足够大,即使contextData变量也不起作用(H23.2或更低)..那么我建议您将其作为生命中的最高优先级升级到更新版本的AA lib ..

如果在所有这些之后仍然没有看到AA呼叫,只需在js控制台中输入s.t(true,'o','foo');即可。你看到http请求吗?如果您看到请求,那么您有一些与发布的代码没有直接关系的更深层次的问题。可能您的AA库不存在,或者在触发此库之前未加载,或者位于与默认s命名空间不同的命名空间中。但是,与在网站上观看相比,在这里编写大量随机猜测并不可行。

如果你看到一个请求,那么我在这一点上最好的猜测是你有一个时间问题。也许有一个页面(重新)加载发生,它没有机会触发?但同样,在一个看不见的网站上进行推测也不太可行。