パーソナライゼーションに対する外部統合の使用 integrations-personalization

このページ:​マーケターが設定された統合を適用して、メール、SMS、プッシュコンテンツをパーソナライズし、API 呼び出しを別の API に連結して、よりリッチで動的なメッセージを作成する方法について説明します。

コンテンツで外部統合を使用する前に、統合の操作の説明に従って、管理者が各統合(エンドポイント、認証、ポリシー、応答ペイロード、アクティベーション)を​ 設定およびアクティブ化 ​していることを確認してください。

フラグメント​ごとに最大 3 個、メッセージごとに最大 5 個の統合を追加できます。フラグメントのみから追加した統合は、5 個にはカウントされません。

コンテンツへの統合パーソナライゼーションの適用 apply-integration-personalization

マーケターは、設定済みの統合を使用してコンテンツをパーソナライズできます。 次の手順に従います。

  1. キャンペーンコンテンツにアクセスし、テキストまたは HTML コンポーネント​から「パーソナライゼーションを追加」をクリックします。

    コンポーネントの詳細情報

  2. 統合」セクションに移動し、「統合を開く」をクリックして、アクティブな統合をすべて表示します。

    Journey Optimizer フラグメント​は統合で使用できますが、アウトバウンドチャネルのみをサポートすることに注意してください。フラグメントを公開すると、既存のジャーニーやキャンペーンへの影響を回避するために、新しい統合の追加と保存が無効になります。

  3. 統合を選択し、「保存」をクリックします。

  4. ピル​モードを有効にして、高度な統合メニューをロック解除します。

  5. 統合パーソナライゼーションを作成する際、統合ヘルパーには、エラーまたは欠落しているデータがデフォルトコンテンツとどのようにやり取りするかを定義する required フィールドが含まれます。

    • required=true(既定値):そのメッセージのレンダリングが停止します。送信は ExternalDataLookupExclusion で除外され、その除外は​ メッセージフィードバックデータセット ​に記録されます。

    • required=false:結果変数が null に設定され、レンダリングが続行されます。テンプレートでデフォルトのテキスト、フォールバック、条件ロジックを使用すると、統合がデータを返さない場合にプロファイルは空のコンテンツを受信しません。

  6. 統合設定を完了するには、設定時に以前指定した統合属性を定義します。

    これらの属性には、一定のままの静的値や、ユーザープロファイルから情報を動的に取り込むプロファイル属性のいずれかを使用して値を割り当てることができます。

  7. 統合属性を定義したら、 追加 アイコンをクリックして、パーソナライズされたメッセージに対してコンテンツの統合フィールドを使用できるようになります。

    note
    NOTE
    テンプレート内のトークンには、管理者が統合設定で公開したフィールドのみを使用する必要があります。例えば、temperature が公開されている場合に {{weatherResponse.temperature}} は有効ですが、humidity が公開されていない場合に {{weatherResponse.humidity}} はエディターで却下されます。
  8. 保存」をクリックします。

これで、統合パーソナライゼーションがコンテンツに正常に適用され、設定した属性に基づいて各受信者がカスタマイズされた関連性の高いエクスペリエンスを受信できるようになりました。

ある API 呼び出しの別の API 呼び出しへのマッピング map-integration-chain

統合を連結して、1 つの呼び出しの結果を次の呼び出し(例:パスセグメント、ヘッダー、クエリパラメーター)にフィードできます。呼び出しは同じメッセージ内で順番に実行されるので、カスタムコードなしで、よりリッチなパーソナライゼーションがサポートされます。

開始する前に、次のことを確認します。

  • 必要なすべての統合が、管理者により設定およびアクティブ化されていること。統合の設定を参照してください。
  • 統合の設定で、変数パスのプレースホルダー、ヘッダー、クエリパラメーターが、マーケター向けのラベルを使用して設定されていること。
  • オーサリング時に表示できるよう、必要な応答フィールドが、各統合の​ 応答ペイロード ​内で管理者により公開されていること。

以下の例では、プロファイルの予約からフライト番号を返す予約統合を使用し、その番号をライブステータス(遅延、宛先)に使用するフライト情報統合を使用します。2 番目の統合の入力を 1 番目の呼び出しの応答にマッピングします。

  1. メッセージまたはフラグメントを開き、パーソナライゼーションエディターを開きます。

  2. 統合​で、「統合を開く」をクリックします。

  3. フライト識別子を含む予約または予約データなど、応答が次の呼び出しをフィードする統合を追加します。

  4. (オプション)ヘルパー関数​メニューを開き、予約応答に名前付き変数をバインドする場合は、Let 関数などのヘルパーを追加します。

    note
    NOTE
    管理者が定義した​ 応答ペイロード ​で公開されたフィールドのみが使用できます。設定で公開されていないプロパティは参照できません。
  5. ヘルパー変数を使用する場合は、その変数を、旅客または予約ペイロードのフライト番号など、予約統合がダウンストリーム使用のために返すフィールドにマッピングします。

  6. 統合を開く​メニューから、2 番目の統合(例:フライトステータス)を追加します。

  7. 2 番目の統合で、統合属性​を開きます。パス変数、ヘッダー、クエリパラメーターなど、最初の呼び出しのデータを再利用する必要がある各入力について、最初の統合応答からマッピングソースを選択します。

    ピル エクスペリエンスでは、Let ステートメントを使用せずに、最初の呼び出し出力を 2 番目の呼び出し入力に直接マッピングできます。Let を使用した場合は、代わりにその変数をマッピングできます。

  8. 追加 コントロールを使用して、2 番目の統合からのトークン(例:フライト情報の応答からの宛先)をコンテンツに挿入します。

  9. コンテンツを保存します。

シミュレーション​または送信の際、Journey Optimizer は統合を次の順序で実行します。最初の呼び出しでは設定済みのプロファイルコンテキストを使用し、その結果に基づいて 2 番目のリクエストを作成します。特定の統合がシミュレーション時に実行されるか、送信時に実行されるかは、設定やチャネルによって異なります。

コンテンツでの Adobe Target Recommendations の使用 use-adobe-target-in-templates

この節では、Adobe Journey Optimizer の​ 統合 ​を使用して、送信時に Adobe Target からパーソナライゼーションデータを取得し、テンプレートまたはインラインで作成されたメッセージコンテンツにそのデータを使用する方法について説明します。Target Delivery API が統合として既に設定されていることを前提としています。

設定手順について詳しくは、統合の操作および Adobe Target Recommendations のサンプルを参照してください。

Target Delivery API は prefetch.mboxes 配列を返します。各 mbox には、content フィールドと type フィールドを持つ options オブジェクトが含まれています。type の値により、テンプレートでの content の使用方法が決まります。mbox の応答に一致するタブを開き、手順に従ってそのデータをメッセージで使用します。

JSON コンテンツ

typejson の場合、content フィールドは JSON 文字列​です。ネストされたフィールドにアクセスする前に解析します。以下の例は、JSON mbox に対する一般的な Delivery API 応答を示しています。

code language-json
{
  "status": 200,
  "prefetch": {
    "mboxes": [
      {
        "index": 0,
        "name": "SummerOffer",
        "options": {
          "content": "{\"recommendations\":[{\"productId\":\"p101\",\"name\":\"Noise Smartwatch\",\"price\":2999},{\"productId\":\"p205\",\"name\":\"Boat Earbuds\",\"price\":1499}],\"strategy\":\"collaborative-filtering\"}",
          "type": "json"
        }
      }
    ]
  }
}

3 つのヘルパーを順番に使用して、Target 応答を取得、抽出、解析します。

  1. Target 応答を取得します。 設定済みのTarget 統合を、externalDataLookup を使用して呼び出します。integrationName をその統合の​ 名前 ​に設定します(例のプレースホルダー target_recommendations を置き換えます)。Delivery API の完全なペイロードを保持するテンプレート変数の名前を指定するには、result パラメーターを使用します(例:targetResponse)。

    また、パーソナライゼーションエディターの左側のナビゲーションにある​ 統合 ​メニューから統合を直接選択することもできます。詳しくは、コンテンツへの統合パーソナライゼーションの適用を参照してください。

    code language-handlebars
    {{externalDataLookup integrationName="target_recommendations" result="targetResponse"}}
    
  2. valueAtPath を使用して特定の mbox を抽出します。 valueAtPath は、0 ベースのインデックスで配列から要素を抽出し、テンプレート変数に割り当てます。アクセスする要素を指定するには、idx パラメーターを使用します。

    code language-handlebars
    {{valueAtPath targetResponse.prefetch.mboxes idx=0 result="summerOffer"}}
    
    table 0-row-2 1-row-2 2-row-2 3-row-2
    パラメーター 説明
    path 配列へのパス(位置、キーワードなし)
    idx 配列アクセス用の 0 ベースのインデックス(オプション)
    result 抽出した値を格納する変数名
    note
    NOTE
    idx が範囲外の場合、レンダリングは例外をスローします。 インデックスが無効な場合は、無効なインデックスを {%#if idx >= 0 and idx < count(targetResponse.prefetch.mboxes)%} で保護します。PQL 式は、パスとして使用できません。2025.9.0 リリース以降で使用できます。
  3. parseJson を使用して JSON 文字列を解析します。 mbox options.content フィールドは生の JSON 文字列です。parseJson は、フィールドがテンプレート内で直接アクセスできる構造化オブジェクトに変換します。

    code language-handlebars
    {{parseJson jsonStr=summerOffer.options.content result="summerOfferContent"}}
    
    table 0-row-2 1-row-2 2-row-2
    パラメーター 説明
    jsonStr 有効な JSON を含む文字列フィールドへのパス
    result 解析したオブジェクトを格納する変数名
    note
    NOTE
    JSON 文字列が無効であるか、参照が null の場合、resultnull に設定されます。レンダリングエラーはスローされません。実際の Target 応答でテストし、コンテンツが有効な JSON であることを確認します。2026.6.0 以降で使用できます
  4. データにアクセスします。 解析したら、ドット表記を使用して summerOfferContent からフィールドにアクセスします。レコメンデーションのリストをレンダリングするには:

    code language-handlebars
    {{externalDataLookup integrationName="target_recommendations" result="targetResponse"}}
    {{valueAtPath targetResponse.prefetch.mboxes idx=0 result="summerOffer"}}
    {{parseJson jsonStr=summerOffer.options.content result="summerOfferContent"}}
    
    Strategy: {{summerOfferContent.strategy}}
    {{#each summerOfferContent.recommendations as |rec|}}
      {{rec.name}} — {{rec.price}}
    {{/each}}
    
HTML コンテンツ

typehtml の場合、「content」フィールドはレンダリング可能な HTML 文字列です。解析する必要はありません。以下の例は、HTML mbox に対する一般的な Delivery API 応答を示しています。

code language-json
{
  "status": 200,
  "prefetch": {
    "mboxes": [
      {
        "index": 0,
        "name": "SummerOffer",
        "options": {
          "content": "<div class=\"offer\"><h2>Summer Sale</h2><p>50% off Smartwatch</p></div>",
          "type": "html"
        }
      }
    ]
  }
}

mbox を取得して抽出し、content を直接レンダリングします。 parseJson をスキップします。

code language-handlebars
{{externalDataLookup integrationName="target_recommendations" result="targetResponse"}}
{{valueAtPath targetResponse.prefetch.mboxes idx=0 result="summerOffer"}}
{{{summerOffer.options.content}}}
note
NOTE
HTML コンテンツをそのままレンダリングするには、三重中括弧 {{{...}}} を使用します。二重中括弧 {{...}} を使用すると、HTML エンティティがエスケープされ、HTML の代わりに、生のタグの文字列がレンダリングされます。

チュートリアルビデオ video

このビデオでは、Adobe Journey Optimizer を外部 API に接続する​ 統合 ​の仕組みについて説明します。これにより、ライブデータやコンテンツをメール、SMS、プッシュなどの​ アウトバウンド ​チャネルに取り込み、より適切なパーソナライゼーションを実現します。

recommendation-more-help
journey-optimizer-help