式フラグメントを活用 use-expression-fragments
パーソナライゼーションエディターを使用すると、現在のサンドボックスに作成または保存されたすべての式フラグメントを活用できます。
フラグメントは、Journey Optimizer キャンペーンおよびジャーニー全体で参照できる、再利用可能なコンポーネントです。この機能を使用すると、複数のカスタムコンテンツブロックを事前に構築し、マーケティングユーザーはそのコンテンツブロックを使用して、改善されたデザインプロセスでコンテンツを迅速に組み立てることができます。詳しくは、フラグメントを参照してください。
➡️ フラグメントの管理、作成、使用方法について詳しくは、このビデオを参照してください。
式フラグメントの使用 use-expression-fragment
コンテンツに式フラグメントを追加するには、次の手順に従います。
-
パーソナライゼーションエディターを開き、左側のパネルで「フラグメント」ボタンを選択します。
リストには、現在のサンドボックスで作成またはフラグメントとして保存されたすべての式フラグメントが表示されます。フラグメントの作成方法について説明します。
フラグメントは作成日で並べ替えられます。最近追加した式フラグメントがリストの最初に表示されます。
また、このリストを更新することもできます。
note note NOTE コンテンツの編集中に一部のフラグメントが変更または追加された場合、リストは最新の変更内容に更新されます。 -
式フラグメントの横にある「+」アイコンをクリックして、対応するフラグメント ID をエディターに挿入します。
note caution CAUTION 任意の ドラフト または ライブ フラグメントをコンテンツに追加できます。ただし、ジャーニーまたはキャンペーンで ドラフト ステータスのフラグメントを使用している場合、そのジャーニーまたはキャンペーンはアクティブ化できません。ジャーニーまたはキャンペーンの公開時に、ドラフトフラグメントにエラーが表示されるので、公開するには承認する必要があります。 -
フラグメント ID を追加したら、対応する式フラグメントを開いてインターフェイスから編集すると、変更が同期されます。これらは、そのフラグメント ID を含むすべてのドラフトまたはライブジャーニー/キャンペーンに自動的に生成されます。
-
フラグメントの横にある「その他のアクション」ボタンをクリックします。開いたコンテキストメニューから「フラグメントを表示」を選択すると、そのフラグメントに関する詳細情報が表示されます。また、フラグメント ID も表示され、ここからコピーできます。
-
コンテキストメニューの「フラグメントを開く」オプションを使用するか、フラグメント情報パネルから式フラグメントを別のウィンドウで開き、そのコンテンツとプロパティを編集できます。詳しくは、フラグメントの編集方法を参照してください
-
その後、パーソナライゼーションエディターのパーソナライズ機能とオーサリング機能をすべて使用して、通常どおりコンテンツをカスタマイズして検証できます。
-
場合によっては、変数の計算のみが必要となり、式フラグメントのコンテンツは非表示にした方がよいこともあります。これを行うには、
render属性を使用してfalseに設定します。例:code language-none Hi {{profile.person.name.firstName|fragment id='ajo:fragmentId/variantId' mode ='inline' render=false}}
暗黙的変数の使用 implicit-variables
暗黙的変数は、既存のフラグメント機能を強化して、コンテンツの再利用性とスクリプトのユースケースの効率を向上させます。フラグメントは入力変数を使用し、キャンペーンおよびジャーニーコンテンツで使用できる出力変数を作成できます。
この機能は、例えば、現在のキャンペーンやジャーニーに基づいてメールのトラッキングパラメーターを初期化し、これらのパラメーターをメールコンテンツに追加されたパーソナライズされたリンクに使用できます。
次のようなユースケースが考えられます。
-
フラグメントでの入力変数の使用
フラグメントをキャンペーン/ジャーニーアクションコンテンツで使用すると、フラグメント外で宣言された変数を活用できます。以下に例を示します。
utm_content変数がキャンペーンコンテンツで宣言されていることがわかります。ヒーローブロックというフラグメントが使用されると、utm_contentパラメーター値が追加されるリンクが表示されます。最終結果は、https://luma.enablementadobe.com?utm_campaign= Product_launch&utm_content= start_shoppingです。 -
フラグメントの出力変数の使用
フラグメント内で計算または定義された変数は、コンテンツ内で使用できます。次の例では、フラグメント F1 によって、一連の変数が宣言されています。
メールコンテンツでは、次のパーソナライズ機能を使用できます。
フラグメント F1 は、変数
utm_campaignおよびutm_contentを初期化します。次に、メッセージコンテンツ内のリンクに、これらのパラメーターが追加されます。最終結果は、https://luma.enablementadobe.com?utm_campaign= Product_launch&utm_content= start_shoppingです。
ループ内での式フラグメントの使用 fragments-in-loops
{{#each}} ループ内で式フラグメントを使用する場合は、変数スコーピングの仕組みを理解することが重要です。 式フラグメントはメッセージコンテンツで定義されたグローバル変数にアクセスできますが、ループ固有の変数をパラメーターとして受け取ることはできません。
サポートされているパターン:グローバル変数を使用します global-variables-in-loops
式フラグメントは、ループ内からフラグメントが呼び出される場合でも、フラグメントの外部で定義されるグローバル変数を参照できます。 これは、反復コンテキストでフラグメントを使用する必要がある場合に推奨されるアプローチです。
例:ループ内でグローバル変数を使用したフラグメントの使用
メッセージコンテンツで、グローバル変数を定義し、それを参照するフラグメントを使用します。
式フラグメント(fragment123)で、globalDiscount の変数を参照できます。
このパターンが機能するのは、ループコンテキストに関係なく、フラグメント内を含むメッセージ全体でグローバル変数にアクセスできるからです。
サポートされない:ループ変数をフラグメントパラメーターとして渡す loop-variables-limitations
現在の反復項目(上記の例では product)をパラメーターとして式フラグメントに渡すことはできません。 フラグメントは、周囲の {{#each}} ブロックからループスコープ変数に直接アクセスすることはできません。
例:機能しない問題
現在の実装ではループ固有の変数に対するパラメーターを渡すことができないため、フラグメントは product をパラメーターとして受け取り、内部で使用することはできません。
推奨される回避策 fragments-in-loops-workarounds
ループからのデータで式フラグメントを使用する必要がある場合は、次の方法を考慮してください。
-
ロジックをメッセージに直接含める:ループ固有のロジックのフラグメントを使用する代わりに、パーソナライゼーションコードを
{{#each}}ブロック内に直接追加します。code language-handlebars {{#each context.journey.actions.GetProducts.items as |product|}} <div class="product"> <h3>{{product.name}}</h3> <p>Price: ${{product.price}}</p> {{#if product.price > 100}} <span class="premium-badge">Premium Product</span> {{/if}} </div> {{/each}} -
ループ外でフラグメントを使用:フラグメントコンテンツがループに依存しない場合は、イテレーションブロックの前または後にフラグメントを呼び出します。
code language-handlebars {{fragment id='ajo:fragment123/variant456' mode='inline'}} {{#each context.journey.actions.GetProducts.items as |product|}} <div class="product"> <h3>{{product.name}}</h3> <p>Price: ${{product.price}}</p> </div> {{/each}} -
複数のグローバル変数を設定:複数のイテレーションをまたいでフラグメントに異なる値を渡す必要がある場合、各フラグメント呼び出しの前にグローバル変数を設定します(ただし、柔軟性は制限されます)。
編集可能フィールドのカスタマイズ customize-fields
変数を使用して式フラグメントの特定の部分が編集可能になっている場合は、特定の構文を使用して、それらのデフォルト値を上書きできます。詳しくは、フラグメントをカスタマイズ可能にする方法を参照してください
フィールドをカスタマイズするには、次の手順に従います。
-
フラグメントメニューからコードにフラグメントを挿入します。
-
構文の最後にある
<fieldId>="<value>"コードを使用して、変数のデフォルト値を上書きします。次の例では、ID が「sports」である変数の値を「yoga」値で上書きしています。これにより、フラグメントコンテンツで「sport」変数が参照されているすべての箇所に「yoga」が表示されます。
メールの作成時に編集可能なフィールドを式フラグメントに追加し、その値を上書きする方法を示す例について詳しくは、この節を参照してください。
継承の解除 break-inheritance
パーソナライゼーションエディターにフラグメント ID を追加すると、元の式フラグメントに行った変更が同期されます。
ただし、式フラグメントのコンテンツをエディターにペーストすることもできます。コンテキストメニューから「フラグメントをペースト」を選択して、そのコンテンツを挿入します。
その場合、元のフラグメントからの継承は壊れます。フラグメントのコンテンツはエディターにコピーされ、変更内容は同期されなくなります。
これは、元のフラグメントにリンクされなくなったスタンドアロン要素になります。コード内の他の要素として編集できます。