s.getPreviousValue插件不起作用

时间:2015-03-17 08:11:05

标签: javascript adobe-analytics

在页面A上,我点击了"链接A" s.tl()我填写evar1并触发事件1的地方。此链接A指向页面B

链接中的代码点击第A页

$(document).on('click','.nav.navbar-nav.subnav-breadcrumb a',function(){
    if($(this).text().toLowerCase().indexOf('create group')!=-1){
        s.events = "event1";
        s.linkTrackEvents = "event1";
        s.eVar1 = "Step 1";
        s.linkTrackVars = "eVar1,events";
        s.tl(true,'o','Step 1');    
    }
});

在页面B的页面加载中,在do plugins部分中,我尝试通过以下代码获取prev eVar调用中设置的s.tl()的值

function s_doPlugins(s) {
    console.log(s.getPreviousValue(s.eVar1,'cookie_name','event1') 
}

但是,我得到的值是' undefined'。 getPreviousValue()插件不适用于之前的s.tl()来电吗?我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

As mentioned in the documentation,因为你正在使用s.getPreviousValue()的第三个参数,它只会在设置指定事件时存储和触发(在你的case和doc示例中,都是event1 })。

由于您在链接点击中设置了events.getPreviousValue()会触发s_doPlugins,因为所有s.t()s.tl()来电都会调用cookie_name,所以此时您应该在s_pers Cookie中看到值(如果您使用的是组合Cookie插件,请查看event1 Cookie)。

但是,在下一页(第B页)s_doPlugins未设置,因此当s.t()调用页面s.getPreviousValue()来电时,s.events s.events }将不会更新/返回以前的值。

换句话说,当您在第3个参数中指定事件时,当undefined中存在指定的事件时,将触发插件。基本上它首先做的是检查是否存在第3个arg,然后通过{{1}}查看它是否在那里。如果不是,那就是它,函数结束时没有返回值(这就是你返回{{1}}的原因)。

我不确定你实际想要完成什么,但根据我的经验,在第三个参数中指定一个事件并没有很多用例。