此外掛程式由 Adobe Consulting 提供,協助您從 Adobe Analytics 中獲得更多價值。Adobe 客戶服務不提供此外掛程式的支援,包括安裝或疑難排解在內。如果您需要與此外掛程式有關的協助,請聯絡貴組織的客戶經理。客戶經理可安排您與顧問會面以尋求協助。
rfl
外掛程式可讓您「安全地」從分隔字串中移除值,例如 events
、products
、list
等。如果您想從分隔字串中移除特定值,而不想顧慮分隔字元,此外掛程式非常實用。其他多個外掛程式依賴此程式碼才能正確運作。如果您不需要一次對多個 Analytics 變數執行特定函數,或者您未使用任何相依外掛程式,就不需要此外掛程式。
此外掛程式使用下列邏輯:
Adobe 提供一個擴充功能,可讓您使用最常用的外掛程式。
如果您不想使用外掛程式擴充功能,可以使用自訂程式碼編輯器。
Analytics 追蹤物件實例化 (使用 s_gi
) 後,將下列程式碼複製並貼到 AppMeasurement 檔案中的任何位置。保留您實施中的程式碼備註和版本號碼,有助於 Adobe 疑難排解任何可能問題。
/******************************************* BEGIN CODE TO DEPLOY *******************************************/
/* Adobe Consulting Plugin: rfl (removeFromList) v2.01 */
s.rfl=function(lv,vr,d1,d2,df){if(!lv||!vr)return"";var d=[],b="";d2=d2?d2:d1;df=df?!0:!1;lv=lv.split(d1?d1:",");d1=lv.length;for(var c=0;c<d1;c++)-1<lv[c].indexOf(":")&&(b=lv[c].split(":"),b[1]=b[0]+":"+b[1],lv[c]=b[0]),-1<lv[c].indexOf("=")&&(b=lv[c].split("="), b[1]=b[0]+"="+b[1],lv[c]=b[0]),lv[c]!==vr&&b?d.push(b[1]):lv[c]!==vr?d.push(lv[c]):lv[c]===vr&&df&&(b?d.push(b[1]):d.push(lv[c]),df=!1),b="";return d.join(d2)};
/******************************************** END CODE TO DEPLOY ********************************************/
rfl
方法使用以下引數:
lv
(必要,字串):包含分隔值清單的變數 (或字串)vr
(必要,字串):您要從 lv
引數中移除的值。Adobe 建議您不要在 rfl
單一呼叫期間移除多個值。d1
(選用,字串):lv
引數使用的分隔字元。預設為逗號 (,
)。d2
(選用,字串):您要讓傳回字串使用的分隔字元。預設為與 d1
引數相同的值。df
(選用,布林值):如果為 true
,則僅強制從 lv
引數中複製 vr
引數的例項,而非所有例項。若未設定,則預設為 false
。呼叫此方法會傳回包含 lv
引數的修改字串,但字串中不包含 vr
引數中所指定值的任何例項 (或重複例項)。
若…
s.events = "event22,event24,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event24");
…s.events 的最終值將為:
s.events = "event22,event25";
若…
s.events = "event22,event24,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event26");
…s.events 的最終值將為:
s.events = "event22,event24,event25";
在此範例中,rfl 呼叫沒有對 s.events 做任何變更,因為 s.events 中不包含「event26」
若…
s.events = "event22,event24,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events);
…s.events 的最終值將為:
s.events = "";
如果 s.rfl 呼叫中的 lv 引數或 vr 引數為空白,則外掛程式將不會傳回任何內容
若…
s.prop4 = "hello|people|today";
…且下列程式碼執行…
s.eVar5 = s.rfl(s.prop4,"people","|");
…s.prop4 的最終值仍會是…
s.prop4 = "hello|people|today";
…但 s.eVar5 的最終值將為:
s.eVar5 = "hello|today";
請記得,外掛程式只會傳回值,實際上並不會「重設」透過 lv 引數傳入的變數。
若…
s.prop4 = "hello|people|today";
…且下列程式碼執行…
s.prop4 = s.rfl(s.prop4,"people");
…s.prop4 的最終值仍會是…
s.prop4 = "hello|people|today";
若 lv 引數值包含與預設值不同的分隔字元 (即逗號),請務必設定 d1 引數。
若…
s.events = "event22,event23,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"EVenT23");
…s.events 的最終值將為:
s.events = "event22,event23,event25";
雖然此範例並不實際,但呈現出傳入區分大小寫值的必要性。
若…
s.events = "event22,event23:12345,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event23");
…s.events 的最終值將為:
s.events = "event22,event25";
若…
s.events = "event22,event23:12345,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event23:12345");
…s.events 的最終值將為:
s.events = "event22,event23:12345,event25";
需要移除使用序列化及/或數值/貨幣語法的事件時,應在 s.rfl 呼叫中僅指定事件本身 (亦即不含序列化/數值/貨幣值)。
若…
s.events = "event22,event23,event23,event23,event24,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event23");
…s.events 的最終值將為:
s.events = "event22,event24,event25");
若…
s.events = "event22,event23,event23,event23,event24,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event23", "", "",true);
…s.events 的最終值將為:
s.events = "event22,event23,event24,event25");
若…
s.events = "event22,event23,event23,event23,event24,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event23", "", "|",true);
…s.events 的最終值將為:
s.events = "event22|event23|event24|event25");
若…
s.events = "event22,event23,event24,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event23,event24");
…s.events 的最終值將為:
s.events = "event22,event23,event24,event25";
不支援在 vr 引數中設定多個值。上述範例中,rfl 邏輯會先分割 lv 引數 (即 s.events) 中的值,然後嘗試比對每個分隔值與完整 vr 引數值 (即「event23,event24」)。
若…
s.events = "event22,event23,event24,event25";
…且下列程式碼執行…
s.events = s.rfl(s.events,"event23");
s.events = s.rfl(s.events,"event24");
…s.events 的最終值將為:
s.events = "event22,event25");
從清單中移除的每個值都應包含在其自己的 s.rfl 呼叫中。
若…
s.linkTrackVars = "events,eVar1,eVar2,eVar3";
…且下列程式碼執行…
s.linkTrackVars = s.rfl(s.linkTrackVars,"eVar2", ",", ",", false);
…s.linkTrackVars 的最終值將為:
s.linkTrackVars = "events,eVar1,eVar3";
此 s.rfl 呼叫結尾的最後三個引數 (即「,」、「,」、false) 並非必要,但是也不會因為存在而「影響任何項目」,因為它們符合預設設定。
若…
s.events = "event22,event23,event24";
…且下列程式碼執行…
s.rfl(s.events,"event23");
…s.events 的最終值仍會是:
s.events = "event22,event23,event24";
再次強調,請記得,外掛程式只會傳回值,實際上並不會「重設」透過 lv 引數傳入的變數。
join
外掛程式的必要性。