決定ポリシーでのフラグメントの活用 fragments
決定ポリシーにフラグメントを含む決定項目が含まれている場合は、決定ポリシーコードでこれらのフラグメントを活用できます。詳しくは、フラグメントを参照してください。
例えば、複数のモバイルデバイスモデルに対して異なるコンテンツを表示するとします。決定ポリシーで使用している決定項目に、これらのデバイスに対応するフラグメントが追加されていることを確認します。方法についてはこちらを参照してください。
完了したら、次のいずれかの方法を使用できます。
以下のコードブロックを決定ポリシーコードにコピー&ペーストするだけです。variable をフラグメント ID に、placement をフラグメント参照キーに置き換えます。
| code language-none |
|---|
|
-
「ヘルパー関数」に移動し、コードパネルに Let 関数
{% let variable = expression %} {{variable}}を追加します。ここでフラグメントの変数を宣言できます。
-
Map/Get 関数
{%= get(map, string) %}を使用して、式を作成します。マップは、決定項目で参照されるフラグメントです。文字列は、決定項目で フラグメント参照キー として入力したデバイスモデルに指定できます。
-
また、このデバイスモデル ID を含むコンテキスト属性を使用することもできます。
-
フラグメントに選択した変数をフラグメント ID として追加します。
フラグメント ID と参照キーは、決定項目の「フラグメント」セクションから選択されます。
フラグメント使用時のガードレール fragments-guardrails
決定項目とコンテキストの属性
Journey Optimizer のフラグメントでは、決定項目属性とコンテキスト属性はデフォルトでサポートされていません。ただし、以下に説明するように、代わりにグローバル変数を使用できます。
例えば、フラグメントで sport 変数を使用するとします。
-
フラグメント内でこの変数を参照します。例:
code language-none Elevate your practice with new {{sport}} gear! -
決定ポリシーブロック内で、Let 関数を使用して変数を定義します。以下の例では、決定項目属性を使用して sport が定義されています。
code language-none {#each decisionPolicy.13e1d23d-b8a7-4f71-a32e-d833c51361e0.items as |item|}} {% let sport = item._cjmstage.value %} {{fragment id = get(item._experience.decisioning.offeritem.contentReferencesMap, "placement1").id }} {{/each}}
決定項目フラグメントコンテンツの検証
-
これらのフラグメントは動的な性質を持つため、キャンペーンで使用する場合、決定項目で参照されるフラグメントでは、キャンペーンコンテンツ作成時のメッセージ検証がスキップされます。
-
フラグメントコンテンツの検証は、フラグメントの作成中と公開中にのみ行われます。
-
JSON タイプの式フラグメントの場合、フラグメントを保存すると、コンテンツは構文によって検証されます。 検証エラーは、アラートとして表示されます。
実行時に、キャンペーンコンテンツ(決定項目のフラグメントコンテンツを含む)が検証されます。検証に失敗した場合、キャンペーンはレンダリングされません。