サーバーサイドコア拡張機能の概要

Core 拡張機能は、Adobe Experience Platform Launch Server Side でリリースされたデフォルトの拡張機能です。

このリファレンスは、この拡張機能を使用してルールを作成するときに使用できるオプションに関する情報です。

Core 拡張機能の条件のタイプ

ここでは、Core 拡張機能で使用できる条件のタイプについて説明します。これらの条件タイプは、標準ロジックと例外ロジックのどちらででも使用できます。

カスタムコード

イベントの条件として使用する必要があるカスタムコードを指定します。組み込みコードエディターを使用してカスタムコードを入力します。Platform Launch Server Side は ES6 をサポートしています。

  1. Open Editor を選択します。
  2. カスタムコードを入力します。
  3. Save を選択します。

カスタムコード内のデータ要素の値にアクセスするには、getDataElementValue メソッドを使用します。例えば、「productName」という名前のデータ要素の値を取得するには、次のように記述します。

getDataElementValue('productName') 

ruleStash オブジェクト

カスタムコードでは、ruleStash オブジェクトも使用できます。

arc.ruleStash: Object<string, *>`
logger.log(context.arc.ruleStash);

ruleStash は、アクションモジュールからすべての結果を収集するオブジェクトです。

各拡張機能には独自の名前空間があります。例えば、拡張機能の名前が send-beacon である場合、send-beacon アクションの結果はすべて ruleStash['send-beacon'] 名前空間に保存されます。

名前空間は拡張機能ごとに一意で、初めは undefined 値が含まれています。

名前空間は、各アクションから返された結果で上書きされます。名前空間では、特別な処理は実行されません。例えば、generate-fullnamegenerate-fulladdress という 2 つのアクションを含む transform 拡張機能がある場合、これら 2 つのアクションを 1 つのルールに追加します。

generate-fullname アクションの結果が Firstname Lastname の場合、アクションが完了すると、ルールが次のように表示されます。

{
  transform: 'Firstname Lastname`
}

generate-address アクションの結果が 3900 Adobe Way の場合、アクションが完了すると、ルールが次のように表示されます。

{
  transform: '3900 Adobe Way`
}

ルール内に Firstname Lastname が存在していないことに注意してください。これは、generate-address アクションによって、この部分が住所で上書きされたためです。

ruleStashtransform 名前空間内に両方のアクションの結果を格納したい場合は、次の例のようなアクションモジュールを記述します。

module.exports = (context) => {
  let transformRuleStash = context.arc.ruleStash.transform;
  if (!transformRuleStash) {
    transformRuleStash = {};
  }
  transformRuleStash.fullName = 'Firstname Lastname';
  return transformRuleStash;
}

このアクションを初めて実行する場合、ruleStashundefined となり、空のオブジェクトで初期化されます。次回アクションが実行されると、以前に呼び出されたときの ruleStash がアクションによって返されます。オブジェクトを ruleStash として使用すると、他のアクションによって以前設定されたデータが拡張機能から失われることなく、新しいデータを追加できます。

この場合は、常に完全な拡張機能ルールを返すように注意する必要があります。5 などの値のみを返す場合、ルールは次のようになります。

{
  transform: 5
}

Value Comparison

2 つの値を比較して、この条件が true を返すかどうかを判断します。

複数の条件を持つルールがある場合、この条件で true が返されても、他の条件が false と評価されるか、いずれかの例外が true と評価されて、ルールが実行されない可能性があります。

  1. 値を指定します。
  2. 演算子を選択します。詳細については、次の値比較演算子のリストを参照してください。
  3. 比較用に別の値を指定します。

次の値比較演算子を使用できます。

Equal:​厳密でない比較を使用して 2 つの値が等しい場合(JavaScript では == 演算子)、true を返します。値には任意のタイプを指定できます。値フィールドに truefalsenull​または undefined などの単語を入力すると、その単語は文字列として比較され、同等の JavaScript には変換されません。

Does Not Equal:​厳密でない比較で 2 つの値が等しくない場合(JavaScript では= 演算子)、条件は true を返します。値には任意のタイプを指定できます。値フィールドに truefalsenull​または undefined などの単語を入力すると、その単語は文字列として比較され、同等の JavaScript には変換されません。

Contains:​最初の値に 2 番目の値が含まれている場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は false を返します。

Does Not Contain:​最初の値に 2 番目の値が含まれていない場合、条件は true を返します。数値は文字列に変換されます。数字または文字列以外の値を指定すると、条件は true を返します。

Starts With:​最初の値が 2 番目の値で開始する場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は false を返します。

Does Not Start With:​最初の値が 2 番目の値で始まらない場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は true を返します。

Ends With:​最初の値が 2 番目の値で終わる場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は false を返します。

Does Not End With:​最初の値が 2 番目の値で終わらない場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は true を返します。

Matches Regex:​最初の値が正規表現と一致する場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は false を返します。

Does Not Match Regex:​最初の値が正規表現と一致しない場合、条件は true を返します。数値は文字列に変換されます。数値または文字列以外の値を指定すると、条件は true を返します。

Is Less Than:​最初の値が 2 番目の値より小さい場合、条件は true を返します。数字を表す文字列は数値に変換されます。数値または変換可能な文字列以外の値を指定すると、条件は false を返します。

Is Less Than Or Equal To:​最初の値が 2 番目の値以下の場合、条件は true を返します。数字を表す文字列は数値に変換されます。数値または変換可能な文字列以外の値を指定すると、条件は false を返します。

Is Greater Than:​最初の値が 2 番目の値以上の場合、条件は true を返します。数字を表す文字列は数値に変換されます。数値または変換可能な文字列以外の値を指定すると、条件は false を返します。

Is Greater Than Or Equal To:​最初の値が 2 番目の値以上の場合、条件は true を返します。数字を表す文字列は数値に変換されます。数値または変換可能な文字列以外の値を指定すると、条件は false を返します。

Is True:​値が true のブール値の場合、条件は true を返します。他のタイプの場合、指定した値はブール値に変換されません。値が true のブール値以外の値を指定すると、条件は false を返します。

Is Truthy:​ブール値に変換した後、値が true の場合、条件は true を返します。Truthy な値の例については、MDN の Truthy に関するドキュメントを参照してください。

Is False:​値が false のブール値の場合、条件は true を返します。他のタイプの場合、指定した値はブール値に変換されません。値が false のブール値以外の値を指定すると、条件は false を返します。

Is Falsy:​ブール値に変換した後、値が false の場合は、条件は true を返します。Falsy な値の例については、MDN の Falsy に関するドキュメントを参照してください。

Core 拡張機能のアクションタイプ

ここでは、Core 拡張機能で使用できるアクションタイプについて説明します。

カスタムコード

イベントのトリガー後に実行して条件を評価するコードを提供します。Platform Launch Server Side は ES6 をサポートしています。

  1. アクションコードに名前を付けます。
  2. Open Editor を選択します。
  3. コードを編集して、「Save」を選択します。

カスタムコード内のデータ要素の値にアクセスするには、getDataElementValue メソッドを使用します。例えば、productName という名前のデータ要素の値を取得するには、次のように記述します。

getDataElementValue('productName') 

Platform Launch Server Side のアクションは順番に実行されます。また、1 つのアクション内のカスタムコードで、後続のアクションに使用できる値を返すこともできます。返される値は、そのアクション内のコード、または外部ソースに対する呼び出しの応答の本文から取得できます。Core 拡張機能が使用される 1 つのルール内で以前に実行したアクションのデータを参照するには、Path タイプのデータ要素を作成し、次のパスを使用して、Core 拡張機能内のカスタムコードで定義された productCategory という変数の値を参照します。

arc.ruleStash.[Extension-Name].[key-as-defined-by-action] 

arc.ruleStash.core.productCategory  

Core 拡張機能データ要素のタイプ

データ要素のタイプは、拡張機能によって決まります。タイプはいくつでも作成することができます。

以降の節では、Core 拡張機能で使用できるデータ要素のタイプについて説明します。その他の拡張機能は、他のタイプのデータ要素を使用します。

カスタムコード

カスタム JavaScript を UI に入力するには、「Open Editor」を選択してエディターウィンドウにコードを挿入します。

データ要素の値として使用する値を示すために、エディターウィンドウで return ステートメントを記述する必要があります。return ステートメントを含めない場合、または値 null または undefined が返される場合、データ要素のデフォルト値には null または undefined が反映されます。

カスタムコード内のデータ要素の値にアクセスするには、getDataElementValue メソッドを使用します。例えば、productName という名前のデータ要素の値を取得するには、次のように記述します。

getDataElementValue('productName') 

例:

return getDataElementValue('section').concat(getDataElementValue('pName')); 

Path

Adobe Experience Platform Edge ネットワークに送信されるイベントのキーと値のペアへのパスは、パスデータ要素タイプを使用して参照できます。

イベントのオブジェクト全体を参照するには、パスとして「arc」を入力します。arc は「Adobe Resource Context」を表し、Adobe Experience Platform Edge ネットワークに送信されるイベントの最上位パスです。

例えば、クライアントから Edge ネットワークへの interact 呼び出しには、ブラウザーコンソールから確認できる次のリクエストが含まれます。

"events": [ 
        { 
             "xdm": { 
                    "page": { 
                            "btnHover": false, 
                            "pageName": "We Travel Home Page", 
                            "siteSection": "Landing Page" 
                     }] 

pageName を参照するパスを入力するには、パスフィールドに次のように入力します。

arc.event.xdm.page.pageName 
メモ

クライアントからの interact 呼び出しには events が含まれていますが、Platform Launch Server Side では event が必要です。これは、Platform Launch Server Side では、クライアントで見られるような複数のイベントのバッチとしてではなく、各イベントが個別に調査されるためです。

このページ

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now