---
title: "プログラム可能な意思決定の例"
slug: "examples-of-programmable-decisions"
abstract: "意思決定モデルのバリアントで使うJavaScriptの書き始めに役立つプログラム可能な意思決定の例を提供します。"
---
# プログラム可能な意思決定の例

以下は、意思決定モデルの変種でJavaScriptを書き始める際に役立つプログラム可能な意思決定の例です。

## 例1:プログラム可能な決定でカスタム属性を取得する

組織固有のカスタムゲスト属性を意思決定の入力として活用できます。例えば、ゲストのロイヤルティ会員ティアを意思決定モデルのバリアントの入力として使うことができます。これにより、ゲストの現在の会員ティアに関連するオファーやコンテンツのみを表示することができます。

> !注プログラム可能な決定のために **、返還タイプ** を**マップ**として設定してください。

(function () {
 // change the guest data extension details for the required one. Snippet below gives
 // "name": "loyalty"
 // "key": "privilegeClub"

 var loyaltyData = {};
 for (var i = 0; i < guest.dataExtensions.length; i++) {
 if (guest.dataExtensionsi.name === 'loyalty' && guest.dataExtensionsi.key === 'privilegeClub') {
 loyaltyData = guest.dataExtensionsi.values;
 return loyaltyData;
 }
 }

 return loyaltyData;
})();

## 例2:プログラム可能な決定におけるクローズドセッションの通貨を取得する

ゲストがクローズドセッションで選択した通貨でパーソナライズする際の一貫性を確保するために、クローズドセッションの通貨を取得するプログラム可能な意思決定を作成できます。これはリターゲティングを目的とした実験で特に有用です。

> !注プログラム可能な決定の **リターンタイプ** を必ず**String**として設定してください。

(function () {
 // for Abandoned Cart or Session Closed triggered flows, gets the closed session currency
 var sessionRef;
 if (entity) {
 sessionRef = entity.ref;
 }

 var sessionCurrency = "";
 for (var i = 0; i < guest.sessions.length; i++) {
 var session = guest.sessionsi;
 if (session.ref === sessionRef) {
 sessionCurrency = session.currency;
 break;
 }
 }
 return sessionCurrency;
})();

## 決定テーブルにおけるプログラム可能な出力の使用

プログラム可能な意思決定を作成した後、その出力を意思決定テーブルの入力として利用できます。これにより、カスタムJavaScriptロジックとルールベースの意思決定を組み合わせることができます。

**例**2の出力を意思決定テーブルで活用し、通貨固有のオファーや価格設定を作成する方法の例を示します。

ステップ1:例2のプログラマブルからの出力

currencyの値を持つサンプルゲスト入力が*USD*の場合、プログラム可能な名前の*Programmable 1*は閉鎖セッションから次のような出力を返します。

"outputs": 
 {
 "sessionCurrency": "USD"
 }
 

ステップ2:入力列をプログラム可能なものに設定する

プログラマブルのsessionCurrency出力を決定テーブルで使用するには:

1.  入力列を追加し、プログラム可能な決定を入力として選択します。この例では、プログラム可能な名前の *Programmable 1*を使用しています。
2.  入力列については以下を指定します。
    -   **列名 - 入力に使用する名前。(例:***Guest currency*
    -   **タイプを選択する** - 指定されたプログラム可能な出力タイプに基づいて正しいデータタイプを選択します。(例: *String*)
3.  **入力**列が追加されたら、通常通り決定テーブルの設定を続け、出力列を設定しルールを追加してください。