Google跟踪代码管理器,事件推送到数据层

时间:2016-04-06 07:20:16

标签: javascript google-tag-manager onmouseover

我编写此代码,只要用户将鼠标悬停在网站的特定区域上1秒钟,就可以通过Google跟踪代码管理器将事件推送到数据层。问题是我有8个其他区域使用这段代码并将其他信息推送到数据层(当然我为这些div定义了不同的ID),但是这里遇到了困难的部分:每个区域都推送相同的事件mouseover(上次创建的事件,作为Google跟踪代码管理器中的标记)。 我怎样才能将这些事件正确地推送到数据层?

谢谢, 阿提拉

我的代码有两个例子:

    var startTime; var endTime; var differenceTime;

    document.getElementById("budapest-pin").onmouseover = function() {mouseOver()};
    document.getElementById("budapest-pin").onmouseout = function() {mouseOut()};

    function mouseOver() {
    startTime = Date.now();
    };

    function mouseOut() {
        endTime = Date.now();
        differenceTime = (endTime-startTime)/1000;

        if(differenceTime>1) 
        {
            dataLayer.push({'event': 'budapest'         
        });
        };
    };
</script>

<script>

    var startTime; var endTime; var differenceTime;

    document.getElementById("szeged-pin").onmouseover = function() {mouseOver()};
    document.getElementById("szeged-pin").onmouseout = function() {mouseOut()};

    function mouseOver() {
    startTime = Date.now();
    };

    function mouseOut() {
        endTime = Date.now();
        differenceTime = (endTime-startTime)/1000;

        if(differenceTime>1) {
            dataLayer.push({'event': 'szeged'

        });
        };
    };
</script>

1 个答案:

答案 0 :(得分:2)

使用以下代码在您的网页上设置收听活动:

var startTime = {};
var endTime = {};
document.getElementById("budapest-pin").onmouseover = function() {
    mouseOver('budapest')
};
document.getElementById("budapest-pin").onmouseout = function() {
    mouseOut('budapest')
};
document.getElementById("szeged-pin").onmouseover = function() {
    mouseOver('szeged')
};
document.getElementById("szeged-pin").onmouseout = function() {
    mouseOut('szeged')
};

function mouseOver(id) {
    startTime[id] = Date.now();
};

function mouseOut(id) {
    endTime[id] = Date.now();
    var differenceTime = (endTime[id] - startTime[id]) / 1000;
    if (differenceTime > 1) {
        dataLayer.push({
            'event': 'mytaghover',
            'eventCategory': id,
            'eventAction': 'hover',
            'eventLabel': 'hovered ' + differenceTime + ' seconds'
        });
    };
}; 

在GTM中执行以下步骤:

  1. 使用类型&#39;数据层变量&#39;创建3个GTM变量。和followint&#39; Title&#39; - &#39;数据层变量名称&#39;:

    • dataLayer Category - eventCategory
    • dataLayer Action - eventAction
    • dataLayer Label - eventLabel
  2. 使用标题MyHover trigger创建GTM触发器,输入&#39;自定义事件&#39;和&#39;活动名称&#39; mytaghover

  3. 创建类型为&#39; Google Analytics&#39;的GTM代码。定义您的跟踪ID&#39;。选择&#39;事件&#39;在&#39;跟踪类型&#39;领域。填写&#39;事件跟踪参数&#39;的字段使用步骤1中的适当变量。在&#39; Fire On&#39;部分选择&#39;更多&#39;并选择MyHover trigger

  4. 在&#39;预览&#39;中测试您的容器模式然后发布它。