我应该手动将JS例外发送给Google Analytics吗?

时间:2018-06-12 00:09:44

标签: javascript angular google-analytics google-tag-manager

我是Google Analytics新手。我有一个Angular 4应用程序。我想知道什么时候抛出了未被捕获的JavaScript异常。我通过Google跟踪代码管理器设置了Google Analytics。它适用于历史变化事件(Angular路线之间的导航)。但它并没有解决JS错误。enter image description here

以下是我在调试窗格中看到的内容:

enter image description here

您可以在控制台中看到异常,但不会触发JS Error标记。我做错了什么?

1 个答案:

答案 0 :(得分:0)

好的,这是我发现的。您不应期望自动触发异常。您应该实现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]},