Angular 中浏览器显示和 Google Analytics 的动态页面标题

沃伊切赫·马尔西尼亚克

问题是:

为了两个目的,如何在 Angular App 中动态集中设置页面标题一次:

  • 使浏览器中的标题反映访问过的实际页面,
  • 向 Google Analytics 发送特定标题,避免将无聊、单一且无用的Angular App描述应用于所有应用程序页面。
沃伊切赫·马尔西尼亚克

我目前的解决方案

我使用了 Github 上的两个不错的片段:

  • 首先允许在路由器配置中集中定义页面标题,仅用于视觉目的,
  • 第二个提供了一种解决方案,用于将导航事件发送到 Google Analytics,同时在单页应用程序中 - 以自动集中方式或手动方式。它收到了amarnathm评论的鼓舞人心的

那么,这两个中提出的想法,包括对向后者报告问题的讨论,可以通过这种方式进行整合:

app.routing-module.ts

const routes: Routes = [ 
  { path: 'site/contact', component: ContactComponent, data: {title: 'Contact'}},
  ...
  // other paths
];

app.module.ts

import {BrowserModule} from '@angular/platform-browser';
import {TitleService} from "./title.service";
import {GtagModule} from "angular-gtag";
// ...
providers: [
    // ...
    TitleService,
    GtagModule.forRoot({ trackingId: 'MY-UA-CODE', trackPageviews: false })        
    // ...   
  ]
// ...

trackPageviews: false,正如amarnathm所提议的,很重要,因为我们将每页手动跟踪。Jeff 的标准示例代码默认为true

标题.service.ts :

import { Injectable } from '@angular/core';
import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
import { Title } from '@angular/platform-browser';
import { filter, map, switchMap } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class TitleService {
  default_title = 'My App';

  constructor(
    private router: Router,
    private activeRoute: ActivatedRoute,
    private title: Title,
    private gtag: Gtag,
    private env: Environment
  ) { }

  boot() {
    this.router.events.pipe(
      filter(event => event instanceof NavigationEnd),
      map(() => this.activeRoute),
      map(route => route.firstChild),
      switchMap(route => route.data),
      map((data) => {

        //here goes the GA reporting code            

        this.gtag.pageview({
          page_title: data && data.title ? data.title : this.default_title,
          page_path: this.router.url,
          page_location: this.env.host + this.router.url
        });

        return data && data.title ? `${data.title} • ${this.default_title}` : this.default_title;
      })
    ).subscribe((current_title) => this.title.setTitle(current_title));
  }
}

app.component.ts :

import { Component, OnInit } from '@angular/core';
import { TitleService } from './title.service';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styles: [],
})
export class AppComponent implements OnInit {

  constructor(private titleService: TitleService) { }

  ngOnInit() {
    this.titleService.boot();
  }
}

删除index.html文件中可能包含的任何 GA/Gtag 代码这允许自定义订阅 GA 服务,而无需依赖我们不会使用的自动跟踪。在 SPAindex.html中通常加载一次并且没有页面跟踪设置是无用的。

增强建议:

我没有答案:

如何使用ActivatedRoute参数并将它们映射到随后在 Analytics 中使用的详细标题,以及可选 - 用于在浏览器中显示每个参数的标题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular和Google Analytics(分析)

来自分类Dev

跟踪Angular2中的Google Analytics(分析)页面浏览量

来自分类Dev

如何让 Google Analytics 在单页应用程序中显示页面的正确标题?

来自分类Dev

Angular SPA中的Google Analytics(分析)

来自分类Dev

Angular SPA中的Google Analytics(分析)

来自分类Dev

使用MEAN堆栈的动态页面标题-Jade和Angular

来自分类Dev

使用MEAN堆栈的动态页面标题-Jade和Angular

来自分类Dev

GTM中的动态Google Analytics(分析)帐户

来自分类Dev

Google Analytics - 分组页面

来自分类Dev

动态地将Google Analytics(分析)跟踪代码包含到asp.net页面中

来自分类Dev

页面加载时使Google Chrome浏览器全屏显示

来自分类Dev

Google Analytics(分析)是否仅跟踪已知的浏览器?

来自分类Dev

根据页面标题过滤活动用户-Google Analytics(分析)

来自分类Dev

根据页面标题过滤活动用户-Google Analytics(分析)

来自分类Dev

Angular js应用程序在ios浏览器,Safari和chrome上都显示空白页面。在Windows桌面浏览器上工作正常

来自分类Dev

Angular.js和Google Analytics(分析)内容实验

来自分类Dev

Angular.js和Google Analytics(分析)内容实验

来自分类Dev

使用Google Analytics(分析)和angular.js追踪事件

来自分类Dev

如何在Firefox浏览器中测试Google Analytics(分析)?

来自分类Dev

Google Data Studio中的动态Google Analytics(分析)细分

来自分类Dev

用于Flask的Google Analytics(分析)不会跟踪页面浏览信息

来自分类Dev

页面在Google Chrome浏览器中无响应

来自分类Dev

Google Analytics和anonymizeIp

来自分类Dev

Google Analytics和anonymizeIp

来自分类Dev

Google Analytics(分析)不显示某些页面的跟踪

来自分类Dev

Google Analytics(分析)实时概述显示了不存在的页面

来自分类Dev

Google Analytics(分析)不显示某些页面的跟踪

来自分类Dev

Google Analytics(分析)实时概述显示了不存在的页面

来自分类Dev

Google Analytics Embed API 显示不同页面的图表

Related 相关文章

  1. 1

    Angular和Google Analytics(分析)

  2. 2

    跟踪Angular2中的Google Analytics(分析)页面浏览量

  3. 3

    如何让 Google Analytics 在单页应用程序中显示页面的正确标题?

  4. 4

    Angular SPA中的Google Analytics(分析)

  5. 5

    Angular SPA中的Google Analytics(分析)

  6. 6

    使用MEAN堆栈的动态页面标题-Jade和Angular

  7. 7

    使用MEAN堆栈的动态页面标题-Jade和Angular

  8. 8

    GTM中的动态Google Analytics(分析)帐户

  9. 9

    Google Analytics - 分组页面

  10. 10

    动态地将Google Analytics(分析)跟踪代码包含到asp.net页面中

  11. 11

    页面加载时使Google Chrome浏览器全屏显示

  12. 12

    Google Analytics(分析)是否仅跟踪已知的浏览器?

  13. 13

    根据页面标题过滤活动用户-Google Analytics(分析)

  14. 14

    根据页面标题过滤活动用户-Google Analytics(分析)

  15. 15

    Angular js应用程序在ios浏览器,Safari和chrome上都显示空白页面。在Windows桌面浏览器上工作正常

  16. 16

    Angular.js和Google Analytics(分析)内容实验

  17. 17

    Angular.js和Google Analytics(分析)内容实验

  18. 18

    使用Google Analytics(分析)和angular.js追踪事件

  19. 19

    如何在Firefox浏览器中测试Google Analytics(分析)?

  20. 20

    Google Data Studio中的动态Google Analytics(分析)细分

  21. 21

    用于Flask的Google Analytics(分析)不会跟踪页面浏览信息

  22. 22

    页面在Google Chrome浏览器中无响应

  23. 23

    Google Analytics和anonymizeIp

  24. 24

    Google Analytics和anonymizeIp

  25. 25

    Google Analytics(分析)不显示某些页面的跟踪

  26. 26

    Google Analytics(分析)实时概述显示了不存在的页面

  27. 27

    Google Analytics(分析)不显示某些页面的跟踪

  28. 28

    Google Analytics(分析)实时概述显示了不存在的页面

  29. 29

    Google Analytics Embed API 显示不同页面的图表

热门标签

归档