首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自谷歌分析analytics.js异常跟踪的异常报告

来自谷歌分析analytics.js异常跟踪的异常报告
EN

Stack Overflow用户
提问于 2014-02-12 12:11:59
回答 4查看 21.3K关注 0票数 83

Google Universal Analytics有一个hit type of exception

代码语言:javascript
运行
复制
ga('send', 'exception', {
  'exDescription': 'DatabaseError'
});

我本以为能够去谷歌分析控制台,找到一个与“事件”相同级别的异常报告,但它却无处可见。

安卓和iOS的API都写着Crash and exception data is available primarily in the Crash and Exceptions report,但我找不到任何使用这个名字的报告。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-12 12:21:16

我想通了。我不知道为什么他们不把这作为一个内置的报告,但也许有一天。

我在仪表板中制作了一个自定义小部件,维度为Exception Description,指标为'Crashes‘:

这给了我一个类似这样的报告:

您还可以转到Customization选项卡,创建一个自定义报告,为您提供一个错误表,然后将其添加到您的仪表板。

与此全局异常处理程序一起使用

代码语言:javascript
运行
复制
if (typeof window.onerror == "object")
{
    window.onerror = function (err, url, line)
    {
        if (ga) 
        {
           ga('send', 'exception', {
               'exDescription': line + " " + err
           });
        }
    };
}

您可以将此处理程序放在Javascript的初始化中的任何位置-这将取决于您如何配置所有JS文件。或者,您可以将其放在靠近html body标记顶部的<script>标记中。

票数 133
EN

Stack Overflow用户

发布于 2015-02-26 02:31:27

我进一步采用了Simon_Weaver的指南来制作自定义报告,并构建了一个相当完整的Google Analytics自定义异常报告。我觉得它可能值得分享,所以我把它上传到GA "Solutions Gallery“。

我的模板:Google Analytics Exceptions Report

以下是最终结果的图片:

票数 43
EN

Stack Overflow用户

发布于 2017-05-19 05:15:07

这就是我想出来的,所以你不需要把代码放在每一个地方。只需向每个.js文件添加new ErrorHandler();即可。这是为Chrome扩展所做的,但我认为应该适用于任何地方。我在一个单独的文件(因此是app.GA)中实现了实际的ga()内容,但是您也可以在这里烘焙它。

代码语言:javascript
运行
复制
/*
 *  Copyright (c) 2015-2017, Michael A. Updike All rights reserved.
 *  Licensed under the BSD-3-Clause
 *  https://opensource.org/licenses/BSD-3-Clause
 *  https://github.com/opus1269/photo-screen-saver/blob/master/LICENSE.md
 */
// noinspection ThisExpressionReferencesGlobalObjectJS
(function(window, factory) {
    window.ExceptionHandler = factory(window);
}(this, function(window) {
    'use strict';

    return ExceptionHandler;

    /**
     * Log Exceptions with analytics. Include: new ExceptionHandler();<br />
     * at top of every js file
     * @constructor
     * @alias ExceptionHandler
     */
    function ExceptionHandler() {
        if (typeof window.onerror === 'object') {
            // global error handler
            window.onerror = function(message, url, line, col, errObject) {
                if (app && app.GA) {
                    let msg = message;
                    let stack = null;
                    if (errObject && errObject.message && errObject.stack) {
                        msg = errObject.message;
                        stack = errObject.stack;
                    }
                    app.GA.exception(msg, stack);
                }
            };
        }
    }
}));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21718481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档