このページでは、送信時に渡されるプロファイル属性、データセット参照、コンテキストデータに基づいて、Adobe Journey Optimizerで動的フラグメント解決を使用して、実行時にメッセージに挿入される公開フラグメントを選択する方法について説明します。
Adobe Journey Optimizerは、実行時に 動的フラグメント解決 をサポートしており、送信時に渡されたプロファイル属性、データセット参照、コンテキストデータに基づいて、メッセージに挿入される公開フラグメントを選択できます。 これにより、キャンペーンやジャーニーのロジックを複製することなく、詳細にパーソナライズされたコンテンツを提供できます。
概要 overview
静的フラグメントは、デザイン時にメッセージに埋め込まれます。同じフラグメントがすべての受信者に使用されます。 動的フラグメントは、受信者ごとに実行時にフラグメント IDを解決します。つまり、異なるプロファイルは、同じキャンペーンまたはジャーニー内で完全に異なるコンテンツブロックを受信できます。
動的フラグメント IDは、次の3つのソースから取得できます。
- データセット検索 – 例えば、スタイルまたは製品でキーを設定されたレコメンデーションデータセット
- Adobe Experience Platformに保存されているプロファイル属性
- 送信時に コンテキストデータ がAPI リクエストで直接渡されました
datasetLookup ヘルパー関数を使用することは、現在、限られた顧客セットに対して使用できます。 アクセス権を取得するには、アドビ担当者にお問い合わせください。前提条件 prerequisites
動的フラグメントを使用する前に、次の内容を確認してください。
手順1:フラグメントの作成と公開 create-fragment
フラグメントを動的に参照する前に、Journey Optimizerで公開する必要があります。
-
Journey Optimizerで、コンテンツ管理 > フラグメントに移動します。
-
「フラグメントを作成」を選択し、コンテンツをオーサリングします。 フラグメントの作成方法を学ぶ
-
コンテンツの準備ができたら、公開をクリックします。 公開は非同期で、数秒かかる場合があります。 続行する前に、フラグメントのステータスが Live に変更されていることを確認してください。
-
フラグメントの詳細ビューまたはフラグメント API レスポンスから フラグメント ID をメモします。 メッセージでこのIDを参照します。
GET /fragments APIを使用して、プログラムですべての公開フラグメント IDを取得できます。 詳しくは、Journey Optimizer API ドキュメント を参照してください。手順2:動的フラグメント参照を使用したメッセージの作成 author-message
パーソナライゼーションエディターで、次の構文を使用して動的フラグメントのプレースホルダーを挿入します。
識別子dynamic_fragment_idは変数名です。 フラグメント検索を実行する前に、その値を解決する必要があります。 データセットのルックアップ式、プロファイル属性、コンテキストデータを使用して解決します。
データセット検索からの解決 resolve-from-dataset
フラグメント IDがAEP データセット(スタイルからフラグメントへのマッピングテーブルなど)に格納されている場合は、datasetLookup ヘルパー関数を使用して解決します。
この例では、データセットにスタイル値(style1など)でキーを設定された行が含まれています。 特定のプロファイルの場合、ルックアップは対応するfragmentId列の値を取得し、それをdynamic_fragment_idに割り当てて、フラグメントを解決するために使用します。
datasetLookup ヘルパー関数を使用することは、現在、限られた顧客セットに対して使用できます。 アクセス権を取得するには、アドビ担当者にお問い合わせください。 パーソナライゼーションでのデータセット検索について詳しくは、Adobe Experience Platform データの使用を参照してください。コンテキストデータから解決 resolve-from-context
フラグメント IDが送信時にAPI リクエストコンテキストの一部として指定されている場合は、context名前空間を使用して参照します。
パス context.audiencePayloadは、CSV オーディエンスファイルからソースされたすべての属性、またはAPI リクエストコンテキストを介して渡されたすべての属性に必要なプレフィックスです。 CSVの列名(例:fragmentId)は、接頭辞に続きます。
プロファイル属性から解決 resolve-from-profile
フラグメント IDがAdobe Experience Platformのプロファイル属性として保存されている場合は、直接参照します。
手順3:参照アプローチ用にデータセットを設定する configure-dataset
データセット参照アプローチを使用している場合は、データセットスキーマとデータを更新して、フラグメント IDを実行します。
-
レコメンデーションまたはマッピングデータセットで、各行の公開されたAJO フラグメント IDを格納する列(例:
fragmentId)を追加します。 -
各スタイルまたはバリアント (例:
style1、style2)について、fragmentId列に対応するフラグメント IDを入力します。 -
データセットがAdobe Experience Platformに取り込まれ、検索が有効になっていることを確認します。
-
ダイナミックフラグメント内で参照されるすべてのプロファイル属性が、書き出し時に空のレンダリングを防ぐために、メッセージまたは静的フラグメントに取り込まれることを確認します。
データセット構造の例:
ステップ 4:送信時にコンテキストデータを渡す pass-context-data
コンテキストデータ(CSV オーディエンスレコメンデーションファイルなど)からフラグメント IDを解決する場合は、必要なコンテキストプレフィックスの下のAPI リクエストにフラグメント IDを渡します。
キャンペーン校正APIを使用する場合は、context オブジェクトにフラグメント IDを含めます。
{
"recipients": [
{
"userId": "<profile-email>",
"namespace": "email"
}
],
"inChannelData": {
"channel": "email",
"emailAddresses": ["<delivery-address>"]
},
"context": {
"audiencePayload": {
"fragmentId": "<published-fragment-id>",
"systemSource": "<optional-system-value>"
}
}
}
プレフィックス context.audiencePayloadが必要です。 このキーの下にネストされた属性は、ライブキャンペーンの実行時に、CSV オーディエンスファイルの列に直接マッピングされます。
手順5:検証と検証 proof-validate
キャンペーンをアクティブ化する前に、キャンペーン校正APIを使用して、ダイナミックフラグメントが正しく解決され、レンダリングされたメール出力が期待どおりであることを確認します。
-
POST /campaigns/{id}/proofsエンドポイントを使用してプルーフ ジョブをトリガーします。 プルーフのリクエストで、context.audiencePayload.fragmentIdでテストするフラグメント IDを渡します。 -
状態が
SubmittedまたはFailedになるまで、GET /campaigns/{id}/proofs/{proofId}エンドポイントを使用してプルーフ ジョブの状態をポーリングします。 -
配信された電子メールを確認して、正しいフラグメントコンテンツがレンダリングされていることを確認します。
-
フラグメントコンテンツが見つからないか正しくない場合は、フラグメント IDが有効であり、フラグメントが公開され、必要なすべてのプロファイル属性が存在することを確認します。
Campaign APIについて詳しくは、Journey Optimizer API ドキュメント を参照してください。
ガードレールと制限 guardrails
動的フラグメントを使用する場合は、次の制限が適用されます。
-
書き出し時のプロファイル属性のカバレッジ: フラグメントは、プロファイルごとに実行時に選択されます。 動的フラグメントに必要なプロファイル属性は事前に把握されていません。 動的フラグメントが、元のメッセージまたはメッセージで参照されている静的フラグメントに存在しないプロファイル属性に依存している場合、そのフィールドはエクスポートパスで空になります。
-
先行フラグメント検証がありません: フラグメント関連の検証は、このフローでスキップされます。 不正または未公開のフラグメント IDは、UIに表示される検証エラーではなく、ランタイム配信エラーとして表示されます。
-
データセットのアプローチに必要なスキーマの変更:検索IDによるパスを使用するには、フラグメント IDを保存して渡すためのデータセットスキーマを更新し、さらに、それをメッセージパイプラインにフィードするために必要な配管を追加する必要があります。
-
書き出し用の属性キャプチャ:書き出しパスで空のレンダリングを防ぐために、動的フラグメント内で使用されるすべての属性がメッセージまたは静的フラグメントにキャプチャされていることを確認します。
フラグメントに適用されるその他のガードレールについて詳しくは、この節を参照してください。
エラー処理 error-handling
動的フラグメントが実行時に解決できない場合、影響を受けるプロファイルに対して除外イベントが生成されます。 現在、すべてのフラグメントレンダリングのエラーは、単一のブランケットエラータイプとして分類されています。
フラグメント解決エラーをデバッグするには:
- 除外イベントのキャンペーン配信レポートを確認します。
- 実行時に渡されたフラグメント IDが、公開されたフラグメントと一致することを確認します。
- フラグメントに必要なすべてのプロファイル属性が、送信時にプロファイルに存在することを確認します。
- キャンペーンをアクティブ化する前に、 プルーフ APIを使用して、特定のフラグメント IDをテストします。