有些人在设计Adobe Analytics的布署方案中,为了便于分析,会将Previous Page设置为一个eVar或props,那么就需要获取Previous Page。


在Adobe Launch中有多种方式可以获取Previous Page。


插件:getPreviousValue

Adobe Consulting 团队提供了插件getPreviousValue,插件允许您将一个变量设置为在上一次点击时设置的值。


首先是是安装这个插件,插件的代码如下:

/* Adobe Consulting Plugin: getPreviousValue v3.0 */function getPreviousValue(v,c){var k=v,d=c;if("-v"===k)return{plugin:"getPreviousValue",version:"3.0"};var a=function(){if("undefined"!==typeof window.s_c_il)for(var c=0,b;c<window.s_c_il.length;c++)if(b=window.s_c_il[c],b._c&&"s_c"===b._c)return b}();"undefined"!==typeof a&&(a.contextData.getPreviousValue="3.0");window.cookieWrite=window.cookieWrite||function(c,b,f){if("string"===typeof c){var h=window.location.hostname,a=window.location.hostname.split(".").length-1;if(h&&!/^[0-9.]+$/.test(h)){a=2<a?a:2;var e=h.lastIndexOf(".");if(0<=e){for(;0<=e&&1<a;)e=h.lastIndexOf(".",e-1),a--;e=0<e?h.substring(e):h}}g=e;b="undefined"!==typeof b?""+b:"";if(f||""===b)if(""===b&&(f=-60),"number"===typeof f){var d=new Date;d.setTime(d.getTime()+6E4*f)}else d=f;return c&&(document.cookie=encodeURIComponent(c)+"="+encodeURIComponent(b)+"; path=/;"+(f?" expires="+d.toUTCString()+";":"")+(g?" domain="+g+";":""),"undefined"!==typeof cookieRead)?cookieRead(c)===b:!1}};window.cookieRead=window.cookieRead||function(c){if("string"===typeof c)c=encodeURIComponent(c);else return"";var b=" "+document.cookie,a=b.indexOf(" "+c+"="),d=0>a?a:b.indexOf(";",a);return(c=0>a?"":decodeURIComponent(b.substring(a+2+c.length,0>d?b.length:d)))?c:""};var l;d=d||"s_gpv";a=new Date;a.setTime(a.getTime()+18E5);window.cookieRead(d)&&(l=window.cookieRead(d));k?window.cookieWrite(d,k,a):window.cookieWrite(d,l,a);return l};/******************************************** END CODE TO DEPLOY ********************************************/


可以用自定义代码编辑器安装,也可以AppMeasurement 安装,或是Adobe Analytics的Extensions里安装,方式有多样的。


安装后就可以使用这个插件了,这个插件的用法的是

getPreviousValue(v,c)
  • v(字符串,必需):具有要传递给下一个图像请求的值的变量。用于检索上一页值的常用变量为 s.pageName

  • c(字符串,可选):用于存储值的 Cookie 的名称。如果未设置此参数,则将默认使用 "s_gpv"


调用此函数时,将返回 Cookie 中包含的字符串值。然后,此插件会重置 Cookie 过期时间,并为其分配 v 参数中的变量值。该 Cookie 将在处于非活动状态 30 分钟后过期。

它的作用就是当执行的时候,V是当前页面,C是存储在cookie的是上一级页面,它会获取cookie里的值,也即是Previous  Page,然后将当前页面V更新到cookie里。

现在我访问页面A-B-C,然后将previous page设置为prop1,看看它们在不同页面的时候的赋值是怎样的

访问页面A:getPreviousValue(v,c)  ,v是A,c为空,Cookie里为A

访问页面B:getPreviousValue(v,c)  ,Cookie里为A,v是B,c为A,cookie为B

访问页面C:getPreviousValue(v,c)  ,cookie里为B,v是C,c为B,cookie里为C


如果在访问的过程中涉及到事件,那么就不一样,假设用户在访问B之前触发了事件E,发送的Server call的顺序就是A-E-B-C

访问页面A:getPreviousValue(v,c)  ,v是A,c为空,Cookie里为A

访问页面B:getPreviousValue(v,c)  ,Cookie里为E,v是B,c为E,cookie里为B

访问页面C:getPreviousValue(v,c)  ,cookie里为Bv是C,c为B,cookie里为C

访问页面B的时候,它的Previous  Page是E里面,也就是事件里面的页面,看事件在哪个页面触发,如果在A页面触发,那么这时候的E就是A,如果是在B触发,那么E就是B。


数据元素里的Page Info

Launch里的Page Info数据元素里就有referral,referral就是上一级页面来源,也就是Previous  Page,可以直接用:


关于它的赋值逻辑,取决插件getPreviousValue执行位置,于Page View和Page Event设置。


document.referrer

document.referrer是浏览器默认支持的,所有的页面都可以用这个函数去获取上一级页面来源,可以在数据元素里用custom code 去存储通过document.referrer获取来的Previous Page。


document.referrer和Page  Info里的referral是一样的,Page  Info只已经封装好了的,可以直接用。


所以没必要用document.referrer这种方法。



一般建议是用Page Info的方式,但要理解在不同请求的赋值情况。


点赞(5) 打赏

Comment list 共有 0 条评论

暂无评论

服务号

订阅号

商务洽谈

微信联系站长

发表
评论
立即
投稿
返回
顶部