レスポンストークンへのアクセス

Adobe Targetから返されるパーソナライゼーションコンテンツには次が含まれます レスポンストークン:アクティビティ、オファー、エクスペリエンス、ユーザープロファイル、地域情報などに関する詳細です。 これらの詳細は、サードパーティのツールと共有したり、デバッグに使用したりできます。 レスポンストークンはAdobe Targetユーザーインターフェイスで設定できます。

パーソナライゼーションコンテンツにアクセスするには、イベントの送信時にコールバック関数を指定します。 このコールバックは、SDK がサーバーから成功した応答を受け取った後に呼び出されます。 コールバックには result オブジェクト ( propositions 返されたパーソナライゼーションコンテンツを含むプロパティ。 以下に、コールバック関数を指定する例を示します。

alloy("sendEvent", {
    renderDecisions: true,
    xdm: {}
  }).then(function(result) {
    if (result.propositions) {
      // Manually render propositions
    }
  });

この例では、 result.propositionsが存在する場合、は、イベントに関連するパーソナライゼーションの提案を含む配列です。 詳しくは、 パーソナライゼーションコンテンツのレンダリング の内容に関する詳細 result.propositions.

Web SDK によって自動的にレンダリングされたすべての提案からすべてのアクティビティ名を収集し、単一の配列にプッシュするとします。 その後、単一の配列をサードパーティに送信できます。 この場合の解決策は、次のとおりです。

  1. 提案を result オブジェクト。
  2. 各提案をループします。
  3. SDK が提案をレンダリングしたかどうかを判断します。
  4. その場合は、提案の各項目をループします。
  5. からアクティビティ名を取得します。 meta プロパティ。レスポンストークンを含むオブジェクトです。
  6. アクティビティ名を配列にプッシュします。
  7. アクティビティ名をサードパーティに送信します。

コードは次のようになります。

alloy("sendEvent", {
    renderDecisions: true,
    xdm: {}
  }).then(function(result) {
    var activityNames = [];
    propositions.forEach(function(proposition) {
      if (proposition.renderAttempted) {
        proposition.items.forEach(function(item) {
          if (item.meta) {
            // item.meta contains the response tokens.
            var activityName = item.meta["activity.name"];
            // Ignore duplicates
            if (activityNames.indexOf(activityName) === -1) {
              activityNames.push(activityName);
            }
          }
        });
      }
    });
    // Now that activity names are in an array,
    // you can send them to a third party or use
    // them in some other way.
  });
recommendation-more-help
ad108910-6329-42f1-aa1d-5920a2b13636