Javascript 弹出窗口不适用于UA和GTM

Javascript 弹出窗口不适用于UA和GTM,javascript,jquery,google-analytics,popup,Javascript,Jquery,Google Analytics,Popup,我们最近将我们的网站更新为Universal Analytics和GTM。我们有一个弹出窗口,在退出页面时弹出,并根据选择发送事件。现在,如果我们尝试标记事件,弹出窗口将不起作用。如果我们将事件注释掉,弹出窗口会工作,但我们没有任何跟踪。下面是脚本,它是如何最初和工作良好,然后一个与变化,现在停止弹出工作 在脚本运行之前: <script> var goodExit = false; var through_onbeforeunload = false;

我们最近将我们的网站更新为Universal Analytics和GTM。我们有一个弹出窗口,在退出页面时弹出,并根据选择发送事件。现在,如果我们尝试标记事件,弹出窗口将不起作用。如果我们将事件注释掉,弹出窗口会工作,但我们没有任何跟踪。下面是脚本,它是如何最初和工作良好,然后一个与变化,现在停止弹出工作

在脚本运行之前:

<script>
var goodExit               = false;
var through_onbeforeunload = false;
var count_onbeforeunload   = 1;

function unloadStatus() {
    if(through_onbeforeunload) {
        through_onbeforeunload = false;
         _gaq.push(['_trackEvent', 'onbeforeunload', 'returned from popup']);
    }
}

$(document).ready(function(){

    setInterval("unloadStatus()", 500);

    window.onbeforeunload = function() {
        through_onbeforeunload = true;
         _gaq.push(['_trackEvent', 'onbeforeunload', 'saw popup', '', count_onbeforeunload++]);

        if(!goodExit) {
            var my_string    = '--------------------------------------------\n';
            my_string       += 'YOUR APPLICATION HAS NOT YET BEEN SUBMITTED!\n';
            my_string       += '--------------------------------------------\n';
            my_string       += 'You are minutes away from completing your application.\n';
            my_string       += 'If you exit this page your information will not be saved.\n';
            my_string       += '\n';
            my_string       += 'CLICK THE STAY ON THIS PAGE BUTTON\n';
            my_string       += 'TO CONTINUE THE APPLICATION PROCESS.\n';
            my_string       += '--------------------------------------------';
            return my_string;
        }
    }

    window.onunload = function() {
        if(through_onbeforeunload) {
         _gaq.push(['_trackEvent', 'onbeforeunload', 'left through popup']);
        }
    }

    $('.js-app-submit').click(function() {
        goodExit              = true;
        window.onbeforeunload = null;
    });
});
</script>

var goodExit=false;
通过预卸载前的变量=false;
卸载前的var计数=1;
函数unloadStatus(){
如果(卸载前通过_on){
through_onbeforeunload=假;
_gaq.push([''u trackEvent',onbeforeunload',从弹出窗口返回']);
}
}
$(文档).ready(函数(){
setInterval(“unloadStatus()”,500);
window.onbeforeunload=函数(){
through_onbeforeunload=真;
_gaq.push([''跟踪事件','onbeforeunload','锯弹出','',计数''onbeforeunload++]);
如果(!goodExit){
var my_string='------------------------------------------------------------\n';
my_string+='您的申请尚未提交!\n';
我的字符串+='------------------------------------------------------------\n';
my_string+='您离完成申请还有几分钟。\n';
my_string+='如果退出此页面,则不会保存您的信息。\n';
我的字符串+='\n';
my_string+='单击停留在此页面按钮\n';
my_string+='继续应用程序进程。\n';
我的字符串+='--------------------------------------------------';
返回我的_字符串;
}
}
window.onunload=函数(){
如果(卸载前通过_on){
_gaq.push([''u trackEvent',onbeforeuload',left-through-popup']);
}
}
$('.js app submit')。单击(函数(){
goodExit=true;
window.onbeforeunload=null;
});
});
下面,当我们实现UA和GTM时,我们将gaq.push更改为ga('send','event…),一切都停止了工作

<script>
var goodExit               = false;
var through_onbeforeunload = false;
var count_onbeforeunload   = 1;

function unloadStatus() {
    if(through_onbeforeunload) {
        through_onbeforeunload = false;
         ga(['send', 'event', 'onbeforeunload', 'returned from popup']);
        }
}

$(document).ready(function(){

    setInterval("unloadStatus()", 500);

    window.onbeforeunload = function() {
        through_onbeforeunload = true;
        ga(['send', 'event', 'onbeforeunload', 'saw popup', count_onbeforeunload++]);

        if(!goodExit) {
            var my_string    = '--------------------------------------------\n';
            my_string       += 'YOUR APPLICATION HAS NOT YET BEEN SUBMITTED!\n';
            my_string       += '--------------------------------------------\n';
            my_string       += 'You are minutes away from completing your application.\n';
            my_string       += 'If you exit this page your information will not be saved.\n';
            my_string       += '\n';
            my_string       += 'CLICK THE STAY ON THIS PAGE BUTTON\n';
            my_string       += 'TO CONTINUE THE APPLICATION PROCESS.\n';
            my_string       += '--------------------------------------------';
            return my_string;
        }
    }

    window.onunload = function() {
        if(through_onbeforeunload) {
            ga(['send', 'event', 'onbeforeunload', 'left through popup']);
        }
    }

    $('.js-app-submit').click(function() {
        goodExit              = true;
        window.onbeforeunload = null;
    });
});
</script>

var goodExit=false;
通过预卸载前的变量=false;
卸载前的var计数=1;
函数unloadStatus(){
如果(卸载前通过_on){
through_onbeforeunload=假;
ga(['send','event','onbeforeuload','returned from popup']);
}
}
$(文档).ready(函数(){
setInterval(“unloadStatus()”,500);
window.onbeforeunload=函数(){
through_onbeforeunload=真;
ga(['send'、'event'、'onbeforeunload'、'saw popup'、count_onbeforeunload++]);
如果(!goodExit){
var my_string='------------------------------------------------------------\n';
my_string+='您的申请尚未提交!\n';
我的字符串+='------------------------------------------------------------\n';
my_string+='您离完成申请还有几分钟。\n';
my_string+='如果退出此页面,则不会保存您的信息。\n';
我的字符串+='\n';
my_string+='单击停留在此页面按钮\n';
my_string+='继续应用程序进程。\n';
我的字符串+='--------------------------------------------------';
返回我的_字符串;
}
}
window.onunload=函数(){
如果(卸载前通过_on){
ga(['send','event','onbeforeuload','left-through-popup']);
}
}
$('.js app submit')。单击(函数(){
goodExit=true;
window.onbeforeunload=null;
});
});
如果我们对谷歌标签进行评论,弹出窗口会起作用,但不会被跟踪。不幸的是,它存在于页面上,并且分析在GTM中,但我们通过直接在网站上添加分析进行了测试,但仍然不起作用


如果您有任何帮助/建议,我们将不胜感激。

您用于发送事件的语法不正确。不应该有任何方括号,例如,对于unloadStatus函数中的第一个事件,它应该是:

ga('send', 'event', 'onbeforeunload', 'returned from popup'); 

其余的也一样。

这是一个很简单的问题,我反复看了一遍。真不敢相信我没有看到。非常感谢,我今天会尝试一下,看看它是否有效。尝试去掉括号,但仍然不起作用。现在它显示了一个控制台错误-未捕获的SyntaxError:意外的字符串这次将代码放回时,逗号出现了出来了。把那些加进去了。谢谢你。不客气。你说逗号出来是什么意思?