Adobe 单击DTM中的事件不';你不总是开枪吗?

Adobe 单击DTM中的事件不';你不总是开枪吗?,adobe,adobe-analytics,Adobe,Adobe Analytics,我已经在AdobeDTM中定义了基于事件的规则,但我可以在站点上看到这种行为,即有时在定义规则的click事件上不会触发on-click标记 有人能帮我理解这一点吗,为什么会发生这种情况,以及解决办法是什么 谢谢 Adi可能有其他代码阻止点击事件发送到DTM代码。如果其他单击处理程序代码使用preventDefault()功能或返回false,则会发生这种情况,这会阻止事件触发任何其他侦听器。我同意其他答案,即事件传播(例如event.preventDefault())可能是它发生的原因。但我想

我已经在AdobeDTM中定义了基于事件的规则,但我可以在站点上看到这种行为,即有时在定义规则的click事件上不会触发on-click标记

有人能帮我理解这一点吗,为什么会发生这种情况,以及解决办法是什么

谢谢


Adi

可能有其他代码阻止点击事件发送到DTM代码。如果其他单击处理程序代码使用preventDefault()功能或返回false,则会发生这种情况,这会阻止事件触发任何其他侦听器。

我同意其他答案,即事件传播(例如event.preventDefault())可能是它发生的原因。但我想知道,当你不能让事件传播时,如何解决这个问题


我的最佳解决方案是手动捕获站点的所有单击事件,并使用_satellite.track()调用直接规则。这远不是最优的,但它是有效的。

在javascript控制台中,键入_satellite.setDebug(true),您将能够看到是否正在发生单击事件。如果要导航到新页面,请确保将控制台设置为保留以前的日志。您需要提供更多详细信息。但我的猜测是,当你说“有时”有效,“有时”无效时,它可能对某些链接有效,但对其他链接无效。我猜您可能对事件冒泡/传播有问题。e、 例如,您将其他代码附加到某些链接上,这些链接正在停止传播/冒泡,因此附加到它的其他代码(例如DTM)无法完成其工作。或者,您可以使用DTM规则仅在某些页面上触发,或者使用影响它的其他条件。同样,您需要提供更多详细信息,例如DTM规则是什么、单击的内容的详细信息等。这是正确的方法。通常可以使用:jQuery('body').on('click','#selector',function(){u satellite.track('direct call rule');});最糟糕的情况是,如果页面上的其他脚本甚至不允许您手动跟踪单击(我已经看到了这种情况),那么您必须将规则条件建立在由于单击而发生的其他事情上,例如出现成功消息。因为“进入视口”并不总是可靠的,我有时不得不使用setInterval()来检查它是否可见。“return false”更进一步,因为它还可以防止事件传播(或“冒泡”)DOM,而preventDefault()不会停止冒泡。