이 페이지에서는 서버 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