このプラグインはアドビコンサルティングによって提供されており、Adobe Analytics からより多くの価値を引き出すのに役立ちます。アドビカスタマーケアは、インストールやトラブルシューティングを含め、このプラグインに対するサポートをおこないません。このプラグインに関するヘルプが必要な場合は、貴社のアカウントマネージャーにお問い合わせになって、担当コンサルタントとのミーティングを手配してもらってください。
apl
プラグインを使用すると、リスト区切りの変数(例:events
、linkTrackVars
、list
)に新しい値を安全に追加できます。
区切り文字付きの値の文字列を含む既存の変数に新しい値を追加する場合は、このプラグインを使用することをお勧めします。区切り文字付きの値を含む変数に文字列を連結する場合は、このプラグインは不要です。
アドビでは、最も一般的に使用されるプラグインを使用できる拡張機能を提供しています。
プラグイン拡張機能を使用しない場合は、カスタムコードエディターを使用できます。
Analytics トラッキングオブジェクトをインスタンス化(s_gi
を使用)した後、AppMeasurement ファイルの任意の場所に次のコードをコピーして貼り付けます。実装時のコードのコメントとバージョン番号を記録しておくと、アドビが潜在的な問題のトラブルシューティングをおこなう際に役立ちます。
/******************************************* BEGIN CODE TO DEPLOY *******************************************/
/* Adobe Consulting Plugin: apl (appendToList) v4.0 */
function apl(lv,va,d1,d2,cc){var b=lv,d=va,e=d1,c=d2,g=cc;if("-v"===b)return{plugin:"apl",version:"4.0"};var h=function(){if("undefined"!==typeof window.s_c_il)for(var k=0,b;k<window.s_c_il.length;k++)if(b=window.s_c_il[k],b._c&&"s_c"===b._c)return b}();"undefined"!==typeof h&&(h.contextData.apl="4.0");window.inList=window.inList||function(b,d,c,e){if("string"!==typeof d)return!1;if("string"===typeof b)b=b.split(c||",");else if("object"!==typeof b)return!1;c=0;for(a=b.length;c<a;c++)if(1==e&&d===b[c]||d.toLowerCase()===b[c].toLowerCase())return!0;return!1};if(!b||"string"===typeof b){if("string"!==typeof d||""===d)return b;e=e||",";c=c||e;1==c&&(c=e,g||(g=1));2==c&&1!=g&&(c=e);d=d.split(",");h=d.length;for(var f=0;f<h;f++)window.inList(b,d[f],e,g)||(b=b?b+c+d[f]:d[f])}return b};
/******************************************** END CODE TO DEPLOY ********************************************/
apl
メソッドでは、次の引数を使用します。
lv
(必須、文字列):新しい値を追加する項目の区切りリストを含む変数です。vta
(必須、文字列):lv
引数の値に追加する新しい値のコンマ区切りリストです。d1
(オプション、文字列):lv
引数に既に含まれる個々の値を区切るために使用される区切り文字です。設定されていない場合は、デフォルトでコンマ(,
)が使用されます。d2
(オプション、文字列):出力の区切り文字です。設定されていない場合のデフォルト値は、d1
と同じ値です。cc
(オプション、ブール値):チェックで大文字と小文字が区別されるかどうかを示すフラグです。true
の場合、重複チェックでは大文字と小文字が区別されます。false
の場合や未設定の場合、重複チェックでは大文字と小文字が区別されません。デフォルト値は false
です。apl
メソッドは、lv
引数の値に、vta
引数内の重複しない値を加えた値を返します。
以下の条件が当てはまる場合:
s.events = "event22,event24";
次のコードが実行された場合、
s.events = s.apl(s.events, "event23");
s.events の最終値は次のとおりです。
s.events = "event22,event24,event23";
以下の条件が当てはまる場合:
s.events = "event22,event23";
次のコードが実行された場合、
s.events = s.apl(s.events, "event23");
s.events の最終値は次のとおりです。
s.events = "event22,event23";
この例では、s.events に既に「event23」が含まれているので、apl 呼び出しで s.events は変更されませんでした。
以下の条件が当てはまる場合:
s.events = ""; //blank value
次のコードが実行された場合、
s.events = s.apl(s.events, "event23");
s.events の最終値は次のとおりです。
s.events = "event23";
以下の条件が当てはまる場合:
s.prop4 = "hello|people";
次のコードが実行された場合、
s.eVar5 = s.apl(s.prop4, "today", "|");
s.prop4 の最終値は、引き続き次のとおりです。
s.prop4 = "hello|people";
ただし、s.eVar5 の最終値は次のとおりです。
s.eVar5 = "hello|people|today";
プラグインは値を返すだけであることに注意してください。lv 引数を使用して渡された変数は、必ずしも「リセット」されるわけではありません。
以下の条件が当てはまる場合:
s.prop4 = "hello|people";
次のコードが実行された場合、
s.prop4 = s.apl(s.prop4, "today");
s.prop4 の最終値は次のとおりです。
s.prop4 = "hello|people,today";
区切り文字は、lv 引数の値と d1 および d2 引数の値の間で一貫性を保つようにしてください
以下の条件が当てはまる場合:
s.events = "event22,event23";
次のコードが実行された場合、
s.events = s.apl(s.events,"EVenT23", ",", ",", true);
s.events の最終値は次のとおりです。
s.events = "event22,event23,EVentT23";
この例は実用的ではありませんが、大文字と小文字を区別するフラグを使用する際に注意が必要であることを示しています。
以下の条件が当てはまる場合:
s.events = "event22,event23";
次のコードが実行された場合、
s.events = s.apl(s.events, "event23,event24,event25");
s.events の最終値は次のとおりです。
s.events = "event22,event23,event24,event25");
このプラグインでは、「event23」は s.events に既に存在するので追加しません。ただし、event24 と event25 はどちらも s.events に含まれていないため追加されます。
以下の条件が当てはまる場合:
s.linkTrackVars = "events,eVar1";
次のコードが実行された場合、
s.linkTrackVars = s.apl(s.linkTrackVars, "campaign", ",", ",", false);
s.linkTrackVars の最終値は次のとおりです。
s.linkTrackVars = "events,eVar1,campaign";
この apl 呼び出しの最後の 3 つの引数(",",",",false)は、デフォルトの引数値と一致するので、設定する必要はありませんが、「無害」です。
以下の条件が当てはまる場合:
s.events = "event22,event24";
次のコードが実行された場合、
s.apl(s.events, "event23");
s.events の最終値は次のとおりです。
s.events = "event22,event24";
プラグインを単独で(変数に戻り値を割り当てずに)実行しても、lv 引数を通じて渡された変数は実際には「リセット」されません。
以下の条件が当てはまる場合:
s.list2 = "casesensitivevalue|casesensitiveValue"
次のコードが実行された場合、
s.list2 = s.apl(s.list2, "CasESensiTiveValuE", "|", "-", true);
s.list2 の最終値は次のとおりです。
s.list2 = "casesensitivevalue-casesensitiveValue-CasESensiTiveValuE"
2 つの区切り文字引数が異なるので、渡される値は最初の区切り文字引数( )で区切られ、2 番目の区切り文字引数(-)で結合されます。
apl
呼び出しの互換性の問題を修正しました。inList 2.1
を追加しました。d2
引数が設定されていない場合、デフォルトで d1
引数の値になるようになりました。vta
引数は、一度に複数の値を指定できるようになりました。d2
引数を追加しました。cc
引数をブール値に変更しました。inList
メソッドを使用するようになりました。d
(区切り文字)引数がオプションになりました(デフォルトでコンマ)。u
(大文字と小文字の区別フラグ)引数がオプションになりました(デフォルトでは大文字と小文字が区別されません)。u
(大文字と小文字の区別のフラグ)引数に関係なく、プラグインは、値がリストに既に存在する場合に、値をリストに追加しなくなりました。