onBeforeLinkClickSend
filterClickDetails
。onBeforeLinkClickSend
回呼可讓您註冊JavaScript函式,該函式可變更您在將資料傳送至Adobe之前所傳送的連結追蹤資料。 此回呼可讓您操作xdm
或data
物件,包括新增、編輯或移除元素的功能。 您也可以有條件地完全取消傳送資料,例如使用偵測到的使用者端機器人流量。 Web 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卡片上的 設定。
- 向下捲動至資料彙集區段,然後選取核取方塊 啟用資料彙集。
- 選取標示為 Provide on before link click event send回呼代碼 的按鈕。
- 此按鈕會開啟包含程式碼編輯器的模型視窗。 插入想要的程式碼,然後按一下[儲存] 以關閉模型視窗。
- 按一下擴充功能設定下的 [儲存],然後發佈您的變更。
在程式碼編輯器中,您可以存取下列變數:
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
});