我应该手动将 JS 异常发送到 Google Analytics 吗?
Should I send JS exceptions manually to Google Analytics?
我是 Google Analytics 的新手。我有一个 Angular 4 应用程序。我想知道什么时候抛出了未捕获的 JavaScript 异常。我已经通过 Google 跟踪代码管理器设置了 Google 分析。它非常适合历史更改事件(Angular 路线之间的导航)。但它不会触发 JS 错误。
这是我在调试窗格中看到的内容:
您可以在控制台中看到异常,但未触发 JS 错误标记。我做错了什么?
好的,这是我找到的。你不应该期望异常会被自动触发。您应该实现 ErrorHandler 并从那里手动抛出事件。
import {ErrorHandler, Injector} from '@angular/core';
import {Angulartics2GoogleTagManager} from 'angulartics2/gtm';
export class MyErrorHandler implements ErrorHandler {
private analytics: Angulartics2GoogleTagManager;
constructor(private injector: Injector) {
}
handleError(error: Error) {
console.error(error);
if (!this.analytics) {
this.analytics = this.injector.get(Angulartics2GoogleTagManager);
}
this.analytics.eventTrack(JSON.stringify(error.message), {
event: 'jsError',
label: JSON.stringify(error.stack).replace('\n', ' ')
});
}
}
app.module.ts:
{provide: ErrorHandler, useClass: MyErrorHandler, deps: [Injector]},
我是 Google Analytics 的新手。我有一个 Angular 4 应用程序。我想知道什么时候抛出了未捕获的 JavaScript 异常。我已经通过 Google 跟踪代码管理器设置了 Google 分析。它非常适合历史更改事件(Angular 路线之间的导航)。但它不会触发 JS 错误。
这是我在调试窗格中看到的内容:
您可以在控制台中看到异常,但未触发 JS 错误标记。我做错了什么?
好的,这是我找到的。你不应该期望异常会被自动触发。您应该实现 ErrorHandler 并从那里手动抛出事件。
import {ErrorHandler, Injector} from '@angular/core';
import {Angulartics2GoogleTagManager} from 'angulartics2/gtm';
export class MyErrorHandler implements ErrorHandler {
private analytics: Angulartics2GoogleTagManager;
constructor(private injector: Injector) {
}
handleError(error: Error) {
console.error(error);
if (!this.analytics) {
this.analytics = this.injector.get(Angulartics2GoogleTagManager);
}
this.analytics.eventTrack(JSON.stringify(error.message), {
event: 'jsError',
label: JSON.stringify(error.stack).replace('\n', ' ')
});
}
}
app.module.ts:
{provide: ErrorHandler, useClass: MyErrorHandler, deps: [Injector]},