首页 > 解决方案 > 有没有办法使用谷歌分析(Angular)跟踪用户在页面上花费的时间

问题描述

我有一个 Angular 应用程序,我想使用谷歌分析跟踪用户在每个页面上花费的时间。最好的方法是什么?(或者也许有开箱即用的具有此功能的 Google Analytics 替代品?)

标签: angulargoogle-analyticsanalytics

解决方案


由于 Angular 是一个 SPA,您需要在 Google Analytics 上手动设置页面。为了做到这一点,您已经设置了路由更改的侦听器。

需要类似的东西:

 private subscribeToRouteChanges(): void {
    this.router.events
      .pipe(filter(event => event instanceof NavigationEnd))
      .subscribe((event: NavigationEnd) => this.sendPageDataToGoogleAnalytics(event.urlAfterRedirects));
  }

  public sendPageDataToGoogleAnalytics(url: string): void {
   //need a title for each page which will be shown at GA dashboards 
   //you can setup your own service or static function to return a title for each route registered
    const pageTitle = this.pageTitleService.getPageTitle(url);   
    if (pageTitle) {
      (window as any).ga('set', 'page', url);
      (window as any).ga('set', 'title', pageTitle);
      (window as any).ga('send', 'pageview');
    }
  }

推荐阅读