このプラグインはアドビコンサルティングによって提供されており、Adobe Analytics からより多くの価値を引き出すのに役立ちます。アドビカスタマーケアは、インストールやトラブルシューティングを含め、このプラグインに対するサポートを行いません。このプラグインに関するヘルプが必要な場合は、組織のアドビアカウントチームにお問い合わせください。担当コンサルタントとのミーティングを手配してもらってください。
rfl
プラグインを使用すると、区切られた文字列(例:events
、products
、list
など)から値を「安全に」削除することができます。このプラグインは、区切り文字を気にせずに、区切り文字列から特定の値を削除する場合に便利です。その他のプラグインの一部は、正しく実行するために、このコードに依存しています。一度に複数の Analytics 変数に対して特定の関数を実行する必要がない場合や、依存するプラグインを使用しない場合は、このプラグインは必要ありません。
プラグインでは次のロジックを使用します。
このプラグインは、Web SDK 内での使用はまだサポートされていません。
Adobeには、Adobe Analyticsで最もよく使用されるプラグインを使用できる拡張機能が用意されています。
Common Analytics Plugins プラグイン拡張機能を使用しない場合は、カスタムコードエディターを使用できます。
Analytics トラッキングオブジェクトをインスタンス化(s_gi
を使用)した後、AppMeasurement ファイルの任意の場所に次のコードをコピーして貼り付けます。実装時のコードのコメントとバージョン番号を記録しておくと、アドビが潜在的な問題のトラブルシューティングを行う際に役立ちます。
/******************************************* BEGIN CODE TO DEPLOY *******************************************/
/* Adobe Consulting Plugin: rfl (removeFromList) v2.1 */
function rfl(lv,vr,d1,d2,df){var b=lv,f=vr,e=d1,h=d2,g=df;if("-v"===b)return{plugin:"rfl",version:"2.1"};a:{if("undefined"!==typeof window.s_c_il){var c=0;for(var a;c<window.s_c_il.length;c++)if(a=window.s_c_il[c],a._c&&"s_c"===a._c){c=a;break a}}c=void 0}"undefined"!==typeof c&&(c.contextData.rfl="2.1");if(!b||!f)return"";c=[];a="";e=e||",";h=h||e;g=g||!1;b=b.split(e);e=b.length;for(var d=0;d<e;d++)-1<b[d].indexOf(":")&&(a=b[d].split(":"),a[1]=a[0]+":"+a[1],b[d]=a[0]),-1<b[d].indexOf("=")&&(a=b[d].split("="),a[1]=a[0]+"="+a[1],b[d]=a[0]),b[d]!==f&&a?c.push(a[1]):b[d]!==f?c.push(b[d]):b[d]===f&&g&&(a?c.push(a[1]):c.push(b[d]),g=!1),a="";return c.join(h)};
/******************************************** END CODE TO DEPLOY ********************************************/
rfl
関数は次の引数を使用します。
lv
(必須、文字列):区切られた値のリストを含む変数(または文字列)です。vr
(必須、文字列):lv
引数から削除する値です。rfl
を 1 回呼び出して複数の値を削除することをお勧めします。d1
(オプション、文字列):lv
引数で使用する区切り文字です。デフォルトはコンマ(,
)です。d2
(オプション、文字列):戻り文字列で使用する区切り文字です。デフォルトでは、d1
引数と同じ値になります。df
(オプション、ブール値):true
の場合、すべてのインスタンスではなく、lv
引数から vr
引数のインスタンスのみが強制的に複製されます。未設定の場合のデフォルト値は false
です。この関数を呼び出すと、lv
引数を含み、vr
引数で指定された値のインスタンス(または重複インスタンス)を一切含まない、変更された文字列が返されます。
以下の条件が当てはまる場合:
s.events = "event22,event24,event25";
次のコードが実行された場合、
s.events = rfl(s.events,"event24");
s.events の最終値は次のとおりです。
s.events = "event22,event25";
以下の条件が当てはまる場合:
s.events = "event22,event24,event25";
次のコードが実行された場合、
s.events = rfl(s.events,"event26");
s.events の最終値は次のとおりです。
s.events = "event22,event24,event25";
この例では、s.events に「event26」が含まれていないので、rfl の呼び出しでは s.events に変更が加えられていません。
以下の条件が当てはまる場合:
s.events = "event22,event24,event25";
次のコードが実行された場合、
s.events = rfl(s.events);
s.events の最終値は次のとおりです。
s.events = "";
rfl
の呼び出しで lv
引数または vr
引数が空白の場合、プラグインは何も返しません。
以下の条件が当てはまる場合:
s.prop4 = "hello|people|today";
次のコードが実行された場合、
s.eVar5 = 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 = rfl(s.prop4,"people");
s.prop4 の最終値は、引き続き次のようになります。
s.prop4 = "hello|people|today";
lv
引数の値にデフォルト値と異なる区切り文字(コンマなど)が含まれている場合は、d1
引数を必ず設定してください。
以下の条件が当てはまる場合:
s.events = "event22,event23,event25";
次のコードが実行された場合、
s.events = rfl(s.events,"EVenT23");
s.events の最終値は次のとおりです。
s.events = "event22,event23,event25";
この例は実用的ではありませんが、大文字と小文字を区別する値を渡す必要があることを示しています。
以下の条件が当てはまる場合:
s.events = "event22,event23:12345,event25";
次のコードが実行された場合、
s.events = rfl(s.events,"event23");
s.events の最終値は次のとおりです。
s.events = "event22,event25";
以下の条件が当てはまる場合:
s.events = "event22,event23:12345,event25";
次のコードが実行された場合、
s.events = rfl(s.events,"event23:12345");
s.events の最終値は次のとおりです。
s.events = "event22,event23:12345,event25";
シリアル化や数値/通貨の構文を使用するイベントを削除する必要がある場合は、rfl
の呼び出しでイベントのみ(シリアル化/数値/通貨の値を除く)を指定する必要があります。
以下の条件が当てはまる場合:
s.events = "event22,event23,event23,event23,event24,event25";
次のコードが実行された場合、
s.events = rfl(s.events,"event23");
s.events の最終値は次のとおりです。
s.events = "event22,event24,event25");
以下の条件が当てはまる場合:
s.events = "event22,event23,event23,event23,event24,event25";
次のコードが実行された場合、
s.events = rfl(s.events,"event23", "", "",true);
s.events の最終値は次のとおりです。
s.events = "event22,event23,event24,event25");
以下の条件が当てはまる場合:
s.events = "event22,event23,event23,event23,event24,event25";
次のコードが実行された場合、
s.events = rfl(s.events,"event23", "", "|",true);
s.events の最終値は次のとおりです。
s.events = "event22|event23|event24|event25");
以下の条件が当てはまる場合:
s.events = "event22,event23,event24,event25";
次のコードが実行された場合、
s.events = 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 = rfl(s.events,"event23");
s.events = rfl(s.events,"event24");
s.events の最終値は次のとおりです。
s.events = "event22,event25");
リストから削除する各値は、それぞれ独自の rfl
呼び出し内に含まれている必要があります。
以下の条件が当てはまる場合:
s.linkTrackVars = "events,eVar1,eVar2,eVar3";
次のコードが実行された場合、
s.linkTrackVars = rfl(s.linkTrackVars,"eVar2", ",", ",", false);
s.linkTrackVars の最終値は次のとおりです。
s.linkTrackVars = "events,eVar1,eVar3";
この rfl
呼び出しの最後の 3 つの引数(",",",",false)は、デフォルトの引数値と一致するので「無害」であり、設定は必須ではありません。
以下の条件が当てはまる場合:
s.events = "event22,event23,event24";
次のコードが実行された場合、
rfl(s.events,"event23");
s.events の最終値は、次のとおりです。
s.events = "event22,event23,event24";
この場合も、プラグインが返す値は 1 つのみであることに注意してください。lv
引数を使用して渡された変数は、実際には「リセット」されません。
join
プラグインの必要性を削除しました。