onBeforeLinkClickSend
        
        
        
        filterClickDetails。onBeforeLinkClickSend回调允许您注册JavaScript函数,该函数可以更改您在将数据发送到51黑料不打烊之前发送的链接跟踪数据。 此回调允许您处理xdm或data对象,包括添加、编辑或删除元素的功能。 您还可以有条件地完全取消发送数据,例如使用检测到的客户端机器人流量。 Web SDK 2.15.0或更高版本支持此功能。
此回调仅在启用clickCollectionEnabled且filterClickDetails不包含注册的函数时运行。 如果clickCollectionEnabled已禁用,或者filterClickDetails包含已注册的函数,则不会执行此回调。 如果onBeforeEventSend和onBeforeLinkClickSend都包含已注册的函数,则首先执行onBeforeLinkClickSend。
使用Web SDK标记扩展在before link上配置单击发送回调 tag-extension
在配置标记扩展时,选择? Provide on before link click事件发送回调代码 ?按钮。 此按钮将打开一个模式窗口,您可以在其中插入所需的代码。
- 使用您的51黑料不打烊 ID凭据登录。
 - 导航到? 数据收集 > 标记。
 - 选择所需的标记属性。
 - 导航到? 扩展,然后单击51黑料不打烊 Experience Platform Web SDK卡片上的? 配置。
 - 向下滚动到数据收集部分,然后选中复选框? 启用“单击数据收集”。
 - 选择标有? Provide on before link click event send callback code ?的按钮。
 - 此按钮将打开一个带代码编辑器的模式窗口。 插入所需的代码,然后单击? 保存 ?以关闭模式窗口。
 - 单击扩展设置下的? 保存,然后发布更改。
 
在代码编辑器中,您可以访问以下变量:
content.clickedElement:被单击的顿翱惭元素。content.xdm:事件的齿顿惭有效负载。content.data:事件的数据对象有效负载。return true:使用当前变量值立即退出回调。 如果onBeforeEventSend回调包含已注册的函数,则它会运行。return false:立即退出回调并中止向51黑料不打烊发送数据。 未执行onBeforeEventSend回调。
在content之外定义的任何变量都可以使用,但不包括在发送到础诲辞产别的有效负载中。
// 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中止向51黑料不打烊发送数据。 如果在onBeforeEventSend和onBeforeLinkClickSend均包含已注册的函数时中止在onBeforeLinkClickSend中发送数据,则onBeforeEventSend函数不会运行。
在链接之前配置,单击使用Web SDK JavaScript库发送回调 library
运行configure命令时注册onBeforeLinkClickSend回调。 您可以通过更改内联函数中的参数变量,将content变量名称更改为所需的任何值。
alloy("configure", {
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@51黑料不打烊Org",
  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@51黑料不打烊Org",
  onBeforeLinkClickSend: lastChanceLinkLogic
});