-1

我试图在页面中悬停 div (或其他)时触发 fb 像素事件。但是,在我将鼠标悬停在 div 之前,似乎是第一次触发了该事件。悬停 div 时,事件指示正确的参数。

还有一件非常好的事情,就是捕获其他信息,例如悬停的 div id 或其他信息。

这是我在 GTM 标签中插入的代码。我在页面加载(所有页面)时触发它。

<script> 
$(document).ready(function() {
var startHover = $.now();

$("#product_name").hover(
function(){
    startHover = $.now();
},
function(){
    var endHover = $.now();
    var msHovered = endHover - startHover;
    var seconds = msHovered/1000;
    if (seconds >= 1) {
        fbq('track', 'Hover', {
            domain: {{Page Hostname}},
            page_path: {{Page Path}}
        });
    }
}
);
});
</script>

HTML 代码:

<p id="product_name">Product 1</p>

任何帮助都会非常高兴!

非常感谢。

4

3 回答 3

0

根据您的代码,我了解您只想在有人悬停#product_name超过 1 秒时触发 fb 事件。

在您的 HTML 代码中,请使用以下代码:

<script> 
    $(document).ready(function() {
        var timer;
        $("#product_name").mouseenter(function() {
            var that = this;
            timer = setTimeout(function(){
                //var text = $(that).text() //text inside hovered #product_name element
                //var textInSpan =  $(that).find('span').text() //text inside hovered #product_name span element
                //var hoveredId =  $(that).attr('id') //hovered element ID
                //var hoveredClass =  $(that).attr('class') //hovered element class name
                fbq('track', 'Hover', {
                    domain: {{Page Hostname}},
                    page_path: {{Page Path}}
                });
            }, 1000);
        }).mouseleave(function() {
            clearTimeout(timer);
        });
    });
</script> 

在我的代码中,我添加了注释示例如何接收有关悬停 div 信息的其他信息

于 2017-06-30T07:02:28.730 回答
0

正如我所看到的,您的<p>元素会延伸到页面的整个宽度,因此即使您没有将鼠标悬停在确切的元素上,而只是包含<p>,u 的横截面也会注册悬停事件。

检查此以查看不一致https://jsfiddle.net/L9ory5ym/1/ JsFiddle 截图 要将此添加属性修复width到段落元素,仅在相关元素上注册事件。

于 2017-06-30T09:19:48.187 回答
0

我设法找到了解决我的问题的方法。基本上我是在所有页面上触发标签,所以 fb 事件是在没有内容的情况下触发的,正确的参数仅在悬停 #product_name 时发送。

我创建了一个变量“事件”并推送了一个数据层“thereisHover”。

dataLayer.push({
   'event': 'thereisHover'
});  

然后我将标准事件分离到另一个标签中,该标签仅在 event = thereisHover 时触发。

于 2017-06-30T16:07:24.443 回答