onBeforeLinkClickSend
filterClickDetails을(를) 사용합니다.onBeforeLinkClickSend 콜백을 사용하면 해당 데이터가 Adobe으로 전송되기 바로 전에 전송한 링크 추적 데이터를 변경할 수 있는 JavaScript 함수를 등록할 수 있습니다. 이 콜백을 사용하면 요소를 추가, 편집 또는 제거하는 기능을 포함하여 xdm 또는 data 개체를 조작할 수 있습니다. 감지된 클라이언트측 보트 트래픽과 같이 조건부로 데이터 전송을 모두 취소할 수도 있습니다. 웹 SDK 2.15.0 이상에서 지원됩니다.
이 콜백은 clickCollectionEnabled이(가) 활성화되어 있고 filterClickDetails에 등록된 함수가 없는 경우에만 실행됩니다. clickCollectionEnabled이(가) 비활성화되어 있거나 filterClickDetails에 등록된 함수가 포함되어 있는 경우 이 콜백은 실행되지 않습니다. onBeforeEventSend과(와) onBeforeLinkClickSend이(가) 모두 등록된 함수를 포함하는 경우 onBeforeLinkClickSend이(가) 먼저 실행됩니다.
Web SDK 태그 확장을 사용하여 링크 클릭 전 콜백 구성 tag-extension
태그 확장을 구성할 때 링크 전 이벤트 전송 콜백 코드 제공 단추를 선택합니다. 이 단추를 누르면 원하는 코드를 삽입할 수 있는 모달 창이 열립니다.
- Adobe ID 자격 증명을 사용하여 experience.adobe.com에 로그인합니다.
- 데이터 수집 > 태그(으)로 이동합니다.
- 원하는 태그 속성을 선택합니다.
- 확장(으)로 이동한 다음 Adobe Experience Platform Web SDK 카드에서 구성 을 클릭합니다.
- 데이터 수집 섹션까지 아래로 스크롤한 다음 데이터 수집 사용 확인란을 선택합니다.
- 링크 클릭 전 이벤트 전송 콜백 코드 제공 단추를 선택합니다.
- 이 단추는 코드 편집기가 있는 모달 창을 엽니다. 원하는 코드를 삽입한 다음 저장 을 클릭하여 모달 창을 닫습니다.
- 확장 설정에서 저장 을 클릭한 다음 변경 내용을 게시합니다.
코드 편집기 내에서 다음 변수에 액세스할 수 있습니다.
content.clickedElement: 클릭한 DOM 요소입니다.content.xdm: 이벤트에 대한 XDM 페이로드입니다.content.data: 이벤트에 대한 데이터 개체 페이로드입니다.return true: 현재 변수 값이 있는 콜백을 즉시 종료합니다. 등록된 함수가 포함된 경우onBeforeEventSend콜백이 실행됩니다.return false: 콜백을 즉시 종료하고 Adobe에 데이터 전송을 중단합니다.onBeforeEventSend콜백이 실행되지 않습니다.
content의 외부에서 정의된 모든 변수를 사용할 수 있지만, Adobe으로 전송되는 페이로드에는 포함되지 않습니다.
// Set an already existing value to something else
content.xdm.web.webPageDetails.URL = "https://example.com/current.html";
// Use nullish coalescing assignments to create objects if they don't yet exist, preventing undefined errors.
// Can be omitted if you are certain that the object is already defined
content.xdm._experience ??= {};
content.xdm._experience.analytics ??= {};
content.xdm._experience.analytics.customDimensions ??= {};
content.xdm._experience.analytics.customDimensions.eVars ??= {};
// Then set the property to the clicked element
content.xdm._experience.analytics.customDimensions.eVars.eVar1 = content.clickedElement;
// Use optional chaining to check if each object is defined, preventing undefined errors
if(content.xdm.web?.webInteraction?.type === "other") content.xdm.web.webInteraction.type = "download";
onBeforeEventSend과(와) 마찬가지로 return true하여 함수를 즉시 완료하거나 return false하여 Adobe에 대한 데이터 전송을 중단할 수 있습니다. onBeforeEventSend과(와) onBeforeLinkClickSend에 모두 등록된 함수가 들어 있는 경우 onBeforeLinkClickSend에서 데이터 전송을 중단하면 onBeforeEventSend 함수가 실행되지 않습니다.
Web SDK JavaScript 라이브러리를 사용하여 링크 클릭 전 콜백 구성 library
configure 명령을 실행할 때 onBeforeLinkClickSend 콜백을 등록합니다. 인라인 함수 내에서 매개 변수 변수를 변경하여 content 변수 이름을 원하는 값으로 변경할 수 있습니다.
alloy("configure", {
datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
onBeforeLinkClickSend: function(content) {
// Add, modify, or delete values
content.xdm.web.webPageDetails.URL = "https://example.com/current.html";
// Return true to complete the function immediately
if (sendImmediate == true) {
return true;
}
// Return false to cancel sending data immediately
if(myBotDetector.isABot()){
return false;
}
}
});
인라인 함수 대신 자체 함수를 등록할 수도 있습니다.
function lastChanceLinkLogic(content) {
content.xdm.application ??= {};
content.xdm.application.name = "App name";
}
alloy("configure", {
datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
onBeforeLinkClickSend: lastChanceLinkLogic
});