このページ: Adobe Journey OptimizerでupperCase、各、if ヘルパー関数を使用してメール本文をパーソナライズする、カート放棄の使用例に従います。
この例では、メールメッセージの本文をパーソナライズします。 このメッセージは、買い物かごに商品が残っているが購入を完了していない顧客をターゲットにします。
次のタイプのヘルパー関数を使用します。
➡️ ヘルパー関数の使用方法について詳しくは、このビデオを参照してください。
開始する前に、次の要素の設定方法を理解しておく必要があります。
次の手順に従います。
手順 1:最初のイベントと関連ジャーニーの作成 create-context
買い物かごの内容は、ジャーニーからのコンテキスト情報です。 したがって、買い物かご固有の情報をメールに追加する前に、最初のイベントとメールをジャーニーに追加する必要があります。
-
スキーマに
productListItems配列が含まれるイベントを作成します。 -
この配列のすべてのフィールドを、このイベントのペイロードフィールドとして定義します。
製品リスト項目データタイプについて詳しくは、Adobe Experience Platform ドキュメントを参照してください。
-
このイベントで開始されるジャーニーを作成します。
-
ジャーニーに メール アクティビティを追加します。
手順 2: メールの作成 configure-email
-
メールアクティビティで、「コンテンツを編集」をクリックしたあと、「E メールデザイナー」をクリックします。
-
E メールデザイナーホームページの左側のパレットから、3 つの構造コンポーネントをメッセージの本文にドラッグ&ドロップします。
-
HTML コンテンツコンポーネントを、それぞれの新規構造コンポーネントにドラッグ&ドロップします。
手順 3: 顧客の名(大文字)の挿入 uppercase-function
-
E メールデザイナーのホームページで、顧客の名を追加する HTML コンポーネントをクリックします。
-
コンテキストツールバーで、「ソースコードを表示」をクリックします。
-
HTML を編集ウィンドウで、
upperCase文字列関数を追加します。-
左側のメニューで、「ヘルパー関数」を選択します。
-
検索フィールドを使用して、「uppercase」を検索します。
-
検索結果から、
upperCase関数を追加します。 それには、{%= upperCase(string) %}: stringの横のプラス記号(+)をクリックします。式エディターには、次の式が表示されます。
code language-handlebars {%= upperCase(string) %}
-
-
式から「string」プレースホルダーを削除します。
-
名トークンを追加します。
-
左側のメニューで、「プロファイル属性」を選択します。
-
ユーザー/姓名を選択します。
-
式に 名 トークンを追加します。
式エディターには、次の式が表示されます。
code language-handlebars {%= upperCase(profile.person.name.firstName) %}
ユーザー名データタイプについて詳しくは、Adobe Experience Platform ドキュメントを参照してください。
-
-
「 検証」をクリックしてから、「保存」をクリックします。
-
メッセージを保存します。
手順 4:買い物かご内の商品リストの挿入 each-helper
このステップでは、イベントデータを反復処理します。 異なるデータソース(イベント、カスタムアクション応答、その他のコンテキストデータ)に対する反復の包括的な例については、Handlebarsを使用したコンテキストデータの反復を参照してください。
-
メッセージコンテンツを再度開きます。
-
E メールデザイナーのホームページで、買い物かごの内容を一覧表示する HTML コンポーネントをクリックします。
-
コンテキストツールバーで、「ソースコードを表示」をクリックします。
-
HTML を編集ウィンドウで、
eachヘルパーを追加します。-
左側のメニューで、「ヘルパー関数」を選択します。
-
検索フィールドを使用して、「each」を検索します。
-
検索結果から、
eachヘルパーを追加します。式エディターには、次の式が表示されます。
code language-handlebars {{#each someArray as |variable|}} {{/each}}
-
-
式に
productListItems配列を追加します。-
式から「someArray」プレースホルダーを削除します。
-
左側のメニューで、「コンテキスト属性」を選択します。
コンテキスト属性は、ジャーニーコンテキストがメッセージに渡された後でのみ使用できます。
-
Journey Optimizer/イベント/event_name を選択し、productListItems ノードを展開します。
この例では、event_name はイベントの名前を表します。
-
式に 製品 トークンを追加します。
式エディターには、次の式が表示されます。
code language-handlebars {{#each context.journey.events.event_ID.productListItems.product as |variable|}} {{/each}}この例では、event_ID はイベントの ID を表します。
-
式を次のように変更します。
- 「.product」文字列を削除します。
- 「variable」プレースホルダーを「product」に置き換えます。
次の例は、変更された式を示しています。
code language-handlebars {{#each context.journey.events.event_ID.productListItems as |product|}}
-
-
次のコードを、
{{#each}}開始タグと{{/each}}終了タグの間に貼り付けます。code language-html <table> <tbody> <tr> <td><b>#name</b></td> <td><b>#quantity</b></td> <td><b>$#priceTotal</b></td> </tr> </tbody> </table> -
商品名、数量および価格のパーソナライゼーショントークンを追加します。
- HTML テーブルからプレースホルダー「#name」を削除します。
- 前の検索結果から、名前トークンを式に追加します。
次の手順を 2 回繰り返します。
- プレースホルダー「#quantity」を 数量 トークンに置き換えます。
- プレースホルダー「#priceTotal」を 合計価格 トークンに置き換えます。
次の例は、変更された式を示しています。
code language-handlebars {{#each context.journey.events.event_ID.productListItems as |product|}} <table> <tbody> <tr> <td><b>{{product.name}}</b></td> <td><b>{{product.quantity}}</b></td> <td><b>${{product.priceTotal}}</b></td> </tr> </tbody> </table> {{/each}} -
「検証」をクリックしてから、「保存」をクリックします。
手順 5:製品固有のメモの挿入 if-helper
-
E メールデザイナーのホームページで、メモを挿入する HTML コンポーネントをクリックします。
-
コンテキストツールバーで、「ソースコードを表示」をクリックします。
-
HTML を編集ウィンドウで、
ifヘルパーを追加します。-
左側のメニューで、「ヘルパー関数」を選択します。
-
検索フィールドを使用して、「if」を検索します。
-
検索結果から、
ifヘルパーを追加します。式エディターには、次の式が表示されます。
code language-handlebars {%#if condition1%} render_1 {%else if condition2%} render_2 {%else%} default_render {%/if%}
-
-
式から次の条件を削除します。
code language-handlebars {%else if condition2%} render_2次の例は、変更された式を示しています。
code language-handlebars {%#if condition1%} render_1 {%else%} default_render {%/if%} -
製品名トークンを条件に追加します。
-
式から「condition1」プレースホルダーを削除します。
-
左側のメニューで、「コンテキスト属性」を選択します。
-
Journey Orchestration/イベント/event_name を選択し、productListItems ノードを展開します。
この例では、event_name はイベントの名前を表します。
-
式に 名前 トークンを追加します。
式エディターには、次の式が表示されます。
code language-handlebars {%#if context.journey.events.`event_ID`.productListItems.name%} render_1 {%else%} default_render {%/if%}if条件にproductListItems名トークンを含む
-
-
式を次のように変更します。
-
式エディターで、
nameトークンの後に製品名を指定します。次の構文を使用します。ここで、product_name は製品の名前を表します。
code language-javascript = "product_name"この例では、製品名は「Juno Jacket」です。
code language-handlebars {%#if context.journey.events.`event_ID`.productListItems.name = "Juno Jacket" %} render_1 {%else%} default_render {%/if%} -
「render_1」プレースホルダーをメモのテキストに置き換えます。
例:
code language-handlebars {%#if context.journey.events.`event_ID`.productListItems.name = "Juno Jacket" %} Due to longer than usual lead times on the Juno Jacket, please expect item to ship two weeks after purchase. {%else%} default_render {%/if%} -
式から「default_render」プレースホルダーを削除します。
-
-
「 検証」をクリックしてから、「保存」をクリックします。
-
メッセージを保存します。
手順 6:ジャーニーのテストと公開 test-and-publish
-
「テスト」切替スイッチをオンにしてから、「イベントをトリガー」をクリックします。
-
イベント設定ウィンドウで、入力値を入力し、「送信」をクリックします。
テストモードは、テストプロファイルでのみ機能します。
入力値と送信ボタンを含む
メールがテストプロファイルのアドレスに送信されます。
この例では、Juno Jacket に関するメモがメールに含まれています。これは、この製品が買い物かごに入っているからです。
-
エラーがないことを確認し、ジャーニーを公開します。
関連トピック related-topics
Handlebars 関数 handlebars
ユースケース use-case
チュートリアルビデオ video
ヘルパー関数の使用方法を説明します。
クイックリファレンス quick-reference
このセクションには、このトピックに関連する解釈、検索、質問への回答をサポートすることを目的とした構造化された知識が含まれています。
理解を深めるには、この情報をこのページのドキュメントと組み合わせる必要があります。 どちらのソースも単独で使用することを意図していません。このページでは、機能について説明しますが、この節では、用語、意図、適用可能性、および制約の曖昧さを解消するのに役立つ追加のコンテキストを提供します。
TL;DR
このページでは、upperCase、each、ifという3つのヘルパー関数を使用したカート放棄メールのユースケースを説明します。この機能を使用すると、大文字で顧客の名前を表示し、カート項目を一覧表示し、製品固有の配送伝票を条件付きで挿入できます。
インテント
- スキーマに
productListItems配列が含まれるジャーニーイベントを作成します {%= upperCase(profile.person.name.firstName) %}を使用して顧客の名前を大文字で挿入するcontext.journey.events.event_ID.productListItemsを{{#each}}で繰り返し処理して、カート項目を一覧表示します{%#if context.journey.events.\event_ID'.productListItems.name = “product_name” %}'を使用して、製品固有のメモを条件付きで表示します- イベントペイロードを使用したテストプロファイルを使用して、テストモードでジャーニーをテストし、公開します
upperCase:文字列を大文字に変換するPQL文字列関数。{%= upperCase(string) %}で呼び出されます。 (製品固有)eachヘルパー:productListItemsなどの配列を反復処理するHandlebars ブロックヘルパー({{#each array as |alias|}} ... {{/each}})。 (製品固有)ifヘルパー:指定された条件がtrueの場合にのみコンテンツをレンダリングする条件付きブロックヘルパー({%#if condition%} ... {%else%} ... {%/if%})。productListItems: カートの内容を表す標準のXDM配列。フィールドにはname、quantity、およびpriceTotalが含まれます。 (製品固有)- テストモード:公開前にジャーニーとメッセージの動作を検証するために、テストメッセージをテストプロファイルアドレスに送信できるようにするジャーニー機能。 (製品固有)
- 正規名: カート放棄メール – バリエーション:カート放棄のユースケース
- 混同しないでください:
context.journey.events.event_ID.productListItems(イベントソースの配列、コンテキスト属性を介してアクセス) ≠profile.*属性(プロファイルソース、常に使用可能)
- コンテキスト属性(ジャーニーイベントデータを含む)は、メッセージが関連イベントを含むジャーニー内に配置された後にのみ、パーソナライゼーションエディターで使用できます。
- テストモードは、テストプロファイルでのみ機能します。
Q:この使用例では、どのヘルパー関数が使用されていますか?
3つ:upperCase (大文字で名前をレンダリング)、each (買い物かごアイテムの配列を繰り返し処理)、if (製品固有の配送伝票を条件付きで表示)。
Q: パーソナライゼーション式の買い物かご項目データの取得元はどこですか?
ジャーニーイベントのproductListItems配列から、context.journey.events.event_ID.productListItemsのコンテキスト属性を介してアクセスします。
Q: メッセージをジャーニー内に配置する前に、コンテキスト属性を使用できますか?
いいえ。 コンテキスト属性は、メッセージが関連イベントを含むジャーニー内に配置された後にのみ、パーソナライゼーションエディターで使用できます。
Q: カートデータを使用してメールをテストするにはどうすればよいですか?
ジャーニーのテスト トグルをオンにし、イベントのトリガーをクリックし、イベント設定ウィンドウに入力値を入力してから、送信をクリックします。 テストプロファイルのアドレスにメールが送信されます。