【问题标题】:Linktrack variables and events set globally in Omniture, causing the event to fire on other actionsLinktrack 变量和事件在 Omniture 中全局设置,导致事件在其他操作上触发
【发布时间】:2015-09-04 21:51:15
【问题描述】:

我正在尝试触发一些关于链接点击的跟踪信息,并且我一直在尝试我从网上找到的不同地方汇总的功能。

经过一些测试,我最终得到了两个触发我想要的函数。但是,这些似乎正在写入全局对象,因为在调用函数后,事件会在其他地方不断触发。我通过添加最后一行来解决这个问题,但这似乎是一个创可贴,可能会掩盖一个潜在的更大问题。我首先做错了什么,我应该怎么做才能避免这种情况?如果不写入 s.events 对象,我无法触发事件

function f1(){
    s.linkTrackVars= s.linkTrackVars+',eVar45,events';
    s.eVar45='Chat button exposed';
    s.linkTrackEvents = s.events = 'event11'; // hmmm
    s.tl(this, 'o', 'blah');
    s.linkTrackVars = s.linkTrackEvents = s.events = ""; // Added this to empty the global objects
    }

function f2(){
        s.linkTrackVars= s.linkTrackVars+',eVar46,prop45,events';
        s.eVar46='Clicked chat button';
        s.prop45='Clicked chat button';
        s.linkTrackEvents = s.events = 'event31'; // hmmm
        s.tl(this, 'o', 'blah');
        s.linkTrackVars = s.linkTrackEvents =  s.events = ""; // Added this to empty the global objects
        }

我猜问题是标记为“hmm”的行,但这是我可以触发事件的唯一方法,如果我删除 s.linkTrackEvents 或 s.events 它不会触发事件。无论哪种方式,我似乎都必须将所有变量设置为空字符串,以避免其他操作使用这些值。有什么想法吗?

谢谢

【问题讨论】:

    标签: analytics adobe-analytics


    【解决方案1】:

    首先,当您想通过s.tl() 调用将变量发送到Adobe Analytics 时,是的,它们必须在linkTrackEventslinkTrackVars“注册”。

    但是,您可以pass the variables in an object as the 4th argument 使用该调用的值,但不能永久设置它们。您仍然需要使用linkTrackEventslinkTrackVars“注册”变量,以便它们也需要进入有效负载。

    示例

    function f1() {
      var payload={
        'linkTrackEvents':'event1',
        'linkTrackVars':'events,eVar1',
        'events':'event1',
        'eVar1':'bar'
      }
      s.tl(true,'o','some action',payload)
    }
    
    /* 
      first we have the var set, maybe as default values 
      in some config initially loaded on page
    */
    s.linkTrackEvents='None';
    s.linkTrackVars='None';
    s.events='';
    s.eVar1='foo';
    
    // example to see current values above
    console.log(s); 
    
    /* 
      then call the function. You will see in the 
      request that event1 is set and eVar1 is 'bar'
    */
    f1();
    
    /* 
      now another console log to see the values, 
      you will see it's the original values
    */
    console.log(s);
    

    【讨论】:

    • 您好,我可以直接与您取得联系吗? kjackson@phhelpsagency.com
    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    相关资源
    最近更新 更多