0

我正在使用 angulartics2 来跟踪事件并将其他一些信息跟踪到谷歌分析。

所以,我只是在使用

Angulartics2Module.forRoot({ pageTracking: { autoTrackVirtualPages: true } })- 在主应用程序模块中和Angulartics2GoogleAnalytics.startTracking()- 在主应用程序组件中。

这种方法跟踪角度路由器中存在的所有路由变化,但我需要避免跟踪根/ 路由。

我尝试将 angulartics 模块配置为{ pageTracking: { autoTrackVirtualPages: true, excludedRoutes: ['/'] } }or{ pageTracking: { autoTrackVirtualPages: true, excludedRoutes: [/\//] } }但它没有像我预期的那样工作。

有没有一种简单的方法可以将此路线排除在跟踪之外?

4

1 回答 1

1

对于那些将面临同样问题的人来说,其中一种选择:

创建单独的服务,该服务将使用全局分析脚本,并在路线匹配您的情况时避免跟踪操作

export class AnalyticsService {
  constructor(private readonly router: Router) {}

  startRouterTracking(): void {
    this.router.events.subscribe(event => {
      if (event instanceof NavigationEnd) {
        const { urlAfterRedirects } = event;

        if (urlAfterRedirects.trim() === '/') {
          return;
        }

        // note: angulartics.pageTrack works incorrect (but by docs should work fine, have no idea why doesn't work)
        gtag('event', 'page_view', { page_path: urlAfterRedirects });
      }
    });
  }
}

于 2020-07-07T09:16:21.283 回答