[Alpha]{class="badge informative"}

onBeforeEventSend (Server SDK)

このページでは、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