【问题标题】:JavaScript: Analytics Track Event won't fireJavaScript:分析跟踪事件不会触发
【发布时间】:2013-11-04 10:09:23
【问题描述】:

我已经把这个功能放到了表单验证部分,这样只有当表单有效时,才会发送信标。我确定我错过了一些东西。请参阅下面的代码。

function checkForm() {
    var error = "";
    if($("#first_name").val()=="") { error+="- Enter your first name.\n";};
    if(error=="") {
        _gaq.push(['_trackEvent','Form','Submit','Newsletter']);
        return true;
    } else {
        alert("Please correct these form errors before you submit the form:\n\n"+error)
        return false;
    }
}

编辑:感谢大家的帮助!测试了这个,100ms似乎不够用。

现在我正在考虑以更聪明的方式做到这一点。一旦所有必填字段都包含文本,提交它是有意义的,但它应该足够聪明,可以多次提交并且仅在数据有效时提交!

【问题讨论】:

  • 你的问题是什么?请分享您遇到的错误。
  • 我没有收到任何错误。该事件不会出现在仪表板中。

标签: javascript google-analytics


【解决方案1】:

尝试使用 setTimeout() 或 setInterval() 延迟(可能是大约 100 毫秒或更短)并让 GA 数据提交。为我工作。

function gaSubmit(param){
_gaq.push(param);
}

function checkForm() {
    var error = "";
    if($("#first_name").val()=="") { error+="- Enter your first name.\n";};
    if(error=="") {
        setTimeout(gaSubmit(['_trackEvent','Form','Submit','Newsletter']),100);
        return true;
    } else {
        alert("Please correct these form errors before you submit the form:\n\n"+error)
        return false;
    }
}

【讨论】:

    【解决方案2】:

    你确定它不会着火吗?分析数据刷新可能存在一些延迟。如果你在 localhost 上开发你的应用程序,那么你应该将 _setDomainName 属性设置为 'none'

    _gaq.push(['_setAccount', 'Your-account-id']);
    _gaq.push(['_setDomainName', 'none']);
    

    @see:GA Event Tracking from localhost

    【讨论】:

    • 嗨,从控制台执行相同的操作确实会注册。我在某处读到有关延迟(不是仪表板延迟)和一些人选择异步提交的信息。
    猜你喜欢
    • 2016-05-21
    • 2016-02-22
    • 2013-09-18
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多