Javascript omniture'的多跟踪onclick链路;s s.tl(),无法理解
我正在为SiteCatalyst使用omniture jasavscript 其中,我在单击链接时填充所需的变量 但问题是我在一次点击中得到了多次(2)跟踪,这不是理想的行为。在这两个追踪中,我得到的第一个是旧的,紧接着我得到了第二个最新的追踪 它似乎正在使用缓存 更新 我尝试使用Javascript omniture'的多跟踪onclick链路;s s.tl(),无法理解,javascript,adobe-analytics,Javascript,Adobe Analytics,我正在为SiteCatalyst使用omniture jasavscript 其中,我在单击链接时填充所需的变量 但问题是我在一次点击中得到了多次(2)跟踪,这不是理想的行为。在这两个追踪中,我得到的第一个是旧的,紧接着我得到了第二个最新的追踪 它似乎正在使用缓存 更新 我尝试使用vars={}重新初始化对象 但它不起作用 有人能建议如何纠正吗。没有看到任何代码,我只能猜测,但我猜额外的打击来自SiteCatalyst的自动链接跟踪-或者是退出链接,因为目标URL未在链接内部过滤器中列出,或下载
vars={}重新初始化对象使用s.tl('this','e','',null)前后的代码>代码>
但它不起作用
有人能建议如何纠正吗。没有看到任何代码,我只能猜测,但我猜额外的打击来自SiteCatalyst的自动链接跟踪-或者是退出链接,因为目标URL未在链接内部过滤器中列出,或下载链接,因为目标URL以linkDownloadFileTypes
中列出的内容结尾
考虑到s.tl()
示例中的'e'
参数,我怀疑该链接是一个退出链接。因此,请注意。。也许这里的解决方案是利用自动退出链接跟踪,而不是进行自己的s.tl()
调用。Adobe有一个名为exitLinkHandler
的插件,它可以让您在自动退出链接跟踪发生时触发其他变量
以下是插件:
/*
* Plugin: exitLinkHandler 0.5 - identify and report exit links
*/
s.exitLinkHandler=new Function("p",""
+"var s=this,h=s.p_gh(),n='linkInternalFilters',i,t;if(!h||(s.linkTyp"
+"e&&(h||s.linkName)))return '';i=h.indexOf('?');t=s[n];s[n]=p?p:t;h="
+"s.linkLeaveQueryString||i<0?h:h.substring(0,i);if(s.lt(h)=='e')s.li"
+"nkType='e';else h='';s[n]=t;return h;");
现在,这将使您的附加变量在任何触发的退出链接上弹出。如果您希望它仅在某些URL匹配时触发,或仅在特定匹配时触发,则可以根据您的需要通过多种方式执行此操作:
- 如果只需要进行常规子字符串匹配,则可以传递一些
或所有目标URL作为的第一个参数
s.exitLinkHandler()
,它将根据
目标URL
- 如果这还不够好,在
If(s.url)
条件下,您可以
对目标执行您自己的匹配(例如正则表达式匹配)
URL使用s.URL
- 如果需要通过链接的某个DOM属性作为目标,请在
条件,
s.eo
是对已删除链接的对象引用
单击,这样您就可以围绕它编写自己的条件
没有看到任何代码,我只能猜测,但我猜额外的打击来自SiteCatalyst的自动链接跟踪-要么是退出链接,因为目标URL未在链接内部过滤器中列出,要么是下载链接,因为目标URL以链接下载文件类型中列出的内容结尾
考虑到s.tl()
示例中的'e'
参数,我怀疑该链接是一个退出链接。因此,请注意。。也许这里的解决方案是利用自动退出链接跟踪,而不是进行自己的s.tl()
调用。Adobe有一个名为exitLinkHandler
的插件,它可以让您在自动退出链接跟踪发生时触发其他变量
以下是插件:
/*
* Plugin: exitLinkHandler 0.5 - identify and report exit links
*/
s.exitLinkHandler=new Function("p",""
+"var s=this,h=s.p_gh(),n='linkInternalFilters',i,t;if(!h||(s.linkTyp"
+"e&&(h||s.linkName)))return '';i=h.indexOf('?');t=s[n];s[n]=p?p:t;h="
+"s.linkLeaveQueryString||i<0?h:h.substring(0,i);if(s.lt(h)=='e')s.li"
+"nkType='e';else h='';s[n]=t;return h;");
现在,这将使您的附加变量在任何触发的退出链接上弹出。如果您希望它仅在某些URL匹配时触发,或仅在特定匹配时触发,则可以根据您的需要通过多种方式执行此操作:
- 如果只需要进行常规子字符串匹配,则可以传递一些
或所有目标URL作为的第一个参数
s.exitLinkHandler()
,它将根据
目标URL
- 如果这还不够好,在
If(s.url)
条件下,您可以
对目标执行您自己的匹配(例如正则表达式匹配)
URL使用s.URL
- 如果需要通过链接的某个DOM属性作为目标,请在
条件,
s.eo
是对已删除链接的对象引用
单击,这样您就可以围绕它编写自己的条件
选项1
Omniture不跟踪以#作为退出链接的链接,因此您可以执行以下操作:
<a href="#http://google.com" data-track-msg="Tracking Message" class="prepended-with-hash-for-tracking">Search</a>
<script>
(function (){
'use strict';
var links = document.querySelectorAll('.prepended-with-hash-for-tracking');
var track = function(e) {
e.preventDefault();
var link = e.currentTarget;
var url = link.href;
var trackingMessage = link.getAttribute('data-track-msg');
// Remove the hash.
if (url[0] === '#') {
url = url.substr(1);
}
// Track in omniture.
var s = s_gi('InsertYourRSID');
s.tl(link, 'o', trackingMessage, null, function(){
window.location.href = url;
});
};
for (var i = 0, len = links.length; i < len; i++) {
links[i].addEventListener('click', track, false);
}
})();
</script>
(功能(){
"严格使用",;
var links=document.querySelectorAll('.prepend with hash for tracking');
var轨道=功能(e){
e、 预防默认值();
var link=e.currentTarget;
var url=link.href;
var trackingMessage=link.getAttribute('data-track-msg');
//删除散列。
如果(url[0]=='#'){
url=url.substr(1);
}
//在omniture中跟踪。
var s=s_gi('InsertYourRSID');
s、 tl(链接'o',跟踪消息,null,函数(){
window.location.href=url;
});
};
对于(变量i=0,len=links.length;i
选择2
另一项工作是设置s.linkLeaveQueryString=true
然后在url后面附加一个查询参数,该参数包含与s.linkInternalFilters
中的字符串匹配的域名。e、 g.
选择3
通过设置s.trackExternalLinks=false禁用omniture的默认外部链接跟踪然后,您可以使用事件处理程序处理所有外部链接,该事件处理程序使用类似于选项1的JavaScript调用s.tl()
我建议选择3。选择1
Omniture不跟踪以#作为退出链接的链接,因此您可以执行以下操作:
<a href="#http://google.com" data-track-msg="Tracking Message" class="prepended-with-hash-for-tracking">Search</a>
<script>
(function (){
'use strict';
var links = document.querySelectorAll('.prepended-with-hash-for-tracking');
var track = function(e) {
e.preventDefault();
var link = e.currentTarget;
var url = link.href;
var trackingMessage = link.getAttribute('data-track-msg');
// Remove the hash.
if (url[0] === '#') {
url = url.substr(1);
}
// Track in omniture.
var s = s_gi('InsertYourRSID');
s.tl(link, 'o', trackingMessage, null, function(){
window.location.href = url;
});
};
for (var i = 0, len = links.length; i < len; i++) {
links[i].addEventListener('click', track, false);
}
})();
</script>
(功能(){
"严格使用",;
var links=document.querySelectorAll('.prepend with hash for tracking');
var轨道=功能(e){
e、 预防默认值();
var link=e.currentTarget;
var url=link.href;
var trackingMessage=link.getAttribute('data-track-msg');
//删除散列。
如果(url[0]=='#'){
url=url.substr(1);
}
//在omniture中跟踪。
var s=s_gi('InsertYourRSID');
s、 tl(链接'o',跟踪消息,null,函数(){
window.location.href=url;
});
};
对于(变量i=0,len=links.length;i