このページでは、Server SDK sendEvent メソッドについて説明します。 Web SDKについては、sendEventを参照してください。
sendEvent メソッドは、サーバーからAdobeにデータを送信する主な方法です。 パーソナライズされたコンテンツを取得する方法が提供されます。 xdm オブジェクトを使用して、Adobe Experience Platform スキーマにマッピングするデータを送信し、data オブジェクトを使用して他のデータを送信します。
configureが解決した後、現在の訪問者のforRequest ハンドルでsendEventを呼び出します:
const visitor = alloy.forRequest({ request: req });
const result = await visitor.sendEvent({
type: "commerce.purchases",
xdm: {
identityMap: {
Email: [{ id: "visitor@example.com", primary: true }]
},
commerce: {
purchases: { value: 1 },
order: {
purchaseID: "a8g784hjq1mnp3",
currencyCode: "USD",
priceTotal: 999.98
}
}
},
data: {
loyaltyTier: "gold"
},
personalization: {
decisionScopes: ["order-confirmation-offer"]
},
edgeConfigOverrides: {
com_adobe_analytics: {
reportSuites: ["examplersid1"]
}
}
});
SDKは、各イベントをserver.adobedc.netの認証済みEdge Network Server APIに送信します。 認証を参照してください。
要件 requirements
- プライマリ ID:各イベントには
xdm.identityMapにプライマリ IDを含める必要があります。 そうでなければ、Edge Networkはその出来事を拒否します。xdmを参照してください。 - サイズ: SDKが送信するリクエストは、最大64 KBまでです。 Edge Network API ドキュメントの ガードレール を参照してください。
- 同意:訪問者がオプトアウトしたか、
defaultConsentが"out"で、訪問者がオプトインしていない場合、sendEventは何も送信せずに空のオブジェクトで解決します。
オプション options
SDKが認識しないオプションを渡すと、sendEventはUnknown field エラーで拒否します。
サーバーに影響しないオプション no-effect
Server SDKでは、次のWeb SDK オプションを使用できます。これにより、ブラウザー実装とイベント構築コードを共有できます。 ただし、これらはブラウザーに依存し、サーバーには影響しません。
renderDecisions: SDKはコンテンツをレンダリングしません。 代わりに結果の提案を返します。personalization.sendDisplayEvent、personalization.includeRenderedPropositions、personalization.defaultPersonalizationEnabled、personalization.decisionContext。advertising.
サーバーにdocumentUnloadingを設定しないでください。 ブラウザーの外では適用されません。 既にIDを持つ訪問者の場合、SDKは、認証済みServer APIではなく、未認証のリクエストとしてedgeDomainにイベントを送信します。 このエンドポイントは応答を返さないため、sendEventは提案を返しません。
非推奨のdatasetIdおよびmergeId オプションは引き続き受け入れられます。 datasetIdの代わりに、edgeConfigOverridesでcom_adobe_experience_platform.datasets.event.datasetIdを使用してください。
結果オブジェクト result
sendEvent メソッドはpromiseを返します。 結果の処理を参照してください。 プロミスが解決すると、結果オブジェクトに次のプロパティを含めることができます。
propositions: Edge Networkがpersonalizationで要求したスコープとサーフェスに対して返したパーソナライズ提案の配列。 このプロパティは、パーソナライゼーションをリクエストした場合にのみ存在します。 SDKは、提案をレンダリングしたり、レンダリングされたとしてマークしたりしません。
パーソナライゼーションを要求しない場合、または同意またはonBeforeEventSendが原因でイベントが送信されない場合、結果は空のオブジェクトになります。
const { propositions = [] } = await visitor.sendEvent({
xdm: {
eventType: "decisioning.propositionFetch",
identityMap: {
Email: [{ id: "visitor@example.com", primary: true }]
}
},
personalization: {
surfaces: ["web://example.com/home"]
}
});
Web SDKとは異なり、結果にinferencesまたはdestinationsが含まれていません。