此外掛程式由 Adobe Consulting 提供,協助您從 Adobe Analytics 中獲得更多價值。Adobe 客戶服務不提供此外掛程式的支援,包括安裝或疑難排解在內。如果您需要與此外掛程式有關的協助,請聯絡貴組織的客戶經理。客戶經理可安排您與顧問會面以尋求協助。
getPageName
外掛程式可為目前的 URL 建立易讀、好記的格式化版本。如果您想要在報表中輕鬆設定且理解的 pageName
值,Adobe 建議使用此外掛程式。如果您已有 pageName
變數的命名結構 (例如透過資料層),就不需要此外掛程式。若您沒有其他解決方案可設定 pageName
變數,最好使用此外掛程式。
Adobe 提供一個擴充功能,可讓您使用最常用的外掛程式。
如果您不想使用外掛程式擴充功能,可以使用自訂程式碼編輯器。
Analytics 追蹤物件實例化 (使用 s_gi
) 後,將下列程式碼複製並貼到 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 雜湊中找到的逗號分隔參數清單,若在 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"
getPageName 外掛程式的 4.0+ 版不依存於要執行的 Adobe Analytics AppMeasurement 物件 (即「s」物件) 之存在。如果您選擇升級為此版本,請務必移除呼叫中「s」物件的任何例項,以變更呼叫該外掛程式的程式碼。例如,請變更下列項目:
s.pageName = s.getPageName();
…變更為這個:
s.pageName = getPageName();