此插件由 Adobe Consulting 团队提供,旨在帮助您从 Adobe Analytics 中获取更多的价值。Adobe 客户关怀团队不提供对此插件的支持,包括安装或疑难解答。如果您需要关于此插件的帮助,请与贵组织的帐户管理员联系。他们可以为您安排与顾问的答疑会,以便您向顾问寻求帮助。
getQueryParam
插件允许您提取 URL 中包含的任意查询字符串参数的值。在从登录页面 URL 中提取内部和外部促销活动代码时,此插件非常有用。在提取搜索词或其他查询字符串参数时,此插件也非常有价值。
此插件在解析复杂 URL(包括散列和包含多个查询字符串参数的 URL)方面提供了强大的功能。如果您只需要处理简单的查询字符串参数,Adobe 建议您使用 Launch 中的 URL 参数功能或 AppMeasurement 中包含的 Util.getQueryParam()
方法。
Adobe 提供了一个扩展,通过该扩展,您可以使用一些最常用的插件。
如果您不想使用插件扩展,则可以使用自定义代码编辑器。
/******************************************* BEGIN CODE TO DEPLOY *******************************************/
/* Adobe Consulting Plugin: getQueryParam v3.3 (Requires pt plug-in) */
s.getQueryParam=function(qsp,de,url){var g=this,e="",k=function(b,de){de=de.split("?").join("&");de=de.split("#").join("&");var d=de.indexOf("&"),url="";b&&(-1<d||de.indexOf("=")>d)&&(d=de.substring(d+1),url=g.pt(d,"&","gpval",b));return url};qsp=qsp.split(",");var l=qsp.length;g.gpval=function(de,b){if(de){var d=de.split("="),url=d[0];d=d[1]?d[1]:!0;if(b.toLowerCase() ==url.toLowerCase())return"boolean"===typeof d?d:this.unescape(d)}return""};de=de?de:"";url=(url?url:g.pageURL?g.pageURL: location.href)+"";if((4<de.length||-1<de.indexOf("="))&&url&&4>url.length){var b=de;de=url;url=b}for(var h=0;h<l;h++)b=k(qsp[h],url) ,"string"===typeof b?(b=-1<b.indexOf("#")?b.substring(0,b.indexOf("#")):b,e+=e?de+b:b):e=""===e?b:e+(de+b);return e};
/* Adobe Consulting Plugin: pt v2.01 */
s.pt=function(l,de,cf,fa){if(l&&this[cf]){l=l.split(de||",");de=l.length;for(var e,c=0;c<de;c++)if(e=this[cf](l[c],fa))return e}};
/******************************************** END CODE TO DEPLOY ********************************************/
getQueryParam
方法使用以下参数:
qsp
(必需):包含要在 URL 中查找的查询字符串参数列表,以逗号分隔。此列表不区分大小写。de
(可选):当有多个匹配的查询字符串参数时使用的分隔符。默认使用空字符串。url
(可选):要从中提取查询字符串参数值的自定义 URL、字符串或变量。默认值为 window.location
。调用此方法时,会根据上述参数和 URL 返回一个值:
true
。de
参数中的字符串分隔。如果当前 URL 为:
http://www.abc123.com/?cid=trackingcode1
以下代码会将 s.campaign 设置为等于“trackingcode1”:
s.campaign=s.getQueryParam('cid');
如果当前 URL 为:
http://www.abc123.com/?cid=trackingcode1&ecid=123456
以下代码会将 s.campaign 设置为等于“trackingcode1:123456”:
s.campaign=s.getQueryParam('cid,ecid',':');
如果当前 URL 为:
http://www.abc123.com/?cid=trackingcode1&ecid=123456
以下代码会将 s.campaign 设置为等于“trackingcode1123456”:
s.campaign=s.getQueryParam('cid,ecid');
如果当前 URL 为:
http://www.abc123.com/?cid=trackingcode1&ecid=123456#location
以下代码会将 s.campaign 设置为等于“123456”:
s.campaign=s.getQueryParam('ecid');
如果当前 URL 为:
http://www.abc123.com/#location&cid=trackingcode1&ecid=123456
以下代码会将 s.campaign 设置为等于“123456”
s.campaign=s.getQueryParam('ecid');
注意:如果用于检查的 URL 中没有问号,此插件会将 URL 中的井号替换为问号。如果在用于检查的 URL 中井号前面有一个问号,此插件会将 URL 中的井号替换为与号;
如果当前 URL 为…
http://www.abc123.com/
…且如果按如下所示设置变量 s.testURL:
s.testURL="http://www.abc123.com/?cid=trackingcode1&ecid=123456#location&pos=300";
以下代码根本不会设置 s.campaign:
s.campaign=s.getQueryParam('cid');
但是,以下代码会将 s.campaign 设置为等于“trackingcode1”:
s.campaign=s.getQueryParam('cid','',s.testURL);
注意:第三个参数可以是代码将用于在其中查找查询字符串参数的任意字符串/变量
以下代码会将 s.eVar2 设置为等于“123456|trackingcode1|true|300”:
s.eVar2=s.getQueryParam('ecid,cid,location,pos','|',s.testURL);
值“300”来自 s.testURL 变量中 pos 参数的值
findParameterValue
和 getParameterValue
函数移到了 getQueryParam
函数findParameterValue
和 getParameterValue
。s.pt
和 AppMeasurement)。h
参数,允许代码查找在井号 (#
) 后找到的查询字符串参数