Javascript omniture'的多跟踪onclick链路;s s.tl(),无法理解

Javascript omniture'的多跟踪onclick链路;s s.tl(),无法理解,javascript,adobe-analytics,Javascript,Adobe Analytics,我正在为SiteCatalyst使用omniture jasavscript 其中,我在单击链接时填充所需的变量 但问题是我在一次点击中得到了多次(2)跟踪,这不是理想的行为。在这两个追踪中,我得到的第一个是旧的,紧接着我得到了第二个最新的追踪 它似乎正在使用缓存 更新 我尝试使用vars={}重新初始化对象 但它不起作用 有人能建议如何纠正吗。没有看到任何代码,我只能猜测,但我猜额外的打击来自SiteCatalyst的自动链接跟踪-或者是退出链接,因为目标URL未在链接内部过滤器中列出,或下载

我正在为SiteCatalyst使用omniture jasavscript

其中,我在单击链接时填充所需的变量

但问题是我在一次点击中得到了多次(2)跟踪,这不是理想的行为。在这两个追踪中,我得到的第一个是旧的,紧接着我得到了第二个最新的追踪

它似乎正在使用缓存

更新

我尝试使用
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的默认外部链接跟踪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