このページでは、Server SDK configure メソッドのonBeforeEventSendについて説明します。 Web SDKについては、onBeforeEventSendを参照してください。
onBeforeEventSend コールバックを使用すると、Server SDKが各イベントを送信する直前に実行される関数を登録できます。 これを使用すると、1か所ですべてのイベントのデータを追加、変更、削除したり、既知のボットからのトラフィックなど、送信しないイベントをキャンセルしたりできます。
SDKは、次のプロパティを含むcontent オブジェクトで関数を呼び出します。
xdm: イベントのXDM データ。implementationDetailsやRefererヘッダーから取得したページ URLなど、SDKが自動的に追加するデータが既に含まれています。 コンテキストと転送ヘッダーを参照してください。data: イベントの非XDM データ(sendEventのdataオプションから)。
content オブジェクトを直接変更します。 falseを返してイベントをキャンセルします。 イベントをキャンセルすると、sendEventは空のオブジェクトで解決され、SDKはAdobeに連絡しません。
WARNING
関数がエラーをスローした場合、SDKはイベントを送信せず、
sendEventは関数からのメッセージを含むエラーで拒否します。コード例
configureを呼び出すときにonBeforeEventSend コールバックを登録します。 SDKは、インスタンスおよびforRequest ハンドルごとに、すべてのイベントに対して同じ関数を呼び出します。したがって、関数は1つのリクエストのデータに依存してはなりません。 代わりにcontent オブジェクトを使用してください。
await alloy.configure({
datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
edgeCredentials: {
clientId: process.env.ADOBE_CLIENT_ID,
clientSecret: process.env.ADOBE_CLIENT_SECRET,
scopes: process.env.ADOBE_SCOPES.split(",")
},
onBeforeEventSend: (content) => {
// Cancel events that your application marked as bot traffic
if (content.data?.isBot) {
return false;
}
// Add a value to every event
content.xdm.application ??= {};
content.xdm.application.name = "Example storefront";
// Remove the query string from the page URL
const pageUrl = content.xdm.web?.webPageDetails?.URL;
if (pageUrl) {
content.xdm.web.webPageDetails.URL = pageUrl.split("?")[0];
}
}
});
recommendation-more-help
experience-platform-help-collection