[Alpha]{class="badge informative"}

onBeforeEventSend(서버 SDK)

이 페이지에서는 서버 SDK configure 메서드의 onBeforeEventSend에 대해 설명합니다. 웹 SDK에 대해서는 onBeforeEventSend.​을(를) 참조하십시오.

onBeforeEventSend 콜백을 사용하면 서버 SDK에서 각 이벤트를 보내기 바로 전에 실행되는 함수를 등록할 수 있습니다. 모든 이벤트에서 데이터를 한 곳에서 추가, 변경 또는 제거하거나 알려진 봇의 트래픽과 같이 보내지 않을 이벤트를 취소할 수 있습니다.

SDK은 다음 속성을 포함하는 content 개체로 함수를 호출합니다.

  • xdm: 이벤트의 XDM 데이터입니다. implementationDetails 및 Referer 헤더에서 가져온 페이지 URL과 같이 SDK에서 자동으로 추가하는 데이터가 이미 포함되어 있습니다. 컨텍스트 및 전달된 헤더를 참조하십시오.
  • data: sendEvent의 data 옵션에서 이벤트의 비 XDM 데이터입니다.

content 개체를 직접 변경합니다. 이벤트를 취소하려면 false을(를) 반환합니다. 이벤트를 취소하면 sendEvent이(가) 빈 개체로 확인되고 SDK이 Adobe에 연결되지 않습니다.

WARNING
함수에서 오류가 발생하면 SDK에서 이벤트를 보내지 않고 sendEvent에서 해당 함수의 메시지를 포함하는 오류와 함께 거부합니다.

코드 예

configure을(를) 호출할 때 onBeforeEventSend 콜백을 등록합니다. SDK은 인스턴스 및 모든 forRequest 핸들에서 모든 이벤트에 대해 동일한 함수를 호출하므로 함수가 단일 요청의 데이터에 종속되지 않아야 합니다. 대신 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