此插件由 Adobe Consulting 团队提供,旨在帮助您从 Adobe Analytics 中获取更多的价值。Adobe 客户关怀团队不提供对此插件的支持,包括安装或疑难解答。如果您需要关于此插件的帮助,请与贵组织的帐户管理员联系。他们可以为您安排与顾问的答疑会,以便您向顾问寻求帮助。
getPageName
插件可为当前 URL 创建一个简单易读且格式友好的版本。如果您希望在报告中使用易于设置且便于理解的 pageName
值,Adobe 建议您使用此插件。如果已经有 pageName
变量的命名结构(如通过数据层命名),则无需使用此插件。当没有其他解决方案可用来设置 pageName
变量时,最好使用此插件。
Adobe 提供了一个扩展,通过该扩展,您可以使用一些最常用的插件。
如果您不想使用插件扩展,则可以使用自定义代码编辑器。
在实例化(使用 s_gi
)Analytics 跟踪对象后,将以下代码复制并粘贴到 AppMeasurement 文件中的任意位置。在您的实施中保留代码的注释和版本号可帮助 Adobe 对任何潜在问题进行疑难解答。
/******************************************* BEGIN CODE TO DEPLOY *******************************************/
/* Adobe Consulting Plugin: getPageName v4.0 */
var getPageName=function(si,qv,hv,de){var c=location.hostname,f=location.pathname.substring(1).split("/"),h=f.length, g=location.search.substring(1).split("&"),l=g.length,k=location.hash.substring(1).split("&"),m=k.length;de=de?de:": ";si=si?si:c;qv= qv?qv:"";hv=hv?hv:"";if(1===h&&""===f[0])si=si+de+"home";else for(c=0;c<h;c++)si=si+de+decodeURIComponent(f[c]); if(qv&&(1!==l||""!== g[0]))for(f=qv.split(","),h=f.length,c=0;c<h;c++)for(qv=0;qv<l;qv++)if(f[c]===g[qv].split("=")[0]){si=si+de+decodeURIComponent(g[qv]);break}if(hv&&(1!==m||""!==k[0]))for(hv=hv.split(","),g=hv.length,c=0;c<g;c++)for(qv=0;qv<m;qv++)if(hv[c]===k[qv].split("=")[0]){si=si+de+decodeURIComponent(k[qv]);break}return si.substring(si.length-de.length)===de?si.substring(0,si.length-de.length):si};
/******************************************** END CODE TO DEPLOY ********************************************/
getPageName
方法使用以下参数:
si
(可选,字符串):插入到字符串开头的 ID,表示网站的 ID。此值可以是数字 ID 或友好名称。如果未设置此值,则将默认使用当前域。qv
(可选,字符串):以逗号分隔的查询字符串参数列表,其中包含在 URL 中找到的已添加到字符串的参数(如果可找到)hv
(可选,字符串):以逗号分隔的参数列表,其中包含在 URL 散列中找到的已添加到字符串的参数(如果可找到)de
(可选,字符串):用于拆分字符串各个部分的分隔符。默认使用管道分隔符 (|
)。此方法将返回一个包含当前 URL 的友好格式版本的字符串。此字符串通常会被分配给 pageName
变量,但也可以用于其他变量。
如果当前 URL 为…
https://mail.google.com/mail/u/0/#inbox
…并运行以下代码…
s.pageName = getPageName()
…s.pageName 的最终值将为:
s.pageName = "mail.google.com|mail|u|0";
如果当前 URL 为…
https://mail.google.com/mail/u/0/#inbox
…并运行以下代码…
s.pageName = getPageName("gmail")
…s.pageName 的最终值将为:
s.pageName = "gmail|mail|u|0";
如果当前 URL 为…
https://www.google.com/
…并运行以下代码…
s.pageName = getPageName()
…s.pageName 的最终值将为:
s.pageName = "www.google.com|home"
注意:当代码在不包含路径的 URL 上运行时,代码会始终在返回值的末尾处添加“home”值
如果当前 URL 为…
https://www.google.com/
…并运行以下代码…
s.pageName = getPageName("google","","","|")
…s.pageName 的最终值将为:
s.pageName = "google|home"
如果当前 URL 为…
https://www.hotelrooms.com/en/booking/room-booking.html?cid=1235#/step2&arrive=2018-05-26&depart=2018-05-27&numGuests=2
…并运行以下代码…
s.pageName = getPageName()
…s.pageName 的最终值将为:
s.pageName = "www.hotelrooms.com|en|booking|room-booking.html"
但是,如果运行以下代码…
s.pageName = getPageName("hotelrooms","cid","arrive,numGuests",": ")
…s.pageName 的最终值将为:
s.pageName = "hotelrooms: en: booking: room-booking.html: cid=1235: arrive=2018-05-26: numGuests=2"
不论是否存在 Adobe Analytics 的 AppMeasurement 对象(即“s”对象),4.0 及更高版本的 getPageName 插件都可以正常运行。如果选择升级到此版本,请务必从调用中删除所有“s”对象的实例,以更改用于调用此插件的代码。
例如,将以下代码:
s.pageName = s.getPageName();
…更改为下列代码:
s.pageName = getPageName();