Google analytics 使用analytics.js跟踪按钮的事件

Google analytics 使用analytics.js跟踪按钮的事件,google-analytics,event-tracking,analytics.js,Google Analytics,Event Tracking,Analytics.js,我正在使用新的GA analytics.js来跟踪我的网站,这很好。我正在尝试跟踪一个按钮的点击(链接到一个外部网站),确保它在一个新窗口中打开,以便我们有时间跟踪它 <button class="knapp" id="b2" onclick="window.open('https://site.com');" target="_blank" type="button">Text</button> 文本 据我所知,我现在可以使用JS来跟踪这一点 因此,我更新了代码以

我正在使用新的GA analytics.js来跟踪我的网站,这很好。我正在尝试跟踪一个按钮的点击(链接到一个外部网站),确保它在一个新窗口中打开,以便我们有时间跟踪它

<button class="knapp" id="b2" onclick="window.open('https://site.com');" 
target="_blank" type="button">Text</button>
文本
据我所知,我现在可以使用JS来跟踪这一点

因此,我更新了代码以匹配我的按钮ID和事件,然后将其放在标题中

<script type="text/javascript">
var downloadLink = document.getElementById('b2');
addListener(downloadLink, 'click', function() {
ga('send', 'event', 'External_link', 'click', 'KL-FB');
});

function addListener(element, type, callback) {
 if (element.addEventListener) element.addEventListener(type, callback);
 else if (element.attachEvent) element.attachEvent('on' + type, callback);
}
</script>

var downloadLink=document.getElementById('b2');
addListener(下载链接,'click',函数(){
ga(“发送”、“事件”、“外部链接”、“点击”、“KL-FB”);
});
函数addListener(元素、类型、回调){
if(element.addEventListener)element.addEventListener(type,callback);
else if(element.attachEvent)element.attachEvent('on'+类型,回调);
}

然而,它根本不会触发。我在一个正常链接上有一个“正常”事件跟踪器,可以很好地触发,但从我在控制台中看到的情况来看,这甚至没有尝试过

您的代码存在一些问题:

  • 在呈现元素
    b2
    之前,
    中的
    addListener
    函数正在运行。有几个选项可以解决这个问题:将脚本放在页面底部,调用加载时附加代码,或者将其包装到jQuery
    文档中。ready
    。这是一个好消息
  • 按钮上的内联
    onclick
    事件在事件发送之前被触发。ga收到事件后,使用
    hitCallback
    函数将用户发送到下一页
  • 看起来是这样的:

    <script type="text/javascript">
        var downloadLink = document.getElementById('b2');
        addListener(downloadLink, 'click', function() {
            ga('send', 'event', 'External_link', 'click', 'KL-FB', {
                'hitCallback': function(){
                    document.location = 'https://site.com';
                }
            });
        });
    
    function addListener(element, type, callback) {
     if (element.addEventListener) element.addEventListener(type, callback);
     else if (element.attachEvent) element.attachEvent('on' + type, callback);
    }
    </script>
    
    
    var downloadLink=document.getElementById('b2');
    addListener(下载链接,'click',函数(){
    ga(‘发送’、‘事件’、‘外部链接’、‘点击’、‘KL-FB’{
    “hitCallback”:函数(){
    document.location=https://site.com';
    }
    });
    });
    函数addListener(元素、类型、回调){
    if(element.addEventListener)element.addEventListener(type,callback);
    else if(element.attachEvent)element.attachEvent('on'+类型,回调);
    }
    
    完美!非常感谢,很抱歉没有考虑事情的顺序。